説明

wpforms_loaded アクションは、WPForms がコアオブジェクトをセットアップし、使用準備ができたときに発生します。これは plugins_loaded で実行され、フォームハンドラーとプロセスオブジェクトが登録された直後、および管理ローダー、プロバイダー、統合が初期化される前です。

このアクションはパラメーターを受け付けません。

詳細情報

WPForms::hooks() は plugins_loaded に objects() をアタッチします。objects() はレジストリに WPForms_Form_Handler と WPForms_Process を作成し、その後引数なしで do_action( 'wpforms_loaded' ) を発生させます。コア自体は、管理ローダー (管理のみ)、プロバイダー、統合をすべて優先度 10 で開始するために、これをリッスンします。

wpforms() が存在する必要があるフックを登録するため、または WPForms がアクティブな場合にのみコードを実行するために使用します。以下のリファレンス記事では、セットアップをこれらでラップしています。1 つは wpforms_entry_email_data フィルターを登録し、もう 1 つは Quiz and Survey Master の互換性クラスをブートします。統合もこのアクションで優先度 10 で開始されるため、統合がオブジェクトを構築する前に実行する必要があるコールバック (たとえば PayPal Commerce の支払い方法) は、より低い優先度番号が必要です。

Lite および Pro で発生します。WPForms::is_restricted_heartbeat() が init() をショートサーキットするため、hooks() が到達しないため発生しません。WPForms アドオンもこのアクションでブートします。

ソース

wpforms/src/WPForms.php

例

この例では、WPForms がロードされた後にのみ通知フィルターを登録するため、コールバックは WPForms が非アクティブな場合には決して実行されません。

/**
 * Register WPForms hooks once the plugin is loaded.
 *
 * @link https://wpforms.com/developers/wpforms_loaded/
 */
function wpf_dev_loaded() {

    add_filter( 'wpforms_entry_email_data', 'wpf_dev_remove_field_from_email', 11, 3 );
}
add_action( 'wpforms_loaded', 'wpf_dev_loaded', 10, 0 );

/**
 * Remove field 3 from {all_fields} in notifications for form 143.
 *
 * @param array $fields    Entry fields.
 * @param array $entry     Form submission raw data.
 * @param array $form_data Form data and settings.
 *
 * @return array
 */
function wpf_dev_remove_field_from_email( $fields, $entry, $form_data ) {

    // Only run on the form with ID 143. Remember to change 143 to your form ID.
    if ( empty( $form_data['id'] ) || (int) $form_data['id'] !== 143 ) {
        return $fields;
    }

    // Remember to change 3 to the ID of the field you want to remove.
    unset( $fields[3] );

    return $fields;
}

参考記事