Zvolené téma obsahuje celkem 4 odpovědi. Do diskuze (2 účastníci) se naposledy zapojil uživatel fancomp a poslední změna je stará 11 let, 7 měsíců.
-
Zdravím,
chtěl bych se zeptat zdali máte někdo zkušenosti s tímto pluginem. Texty a pod. jsem dostal do češtiny, ale od začátku se mi nedaří vyřešit problém s automatickou odpovědí. Přijde text ve formě rozsypaného čaje.
fancomp@seznam.cz
Předem díky za odpověď
Díval jsem se zběžně na zdrojové kódy pluginu Simple Booking Form a patrně tam bude natvrdo nastavené anglické kódování notifikačního emailu. V souboru simple-booking-form.php (řádek 418) je následující kód:
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "rn";
Zkuste změnit iso-8859-1
na iso-8859-2
, případně ještě lépe na utf-8
.
Díky když to přehodím na sadu utf-8 tak je to v pořádku. Jediné co přijde rozhozené je jméno obsahující diakritiku v předmětu emailu. Ale jinak email už dojde v pořádku.
Aha, už to vidím :-)
Problém je v tom, že jsme nastavili správné kódování pouze pro samotný obsah emailu a nejsou už kódované hlavičky a předmět, což je možné udělat např. takto. Ve WordPressu je to ale naštěstí ještě trochu jednodušší, takže stačí použít místo výchozí PHP funkce mail() upravenou funkci wp_mail(), která už všechny tyto problémy řeší. Nechápu, proč ji nepoužívá i autor pluginu. Obecně je celý ten plugin trochu podivný a zvážil bych použití nějakého známějšího, např. Contact Form 7.
Každopádně oprava by měla být jednoduchá, stačí změnit v souboru simple-booking-form.php na dvou místech (řádky 429 a 431) funkci mail
na wp_mail
(parametry zůstávají stejné) a vše by už mělo fungovat bez problémů.
Bohužel s funkcí wp_mail to neposílá nic. Upravili jsme to nakonec takto:
//definice emailu pro zasílání
$emailadmina = "email@email.cz";
$headers .= 'From: '.get_option('blogname').' <'. $emailadmina .'> '."rn"; // get_option('admin_email')
// Mail it
$kodovani = "utf-8";
$clearsubject = "".$oggetto;
$encodedsubject = base64_encode($clearsubject);
$subject = "=?".$kodovani."?B?".$encodedsubject."?=";
mail($contactemail, $subject, $email_html, $headers);
mail($emailadmina, $subject, $email_html, $headers); // get_option('admin_email')
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.
WordPress – novinky, návody a zajímavosti