Contact Form 7 3.9 Beta

La versión 3.9 de Contact Form 7 se publicará próximamente. En esta versión he realizado una importante refactorización de la estructura interna del plugin. Aunque la mayoría de los usuarios no necesitan preocuparse por estos cambios, si desarrollas plugins complementarios para Contact Form 7 o has personalizado el plugin desde el archivo functions.php de tu tema, es posible que tengas que modificar tu código para que funcione con Contact Form 7 3.9.


Puedes descargar Contact Form 7 3.9-beta desde el directorio de plugins de WordPress.org. Te recomiendo encarecidamente que pruebes tu código con la versión beta antes del lanzamiento oficial de Contact Form 7 3.9. Si el plugin complementario que utilizas deja de funcionar después de actualizar a Contact Form 7 3.9, informa a su autor de que necesita aplicar algunas correcciones para que sea compatible con esta versión.

Los principales cambios introducidos en la versión 3.9 son:

  • Se han introducido las clases WPCF7_Submission, WPCF7_Mail y WPCF7_MailTaggedText.
  • Algunas propiedades y métodos se han trasladado de la clase WPCF7_ContactForm a las tres nuevas clases.
  • La visibilidad de algunas propiedades y métodos ha cambiado a private. Esto significa que ya no se puede acceder a ellos directamente desde tu código.

En la práctica, tendrás que modificar tu código de la siguiente manera:


/* No hagas esto, porque ya no se puede acceder a la propiedad id. */
$id = $contact_form->id; // Incorrecto.

/* Utiliza el método id() en su lugar. */
$id = $contact_form->id();

/* Tampoco se puede acceder a las propiedades form, mail, mail_2, messages y additional_settings. */
$form = $contact_form->form; // Incorrecto.

/* Utiliza el método prop() para acceder a ellas. */
$form = $contact_form->prop( 'form' );

/* Para establecer las propiedades, utiliza el método set_properties(), así: */
$mail = $contact_form->prop( 'mail' );
$mail['subject'] = "Well, hello, Dolly";
$contact_form->set_properties( array( 'mail' => $mail ) );

/* El objeto WPCF7_ContactForm ya no tiene la propiedad posted_data. */
$posted_data = $contact_form->posted_data; // Incorrecto.

/* Utiliza el método get_posted_data() del objeto WPCF7_Submission para obtener esos datos. */
$submission = WPCF7_Submission::get_instance();

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