Saltar al contenido

Cómo conectarse al formulario de contacto 7 antes del envío

Solución:

Tuve que hacer esto para evitar que se enviaran correos electrónicos. Espero eso ayude.

/*
    Prevent the email sending step for specific form
*/
add_action("wpcf7_before_send_mail", "wpcf7_do_something_else");  
function wpcf7_do_something_else($cf7) {
    // get the contact form object
    $wpcf = WPCF7_ContactForm::get_current();

    // if you wanna check the ID of the Form $wpcf->id

    if (/*Perform check here*/) {
        // If you want to skip mailing the data, you can do it...  
        $wpcf->skip_mail = true;    
    }

    return $wpcf;
}

Este código asume que está ejecutando la última versión de CF7, su código anterior solía funcionar hasta hace un par de meses cuando fueron e hicieron una refactorización del código. [Apr 28 ’15]

Me gustaría agregar que podría usar el wpcf7_skip_mail filtrar:

add_filter( 'wpcf7_skip_mail', 'maybe_skip_mail' );

function maybe_skip_mail( $skip_mail, $contact_form ) {

    if( /* your condition */ )
        $skip_mail = true;

    return $skip_mail;

}, 10, 2 );

Desde WPCF7 5.2 el wpcf7_before_send_mail gancho ha cambiado bastante. Como referencia, aquí se explica cómo trabajar con este gancho en 5.2+

Omitir correo

function my_skip_mail() {
    return true; // true skips sending the email
}
add_filter('wpcf7_skip_mail','my_skip_mail');

O agregar skip_mail a la pestaña Configuración adicional en su formulario en el área de administración.

Obtener el ID de formulario o el ID de publicación

function wpcf7_before_send_mail_function( $contact_form, $abort, $submission ) {

    $post_id = $submission->get_meta('container_post_id');
    $form_id = $contact_form->id();

    // do something       

    return $contact_form;
    
}
add_filter( 'wpcf7_before_send_mail', 'wpcf7_before_send_mail_function', 10, 3 );

Obtener datos ingresados ​​por el usuario

function wpcf7_before_send_mail_function( $contact_form, $abort, $submission ) {

    $your_name = $submission->get_posted_data('your-field-name');

    // do something       

    return $contact_form;
    
}
add_filter( 'wpcf7_before_send_mail', 'wpcf7_before_send_mail_function', 10, 3 );

Envíe el correo electrónico a un destinatario dinámico

function wpcf7_before_send_mail_function( $contact_form, $abort, $submission ) {

    $dynamic_email="[email protected]"; // get your email address...

    $properties = $contact_form->get_properties();
    $properties['mail']['recipient'] = $dynamic_email;
    $contact_form->set_properties($properties);

    return $contact_form;
    
}
add_filter( 'wpcf7_before_send_mail', 'wpcf7_before_send_mail_function', 10, 3 );
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *