Problem bei if Abfrage in Status Mail zum ausgeben spezieller Texte für Zahlungsarten in mail_html_footer.php

  • Hallo,

    ich habe folgenden Code in den Override der Datei mail_html_footer eingebaut. Es soll also je nach Zahlungsart ein unterschiedlicher Text ausgegeben werden...

    Leider werden hier nun nur beide Texte ausgegeben... Versuche statt der SEF ID der Zahlungsart die Zahlungsart ID einzutragen hat ebenfalls keine Auswirkung.


    Ich vermute, dass eventuell die Abfrage auf die Zahlungsart nicht korrekt ist (Ich habe die Abfrage aus den Beispielen der mail_html_schopper.php) oder ich im php Kontext ist ein Fehler eingebaut habe. Eine Umschließung der beiden If causes mit einem php tag führt in dem jetzigen Aufbau zu einem Error...

    Leider sind meine php Kenntnisse nicht ausreichend (z.B. wo welche Klammer, etc.) um hier den Fehler zu finden und hoffe hier auf die vielen Cracks, dass mir hier auf die schnelle mit dem Code geholfen werden könnte.


    Danke im voraus

    Andreas


  • Normalerweise werden die Texte in der Zahlart angelegt, da gibt es ein Feld dafür, nur funktioniert die Unterscheidung zwischen englisch und deutsch nicht, aber im Prinzip braucht man da kein Override ..... also bei mir geht es ohne ...

  • Servus,


    das ist eine Zuweisung:


    Code
    1. $this->cartData->paymentName = ueberweisung;

    Es braucht einen Vergleich mit doppeltem oder dreifachem Gleichzeichen:

    Code
    1. $this->cartData->paymentName == 'ueberweisung';


    Man könnte auch eine Sprachvariable anlegen, um die Texte auszugeben.

    PHP
    1. <?php echo vmText_::('COM_VM_PAYMENT_COMMENT_TEXT2'); ?>


    Grüße

    Stefan

  • Hallo und danke für die Antworten!


    Leider war meine Frage in eine andere Richtung... es ging darum ob ich php NIX-WISSER die if Abfrage nicht richtig zusammen gebastelt habe...

    ... oder ob der abgefragte Parameter falsch ist.


    Der abgefragte Parameter war falsch! "virtuemart_paymentmethod_id" statt "paymentName"


    ich habe den richtigen Code schon selbst rausbekommen und poste den mal für alle die eventuell auch so etwas suchen:

    PHP
    1. <?php // #### Text für ABHOLUNG #### ?>
    2. <?php if ($this->orderDetails['details']['BT']->virtuemart_paymentmethod_id == '1') { ?>
    3. <?php echo vmText::_('COM_VIRTUEMART_MAIL_HEADER_CUSTOM_BARZAHLUNG'); ?>
    4. <?php } ?>
    5. <?php // #### Text für ÜBERWEISUNG #### ?>
    6. <?php if ($this->orderDetails['details']['BT']->virtuemart_paymentmethod_id == '2') { ?>
    7. <?php echo vmText::_('COM_VIRTUEMART_MAIL_HEADER_CUSTOM_UEBERWEISUNG'); ?>
    8. <?php } ?>

    Grüße

    Andreas

  • daswirdwas

    Hat das Label Gelöst: hinzugefügt
  • Sieht doch jetzt gut aus.


    Ein <?php am Anfang und ein ?> ganz unten am Ende würde übrigens reichen, weil es jetzt nur noch PHP ist. Vorher war HTML dazwischen, dann muss man natürlich die PHP-Anweisungen öffnen und schließen.


    Viel Spaß weiterhin

    Stefan

  • Stimmt -- das werde ich noch bereinigen.


    So sollte es korrekt sein

    PHP
    1. <?php // #### Text für ABHOLUNG ####
    2. if ($this->orderDetails['details']['BT']->virtuemart_paymentmethod_id == '1') {
    3. echo vmText::_('COM_VIRTUEMART_MAIL_HEADER_CUSTOM_BARZAHLUNG'); ?>
    4. } ?>
    5. <?php // #### Text für ÜBERWEISUNG #### ?>
    6. if ($this->orderDetails['details']['BT']->virtuemart_paymentmethod_id == '2') {
    7. echo vmText::_('COM_VIRTUEMART_MAIL_HEADER_CUSTOM_UEBERWEISUNG');
    8. } ?>
  • Hallo daswirdwas,


    besser so


  • Hallo Andreas,


    recht hast Du!

    Da bei mir im original allerdings noch etwas html dazwischen kommt, habe ich das so lösen müssen. Hab dann auf die Schnelle nur die vorhanden Codezeilen hier eingestellt, weil ich Treads als "gelöst" ohne die finale Lösung immer doof finde... Danke für das richtigstellen.


    Grüße

    Andreas