新潟のウェブ制作会社 株式会社キタックCGソリューションセンター

制作室の叫び

【MW WP Form】選択内容によって管理者メールの送信先や確認・完了ページを変更する

2021年06月09日(水)

PV 3,127

選択内容による管理者メール送信先変更は、よくある要望だと思います。
確認・完了ページの変更のやり方は今回調べてみました。もっといい感じのやり方あったら是非教えてください。
どちらもfunction.phpに記述すれば動くはずです。多分。

テスト環境

WordPress 5.7.2
MW WP Form 4.4.0

管理者メールの送信先を変更

//お問い合わせフォーム 選択肢で管理者メールの送信先変える
function my_mail( $Mail, $values, $Data ) {
  if($Data->get('{name}') === '{value}'){
    $Mail->to = '{mail}';
  }
  return $Mail;
}
add_filter('mwform_admin_mail_mw-wp-form-xx', 'my_mail', 10, 3);

{name}の値が{value}だった時に管理者メールの送信先が{mail}になります。

例えば、下図のようなフォームを作ったとして、

if($Data->get('menu') === 'にく'){
  $Mail->to = 'oniku@example.com';
}

のようにすれば、「にく」を選択している場合に「oniku@example.com」に管理者メールを送ることができます。

フォームの例

確認・完了ページのURL変える

//お問い合わせフォーム 選択肢で確認・完了ページのURL変える
function my_mwform_redirect_url($url, $Data) {
  if($Data->get('{name}') === '{value}'){
    switch($Data->get_view_flg()){
      case 'confirm':
        $url = '{url_confirm}';
        break;

      case 'complete':
        $url = '{url_complete}';
        break;
    
      default:
        break;
    }
  }
  return $url;
}
add_action( 'mwform_redirect_url_mw-wp-form-xx', 'my_mwform_redirect_url', 10, 2 );

{name}の値が{value}だった時に、確認画面URLが{url_confirm}に、完了画面URLが{url_complete}になります。
メモ:$Data->get_view_flg()でフォームの現在の表示画面を取得(input, confirm, complete

先ほどのフォームの例でいうと

if($Data->get('menu') === 'さかな'){
  switch($Data->get_view_flg()){
    case 'confirm':
      $url = get_home_url().'/confirm_osakana/';
      break;

    case 'complete':
      $url = get_home_url().'/complete_osakana/';
      break;
  
    default:
      break;
  }
}

みたいな感じにすれば、「さかな」を選んだ場合の確認・完了画面URLを変更できます。

それぞれのフィルターフックのマニュアルページへのリンクです。
https://plugins.2inc.org/mw-wp-form/filter-hook/mwform_admin_mail/
https://plugins.2inc.org/mw-wp-form/filter-hook/mwform_redirect_url_mw-wp-form-xxx/

Share プリーズ
書き手は私

よろしければどうかご感想を!

※コメントは、サイト管理者による承認後、ページに表示されます。

この記事は、感想を受け付けていません

キタックCGSCコアメンバー

  • 樋口大輔
  • 小林将太
  • ちゃんまき
  • 高橋どらみ
  • 高橋皓一
  • 笠井
  • 石本
  • 佐藤サバ美
  • 佐久間尭