[WordPress]Contact Form 7 ショートコード属性から値を受け取る
- 公開日:2022/7/4
この記事は最終更新日から2年以上が経過しています。
WordPressサイトでページAとページBに同じフォームを設置し、どちらのページのフォームから問合せがあったかを分かるようにします。
試した環境
WordPress v5.9 Contact Form 7 v5.5.5
hidden項目をつくる
フォーム側に値を受け取るhidden項目を追加します。
項目名をreferrer_page
とし、ショートコードから属性を受け取るためにdefault:shortcode_attr
を追加しておきます。
[hidden referrer_page default:shortcode_attr]
ショートコードに属性を追加する
フォームのショートコードを設置するページ側で渡したい値を属性にセットします。
属性の名前は、先ほどつくったhidden項目と同じにします。
[contact-form-7 id="123" title="お問い合わせフォーム" referrer_page="ページA"]
属性を定義する
functions.phpでこの属性を定義します。
add_filter( 'shortcode_atts_wpcf7', 'custom_shortcode_atts_wpcf7_filter', 10, 3 );
function custom_shortcode_atts_wpcf7_filter( $out, $pairs, $atts ) {
$my_attr = 'referrer_page';
if ( isset( $atts[$my_attr] ) ) {
$out[$my_attr] = $atts[$my_attr];
}
return $out;
}
これでhidden項目に値がセットされたことが確認できるようになりました。