WordPress - 2023-05-23

MW WP FormでDBから登録済みのformkeyを全て取得して共通のエラーメッセージを設定する方法

とある案件でイベントごとにフォームを複製して運用したいという要望があり、共通のエラーメッセージを出したいけどformkeyが毎回変わってしまうのでDBから登録済みのformkeyを取ってくるという方法で対応しました。

function.php

function form_error_message( $error, $key, $rule ) {
  // ラジオボタン or チェックボックス
  $required_items = [
    'お問い合わせ種別'
  ];
  foreach($required_items as $value){
    if ( $key === $value && $rule === 'required' ) {
      return $value.'を選択してください';
    }
  }
  $noempty_items = [
    'お名前',
    'フリガナ',
    '郵便番号',
    '市区町村',
    '丁目番地',
    '電話番号',
    'メールアドレス',
    'メールアドレス(確認用)',
    'お問い合わせ内容'
  ];
  foreach($noempty_items as $value){
    if ( $key === $value && $rule === 'noempty' ) {
      return $value.'は必須項目です';
    }
  }
  $katakana_items = [
    'フリガナ',
  ];
  foreach($katakana_items as $value){
    if ( $key === $value && $rule === 'katakana' ) {
      return $value.'はカタカナで入力してください';
    }
  }
  if ( $key === 'メールアドレス' && $rule === 'mail' ) {
    return 'メールアドレスの形式ではありません。';
  }
  if ( $key === 'メールアドレス(確認用)' && $rule === 'eq' ) {
    return 'メールアドレスが一致しません';
  }
  return $error;
}

function get_all_form_key() {
  global $wpdb;
  $rows = $wpdb->get_results("
    SELECT *
    FROM $wpdb->postmeta
    WHERE `meta_key` = 'mw-wp-form'
  ");
  foreach ($rows as $row) {
    add_filter('mwform_error_message_mw-wp-form-'.$row->post_id, 'form_error_message', 10, 3 );
  }
}

get_all_form_key();
Related Posts

Related Posts

MW WP Formでスラッグからformkeyを取得する方法

2022-09-20

MW WP Formで複数のエラーメッセージを1つにまとめる方法

2022-06-22

MW WP Formでタグが自動挿入されるのを無効にする方法

2022-08-10

WordPressでCSSやJSファイルのキャッシュ対策

2022-06-24