Descrição

A ação wpforms_loaded é disparada assim que o WPForms configura os seus objetos principais e está pronto para ser utilizado. É executada em plugins_loaded, logo após os objetos do manipulador de formulários e de processamento serem registados, e antes que o carregador de administração, os fornecedores e as integrações sejam inicializados.

Esta ação não aceita quaisquer parâmetros.

Mais Informações

WPForms::hooks() anexa objects() a plugins_loaded. objects() cria WPForms_Form_Handler e WPForms_Process no registo e, em seguida, dispara do_action( 'wpforms_loaded' ) sem argumentos. O núcleo em si escuta esta ação para iniciar Admin\Loader (apenas para administração), Providers\Providers e Integrations\Loader, todos com prioridade 10.

Utilize-a para registar ganchos que necessitem que wpforms() exista, ou para executar código apenas quando o WPForms estiver ativo. Os artigos de referência abaixo encapsulam a sua configuração nesta ação: um regista um filtro wpforms_entry_email_data, o outro inicia uma classe de compatibilidade Quiz and Survey Master. As integrações também começam com prioridade 10 nesta ação, pelo que um callback que tenha de ser executado antes de uma integração construir os seus objetos (por exemplo, os métodos de pagamento PayPal Commerce) necessita de um número de prioridade inferior.

Disparada nas versões Lite e Pro. Não é disparada quando WPForms::is_restricted_heartbeat() encurta init(), porque hooks() nunca é alcançado. Os add-ons do WPForms também são iniciados nesta ação.

Origem

wpforms/src/WPForms.php

Exemplo

Este exemplo regista um filtro de notificação apenas depois de o WPForms ser carregado, pelo que o callback nunca é executado quando o WPForms está inativo.

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

Artigos de Referência