WCEX Amazon Pay と Contact Form 7 の干渉について

フォーラム 拡張プラグイン WCEX Amazon Pay と Contact Form 7 の干渉について

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #101753
    mainichi_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の設定は行っていません)

    何卒よろしくお願いいたします。

    #101795
    furuta
    キーマスター

    mainichi_web 様

    お世話になっております。返答が遅くなり申し訳ございません。
    if (!is_array($body)) { ではなく
    if (!is_array($data)) { としていただけたらと思います。

    同環境を構築したサイトでは問題なくフォームが送信でき、原因はわからず

    とのことですが、開発元(アイベック様)に情報を共有させていただきます。

    #101798
    mainichi_web
    モデレーター

    furuta 様

    お世話になっております。
    記載した修正コード、おかしかったですね。すみません。

    開発元(アイベック様)へのご共有ありがとうございます。
    何卒よろしくお願いいたします。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。