FernandoAcosta.Netdocs

Hook before_send_form

2 min de leituraAtualizado há 5 dias

O plugin expõe uma única action pra devs estenderem o comportamento de envio: connect_elementor_mautic_before_send_form. Ela dispara logo antes do formulário ser enviado pro Mautic — exclusivamente no modo padrão.

Use pra modificar o objeto Mautic (alterar dados do contato), registrar telemetria, condicionar o envio, ou disparar lógica customizada com base no ID do formulário.

Assinatura

do_action( 'connect_elementor_mautic_before_send_form', $mautic, $form_id );
Parâmetro Tipo Descrição
$mautic object Instância da biblioteca escopecz/mautic-form-submit já configurada com URL e dados da requisição. Você pode chamar métodos como getContact() pra ler/alterar atributos do contato.
$form_id int ID do formulário no Mautic (o mesmo que você preencheu em Mautic Form ID no Elementor).

Exemplo: lógica condicional por formulário

add_action( 'connect_elementor_mautic_before_send_form', function ( $mautic, $form_id ) {
    if ( 5 === (int) $form_id ) {
        error_log( 'Enviando formulário 5 com lógica especial' );
        // sua lógica aqui
    }
}, 10, 2 );

Exemplo: enriquecer o contato antes do envio

add_action( 'connect_elementor_mautic_before_send_form', function ( $mautic, $form_id ) {
    $contact = $mautic->getContact();

    // Adicionar uma tag baseada na origem do tráfego
    if ( ! empty( $_COOKIE['utm_source'] ) ) {
        $contact->setTags( [ sanitize_text_field( $_COOKIE['utm_source'] ) ] );
    }
}, 10, 2 );

Exemplo: log estruturado pra observabilidade

add_action( 'connect_elementor_mautic_before_send_form', function ( $mautic, $form_id ) {
    do_action( 'logger', 'mautic.form_submit', [
        'form_id'   => $form_id,
        'page_url'  => $_SERVER['HTTP_REFERER'] ?? null,
        'timestamp' => time(),
    ] );
}, 10, 2 );

Limitações

O hook só dispara no modo padrão

No Modo alternativo, o plugin envia direto via POST pra /form/submit?formId=... sem passar pelo objeto Mautic — então o hook não roda. Se o seu fluxo customizado depende dele, mantenha o Modo alternativo desligado.

Onde o hook é chamado

No código do plugin, o hook fica em includes/class-form-rules.php, dentro do método submit_remote_form(), executado logo após a configuração do objeto Mautic e antes da chamada que dispara o envio. O caminho exato pode variar entre versões — confira a versão instalada no seu site.

Próximos passos

Foi útil?