マルチサイトと Freemius 連携を併用する場合、Staging サイトでも Freemius が想定どおりに動作するように、いくつかの仕組みを追加しました。
以前は、Freemius を含むサイトをクローンした後に次のような致命的エラーが発生していました。
Fatal error: Uncaught TypeError: Argument 1 passed to Freemius::get_api_user_scope_by_user() must be an instance of FS_User, bool given, called in /home/customer/www/website.com/public_html/test/wp-content/plugins/bulk-image-alt-text-with-yoast/vendor/freemius/includes/class-freemius.php on line 22695 and defined in /home/customer/www/website.com/public_html/test/wp-content/plugins/bulk-image-alt-text-with-yoast/vendor/freemius/includes/class-freemius.php:22709
Freemius SDK がネットワーク上で動作している場合、共有リソースはネットワークレベルのテーブルに保存されます。そのため、サイトが単一サイトに複製されると、SDK はまだネットワーク内にいると認識するにもかかわらず共有リソースが欠落している状態になります。
これを防ぐため、WP STAGING は Staging サイトの options テーブル wpstg[int]_options から次のオプションを削除します。
'fs_accounts', 'fs_dbg_accounts', 'fs_active_plugins', 'fs_api_cache', 'fs_dbg_api_cache', 'fs_debug_mode'
これは Freemius が Staging サイト上で認証されなくなり、本番サイトとは挙動が多少異なる可能性があることを意味します。
この状態を無視することもできますし、特定の Freemius サービスをテストしたい場合は、Staging サイト上で Freemius を再認証することもできます。製品に応じて、オプトインまたはライセンスの有効化を行います。
いずれにしても、Staging サイトを本番サイトに PUSH すると、WP STAGING は本番サイト上の Freemius 設定を保持し、本番サイトのライセンス有効化状態は失われません。
これについてさらに質問がある場合は、サポートまでお問い合わせいただくか、当社の友人である Freemius までお問い合わせください。