MW WP Formの自動返信メールの条件分岐について
-
過去の投稿を参考にさせて頂いて、
$data[‘hoge’]や$_GET[‘hoge’]や$data->get(‘hoge’)などを試してみたりのob_start("htmlspecialchars"); print_r($GLOBALS); ob_end_flush();
で変数の中身を見てみたのですがどうしていいか分からず困っています・・。
すいませんがご教示頂ければ幸いです。
マニュアルページにありますように、
$Data->get( 'hoge' )
でデータが取れますので試してみてください。
http://plugins.2inc.org/mw-wp-form/filter-hook/mwform_auto_mail_raw/Takashi Kitajima様
ご教示ありがとうございます。
マニュアルにありますように、function my_mail( $Mail_raw, $values, $data) {
// $Data->get( ‘hoge’ ) で送信されたデータが取得できます。
$Mail_raw->from = ‘spsp@hogehoge.com’; // 送信元を変更
$Mail_raw->sender = ‘会社名’; // 送信者を変更
$Mail_raw->subject = ‘件名’; // 件名を変更
$Mail_raw->body = $data->get(‘hoge’);
return $Mail_raw;
}
add_filter( ‘mwform_auto_mail_raw_mw-wp-form-1020’, ‘my_mail’, 10, 2 );としますと、
● Warning: Missing argument 3 for my_mail()
● Fatal error: Call to a member function get()
の2つのエラーが出てしまいます。
色々調べまして、
global $wpdb;
と、グローバル宣言を行ったのですがそれでもうまくいかない状態です。どのようにすればよろしいのでしょうか?
私も同様の件で困っています。
mwform_auto_mail_mw-wp-form-xxxなどのメール系の
フィルターフックから $Data->get( ‘hoge’ )が取得できない感じです・・・。function my_mail( $Mail_raw, $values, $data) { $Mail_raw->to = $Data->get( 'new_email' ); return $Mail_raw; } add_filter( 'mwform_auto_mail_raw_mw-wp-form-xxx', 'my_mail', 10, 3 );
上記のようにしてもメールの宛先が上書きされず、メールが届かないです。
どのように解決したらよいでしょうか?
spacebrosさん、add_filterを呼び出すパラメーターの最後を 2 ではなく 3 にするとどうでしょう。
amaimonさん、add_filterの最初のパラメーターの末尾はわざと伏字にしてあるのでしょうか? Kitajimaさんが示されたリンク先のマニュアルによると
フック名「mwform_auto_mail_raw_mw-wp-form-xxx」の xxx の部分はフックを適用したいフォームの作成画面に表示されているフォーム識別子の key になります([mwform_formkey key=”3811″] の場合は 3811)。
gblsm様
ご教示ありがとうございます。
add_filter( ‘mwform_auto_mail_raw_mw-wp-form-1020’, ‘my_mail’, 10, 3 );
としてみましたら、Warning: Missing argument 3 for my_mail()
が消えました。
しかし、Fatal error: Call to a member function get() on a non-object
がまだ表示されています。
先ほどの投稿で、
グローバル宣言をしたとしましたが、勘違いでした。すいませんでした。gblsm様
add_filterの最初のパラメーターの末尾はわざとです。
実際にはフォーム識別子のkeyになっております。
私がやりたいのは、フォームに用意された二つのメールアドレス欄
email_A
email_B
のどちらかに入力されたメールアドレスに、
自動返信用を送りたいと思っております。mwform_auto_mail_raw_mw-wp-form-xxx または
mwform_auto_mail_mw-wp-form-xxx
のどちらを試しても、
$Mail_raw->to = $Data->get( ‘email_B’ );
が機能しません・・・。spacebros様と同じ
Fatal error: Call to a member function get() on a non-object
のエラーが出ます。spacebrosさん、私も試してみましたが、本文が置き換えられたメールが自動送信されました。何が違うんでしょうね?
下記のコードを、テーマの functions.php に書きました。
function my_mail( $Mail_raw, $values, $data ) { $Mail_raw->body = $data->get( 'hoge' ); return $Mail_raw; } add_filter( 'mwform_auto_mail_raw_mw-wp-form-2611', 'my_mail', 10, 3 );
amaimonさんの方法も試してみたところ、宛先を変更して送ることができました。
function my_mail( $Mail_raw, $values, $data ) { // $Mail_raw->body = $data->get( 'hoge' ); if ( $data->get( 'chkbox1' ) == 'mail2' ) { $mail2 = $data->get( 'mail2' ); if ( ! empty( $mail2 ) ) $Mail_raw->to = $mail2; } return $Mail_raw; } add_filter( 'mwform_auto_mail_raw_mw-wp-form-2611', 'my_mail', 10, 3 );
何が違うんでしょうね? WordPress 4.2.2 に MW WP Form 2.4.12 を入れて試しました。
gblsm様
昨夜は遅くまでありがとうございました。
理由がよくわからないのですが、今朝になってgblsm様が書いてくださったコードを私のfunctions.phpに記述したところ、
Fatal error: Call to a member function get() on a non-object
は出ませんでした。
その後、昨日私がここに貼りましたコードをそのまま(ここに貼る際に間違って入った全角スペースを抜き、ご指摘頂きました、add_filterを呼び出すパラメーターの最後を3に変えて)functions.phpに貼りましても、エラーは出ず、メールの内容もうまく変更できていました。とても助かりました、ありがとうございました。
- トピック「MW WP Formの自動返信メールの条件分岐について」には新たに返信することはできません。