Description

L'action wpforms_loaded se déclenche une fois que WPForms a configuré ses objets principaux et est prêt à être utilisé. Elle s'exécute lors de plugins_loaded, juste après l'enregistrement des objets gestionnaire de formulaire et processus, et avant l'initialisation du chargeur d'administration, des fournisseurs et des intégrations.

Cette action n'accepte aucun paramètre.

Plus d'informations

WPForms::hooks() attache objects() à plugins_loaded. objects() crée WPForms_Form_Handler et WPForms_Process dans le registre, puis déclenche do_action( 'wpforms_loaded' ) sans arguments. Le cœur lui-même écoute cette action pour démarrer Admin\Loader (en mode admin uniquement), Providers\Providers et Integrations\Loader, le tout avec une priorité de 10.

Utilisez-la pour enregistrer des hooks qui nécessitent l'existence de wpforms(), ou pour exécuter du code uniquement lorsque WPForms est actif. Les articles de référence ci-dessous encapsulent leur configuration dans cette action : l'un enregistre un filtre wpforms_entry_email_data, l'autre démarre une classe de compatibilité Quiz and Survey Master. Les intégrations démarrent également à la priorité 10 sur cette action, donc un rappel qui doit s'exécuter avant qu'une intégration ne construise ses objets (par exemple, les méthodes de paiement PayPal Commerce) nécessite un numéro de priorité inférieur.

Se déclenche en Lite et Pro. Elle ne se déclenche pas lorsque WPForms::is_restricted_heartbeat() court-circuite init(), car hooks() n'est jamais atteint. Les extensions WPForms démarrent également lors de cette action.

Source

wpforms/src/WPForms.php

Exemple

Cet exemple enregistre un filtre de notification uniquement après le chargement de WPForms, de sorte que le rappel ne s'exécute jamais lorsque WPForms est inactif.

/**
 * 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;
}

Articles de référence