-
投稿者投稿
-
2025年6月24日 6:51 PM #145513
【お使いの Snow Monkey のバージョン】25.4.7
【お使いの Snow Monkey Blocks のバージョン】24.0.4
【お使いの Snow Monkey Editor のバージョン】11.0.2
【お使いのブラウザ】Google Chrome### 実現したいこと
WooCommerceのアカウントログイン画面に、プラグイン「SiteGuardWP」から生成される画像認証を表示させるために、以下のコードを機能させたい。
if ( isset( $siteguard_captcha ) ) {
add_filter( ‘woocommerce_login_form_start’, [ $siteguard_captcha, ‘handler_login_form’ ] );
add_filter( ‘woocommerce_register_form_start’, [ $siteguard_captcha, ‘handler_register_form’ ] );
add_filter( ‘woocommerce_lostpassword_form’, [ $siteguard_captcha, ‘handler_lostpassword_form’ ] );
}### 発生している問題
上記コードをmy snow monkeyに記述しても効かない。
(他に記述しているコードも幾つかありますが、それらは効いています)### 試したこと
試しにテーマのfunction.phpに記述してみたら効きました。
何か初歩的なミスなのではと思うのですが…何かヒントをいただければ幸いです。
♥ 0Who liked: No user2025年6月24日 8:43 PM #145515テーマの
functions.php
よりプラグインのほうが早いタイミングで読み込まれるので、My Snow Monkey が読み込まれたタイミングでは$siteguard_captcha
が未定義だけど、テーマが読み込まれたタイミングでは$siteguard_captcha
が定義済みである、ということではないでしょうか。という想定でいくと、テーマが読み込まれたあとに発火するアクションフック
after_setup_theme
か、全プラグインが読み込まれたあとに発火するアクションフックplugins_loaded
あたりでコードを実行するとよいのではないでしょうか?(SiteGuard WP には詳しくないので動くかはわかりませんが、このあたりをヒントに試してみてください)add_action( 'after_setup_theme', function () { if ( isset( $siteguard_captcha ) ) { add_filter( 'woocommerce_login_form_start', [ $siteguard_captcha, 'handler_login_form' ] ); add_filter( 'woocommerce_register_form_start', [ $siteguard_captcha, 'handler_register_form' ] ); add_filter( 'woocommerce_lostpassword_form', [ $siteguard_captcha, 'handler_lostpassword_form' ] ); } } );
♥ 0Who liked: No user -
投稿者投稿
- このトピックに返信するにはログインが必要です。