概要
wpcf7_copy
フィルタは、WordPressのプラグインContact Form 7で使用されるフィルタです。このフィルタは、フォームのコピーを加工するために便利で、特定のプロセスをカスタマイズするのに役立ちます。具体的には次のような機能を実装する際に良く使われます。
- フォームのデフォルト値を変更する。
- 新しいフォームを作成する際に特定のスタイルやクラスを追加する。
- フォームフィールドの名前や属性を動的に変更する。
- 最初のコピー作成時に設定を上書きする。
- 特定の条件でフィールドを削除または非表示にする。
- フォームが送信されたときの動作をカスタマイズする。
構文
add_filter( 'wpcf7_copy', 'your_function_name', 10, 1 );
パラメータ
- wpcf7_copy: フィルタ名。
- your_function_name: フィルタ処理を行う関数名。
- 10: 優先度(デフォルトは10)。
- 1: 引数の数(ここでは、1つの引数が渡される)。
戻り値
このフィルタは、加工されたコピーのフォームオブジェクトを返します。
使用可能なプラグインバージョン
Contact Form 7 バージョン 5.0以上
使用可能な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_copy', 'set_default_values', 10, 1 );
function set_default_values( $form ) {
foreach ( $form->scan_form_tags() as $tag ) {
if ( $tag['name'] === 'your-name' ) {
$tag['content'] = 'デフォルト値';
}
}
return $form;
}
(https://contactform7.com/)
サンプルコード2: フィールド属性の変更
このサンプルでは、コピーしたフォームの特定のフィールドの属性を動的に変更します。
add_filter( 'wpcf7_copy', 'modify_field_attributes', 10, 1 );
function modify_field_attributes( $form ) {
foreach ( $form->scan_form_tags() as $tag ) {
if ( $tag['name'] === 'your-email' ) {
$tag['options']['placeholder'] = 'メールアドレスを入力';
$tag['options']['class'][] = 'email-field';
}
}
return $form;
}
(https://contactform7.com/)
サンプルコード3: フィールドの非表示
このサンプルは、指定された条件に基づいてフィールドを非表示にします。
add_filter( 'wpcf7_copy', 'hide_fields_conditionally', 10, 1 );
function hide_fields_conditionally( $form ) {
if ( some_condition() ) {
$form->remove_form_tag( 'some-field-name' );
}
return $form;
}
(https://contactform7.com/)
サンプルコード4: 特定のクラスの追加
このサンプルは、コピーしたフォームに特定のクラスを追加します。
add_filter( 'wpcf7_copy', 'add_custom_class', 10, 1 );
function add_custom_class( $form ) {
$form->set_property( 'additional_classes', 'custom-class' );
return $form;
}
(https://contactform7.com/)
サンプルコード5: カスタムメッセージの追加
このサンプルは、フォームのコピー作成時にカスタムメッセージを追加します。
add_filter( 'wpcf7_copy', 'add_custom_message', 10, 1 );
function add_custom_message( $form ) {
$form->set_property( 'mail', [
'body' => 'カスタムメッセージがここに表示されます。'
]);
return $form;
}
(https://contactform7.com/)