WCEX Amazon Pay と Contact Form 7 の干渉について
- このトピックには2件の返信、2人の参加者があり、最後にmainichi_webにより7ヶ月、 1週前に更新されました。
-
投稿者投稿
-
2024年4月12日 2:11 PM #101753mainichi_webモデレーター
お世話になっております。
3月に Contact Form 7 を 5.9.0 にバージョンアップした際に
CF7のお問い合わせフォームが送信できなくなり、
テスト環境でプラグインをひとつずつ停止して確認したところ
WCEX Amazon Pay を停止することでフォームが動作するようになりました。上記内容を Contact Form 7 のサポートフォーラムにて質問させていただきましたが
ご返信はいただけなさそうな気配だったため原因を探るべく、
サーバーのエラーログを確認したところ[Fri Apr 12 10:10:01.079846 2024] [proxy_fcgi:error] [pid 167437:tid 167804] [client 160.237.77.96:56248] AH01071: Got error 'PHP message: PHP Fatal error: Uncaught Error: Cannot use object of type Contactable\\SWV\\RequiredRule as array in /home/xxxx/xxxxxxxxxxxxxx.com/public_html/test.xxxxxxxxxxxxxx.com/wp-content/plugins/wcex-amazonpay/dist/WCEXAAP/Aivec/CptmClient/Client.php:202\nStack trace:\n#0 /home/xxxx/xxxxxxxxxxxxxx.com/public_html/test.xxxxxxxxxxxxxx.com/wp-includes/class-wp-hook.php(324): WCEXAAP\\Aivec\\CptmClient\\Client->setUpdateApiErrorResponse('swv_required', '\\xE5\\xBF\\x85\\xE9\\xA0\\x88\\xE9\\xA0\\x85\\xE7\\x9B\\xAE\\xE3\\x81\\xAB...', Object(Contactable\\SWV\\RequiredRule), Object(WP_Error))\n#1 /home/xxxx/xxxxxxxxxxxxxx.com/public_html/test.xxxxxxxxxxxxxx.com/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters('', Array)\n#2 /home/xxxx/xxxxxxxxxxxxxx.com/public_html/test.xxxxxxxxxxxxxx.com/wp-includes/plugin.php(517): WP_Hook->do_action(Array)\n#3 /home/xxxx/xxxxxxxxxxxxxx.com/public_html/test.xxxxxxxxxxxxxx.com/wp-includes/class-wp-error.php(209): do_action('wp_error_added', 'swv_required', '\\xE5\\xBF\\x85\\xE9\\xA0\\x88\\xE9\\xA0\\x85\\xE7\\x9...', referer: https://test.xxxxxxxxxxxxxx.com/contact/
との内容だったため、
wcex-amazonpay/dist/WCEXAAP/Aivec/CptmClient/Client.php の 202行目$body = isset($data['body']) ? (string)$data['body'] : '';
の前に
if (!is_array($body)) { return; }
を追加したところ、フォームが動作するようになりました。
本番環境も一旦上記の対応をした上で、現在更新をストップしているCF7を最新にしたいと思うのですが
上記の対応はAmazonPayの動作に問題はありますでしょうか?
(プラグインがアップデートされた際の上書きは承知しております)症状を確認したテスト環境は、本番環境をコピーした上で
テーマを Basic にし、関係プラグイン以外を全削除した下記の状態になります
——————————————-
WordPress のバージョン:6.5.2
PHP のバージョン:7.4プラグインとバージョン:
Welcart 2.10.1
WCEX Amazon Pay 2.5.2
Contact Form 7 5.9.3
※プラグインは有効無効含め、上記の3つのみインストールしている状況ですご利用の親テーマとバージョン : Welcart Basicバージョン: 1.8.4
症状を確認したブラウザ:Chrome、Firefox 各最新ver.
サーバー【重要】:Xサーバー
——————————————–ただ、その後
WordPressを新規インストールし、上記と同環境を構築したサイトでは
問題なくフォームが送信でき、原因はわからずにおります。
(こちらではAmazonPayの設定は行っていません)何卒よろしくお願いいたします。
2024年4月18日 11:37 AM #101795furutaキーマスターmainichi_web 様
お世話になっております。返答が遅くなり申し訳ございません。
if (!is_array($body)) {
ではなく
if (!is_array($data)) {
としていただけたらと思います。同環境を構築したサイトでは問題なくフォームが送信でき、原因はわからず
とのことですが、開発元(アイベック様)に情報を共有させていただきます。
2024年4月18日 2:22 PM #101798mainichi_webモデレーターfuruta 様
お世話になっております。
記載した修正コード、おかしかったですね。すみません。開発元(アイベック様)へのご共有ありがとうございます。
何卒よろしくお願いいたします。 -
投稿者投稿
- このトピックに返信するにはログインが必要です。