• 解決済 momonuts

    (@momonuts)


    MW WP Formを使い画像を添付できる形のフォームを作りたいと思っています。
    フォーム自体は完成したのですが、投稿者に送られる自動返信メールに画像のURLが掲載されてしまうのが
    気になっております。
    この部分を画像URLではなく、画像名だけにする様な方法はあるのでしょうか。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • こんにちは

    mwform_auto_mail_raw_mw-wp-form-{$key}({$key} はフォーム識別子のキー)フィルターフックで、自動返信メールの内容をカスタマイズすることができます。
    詳細は下記ページをご覧ください。
    https://plugins.2inc.org/mw-wp-form/filter-hook/mwform_auto_mail_raw/

    {キー} が展開された後の内容をカスタマイズする mwform_auto_mail_mw-wp-form-{$key} フィルタフックもあります。
    https://plugins.2inc.org/mw-wp-form/filter-hook/mwform_auto_mail/

    メール本文のファイルのキーをファイル名に置換する場合の例:

    function my_mail( $mail_raw, $values, $data ) {
    	foreach ( $values['mwf_files'] as $key => $file ) {
    		$mail_raw->body = str_replace( "{{$key}}", $file['name'], $mail_raw->body );
    	}
    	return $mail_raw;
    }
    add_filter( 'mwform_auto_mail_raw_mw-wp-form-123', 'my_mail', 10, 3 );
    • この返信は6年、 5ヶ月前にishitakaが編集しました。
    トピック投稿者 momonuts

    (@momonuts)

    ishikawa様
    詳しいコードを教えてくださり、ありがとうございます。
    こちらを参考にし、functionsに記述してみたのですが、画像URLのままでした…
    画像を6枚送れる様になっているので

    function my_mail( $mail_raw, $values, $data ) {
    	foreach ( $values['mwf_files'] as $key => $file ) {
    		$mail_raw->body = str_replace( "{{$yourphoto01}}", $file['name'], $mail_raw->body );
    		$mail_raw->body = str_replace( "{{$yourphoto02}}", $file['name'], $mail_raw->body );
    		$mail_raw->body = str_replace( "{{$yourphoto03}}", $file['name'], $mail_raw->body );
    		$mail_raw->body = str_replace( "{{$yourphoto04}}", $file['name'], $mail_raw->body );
    		$mail_raw->body = str_replace( "{{$yourphoto05}}", $file['name'], $mail_raw->body );
    		$mail_raw->body = str_replace( "{{$yourphoto06}}", $file['name'], $mail_raw->body );
    	}
    	return $mail_raw;
    }
    add_filter( 'mwform_auto_mail_raw_mw-wp-form-150', 'my_mail', 10, 3 );

    という形にしてみたのですが、記述方法が間違えておりますでしょうか。
    もしかしたら({$key} はフォーム識別子のキー)の部分が間違えているのではないかと思っているのですが…

    ご教授いただければ幸いですm(_ _)m

    自動返信メール設定の本文に画像の {キー} を記述していますか?
    サンプルのコードは、{キー} をファイル名に置換するものです。
    {キー} の置換ではなく本文に列記する場合は、下記のようなコードではどうでしょうか。

    function my_mail( $mail_raw, $values, $data ) {
    	foreach ( $values['mwf_files'] as $key => $file ) {
    		//$mail_raw->body = str_replace( "{{$key}}", $file['name'], $mail_raw->body );
    		$mail_raw->body .= $file['name'] . "\n";
    	}
    	return $mail_raw;
    }
    add_filter( 'mwform_auto_mail_raw_mw-wp-form-150', 'my_mail', 10, 3 );
    トピック投稿者 momonuts

    (@momonuts)

    ishikata様

    ご返信ありがとうございます。
    自動返信メールには

    
    お写真:
    {yourphoto01}
    {yourphoto02}
    {yourphoto03}
    {yourphoto04}
    {yourphoto05}
    {yourphoto06}
    

    と記載しております。

    今教えてくださったコードですと、

    
    str_replace( "{{$key}}", 
    

    この部分を

    
    str_replace( "{{$yourphoto01}}", 
    

    とするイメージとなりますでしょうか。

    最初のコードと同じことなんですが・・・どうかしら?

    function my_mail( $mail_raw, $values, $data ) {
    	$mail_raw->body = str_replace( '{yourphoto01}', $values['mwf_files']['yourphoto01']['name'], $mail_raw->body );
    	$mail_raw->body = str_replace( '{yourphoto02}', $values['mwf_files']['yourphoto02']['name'], $mail_raw->body );
    	
    	:
    	
    	return $mail_raw;
    }
    add_filter( 'mwform_auto_mail_raw_mw-wp-form-150', 'my_mail', 10, 3 );
    トピック投稿者 momonuts

    (@momonuts)

    ishitaka様

    ありがとうございます。
    いただいたコードを元に

    function my_mail( $mail_raw, $values, $data ) {
    	$mail_raw->body = str_replace( '{yourphoto01}', $values['mwf_files']['yourphoto01']['name'], $mail_raw->body );
    	$mail_raw->body = str_replace( '{yourphoto02}', $values['mwf_files']['yourphoto02']['name'], $mail_raw->body );
    	$mail_raw->body = str_replace( '{yourphoto03}', $values['mwf_files']['yourphoto03']['name'], $mail_raw->body );
    	$mail_raw->body = str_replace( '{yourphoto04}', $values['mwf_files']['yourphoto04']['name'], $mail_raw->body );	
    	$mail_raw->body = str_replace( '{yourphoto05}', $values['mwf_files']['yourphoto05']['name'], $mail_raw->body );
    	$mail_raw->body = str_replace( '{yourphoto06}', $values['mwf_files']['yourphoto06']['name'], $mail_raw->body );
    	return $mail_raw;
    }
    add_filter( 'mwform_auto_mail_raw_mw-wp-form-150', 'my_mail', 10, 3 );

    としてみたところ、こちらに来る自動返信メールには画像URL記載、送った人側に届く自動返信メールの該当部分は空欄になる形になりました。
    空欄でも良いかなとも思ったのですが、画像ファイル名を表示させる事が出来ればベストだなと思っております。

    何度も申し訳ございませんが、ご教授いただけます様お願い申し上げますm(_ _)m

    画像ファイル名を表示させる事が出来ればベストだなと思っております。

    最初のコードからそのようになるような処理なんですけどね・・・ちょっと分かりません。
    では、下記のコードではどうでしょうか?

    function my_mail( $mail_raw, $values, $data ) {
    	$images = array( 'yourphoto01', 'yourphoto02', 'yourphoto03', 'yourphoto04', 'yourphoto05', 'yourphoto06' );
    	foreach ( $images as $image ) {
    		$image_url = $data->get( $image );
    		if ( $image_url ) {
    			$parse_url = parse_url( $image_url );
    			$path = explode( '/', $parse_url['path']);
    			$file_name = end( $path );
    			$mail_raw->body = str_replace( "{{$image}}", $file_name, $mail_raw->body );
    		}
    	}
    	return $mail_raw;
    }
    add_filter( 'mwform_auto_mail_raw_mw-wp-form-150', 'my_mail', 10, 3 );
    トピック投稿者 momonuts

    (@momonuts)

    ishitaka様

    ありがとうございます!!
    最後に教えていただいたコードを記述したところ、無事画像URLのみ送られる様になりました!!

    本当に感謝です!
    ありがとうございました!

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「MW WP Formの添付画像について」には新たに返信することはできません。