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

Banner Parallax (PALMAS)

En el presente post encontrarás todo lo que...

Carrusel de logos (Palmas)

Este es un carousel(Carrusel) que muestra...

Plugin personalizado post en archivo excel WP (Hidrotecno)

Este artículo es una continuación Formulario de...

Galería de Documentos (Palmas)

Este componente nos permite mostrar un conjunto...