Accediendo a los datos introducidos por el usuario

Para acceder a los datos de entrada del usuario enviados a través de un formulario de contacto, puedes consultar la variable global nativa de PHP $_POST. Además de esta, la clase WPCF7_Submission de Contact Form 7 proporciona una fuente de datos diferente ($posted_data) que se puede utilizar para acceder a los datos de entrada del usuario. ¿Cuáles son las diferencias entre $_POST y $posted_data? ¿Y cuál deberías usar para tu propósito?

$_POST incluye los datos sin procesar que el usuario ha enviado. $posted_data incluye los datos saneados y procesados ​​para su uso por parte de Contact Form 7.

Si bien $_POST incluye todos los datos enviados, algunos de los que representan la metainformación del envío (como el ID del formulario de contacto) y otros que son irrelevantes para las intenciones del remitente (como la respuesta al CAPTCHA) se excluyen de $posted_data.

El siguiente fragmento de código muestra un ejemplo que recupera los datos de entrada del usuario desde $posted_data.

add_action( 'wpcf7_before_send_mail',
  function( $contact_form, $abort, $submission ) {
    // Obteniendo información del usuario a través del campo «your-email»
    $your_email = $submission->get_posted_data( 'your-email' );

    // Obteniendo información del usuario a través del campo «your-message»
    $your_message = $submission->get_posted_data( 'your-message' );

    // Haz algunas cosas productivas aquí
  },
  10, 3
);

Como puede ver en este ejemplo, usas el método get_posted_data() para acceder a los datos. No tienes permiso para acceder directamente a la propiedad $posted_data.

No uses $posted_data para la validación o el filtrado de mensajes no deseados.

No uses $posted_data para la validación de los datos de entrada o el filtrado de mensajes no deseados. Usa $_POST en su lugar, porque esas tareas tienen sentido solo cuando se realizan contra los datos de entrada del usuario sin procesar.