Title: flamingoのカスタムフィールドのCheckboxの値を更新したい
Last modified: 2023年6月23日

---

# flamingoのカスタムフィールドのCheckboxの値を更新したい

 *  解決済 [JunichiK](https://ja.wordpress.org/support/users/junichik/)
 * (@junichik)
 * [3年、 3ヶ月前](https://ja.wordpress.org/support/topic/flamingo%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e3%81%aecheckbox%e3%81%ae%e5%80%a4%e3%82%92%e6%9b%b4%e6%96%b0%e3%81%97%e3%81%9f%e3%81%84/)
 * いつもお世話になっております。
 * 「Contact Form 7」で作成したフォームの送信データを「flamingo」でデータベースに
   保存しています。
   別途上書きボタンを用意して、送信後に update_post_meta で上書き
   出来るようにしており、テキストのinput要素はうまくいっているのですが、chackbox
   が上書き出来ずに困っております。テキストinput要素の上書きは以下のコードでうまく
   いっています。
 *     ```wp-block-code
       //テンプレートファイル
       <?php if(is_page('no-2-wtcm-submit')) {
       $today_data = '';
       if(isset($_POST['pre-today'])) {
         $today_data = $_POST['pre-today'];
       }
       $args_today = array(
           'post_type' => 'flamingo_inbound',
           'posts_per_page' => 1,
           'orderby' => 'date',
           'order' => 'DESC',
           'meta_query' => array(
               'relation' => 'AND',
               array(
                   'key' => '_field_measuring-date',
                   'value' => $today_data,
                   'compare' => '='
               ),
               array(
                   'key' => '_field_your-title',
                   'value' => 'wtcm',
                   'compare' => '='
               )
           )
       );
   
       $flamingo_query_today = new WP_Query( $args_today );
   
       if ( $flamingo_query_today->have_posts() ) {
         $flamingo_query_today->the_post();
           $post_id = get_the_ID(); // 現在の投稿のIDを取得
             $pac_use = get_post_meta($post_id, '_field_pac-use', true);
       }
       wp_reset_postdata(); ?>
       <script type="text/javascript">
         $(document).ready(function () {
           let pac_use = '<?php echo $pac_use; ?>';
           let post_id = '<?php echo $post_id; ?>';
           $('input[name="pac-use"]').val(pac_use);
           // 上書きボタンクリック時の処理
           $("#overWriteBt").on("click", function () {
             // 入力値の取得
             var update_pac_use = $('input[name="pac-use"]').val();
             if (update_pac_use !== "" ) {
               var postId = post_id;
               // 上書きする値
               var newValue_pac_use = update_pac_use;
               // メタ値を更新する
               updatePostMeta(postId, '_field_pac-use', newValue_pac_use);
   
               $('#overWriteMsg').html('<span>データを上書きしました。</span>');
               $('#successMsg').html('<span>'+ today_data + 'のデータを上書きしました。</span>');
               $('#chemicalsForm').addClass('hide');
             } else {
               $('#overWriteMsg').html('<span class="red">入力値が空です。空欄に入力して下さい。</span>');
             }
           });
           // update_post_meta() 関数の代替
           function updatePostMeta(postId, metaKey, newValue) {
             $.ajax({
               type: 'POST',
               url: '<?php echo admin_url('admin-ajax.php'); ?>',
               data: {
                 action: 'update_post_meta_action',
                 post_id: postId,
                 meta_key: metaKey,
                 new_value: newValue,
               },
               success: function (response) {
                 console.log(response); // デバッグ用にレスポンスを表示
               },
               error: function (error) {
                 console.log(error); // エラーメッセージを表示
               }
             });
           }
         });
       </script>
       <?php } ?>
       ```
   
 *     ```wp-block-code
       //functions.php
       // update_post_meta_action の処理
       add_action('wp_ajax_update_post_meta_action', 'update_post_meta_action_callback');
       add_action('wp_ajax_nopriv_update_post_meta_action', 'update_post_meta_action_callback');
       function update_post_meta_action_callback() {
         $post_id = $_POST['post_id'];
         $meta_key = $_POST['meta_key'];
         $new_value = $_POST['new_value'];
         // メタ値を更新する
         update_post_meta($post_id, $meta_key, $new_value);
         // 必要に応じてレスポンスを返す（成功メッセージなど）
         echo 'メタ値が更新されました。';
         // WordPressの処理を終了する
         wp_die();
       }
       ```
   
 * このテンプレートファイルに、checkboxの値を取得するために、
 *     ```wp-block-code
       var update_pac_order = $('#pacOrderCheck input[type="checkbox"]:checked').val();
       ```
   
 * やpropを使用して、テキストinput同様の処理をしても上書きされず、
 *     ```wp-block-code
       $('#pacOrderCheck input[type="checkbox"]:checked').each(function() {
        var update_pac_order = $(this).val();
        });
       ```
   
 * やforEachを使用すると、上書きボタン自体が効かなくなります。
   いろいろ試行錯誤しま
   したが、解決に至りませんので、ご教示願えれば助かります。よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)

 *  モデレーター [Takayuki Miyoshi](https://ja.wordpress.org/support/users/takayukister/)
 * (@takayukister)
 * [3年、 3ヶ月前](https://ja.wordpress.org/support/topic/flamingo%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e3%81%aecheckbox%e3%81%ae%e5%80%a4%e3%82%92%e6%9b%b4%e6%96%b0%e3%81%97%e3%81%9f%e3%81%84/#post-11683635)
 * 問題のサイトはどこで見られますか? URL を教えてください。
 *  トピック投稿者 [JunichiK](https://ja.wordpress.org/support/users/junichik/)
 * (@junichik)
 * [3年、 3ヶ月前](https://ja.wordpress.org/support/topic/flamingo%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e3%81%aecheckbox%e3%81%ae%e5%80%a4%e3%82%92%e6%9b%b4%e6%96%b0%e3%81%97%e3%81%9f%e3%81%84/#post-11683658)
 * >Takayuki Miyoshi 様
 * ありがとうございます。
   早速にご返信くださったのに、まずは謝らなければなりません。
   単なる私の不注意だったようで、申し訳ありません。結論から申し上げると、単純な変数
   の重複でした。チェックボックスの無いテキストinputのみの別のテンプレートファイル
   ではうまくいっていたので、てっきり、チェックボックスの値の取得で躓いているもの
   だと思っておりました。しかし、問題のテンプレートファイルでは、更に WP_Query で
   別のループを回していることを忘れておりました。そして、そのループでも $post_id
   = get_the_ID(); としていたので、$post_id が重複していたようです。$post_id_2 と
   することで正常に動作するようになりました。先は長いので、また分からないことがあれ
   ば質問させていただきます。今後ともよろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)

 トピック「flamingoのカスタムフィールドのCheckboxの値を更新したい」には新たに返信
することはできません。

## タグ

 * [Contact Form 7](https://ja.wordpress.org/support/topic-tag/contact-form-7/)
 * [Flamingo](https://ja.wordpress.org/support/topic-tag/flamingo/)

 * フォーラム: [プラグイン](https://ja.wordpress.org/support/forum/plugins/)
 * 2件の返信
 * 2人の参加者
 * 最後の返信者: [JunichiK](https://ja.wordpress.org/support/users/junichik/)
 * 最後の活動: [3年、 3ヶ月前](https://ja.wordpress.org/support/topic/flamingo%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e3%81%aecheckbox%e3%81%ae%e5%80%a4%e3%82%92%e6%9b%b4%e6%96%b0%e3%81%97%e3%81%9f%e3%81%84/#post-11683658)
 * 状態: 解決済

## トピック

### 人気のトピック

### 返信がないトピック

### サポート関連ではないトピック

### 解決済みのトピック

### 未解決のトピック

### すべてのトピック
