情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。
プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
2023.05.10公開
MW Form とACFで連携してデータを更新する関数等について、バラバラと書いてきたので、少しまとめたいと思います。今後も追記の予定。
MW Form での送信時にacf の値を更新する基本形
function my_mwform_after_send( $Data ) { if ( $Data->get_form_key() === 'mw-wp-form-xx' ) { $id = $Data->get( 'id' ); $seat = get_field('seats', $id); $select = (int) $_POST['select']; $addition = $seat + $select; update_field('seats', $addition, $id); $available = get_field('available', $id); $minus = $available - $count; update_field('available', $minus, $id); } } add_action( 'mwform_after_send_mw-wp-form-xx', 'my_mwform_after_send' );
更新する投稿のIDを取得 $id = $Data->get( ‘id’ ); 、投稿からフォームページに遷移する場合は $id = $_GET[‘post_id’];
フィールドのアップデート update_field(‘フィールド名’, ‘値’, $id); *上の例は予約数をプラス・残数をマイナス
サブフィールドのアップデート update_sub_field( array(‘リピーターのキー’, 1, ‘サブフィールドのキー’), ‘値’, $post_id); *リピーター1行目のサブフィールドを更新
入れ子になったサブフィールドのアップデート update_sub_field( array(‘外側のリピーターのキー’, 3, ‘内側のリピーターのキー’, 5, ‘更新したいサブフィールドのキー’), ‘値’, $post_id); *外側のリピーター3行目・内側のリピーター5行目のサブフィールドを更新
イベントカレンダー対策で予約数・残数のアップデート時にタイトルもアップデートしたい場合の例
$id = $Data->get( 'id' ); $seat = get_field('seats', $id); $select = (int) $_POST['select']; $addition = $seat + $select; update_field('seats', $addition, $id); $available = get_field('available', $id); $minus = $available - $select; update_field('available', $minus, $id); $etitle = get_field('eventtitle', $id); $available2 = get_field('available', $id); $post = get_post($id); $post = array( 'post_title' => $etitle.' (残席:'.$available2.')', ); wp_update_post( $post );
サブフィールドのアップデートについての追記
表示側でget_row_index()で行数を取得・メールにつけて送信する。
*カスタムフィールドの値はMW Form で直接取得できるが、それ以外はパラメータで送って、以下のようにしてフィールドに入れる。
外側のリピーターのループで $rows = get_rows_index(); 内側のリピーターのループで $subrows = get_row_index();
function my_mwform_value( $value, $name ) { if ( $name === 'date' ) { return $_GET['date']; } if ( $name === 'rows' ) { return $_GET['rows']; } if ( $name === 'subrows' ) { return $_GET['subrows']; } return $value; } add_filter( 'mwform_value_mw-wp-form-xxx', 'my_mwform_value', 10, 2 );
*実際は$_GET[‘date’]; に if をつけるべき
その他のAdvanced Custom Fields に関する記事一覧
- 子テーマでACFを使う(2023.09.16作成)
- ACF リピーターをランダムに(2023.09.11作成)
- ブロックエディターでACFを使う(2023.09.03作成)
- ACF Blocks(2023.08.24作成)
- acf reset_rows(2023.08.10作成)
- ACF 値などの登録まとめ(2023.07.30作成)
- ACF チェックボックスの値での条件分岐(2023.07.17作成)
- ACF 柔軟コンテンツフィールド、固定ページ用(2023.07.05作成)
- ACF 柔軟コンテンツフィールド、ブログ・コラム用(2023.07.02作成)
- ACF 柔軟コンテンツフィールドで1サイト作ってみる(2023.06.25作成)
- 編集ページにマニュアルや注意書き(2023.06.21作成)
- 投稿の本文を表示するショートコード(2023.06.21作成)
- Advanced Custom Fields Pro 柔軟コンテンツ(2023.06.18作成)
- ページビルダー(2023.06.16作成)
- イベントカレンダーサンプル(ACFとMW Form)(2023.05.15作成)
- 予約カレンダー・予約管理サンプル(ACFとMW Form)(2023.05.11作成)
- acf とMW Form 連携のまとめ(予約関連)(2023.05.10作成)
- acf 1月分の受付時間・定休日設定など(2023.05.08作成)
- acf 入れ子になったリピーターのデフォルト値(2023.05.07作成)
- acf リピーターで1月分のサブフィールドを作成(2023.05.06作成)
- 営業日カレンダーを作る(2023.01.06作成)
- ACF get_row_index()(2022.11.25作成)
- 予約カレンダー試作2(2022.11.17作成)
- 予約カレンダー試作(2022.11.16作成)
- ACF グループフィールドのアップデート(2022.11.15作成)
- ACFとMW Form で予約管理 その4(2022.08.31作成)
- acf 投稿オブジェクトにフィルター(2022.05.10作成)
- ACFとMW Form で予約管理 その3(2022.02.08作成)
- ACFとMW Form で予約管理 その2(2021.10.07作成)
- ACF ウィジェット(2021.09.12作成)
- pタグを置換(2021.07.11作成)
- Magic からACFへ 複製フィールド編(2021.06.06作成)
- Magic からACFへ(2021.06.06作成)
- WP CSV Exporter ・ACFリピーターでエラー(2021.05.26作成)
- ACFとMW Form で予約管理(2021.05.23作成)
- MW Form 予約数を保存(2021.05.20作成)
- ACFで1月分のスケジュール(2021.04.11作成)
- acf ラジオボタンのvalueとlabel(2021.03.09作成)
- acf の設定をフォームに利用(2021.02.12作成)
- ACF 便利機能(2021.01.13作成)
- 投稿IDをスラッグに(2020.12.21作成)
- ACF リピーター 一部表示(2020.10.20作成)
- ACF クイックエディット(2020.10.04作成)
- acf リピーターのソート禁止(2020.07.06作成)
- acf リピーター 計算 ajax(2020.04.25作成)
- acf リピーターの値をMW Formで(2020.04.15作成)
- acf リピーターのサブフィールドのデフォルト値を設定(2020.02.27作成)
- acf タイトル・スラッグ・アイキャッチ登録(2020.01.28作成)
- acf 投稿オブジェクトの対象を制限(2019.12.27作成)
- acf 内側のリピーターの数値を合計(2019.12.24作成)
- acf リピーターのcsvでのインポート(2019.12.03作成)
- acf デートピッカーのフォーマット(2019.11.21作成)
- 画像から投稿を取得(2019.05.08作成)
- acf リピーターを逆に表示(2019.04.19作成)
- キーワードとカスタムフィールドの絞り込み検索(2018.10.01作成)
- カスタムフィールドの検索(2017.10.16作成)
- acf 関連をランダム表示に(2017.08.14作成)
- acf繰り返しフィールドの利用例(2017.04.15作成)
- 画像サイズで条件分岐(2017.02.28作成)
- acf 繰り返しフィールドの数(2017.02.06作成)
- acf relationship(2017.01.11作成)
- カテゴリーにACF(2016.07.29作成)
- acf フィールド値をニックネームに(2016.04.16作成)
- acf デートピッカーの曜日を日本語に(2016.04.04作成)
- acf フィールドを横並びに(2015.10.20作成)
- 会員登録関連メモ(2015.04.08作成)
- 繰り返しフィールドの○つ目の値(2014.12.02作成)
- 出勤・スケジュール管理の覚書(2014.06.15作成)
- content のfilter をカスタムフィールドにも(2014.02.23作成)
- CSVでインポートの手順(2014.01.28作成)
- ターム(カテゴリー)の階層による分岐(2013.10.12作成)
- The Events Calendar について少し詳しく(2013.08.21作成)
- 管理画面投稿一覧に項目を追加(2013.08.06作成)
- Advanced Custom Fields 繰り返しフィールドの1つめを大きく表示(2013.05.28作成)
- カスタムフィールドの発売日でソートして年度ごとに括る(2013.05.27作成)
- Advanced Custom Fields 繰り返しフィールドの表示順を逆に(2013.05.10作成)
- Advanced Custom Fields 繰り返しフィールドの値を1つずつ(2013.05.10作成)
- Advanced Custom Fields でカテゴリーのアイコンや背景色を設定(2013.05.08作成)
- Advanced Custom Fields で自由なレイアウトを実現(2013.02.13作成)
- Advanced Custom Fields でプロフィールを拡張(2013.02.06作成)
情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。
プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
2023.05.10公開