Pocket
LINEで送る

■はじめに

いままでは普通にライセンス認証機能を実装するお話でした。実は、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

これはそれほどでも無いもの。

 


■結果として

複数種のアイテムとライセンスの発行ができるようになりました。ライセンスマネージャーの画面でもわかります。ただし、ライセンスは商品毎に特別に付番はできていません。

スクリーンショット 2020 05 23 01 10 02

functions.phpで対応させるのは本体やプラグインの影響を最小にするためですし、以外とこれもシンプルです。他のテーマ等への移行も簡単にできるのではないでしょうか?

Monacoinを投げる
モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?

Follow me!

Pocket
LINEで送る

しげっち法師さん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'),...ICT、文房具、ライフハックをすべての人に。