プラグインContact Form 7のwpcf7_copyフィルタの使用方法・解説

概要

wpcf7_copy フィルタは、WordPressのプラグインContact Form 7で使用されるフィルタです。このフィルタは、フォームのコピーを加工するために便利で、特定のプロセスをカスタマイズするのに役立ちます。具体的には次のような機能を実装する際に良く使われます。

  1. フォームのデフォルト値を変更する。
  2. 新しいフォームを作成する際に特定のスタイルやクラスを追加する。
  3. フォームフィールドの名前や属性を動的に変更する。
  4. 最初のコピー作成時に設定を上書きする。
  5. 特定の条件でフィールドを削除または非表示にする。
  6. フォームが送信されたときの動作をカスタマイズする。

構文

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/)

この関数について質問する


上の計算式の答えを入力してください