サポート » プラグイン » MW WP Formで{send_datetime}を入れると他の値が削除される

  • 解決済 devsasa

    (@devsasa)


    https://ja.forums.wordpress.org/topic/153232?replies=5

    上記で解決済みにしたそばからすいません。
    内容が変わると思いますので新規に立てます。

    {send_datetime}で送信日時の取得は出来ました。
    しかし、{send_datetime}を入れると、{}で指定したものが全て表示されなくなります。

    例えば、

    ————————–
    {send_datetime}
    {名前}
    {参照サイト}
    ————————–

    というのを本文に書きます。
    するとメールで送られてくるのは

    ————————–
    2015/09/05
    ————————–

    だけです。
    その後ろの値は削除されています。
    もちろんフォームは値を入れています。
    {send_datetime}を外すと正しくメールに転記されてきます。

    ちなみに、

    ————————–
    ▽日時
    {send_datetime}

    ▽名前
    {名前}

    ▽参照サイト
    {参照サイト}
    ————————–

    とすると、こうなって送信されてきます。

    ————————–
    ▽日時
    2015/09/05

    ▽名前

    ▽参照サイト
    ————————–

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック投稿者 devsasa

    (@devsasa)

    function.phpに貼ったコードはこれです。

    /**
     * {send_datetime} としたときに送信日時に変換して送信する
     *
     * @param string $value 送信された値
     * @param string $key メールタグ
     * @param int $insert_contact_data_id データベースに保存した場合、そのときの Post ID
     */
    function send_date_time( $value, $key, $insert_contact_data_id ) {
        if ( $key === 'send_datetime' ) {
            return date( 'Y/m/d' );
        }
    }
    add_filter( 'mwform_custom_mail_tag_mw-wp-form-9', 'send_date_time', 10, 3 );
    add_filter( 'mwform_custom_mail_tag_mw-wp-form-2284', 'send_date_time', 10, 3 );
    add_filter( 'mwform_custom_mail_tag_mw-wp-form-2308', 'send_date_time', 10, 3 );

    わ、すみません。まだコードに間違いがありました。上記だと $key が send_datetime 以外のときは return されないことになるので、if 文の下に return $value を追加する必要があります。

    /**
     * {send_datetime} としたときに送信日時に変換して送信する
     *
     * @param string $value 送信された値
     * @param string $key メールタグ
     * @param int $insert_contact_data_id データベースに保存した場合、そのときの Post ID
     */
    function send_date_time( $value, $key, $insert_contact_data_id ) {
        if ( $key === 'send_datetime' ) {
            return date( 'Y/m/d' );
        }
        return $value;
    }
    add_filter( 'mwform_custom_mail_tag_mw-wp-form-9', 'send_date_time', 10, 3 );
    add_filter( 'mwform_custom_mail_tag_mw-wp-form-2284', 'send_date_time', 10, 3 );
    add_filter( 'mwform_custom_mail_tag_mw-wp-form-2308', 'send_date_time', 10, 3 );

    トピック投稿者 devsasa

    (@devsasa)

    できました!!

    ありがとうございます。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「MW WP Formで{send_datetime}を入れると他の値が削除される」には新たに返信することはできません。