Dichiarazione condizionale wp_mail sul post
Attualmente sto pubblicando dal front-end utilizzando un modello simile a http://voodoopress.com/2011/03/review-of-posting-from-front-end-form/. Voglio inviare un'email a determinati indirizzi in base al valore del campo "problem_type". Questo è quello che ho finora. Questo codice non invia nulla, ma sono a un punto morto. Idee? Ho bisogno solo di 3 email diverse. 1 se il valore è computers, 1 se il valore è phones, e tutti gli altri valori possono essere inviati a un terzo indirizzo email.
function new_post_creation_email($pid) {
$problem_type = get_post_meta($pid, 'problem_type', true); // Ottieni il valore del campo personalizzato problem_type
$description = 'post_content'; // Contenuto del post
if ($problem_type == 'phones') {
$to = '1st email here'; // Email per problemi con i telefoni
} elseif ($problem_type == 'computers') {
$to = '2nd email here'; // Email per problemi con i computer
} else {
$to = '3rd email here'; // Email per tutti gli altri problemi
}
$subject = "New Ticket in ' . echo get_post_meta($pid, 'problem_type', true) . "; // Oggetto dell'email
$message = "A user profile has been updated\n\n"; // Messaggio dell'email
$message .= print_r($description,true);
@wp_mail( $to, $subject, $message); // Invia l'email
}
add_action('wp_insert_post','new_post_creation_email'); // Aggiungi l'azione al hook wp_insert_post
Ovviamente i valori "1st email here" ecc. sono stati sostituiti con veri indirizzi email nel codice reale.

Ecco un paio di cose:
- Stai mischiando ' e " in modo molto sbagliato!
- Stai usando
echo
all'interno di una stringa. Non farlo. - Stai silenziando qualsiasi errore sulla funzione
wp_mail
, quindi se WordPress ti sta dando un errore non lo vedrai mai!
Per prima cosa, risolvi il problema con ' e ". La tua definizione di $subject
dovrebbe essere così:
$subject = "Nuovo Ticket in " . get_post_meta($pid, 'problem_type', true);
Questa correzione risolve anche il problema con echo
.
Successivamente, rimuovi il @
davanti a wp_mail
e attiva WP_DEBUG nei tuoi file di configurazione in modo da poter vedere eventuali errori che si presentano.
