カスタマイズ

「MW WP Form」のセレクトボックスの選択値によって送信先を変更する方法

投稿日:2017年3月28日 更新日:

はじめに

企業用にWEBサイトを作成していたりする場合、
問い合わせフォームの問い合わせ内容によって送信されるメールアドレスを変更したかったりします。

というか、今そういうことが実際に起っています。
例えば問い合わせ内容が「1」なら総務、「2」なら経理に。とか。

まぁ、通常のWEBサイトから一企業の総務やら経理に直接メール送れることなんて無いですが。。

カスタマイズ方法

MW WP Formで公開されているフィルターフックを使用して送信先を書き換える方法を取ります。

mwform_admin_mail_mw-wp-form-xxx

下記のソースを「functions.php」に追記します。

<?php
// クラスのインスタンスのプロパティを取得
function get_instance_property($obj, $propName){
    if( !is_object($obj) || !is_string($propName) ){
        throw new MyArgumentError();
    }
    $arr = (array)$obj;
    $keys = array(
         $propName
        ,"\0*\0".$propName
        ,"\0".get_class($obj)."\0".$propName
    );
    foreach( $keys as $key ){
        if( array_key_exists($key, $arr) ){
            return $arr[$key];
        }
    }
    return null;
}

// 条件分岐による自動返信メール操作(MW WP Form)
function my_change_admin_mailto( $Mail, $values, $Data  ) {
	$val = get_instance_property($Data, 'data');
	// 'toiawase' はセレクトボックスタグのnameの値
	$selected = $val['toiawase'];

	// 選択された内容により送信先を変更する
	if ($selected = '問い合わせ内容1')
	{
		$Mail->to = 'hogehoge@hoge.hoge'; 
	} else {
		$Mail->to = 'monimoni@moni.moni';
	}
	return $Mail;
}
add_filter( 'mwform_admin_mail_mw-wp-form-***', 'my_change_admin_mailto', 10, 3 );
?>

 

最後に

条件の変更・追加等ある度に修正しないといけないので、
プラグイン化しておくと楽かなぁと思ったり。

というか、保守を考えると自分のサイトならいいけれど、企業サイトだと
プラグイン化は必須かもしれない。

-カスタマイズ
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

開発サーバから本番サーバへのWordPressサーバ移行手順

目次1 前提2 データバックアップ3 本番サイト用ファイルとデータの用意4 Search-Replace-DB-masterの追加5 開発サーバDBのエクスポート5.1 手順6 本番サイト用ファイル一 …

no image

会社のHPをWordPressで作り直したときにやったこと

目次1 固定ページのパーマリンクに拡張子「.html」を付ける2 メインテーマのアップデート対策として子テーマを作成する3 まとめ HTMLで構築されている化石化している会社のホームページをWordP …