2015-04-19 14 views
7

Spero di ottenere un po 'di aiuto con un pezzo di codice, sto usando un tema per wordpress che imposta le intestazioni di posta in text/html, questo causa alcuni problemi con la posta normale. le interruzioni di riga non vengono più visualizzate.wordpress mail header set altro testo semplice

ho provato a installare:

} else { 
    return 'text/plain'; 
} 

ma non so php molto bene quindi non so dove metterlo per farlo funzionare. Vorrei impostare il testo/plain per i messaggi non definiti.

Questo è il codice per l'intestazione wp:

/** 
* filter mail headers 
*/ 
function wp_mail($compact) { 
    if (isset($_GET['action']) && $_GET['action'] == 'lostpassword') return $compact; 
    if ($compact['headers'] == '') { 

     //$compact['headers'] = 'MIME-Version: 1.0' . "\r\n"; 
     $compact['headers'] = 'Content-type: text/html; charset=utf-8' . "\r\n"; 
     $compact['headers'].= "From: " . get_option('blogname') . " < " . get_option('admin_email') . "> \r\n"; 
    } 

    $compact['message'] = str_ireplace('[site_url]', home_url() , $compact['message']); 
    $compact['message'] = str_ireplace('[blogname]', get_bloginfo('name') , $compact['message']); 
    $compact['message'] = str_ireplace('[admin_email]', get_option('admin_email') , $compact['message']); 

    $compact['message'] = html_entity_decode($compact['message'], ENT_QUOTES, 'UTF-8'); 
    $compact['subject'] = html_entity_decode($compact['subject'], ENT_QUOTES, 'UTF-8'); 

    //$compact['message']  = et_get_mail_header().$compact['message'].et_get_mail_footer(); 

    return $compact; 
} 

risposta

3

Invece di cambiare che, cambiare la vostra linea di pianura si rompe in html.

$message=nl2br($message); // of course use your var name. 

In questo modo è possibile mantenere un formato standard anche per l'e-mail. il testo semplice non ha nulla di così speciale da richiedere un header separato in questo caso. Questa funzione convertirà tutte le interruzioni di riga in versione html.

Oltre alle nuove linee, la maggior parte del testo normale mantiene la sua formattazione anche in html perché non ha tag speciali.

Ecco come si è posto

function wp_mail($compact) { 
    // leave your existing code intact here, don't remove it. 
    $compact["message"]=nl2br($compact["message"]); 
    return $compact; 
} 
+0

Hi Hanky ​​Panky 웃, la tua risposta senso così tanto, mi sento quasi. in base al codice che ho postato sopra, è possibile sapere che cosa dovrebbe essere il var? e dove posizionerei la riga di codice che hai postato? – Elcangri

+0

Sì la tua variabile è '$ compact [" message "] = nl2br ($ compact [" message "]);' e va proprio sopra l'ultima riga della tua funzione. Cioè Sopra la chiamata di ritorno. Vedi la modifica –

+0

Ho provato ciò che è suggerito e funziona con e-mail in chiaro, ora hanno un'interruzione di riga corretta, ma ora le e-mail html sono mostrate vuote. Ho guardato la fonte e ho notato che ogni riga ha il codice
'!