MW WP Form の完了画面メッセージのフォームに {tracking_number}
と入力するだけで問い合わせ番号を完了画面に表示することができますが、以下では完了画面メッセージを管理画面のフォーム内では設定出来ないカスタマイズした内容に変更したメッセージ内に問い合わせ番号を表示する方法をご紹介いたします。
問い合わせ番号の取得
MW WP Form で用意されているフィルターフックの mwform_complete_content_mw-wp-form-xxx
を利用してパラメータから取得した $Data からDBに保存した問い合わせの投稿IDを取得した上で問い合わせ番号を取得することが出来ます。
問い合わせの投稿IDを取得する
取得方法1
//DBに保存した問い合わせの投稿IDを取得する
$saved_mail_id = $Data->get_saved_mail_id();
取得方法2
$Dataオブジェクトを配列にキャストした上で取得することも可能です。
$data_arr = (array)$Data;
$saved_mail_id = $data_arr["\0*\0"."meta"]['saved_mail_id'];
問い合わせ番号を取得する
上記で取得した投稿IDを利用して問い合わせ番号を取得します。
//問い合わせ番号を取得する
$tracking_number = get_post_meta($saved_mail_id, 'tracking_number', true);
完了画面のメッセージ内に問い合わせ番号を表示する
/**
* 完了画面のメッセージ内に問い合わせ番号を表示する
*/
function ag_mwform_complete_content( $content, $Data )
{
//DBに保存した問い合わせの投稿IDを取得する
$saved_mail_id = $Data->get_saved_mail_id();
//問い合わせ番号を取得する
$tracking_number = get_post_meta($saved_mail_id, 'tracking_number', true);
//
$add_txt = '<p><strong>問い合わせ番号:'.$tracking_number.'</strong></p>';
$content = $add_txt.$content;
return $content;
}
add_filter( 'mwform_complete_content_mw-wp-form-999', 'ag_mwform_complete_content', 15, 2 );
// ※ 999 はフォームの投稿IDに変更
動作環境情報
エックスサーバー(x10) PHP 7.4.13 MySQL 5.7 WordPress 5.7 MW WP Form 4.4.0
コメント