WordPress manejo de errores con WP_Error Clase II

En la primera parte de esta serie sobre el manejo de errores en WordPress con el WP_Error clase, echamos un vistazo a una introducción de la clase PHP, examinamos las propiedades y los métodos de la clase y sus roles y funciones complementados por ejemplos de código.

En esta parte final de la serie, crearemos un complemento de formulario de contacto bastante simple para demostrar cómo manejar los errores en el desarrollo de complementos. El plugin de formulario de contacto tendrá código cortoy soporte de etiquetas de plantilla para que pueda implementarse en publicaciones y páginas utilizando la primera y en un tema utilizando la última. 

Desarrollo de plugin de formulario de contacto

El formulario de contacto constará de cinco campos de formulario: cuatro entrada elementos y un textarea elemento.

Estoy seguro de que está familiarizado con todos los campos de formulario de contacto. Tenga en cuenta que cuando se envía un correo electrónico a través del formulario de contacto, el número de teléfono se adjunta al mensaje. Esto es evidente en el enviar correo función.

Vamos a empezar a codificar el plugin. Primero el encabezado del plugin:

El complemento constará de cinco funciones PHP como se describe a continuación.

  1. contact_html_form () contendrá el código de formulario HTML del complemento.
  2. validate_form () Maneja el error del plugin. Veremos manejo de errores usando WP_Error en acción en esta función.
  3. enviar correo()Maneja el envío de correo electrónico..
  4. contact_form_function ()Reúne y procesa las funciones anteriores.
  5. contact_form_shortcode ()es la función de devolución de llamada de código corto.

El código de formulario HTML del plugin contenido en contact_html_form () la función es la siguiente.

función contact_html_form () global $ name, $ email, $ phone_number, $ subject, $ message; eco '
';

La siguiente es la función de manejo de errores. validate_form ().

Las siguientes son las restricciones a ser implementadas por el complemento que será ejecutado por el manejo de errores función.

Tenga en cuenta que:

  • ningún campo debe quedar vacío
  • el campo nombre debe contener un carácter alfabético
  • el correo debe ser valido
  • el número de teléfono debe ser numérico

los validate_form () La función aceptará los campos del formulario como argumento para que pueda validar los datos del formulario en busca de errores. A continuación se muestra el código para la función de manejo de errores que impone la restricción del complemento anterior completamente comentada para que pueda rastrear fácilmente su código

function validate_form ($ name, $ email, $ phone_number, $ subject, $ message) // Hacer que el objeto WP_Error global global $ form_error; // instanciar la clase $ form_error = new WP_Error; // Si algún campo se deja vacío, agregue el mensaje de error al objeto de error si (vacío ($ nombre) || vacío ($ correo electrónico) || vacío ($ número de teléfono) || vacío ($ asunto) || vacío ($ mensaje)) $ form_error-> add ('campo', 'Ningún campo debe quedar vacío');  // si el campo del nombre no es alfabético, agregue el mensaje de error si (! ctype_alpha ($ name)) $ form_error-> add ('invalid_name', 'Nombre no válido ingresado');  // Compruebe si el correo electrónico es válido si (! Is_email ($ email)) $ form_error-> add ('invalid_email', 'Email is not valid');  // si el número de teléfono no es numérico, arroje un error si (! is_numeric ($ phone_number)) $ form_error-> add ('phone_number', 'Phone number no es números');  // si $ form_error es WordPress Error, recorre el objeto de error // y repite el error if (is_wp_error ($ form_error)) foreach ($ form_error-> get_error_messages () como $ error) eco
'; eco 'ERROR: '; echo $ error. '
'; eco '
';

los enviar correo La función maneja el envío de email..

función send_mail ($ nombre, $ correo electrónico, $ número de teléfono, $ asunto, $ mensaje) global $ form_error; // Asegúrese de que el objeto WP_Error ($ form_error) no contenga ningún error si (1> count ($ form_error-> get_error_messages ())) // sanitize user form input $ name = sanitize_text_field ($ name); $ email = sanitize_email ($ email); $ phone_number = esc_attr ($ phone_number); $ subject = sanitize_text_field ($ subject); $ message = esc_textarea ($ mensaje); // establece el argumento variable que usa wp_mail $ message. = '\ n Número de teléfono:'. $ phone_number; $ a = '[email protected]'; $ headers = "From: $ name <$email>"." \ r \ n "; // Si el correo electrónico ha sido un proceso de envío, muestra un mensaje de éxito si (wp_mail ($ to, $ subject, $ message, $ headers)) echo" Gracias por contactarme. "; 

Echemos un vistazo a lo que está pasando en el enviar correo función.

Primero el $ form_error el objeto se hace global para que se pueda acceder fuera del alcance de la función. Se realiza una comprobación para garantizar la $ form_error El objeto no contiene ningún mensaje de error. Si es verdadero, la entrada del formulario de contacto está saneada..

los $ a variable almacena la dirección de correo electrónico a la que se enviará el mensaje enviado a través del formulario de contacto. En un complemento de formulario de contacto estándar, la variable debe contener el correo electrónico del administrador de WordPress recuperado de la base de datos o de la configuración del complemento.
Tome nota de cómo el número de teléfono se concatena al mensaje.
Finalmente, el wp_mail la función envía el correo. 

los contact_form_function () La función procesa la función y también sirve como etiqueta de plantilla de complemento..

function contact_form_function () global $ name, $ email, $ phone_number, $ subject, $ message; if (isset ($ _ POST ['send_message'])) // Obtenga los datos del formulario $ name = $ _POST ['sender_name']; $ email = $ _POST ['sender_email']; $ phone_number = $ _POST ['sender_phonenumber']; $ subject = $ _POST ['email_subject']; $ message = $ _POST ['email_message']; // validar la entrada del formulario de usuario validate_form ($ name, $ email, $ phone_number, $ subject, $ message); // enviar el correo send_mail ($ nombre, $ correo electrónico, $ número de teléfono, $ asunto, $ mensaje);  // muestra el formulario de contacto contact_html_form (); 

Recuerde que el complemento de formulario de contacto tendrá soporte de código corto. A continuación se muestra la función de devolución de llamada de código corto junto con la add_shortcode Función que registra el shortcode..

// Registre un nuevo código abreviado: [cf_contact_form] add_shortcode ('cf_contact_form', 'contact_form_shortcode'); // Función de función de devolución de llamada de shortcode contact_form_shortcode () ob_start (); contact_form_function (); devuelve ob_get_clean (); 

Usando el plugin

Usa el código corto [cf_contact_form] para incluir el formulario de contacto en una publicación o página.
Para incluir el formulario de contacto en su tema, use la etiqueta de plantilla .

Resumen

En este artículo, echamos un vistazo a cómo usar la WP_Error Clase para manejar errores en complementos. También nos mostró un práctico caso de uso sobre cómo manejar los errores en el complemento usando la clase. Puede encontrar el archivo del complemento adjunto a este artículo..

Feliz codificacion!