Declaración condicional wp_mail en la publicación
Actualmente estoy publicando desde el front-end usando un modelo similar al de http://voodoopress.com/2011/03/review-of-posting-from-front-end-form/. Quiero enviar un correo electrónico a ciertas direcciones basadas en el valor del campo "problem_type". Esto es lo que tengo hasta ahora. Esto no envía nada en absoluto, pero estoy en un callejón sin salida. ¿Ideas? Solo necesito 3 correos electrónicos diferentes. 1 si el valor es computers, 1 si el valor es phones, y cualquier otro valor puede enviarse a una tercera dirección de correo electrónico.
function new_post_creation_email($pid) {
$problem_type = get_post_meta($pid, 'problem_type', true);
$description = 'post_content';
if ($problem_type == 'phones') {
$to = '1er correo aquí';
} elseif ($problem_type == 'computers') {
$to = '2do correo aquí';
} else {
$to = '3er correo aquí';
}
$subject = "Nuevo ticket en " . get_post_meta($pid, 'problem_type', true);
$message = "Un perfil de usuario ha sido actualizado\n\n";
$message .= print_r($description,true);
@wp_mail( $to, $subject, $message);
}
add_action('wp_insert_post','new_post_creation_email');
Obviamente el "1er correo aquí" etc. han sido reemplazados con direcciones de correo electrónico reales en el código real.

Aquí hay un par de cosas:
- Estás mezclando ' y " de una manera muy incorrecta.
- Estás usando
echo
dentro de una cadena. No hagas eso. - Estás silenciando cualquier error en la función
wp_mail
, así que si WordPress te da un error ¡nunca lo verás!
Primero, corrige tu problema con ' y ". La definición de tu $subject
debería verse así:
$subject = "Nuevo Ticket en " . get_post_meta($pid, 'problem_type', true);
Esta corrección también soluciona el problema del echo
.
A continuación, elimina el @
que está delante de wp_mail
y activa WP_DEBUG en tus archivos de configuración para que puedas ver cualquier error que aparezca.
