Como utilizar la función wp_mail() de wordpress 2019

Author : Jhon

Publicado : 23 junio, 2019

La función wp_mail() de wordpress nos permite enviar los correos con los datos que recogemos de los formularios pero esto nos dará problemas si no sabemos como configurar bien los datos que pasamos a esta función.

Ademas debemos tener en cuenta el orden en el que ponemos los parámetros que le pasamos a esta función pues esta es la parte más importante, pues de ello dependerá que nuestro correo funcione correctamente o no..

iré directamente al grano así que que empezare desde donde recogemos los datos del formulario.

Recogemos los datos del formulario.

  • $name = nombre del usuario que recogemos del formulario.

  • $email = email del usuario que recogemos del formulario.

  • $message = mensaje que recogemos del formulario.

Creamos la estructura de parámetros que pasaremos a la función wp_mail(),

parámetros :

  • $to

  • $subject

  • $message

  • $headers

$to

Este sera el mail de nuestra empresa o marca.,Podemos configurarlo de dos maneras :

$to = get_option(‘admin_email’);

$to = array(‘micorreo@gmail.com’, ‘micorreo2@gmail.com);

con esta segunda opción podremos poner mas de un correo.

$subject

Aqui pondremos el asunto del mensaje

$message

Esta variable recogerá la información del mensaje.

$headers

Los headers o encabezados corresponden a elementos adicionales de un mensaje de correo como puede ser «DE:», «Cc» o «CCO» para especificar de donde procede el mail y si se desea enviar con copia o copia oculta.

//$headers From llevara el nombre del que envia el mensaje + el correo

$headers[]= ‘From: «‘ . $name . ‘» < ‘ . $email . ‘ >’;

//Cc es a donde queremos enviar la copia del correo

$headers[]= «Cc: Persona1 <persona1@gmail.com>»;

//El Bcc es un destinatario en copia oculta

$headers[]= «Bcc: Persona2 <persona2@wordpress.org>»;

Ahora ya podremos utilizar la función wp_mail();

wp_mail( $to, $subject, $message, $headers );

Por ultimo aquí dejo el código de la función

public function atr_save_form_contactme(){

/**

* esta funcion almacena en la BBDD los datos delm formulario contactme

*/

global $wpdb;

if (isset($_POST[‘enviar’]) ):

if( $_POST[‘name’]==null && $_POST[‘email’]==null && $_POST[‘message’]==null ):

//echo $message;

elseif( $_POST[‘name’]!=null && $_POST[‘email’]!=null && $_POST[‘message’]!=null && $_POST[‘oculto’] == «1» ):

$name = sanitize_text_field( $_POST[‘name’] );

$email = sanitize_text_field( $_POST[‘email’] );

$message = sanitize_text_field( $_POST[‘message’] );

//Paso 1 : Tabla

$tabla = $wpdb->prefix . ‘contactme’;

//Paso 2 : Datos

//aqui pondremos el nombre de las columnas y los datos a insertar

$datos = array(

‘nombre’ => $name,

‘correo’ => $email,

‘mensaje’ => $message

);

//Paso 3 : Formato s=string, d=para numeros f=flotante, numeros con decimales por ejempo(3.50, 0.0003, etc)

$formato =array(

‘%s’,

‘%s’,

‘%s’

);

//Paso 4 : realizamos la consulta

$wpdb->insert( $tabla, $datos, $formato );

//Paso 5 envio de correo, aqui utilizaremos la funcion wp_mail();

// $to = array(‘info@newtheme.eu’);

$to = get_option(‘admin_email’);

//subject, aqui va el asunto del mensaje

$subject = ‘Consulta NewTheme’;

//message, aqui ira todo el contenido del mensaje que se envia

//Crearemos un mensaje personalizado html

$message = «

<table class=’tabla-email’ width=’100%’>

<tr>

<th></th>

<th><img src=’https://newtheme.eu/wp-content/uploads/2018/11/logo.png’ alt=’Logo New theme’></th>

<th></th>

</tr>

<tr>

<td colspan=’3′><p style=’color: brown; font-family: sans-serif; font-size: 18px ‘>'» . $message . «‘</p></td>

</tr>

</table>

«;

//$message = $message;

//attachments: (string|array) (Optional) estos son los archivos adjuntos en el caso de que deseemos enviarlos también.

//$attachments = array (‘WP_CONTENT_DIR.’/uploads/archivo.png’);

//headers, los headers o encabezados corresponden a elementos adicionales de un mensaje de correo como puede ser

//“DE:” , “C.C:”, “CCO:” para especificar de donde procede el email, si se desea enviar con copia o copia oculta.

//$headers = $email;

//$headers From llevara el nombre del que envia el mensaje + el correo

$headers[]= ‘From: «‘ . $name . ‘» < ‘ . $email . ‘ >’;

//Cc es a donde queremos enviar la copia del correo

$headers[]= «Cc: Jhon Jairo <jhonja14795@gmail.com>»;

//El Bcc es un destinatario en copia oculta

$headers[]= «Bcc: otro <persona2@wordpress.org>»;

//wp_mail( $to, $subject, $message, $headers, $attachments );

wp_mail( $to, $subject, $message, $headers );

//Paso 6 :

// redireccionamos, crearemos una pagina nueva en el cpanel, la llamaremos(message);

$url = get_page_by_title(‘message’);

$location = get_permalink($url->ID);

//wp_safe_redirect( $location, $status ); esta funcion siempre va acompañada de un exit();

wp_redirect($location);

exit();

endif;

endif;

}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *