Cómo capturar datos POST con formulario de contacto7

2 minutos de lectura

avatar de usuario
kevin.a

Tengo este gancho en mi functions.php:

add_action( 'wpcf7_mail_sent', 'myfunction' );

Quiero publicar los valores cuando se envía el formulario.

Tengo un campo como este: [textarea your-message].

¿Cómo capturo los datos POST de esto?

por ejemplo, cuando se envía el formulario, quiero hacer eco del valor de publicación de [textarea your-message] en myfunction(){}

Así es como lo usé y funcionó para mí para recibir datos del formulario de contacto 7 después de un envío de correo exitoso y usé estos datos para enviar otro servidor a través de API

add_action( 'wpcf7_mail_sent', 'your_wpcf7_mail_sent_function' ); 
function your_wpcf7_mail_sent_function( $contact_form ) {
    $title = $contact_form->title;
    $submission = WPCF7_Submission::get_instance();  
    if ( $submission ) {
        $posted_data = $submission->get_posted_data();
    }       
   if ( 'Reagistation' == $title ) {
        $name = strtolower($posted_data['text-name']);
        $name = strtolower(str_replace(' ', '_',  $name));
        $email = strtolower($posted_data['email']);
        $phone = strtolower($posted_data['phone']);
        $Areyouarealtor = $posted_data['Areyouarealtor'];
        $ayor = strtolower($Areyouarealtor['0']);

 }
}

Prueba esto :

add_action( 'wpcf7_sent', 'your_wpcf7_function' ); 

function your_wpcf7_function( $contact_form ) {
$title = $contact_form->title;
$submission = WPCF7_Submission::get_instance();

if ( $submission ) {
    $posted_data = $submission->get_posted_data();
}
   if ( 'MyContactForm' == $title ) {

    $firstName = $posted_data['first-name'];
    $lastName = $posted_data['last-name'];


   }
}

  • O simplemente puede conectarse a init y recuperar datos de publicación.

    – Rakhi Prajapati

    15 de marzo de 2017 a las 11:54

Necesitas acceder a la $WPCF7_ContactForm objeto.

En su función enganchada, accedería al campo que desea de esta manera:

yourFunction(&$WPCF7_ContactForm) {
    $text_area_contents = $WPCF7_ContactForm->posted_data['your-message'];
}

Puede recuperar datos de campos de formulario a través de wpcf7_posted_data

add_filter( 'wpcf7_posted_data', function( $data ) {
  echo $data['your-name'];
} );  

avatar de usuario
kan

Prueba esto


add_action('wpcf7_before_send_mail','dynamic_addcc');
function dynamic_addcc($WPCF7_ContactForm){
    $currentformInstance  = WPCF7_ContactForm::get_current();
    $contactformsubmition = WPCF7_Submission::get_instance();
    if($contactformsubmition){
    $posted_data = $contactformsubmition->get_posted_data(); 
    }
}

¿Ha sido útil esta solución?