サポート » プラグイン » コンタクトフォーム7の入力値をACFの値に変換させる方法

  • お世話になります。
    コンタクトフォーム7で入力した値をACFのフィールドの値として受け取りたいです。
    ACFフィールドの値をコンタクトフォーム7の値に紐づける記事はたくさんあるのですが、実装したいのはこの逆で、全然情報がなく、こちらで質問させて頂きます。

    元々やりたいことは、フロント(ログインなし)から入力した値を、バック画面(管理者)で受け取り、ACFフィールドを設置しているカスタム投稿ページに自動反映させることです。
    この際、ACFの使用は確定していましたが、フロントでどのように実装するかは決まっていませんでした。
    一番シンプルと思ったのが、コンタクトフォーム7だったので、この方法で挑戦していますが、もしもっとシンプルな方法があればご教示頂ければ幸いです。

    コンタクトフォーム7で以下のように入力し、ACFで同じフィールドにすることで出来るかなと思ったのですが、出来ませんでした。

    コンタクトフォーム7
    [text* title]
    [checkbox* category “A” “B” “C”]
    [textarea* memo]

    ACF
    フィールド名:title
    フィールド名:category
    フィールド名:memo

    おそらくコンタクトフォーム7からACFに紐づける何かの作業が抜けているのかなと思っていますが、それが分かりません・・・
    ご教示頂ければとても助かります。
    宜しくお願いいたします。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • @mikujinさん

    はじめまして。
    やりたい事は、Contact Form 7で送信された後に、その入力内容を元にAdvanced Custom Fieldsの値を更新したいという事でしょうか。

    それであれば、ACFのフィールドを更新する処理が抜けているように思います。

    なので、wpcf7_mail_sentwpcf7_submit フックを使って、update_fieldでACFの値を更新すればよいと思います。

    未検証ですが、以下コード例です。

    
    function wpcf7_insert_acf( $contact_form ) {
      $submission = WPCF7_Submission::get_instance();
      if ( $submission ) {
        $formdata = $submission->get_posted_data();
        update_field( 'title', $formdata['title'], {投稿ID} );
        update_field( 'category', $formdata['category'], {投稿ID} );
        update_field( 'memo', $formdata['memo'], {投稿ID} );
      }
    }
    add_action('wpcf7_mail_sent', 'wpcf7_insert_acf', 10, 1);
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「コンタクトフォーム7の入力値をACFの値に変換させる方法」には新たに返信することはできません。