Antwort #3 am: 31. Mai 2017, 15:19:46
Ändere die Zeile in der change_order_mail wie folgt ab:
{if $GENDER == $smarty.const.MALE}Sehr geehrter Herr{else if $GENDER == $smarty.const.FEMALE} Sehr geehrte Frau {else} Hallo {/if}
Ich lasse nicht auf
Herr oder
Frau prüfen, sondern verwende die Sprachkonstanten. Denn spätestens, wenn du die Sprachkonstante FEMALE z.B. in
Madame änderst, schlägt die Prüfung auf
Frau ebenfalls fehl.
Die Frage wieso es in der order_mail geht und in der change_order_mail möchte ich dir auch beantworten.
Die order_mail bekommt die Smartyvariablen aus der Datei send_order.php.
Dort wird
$GENDER
direkt mit
$order->customer['gender']
befüllt, daher auch nur die Geschlechtskürzel, wie
m und
f.
Die change_order_mail bekommt die Smartyvariablen aus der includes/classes/order.php und dort werden durch
if ($order->customer['gender'] == 'f') {
$smarty->assign('GENDER', FEMALE);
} elseif ($order->customer['gender'] == 'm') {
$smarty->assign('GENDER', MALE);
} else {
$smarty->assign('GENDER', '');
}
nicht die Geschlechterkürzel, sonder gleich die Bezeichnungen
Herr und
Frau übergeben.
Fazit:In der Datei change_order_mail.html bzw. change_order_mail.txt ist die Geschlechterabfrage falsch und muss so wie oben geschrieben lauten.