概要
wpcf7_contact_form_properties
フィルタは、WordPressのプラグインContact Form 7のフォームのプロパティを拡張するために使用されます。このフィルタを利用することで、ユーザーが作成したフォームの動作や表示方法をカスタマイズできるため、以下のような機能を実装する際によく使われます。
- フォームのバリデーションルールの追加
- フォームのスタイルの変更
- 送信されたデータのカスタム処理
- 特定の条件に基づくフィールドの表示/非表示
- フォームの送信後のリダイレクト先の変更
- フォームの自動応答メッセージのカスタマイズ
このフィルタは、Contact Form 7の最新バージョン(例:5.0以降)および、WordPressの最新バージョンにおいて使用可能です。
構文
add_filter('wpcf7_contact_form_properties', 'custom_function', 10, 2);
- $contact_form_properties: 既存のフォームプロパティを含む配列。
- $contact_form: Contact Form 7のContactFormインスタンス。
戻り値
フィルタを通過した後のフォームプロパティの配列。
サンプルコード
サンプルコード1: フォームにカスタムプロパティを追加する
add_filter('wpcf7_contact_form_properties', function($properties, $contact_form) {
$properties['custom_property'] = 'My Custom Value';
return $properties;
});
説明: このコードは、Contact Form 7のフォームプロパティに「custom_property」という新しいプロパティを追加します。
サンプルコード2: フォームのIDに基づいてプロパティを変更する
add_filter('wpcf7_contact_form_properties', function($properties, $contact_form) {
if ($contact_form->id() == 123) {
$properties['additional_setting'] = 'Enabled';
}
return $properties;
});
説明: フォームのIDが123の場合に追加の設定を有効にします。
サンプルコード3: デフォルトのレスポンスメッセージをカスタマイズする
add_filter('wpcf7_contact_form_properties', function($properties, $contact_form) {
$properties['default_response_message'] = 'ありがとう!メッセージは送信されました。';
return $properties;
});
説明: 送信後のデフォルトのレスポンスメッセージをカスタマイズします。
サンプルコード4: 特定の条件に基づいてフィールドを変更する
add_filter('wpcf7_contact_form_properties', function($properties, $contact_form) {
if (!is_user_logged_in()) {
$properties['field_visibility'] = 'hidden';
}
return $properties;
});
説明: ユーザーがログインしていない場合、特定のフィールドを非表示にします。
サンプルコード5: フォームのタイトルを変更する
add_filter('wpcf7_contact_form_properties', function($properties, $contact_form) {
$properties['form_title'] = 'カスタムタイトル';
return $properties;
});
説明: フォームのタイトルを「カスタムタイトル」に変更します。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |