「クロネコ代金後払い」プラグインにおいて、PHP8.1で、SMS認証コード欄が出たままになります。
(払込票・スマホ)の両タイプで発生するようです。
フロントの症状としましては、スマホタイプを選択しなくても、SMSの認証用コード欄が出たままとなります。
原因と思われるコード
wcex_kuroneko_atobarai/includes/class-front-load.php の120行目
$pos = strpos( $l10n, 'front_ajaxurl' );
の $l10n に null が渡っています。
PHP8.1から非推奨となったので、デバッグモードでエラーが出るようになったらしいです。
このエラーが出ることによって、配送・支払方法ページにてコンソールに4つエラーが出ます。
調べますと、
<b>Deprecated</b>: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in <b>/home/〇〇〇/サイト名.com/public_html/wp-content/plugins/wcex_kuroneko_atobarai/includes/class-front-load.php</b> on line <b>120</b><br />
$l10n が結合されていく過程で、上記のエラーが間に挟まることで、SMSの認証用コード欄が出たままとなる症状を引き起こしているようです。
デバッグモード以外では出ないので特定までに手間取りました。
ご検証いただけますと幸いです。
——————————————-
テスト環境
WordPress のバージョン:(6.6.2)
Welcart のバージョン:(2.11.6)(最新)
PHP のバージョン:(8.1.29)
Welcart専用の拡張プラグインとバージョン:
WCEX Kuroneko Daikin Atobarai Service 2.1.7(最新)
ご利用の親テーマとバージョン : Welcart Basic (1.8.5)(最新)
ご利用の子テーマとバージョン : なし
症状を確認したブラウザ: Chrome (Win)、Edge(Win)
サーバー【重要】:シンクラウド株式会社 シン・レンタルサーバー ベーシック
——————————————–
サーバー側 WAF kusanagi アクセラレータ キャッシュ関係 全部OFF
Welcart と WCEX Kuroneko Daikin Atobarai Service 以外のプラグイン全て無効化済み
カスタマイズ 一切なし