概要
wpcf7_acceptance
フィルタは、WordPressのプラグインContact Form 7において、メールフォームに含まれる「承諾」チェックボックスの状態を制御するために使用されるフックです。このフィルタを用いることで、ユーザーの同意に関連するロジックをカスタマイズすることができます。
使用例
wpcf7_acceptance
フィルタは、以下のような機能を実装する際によく使われます。
1. プライバシーポリシーへの同意確認
2. 利用規約への同意確認
3. メールマーケティングへの同意確認
4. ウェブサイトクッキー使用の同意確認
5. 取引条件への同意確認
6. 特定のサービスへの同意確認
構文
add_filter('wpcf7_acceptance', 'your_custom_function');
パラメータ
wpcf7_acceptance
フィルタは、以下のパラメータを受け取ります。
– $acceptance
: チェックボックスの状態を表す情報。
戻り値
このフィルタは、承諾の状態を示すブール値またはカスタムデータを返します。
互換性
- プラグインバージョン: Contact Form 7 4.5以降
- WordPressバージョン: WordPress 4.0以降
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコードと説明
サンプルコード 1
add_filter('wpcf7_acceptance', 'custom_acceptance_checkbox');
function custom_acceptance_checkbox($acceptance) {
if (!isset($_POST['your-checkbox-name'])) {
return false; // チェックボックスが未選択の場合、承諾を拒否
}
return $acceptance; // 承諾が選択された場合、元の値を返す
}
このコードは、指定したチェックボックスが未選択の場合、フォームの送信を拒否します。これは、プライバシーポリシーへの同意を確認するために使われます。
引用元: https://contactform7.com/
サンプルコード 2
add_filter('wpcf7_acceptance', 'conditional_acceptance_checkbox');
function conditional_acceptance_checkbox($acceptance) {
if (isset($_POST['condition_field']) && $_POST['condition_field'] == 'yes') {
return true; // 条件を満たす場合は承諾を許可
}
return false; // 条件を満たさない場合は承諾を拒否
}
このコードは、特定の条件が満たされた時のみチェックボックスの承諾を許可します。これは、特定のサービスや条件に基づく同意の取得に便利です。
引用元: https://contactform7.com/
サンプルコード 3
add_filter('wpcf7_acceptance', 'custom_acceptance_feedback');
function custom_acceptance_feedback($acceptance) {
if (!isset($_POST['accept_terms'])) {
// エラーメッセージを設定
wpcf7_set_error('accept_terms', '利用規約に同意してください。');
return false;
}
return $acceptance;
}
このコードは、利用規約に同意されていない場合にエラーメッセージを表示するために使用されます。
引用元: https://contactform7.com/
サンプルコード 4
add_filter('wpcf7_acceptance', 'custom_acceptance_logic');
function custom_acceptance_logic($acceptance) {
if (!wp_verify_nonce($_POST['nonce_field'], 'nonce_action')) {
return false; // ノンスが無効な場合、承諾を拒否
}
return $acceptance;
}
このコードは、セキュリティのためにノンスをチェックし、無効な場合は承諾を拒否します。
引用元: https://contactform7.com/
サンプルコード 5
add_filter('wpcf7_acceptance', 'log_acceptance_checkbox');
function log_acceptance_checkbox($acceptance) {
error_log('Acceptance checkbox state: ' . ($acceptance ? 'Accepted' : 'Not Accepted'));
return $acceptance; // ログを取った後に状態を返す
}
このコードでは、承諾の状態をエラーログに記録しているので、デバッグや確認の際に役立ちます。
引用元: https://contactform7.com/