カスタム投稿タイプでラジオボタンの項目とメールアドレスを紐づけする方法はこちら。
カスタムフィールドの値を取得し複数メールを送信する方法
function.phpに以下を追加します。
/**
* 自動返信メールフィルター
*/
function my_auto_mail( $Mail, $values, $Data ) {
$data = $Data->gets();
if (isset($data['choices'])) {
$fields = get_fields($data['choices']);
// 送信メール 1
if (isset($fields['choice_mail_1']) && !empty($fields['choice_mail_1'])) {
$Mail->to = $fields['choice_mail_1'];
$Mail->send();
}
// 送信メール 2
if (isset($fields['choice_mail_2']) && !empty($fields['choice_mail_2'])) {
$Mail->to = $fields['choice_mail_2'];
$Mail->send();
}
}
$Mail->to = '';
add_filter( 'mwform_is_mail_sended', function(){
return true;
});
return $Mail;
}
add_filter( 'mwform_auto_mail_mw-wp-form-X', 'my_auto_mail', 10, 3 );
ラジオボタンのvalueを投稿IDにしているため、$data[‘choices’]でカスタム投稿タイプのpost_idが取得できます。
宛先を空にしてMW_WP_Form_Mailオブジェクトを返す
注意点は最後に宛先を空($Mail->to = ”;)にしてMailオブジェクトを返すことです。
そうしないと、もう一通メールが送信されてしまいます。宛先を空にしておけば、メールは送信されませんがエラー扱いとなるためmwform_is_mail_sendedフィルターでtrueを返すようにしましょう。
hiddenタグに設定したメールアドレスに複数メールを送る方法
管理者宛てのメールアドレスをhiddenタグとして追加します。
[mwform_hidden name="form_mail_1" value="{form_mail_1}"]
[mwform_hidden name="form_mail_2" value="{form_mail_2}"]
function.phpに以下を追加します。
/**
* 管理者宛てメールフィルター
*/
function admin_mail( $Mail, $values, $Data ) {
$data = $Data->gets();
// 管理者宛てメール1
if (isset($data['form_mail_1']) && !empty($data['form_mail_1'])) {
$Mail->to = $data['form_mail_1'];
$Mail->send();
}
// 管理者宛てメール2
if (isset($data['form_mail_2']) && !empty($data['form_mail_2'])) {
$Mail->to = $data['form_mail_2'];
$Mail->send();
}
$Mail->to = '';
add_filter( 'mwform_is_mail_sended', function(){
return true;
});
return $Mail;
}
add_filter( 'mwform_admin_mail_mw-wp-form-X', 'admin_mail', 10, 3 );
こちらも最後は宛先を空にして、mwform_is_mail_sendedフィルターでtrueを返しておきましょう。
コメント