サポート » プラグイン » MW WP Form のカスタムメールタグ

  • nashi5ren

    (@nashi5ren)


    ■環境
    WordPress 5.8.1
    MW WP Form 4.4.0

    MW WP Form で管理者宛メールに下記のようなカスタムクエリURLを記載し、該当の問い合わせデータ1件だけを抽出したページを表示したいと考えています。

    http://example.com/wp/wp-admin/edit.php?post_type=mwf_5&inquiryid=50

    カスタムメールタグでURLを挿入しようと思い、mwform_custom_mail_tag フィルターフックに以下のようなコードを記述しました。

    
    function insert_download_url($value, $key, $insert_contact_data_id) {
      if ( $key === 'dl_url' && ! empty($insert_contact_data_id) ) {
        $frm_id = 5;
        $qry_key = 'inquiryid';
        return admin_url(sprintf('edit.php?post_type=mwf_%1$d&%2$s=%3$d', $frm_id, $qry_key, $insert_contact_data_id));
      }
      return $value;
    }
    add_filter('mwform_custom_mail_tag', 'insert_download_url', 10, 3);
    

    しかしメールタグ {dl_url} の部分には何も出力されませんでした。

    ! empty($insert_contact_data_id)
    の条件を外すと、URLは
    http://example.com/wp/wp-admin/edit.php?post_type=mwf_5&inquiryid=0
    となってしまいます。

    デバッグログに出力して確認してみると上記のフックは1回のフォーム送信で2回実行されているようです。
    $insert_contact_data_id の値は1回目はNULL、2回目は正しい post id が入っているようですが、メールタグには正しく反映されません。

    どこかコードが間違っているのでしょうか。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • @nashi5ren さん

    こんにちは。
    公式マニュアルによると、本文に{tracking_number}と入力すれば問い合わせ番号に自動的に変換されるようです。
    フックは使わず、こちらの方法を試されてみてはいかがでしょうか。

    以下のような文字列を本文に記載すれば、ご要望の事は実現出来るのではないかと思います。
    http://example.com/wp/wp-admin/edit.php?post_type=mwf_5&inquiryid={tracking_number}

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「MW WP Form のカスタムメールタグ」には新たに返信することはできません。