サポート » プラグイン » MW WP Formの自動返信メールでチェックボックスで複数選択された場合の値を改行したい

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

    先ほど返信がコード部分が長かったからなのか承認待ちになってしまいましたので、
    コード部分をPASTEBINに貼り付けた上で再返信します

    送信されるメールの本文内だけで有効になれば良いのでしたら、
    自動返信メールなら mwform_auto_mail_mw-wp-form-xxx フィルター、
    管理者宛メールなら mwform_admin_mail_mw-wp-form-xxx フィルターで実現可能だと思います

    文章で説明しようと思うと難しかったので、コードを書いてみました、ご参考まで
    ※ メール本文内でセパレーターが改行される事までは確認しましたが、(その他の部分への影響などは確認していないので)実際に使用なさる場合は、ご自身で書いたコードと同様に動作確認をお願いします

    https://pastebin.com/EXbyaTGk

    @colorfullifeinfoさん

    詳細なご回答ありがとうございました!
    いただいたコードで実現できました。

    単純にセパレーターを文字列置換するだけではダメだったのですね。

    本当にありがとうございました。

    解決済みなので蛇足になりますが、齟齬があるといけませんので一応補足させてください

    単純にセパレーターを文字列置換するだけではダメだったのですね。

    セパレーターに指定した文字を改行に置き換える、という目的のみに於いては、メール本文の文字列に対して「セパレーターを文字列置換するだけ」で良いと思います

    検証はしていませんが、フィルターした関数の中でメール本文内のセパレーター文字を置換した上で $Mail->body に戻してあげれば反映されるはずです

    ただ、選択項目ではないフィールド(textやtextarea等)の値やその他の本文内にセパレーターと同じ文字列が含まれていた場合を考慮して、提示したようなコードにしました

    • この返信は6 ヶ月、 2 週間前に  Colorful-life. さんが編集しました。

    単純な置換だけでは \n が文字列としてそのままメール内に\nと出力されてしまい、
    うまくいかなかったのです。。

    (最初の質問では¥nも試していたので、
    その¥が勝手に全角にもなってしまうことを書いていましたが、
    \nも試していた上でうまくいかなかったので)

    うーん…、やっている事は、
    ・メール本文内の文字列の一部(選択項目の送信された値)を取り出し
    ・その中のセパレーターを改行に置き換え
    ・メール本文に戻す
    だけなので、基本的には同じだと思うのですが・・・。

    考えられるのは、改行文字を '\n' (シングルクォーテーションで括る)としていた、とかですかね?

    どうやらシングルクォーテーションで囲っていたようです。。
    その辺りがよくわかっておりませんでした。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「MW WP Formの自動返信メールでチェックボックスで複数選択された場合の値を改行したい」には新たに返信することはできません。