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

NO IMAGE

はじめに

企業用に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 );
?>

 

最後に

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

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