Volver

Enviar formulario por correo (Hidrotecno)

Antes de continuar, debes ver los siguientes artículos:

1. Formulario de contacto WordPress,

2. Verificación de formulario con reCAPTCHA,

 

Para enviar formulario por correo debemos configurar primero, SMTP (Para no hacer doble trabajo, esto lo haremos después de la migración, en el servidor del cliente)

 

Luego modificamos el archivo receive-contact.php para incluir la función de envío de correo de wodpress wp_mail().

 

Cuando se haga la configuración final del SMTP y si el código está bien, cada que se envíe un formulario, le llegará al correo del cliente los datos del formulario.

Archivos Usados

1.

receive-contact.php

PHP

wp-content/themes/depura_theme/functions/posts/

Setting

Importante resaltar que la variable $adminmail debe guardar el correo al cual queremos que llegue la información cuando se envíe el formulario.

<?php
add_action('admin_post_nopriv_process_form_contact', 'receive_contact');
add_action('admin_post_process_form_contact', 'receive_contact');

function receive_contact()
{
       //variables
       $id_form = '#frm-contact';
       $uri = sanitize_url( $_POST['uri'] );
       $name = sanitize_text_field($_POST['name']);
       $email = sanitize_email($_POST['email']);
       $interest = sanitize_text_field($_POST['interest']);
       $interest_term = get_term_by('slug', $interest, 'interest', 'post_contact');
       $message = sanitize_text_field($_POST['message']);

       //Cuerpo del mensaje
       $msg = "Tema de Interés: " . $interest_term->name . "\n";
       $msg .= "Nombre: " . $name . "\n";
       $msg .= "Correo: " . $email . "\n";
       $msg .= $message;

       //Envío de correo
       $adminmail = "info@hidrotecno.com.mx"; //email destino
       $subject = $interest_term->name; //asunto
       $headers = "Reply-to: " . $name . " <" . $email . ">";

       $recaptcha = custom_recaptcha_verification($uri, $id_form);
       //Guardar el post en DB
       if ($recaptcha){
              $post_id = wp_insert_post([
                     'post_title'	=> 'Mensaje de ' . $name,
                     'post_type'	=> 'post_contact',
                     'post_content'	=> $msg,
                     'post_status' 	=> 'private',
              ]);
              wp_set_object_terms($post_id, $interest, 'interest', false);
              wp_mail( $adminmail, $subject, $msg, $headers);
       }
}

 

Avatar

Autor

Elan Francisco P. Asprilla
Desarrollador Frontend

Artículos relacionados

Máquinas de Estado en React

Las máquinas de estado son un patrón de diseño...

Cómo crear un filtro Ajax Word Press

Con el siguiente instructivo veremos cómo crear...

Header (HIDROTECNO)

El componente de encabezado de Hidrotecno...