WordPressで構築したライセンス認証サービスで複数の商品アイテム・ライセンスを販売する方法
この記事の内容は・・・
■はじめに
いままでは普通にライセンス認証機能を実装するお話でした。実は、WooCommerceとWordPress、Software License Manager for CLIENT / WooCommerceでは、単一種類のライセンスしか発行・販売できません(2020年5月1日現在)。
つまり、複数種類の製品ラインやライセンスだと、対応が難しいのが現状です。
で、今回は複数種類の製品ライン・ライセンスに対応していきたいと思います。
■何を変えるのか!?
結局変更するのはテーマファイル(親子)の子テーマです。functions.phpと関連ファイルを作成し、プラグインなどの機能を上書きしてしまいます。この方法が良いかどうかはわかりませんが、手っ取り早くでき、プラグインのアップデートによる変更を最小に抑えることができるものだと判断しました。
■変更してみる
■functions.php
自作の上書きする2つのクラスをロードします。
<?php
if ( ! class_exists( 'SlmForWooCommerceMultiItems' ) ) {
require_once dirname( __FILE__ ) . '/inc/class-slmforwoocommercemultiitems.php';
}
if ( ! class_exists( 'SlmForWooCommerceRegistMultiItems' ) ) {
require_once dirname( __FILE__ ) . '/inc/class-slmforwoocommerceregistmultiitems.php';
}
function sis_log($message) {
if( defined( 'WP_DEBUG' ) && defined( 'WP_DEBUG_LOG' ) ){
if( WP_DEBUG && WP_DEBUG_LOG ){
$log_message = sprintf("%s:%s\n", date_i18n('Y-m-d H:i:s'), $message);
error_log($log_message, 3, WP_CONTENT_DIR."/sis_debug.log");
}
}} // sis_log
■その他のクラス class-slmforwoocommercemultiitems.php
これが一番厄介だったもの。
複数カテゴリー対応のためのフィールドの定義などをしていきます。実は内部は、サブスクリプション系の処理も入っていますので、割愛します。
■その他のクラス class-slmforwoocommerceregistmultiitems.php
これはそれほどでも無いもの。
■結果として
複数種のアイテムとライセンスの発行ができるようになりました。ライセンスマネージャーの画面でもわかります。ただし、ライセンスは商品毎に特別に付番はできていません。
functions.phpで対応させるのは本体やプラグインの影響を最小にするためですし、以外とこれもシンプルです。他のテーマ等への移行も簡単にできるのではないでしょうか?
モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?
Related Posts
https://kshigeyama.dreampresenter.info/2020/05/23/4986/WordPressWordPress■はじめに いままでは普通にライセンス認証機能を実装するお話でした。実は、WooCommerceとWordPress、Software License Manager for CLIENT / WooCommerceでは、単一種類のライセンスしか発行・販売できません(2020年5月1日現在)。 つまり、複数種類の製品ラインやライセンスだと、対応が難しいのが現状です。 で、今回は複数種類の製品ライン・ライセンスに対応していきたいと思います。 ■何を変えるのか!? 結局変更するのはテーマファイル(親子)の子テーマです。functions.phpと関連ファイルを作成し、プラグインなどの機能を上書きしてしまいます。この方法が良いかどうかはわかりませんが、手っ取り早くでき、プラグインのアップデートによる変更を最小に抑えることができるものだと判断しました。 ■変更してみる ■functions.php 自作の上書きする2つのクラスをロードします。 <?phpif ( ! class_exists( 'SlmForWooCommerceMultiItems' ) ) {require_once dirname( __FILE__ ) . '/inc/class-slmforwoocommercemultiitems.php';}if ( ! class_exists( 'SlmForWooCommerceRegistMultiItems' ) ) {require_once dirname( __FILE__ ) . '/inc/class-slmforwoocommerceregistmultiitems.php';}function sis_log($message) {if( defined( 'WP_DEBUG' ) && defined( 'WP_DEBUG_LOG' ) ){if( WP_DEBUG && WP_DEBUG_LOG ){$log_message = sprintf('%s:%s\n', date_i18n('Y-m-d H:i:s'),...しげっち法師さん kshigeyama@gmail.comAdministratorドリームプレゼンター&サポータ&アドバイザです。こっちは比較的マジメ系w。ありとあらゆるコトをフュージョンした感じで生きていこうかな。 文房具やガジェット、家電屋さん巡り、バスに乗ってふらふらなどもしています。 Bot作者でもあります。システム構築(Web/PHP/Javaとか)・IT/ビジネスコンサル系です。しげっち@ドリームプレゼンターWeb
コメントを残す