この記事はブロックされています。続きを読みたい方はログインをして下さい。会員ではない方は新規会員登録をして下さい。


ワードプレス プラグインに差分ファイルを作って追加機能ごとにマネタイズする方法 サンプルコードあり

有料のワードプレス プラグインを作るにあたって問題になるのがバージョンアップと価格差だ。
色々と機能を追加していくと価格を上げざるを得なくなるよね。
機能ごとにバージョンを用意するという方法もあるけれど、種類が増えるごとに管理が大変だったりする。

他に方法はというと、追加機能分を別途プラグインとしてインストールする、という方法があるが、これも機能が増えてくるとインストールするプラグインが増えてしまって始末が悪い。

そこで考えついのが、基本ファイルを作って、そこに差分ファイルを追加する、という方法だ。
なにがいいのかというと、基本ファイルというすっぴんのプラグインを用意して、必要な機能だけを追加購入してもらう、ということができること。

A機能は1000円、B機能は5000円といった売り方ができる。

具体的には最低限の機能をもたせた体験版を無料でダウンロードしてもらい、機能が足りないと思ったら追加機能を購入してもらうことでプラグインが拡張できるわけだ。
ユーザーは最初に体験版を入手してお試しができるから、その後の追加機能の購入へと進みやすい。
ユーザーは欲しい機能だけを購入できるのでリーズナブルだよね。
また、追加機能の体験版を本体に組み込まずに出せるからフットワークも軽くなる。

で、具体的にどうすればいいのかなんだけれど、PHPにはオートローダーという機能があって、普通はこれを使うんだけれど、それがまたうまく行かない。
オートローダーの欠点は、読み込むクラスファイルが存在しないと致命的なエラーが出てしまうことにある。
なので、通常はPHPを機能ごとに分割する場合はクラスファイルを作るんだけれど、それはあくまでもその時点で読み込むクラスファイルを想定していないとダメなんだよね。

例えば、無料体験版を作っておいて、半年後に追加機能をリリースするとする。
無料体験版を作っている時点では半年後にどんな追加機能をリリースするか分からないから、読み込むべきクラスファイルも決まっていない。
なので、追加機能をリリースする時には無料体験版の方もバージョンアップする必要がある。

どうしてそうなるのかというと、詳細は省くけれど、クラスファイルの中で単純に「include関数」が使えないことにある。「include関数」はファイルの中身を読み込む関数なんだけれど、Class直下ではvarとかfunctionしか書けないという制約があるので無理なのだ。

クラスを作ってから中身をいじるには、クラスの継承とかオーバーライドで上書きするしかないんだけれど、この方法もまた後々追加する機能を想定していないとダメなんだよね。

そこで、かなり強引だけれどPHPの変態的特性を活かし力技でねじ伏せる。
追加機能のファイルを自分自身で読み込んで、自分自身に追加して取り込んでしまう、というアメーバ作戦である。
仕組みは単純で、スクリプトを実行している自分自身で関連ファイルを読み込んで、任意の場所に追加して、保存をする、というもの。

普通であれば実行している自分自身を書き換えるなんていうのは無茶なんだけれど、スクリプト系言語はそれができてしまうのだ。なので、あたかも最初から自分自身に組み込まれた機能であるかのように新機能が使える。

例えば、自分自身のスクリプト名が「include_test.php」だとすると、「include_test○○」と付けられたファイルを全て関連ファイルと見なし読み込んで、スクリプト内の「#add_function」と記述されたプレースフォルダに置き換えることができる。
保存をすれば次回からは新機能が取り込まれた状態になっているというわけだ。

イメージが湧かないと思うからサンプルコードをみた方が早い。
コメントを付けてあるので理解しやすいと思う。

関連記事