Werbung / Banner buchen
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: send_order mit 3 Anhängen (Anhang für fax.html)

    Benny

    • Mitglied
    • Beiträge: 245
    Da ich gerade dabei bin das Lastschriftverfahren einzubinden sind mir kleine Mängel aufgefallen.

    Wenn ein Kunde sich entschließt per Lastschrift zu bezahlen, hat dieser die Optionen entweder online seine Bankdaten einzugeben oder aber eine Fax-Bestätigung auszufüllen.

    Da manch ein Kunde aber vielleicht den HTML-Link nicht bemerkt, macht es Sinn diese mit in die Bestellbestätigung des Kunden mit hinein zu setzen.

    Leider hat die XTC-Funktion "xtc_php_mail" nur 2 Variablen für Anhänge, welche bei mir bereits belegt sind.

    Also meine Frage: Kann man diese Funktion erweitern, sodass es möglich ist eine 3. Datei anzuhängen?

    Ebenfalls kam mir der praktische Gedanke, das man eventuell die Fax.html-Datei automatisch mit den Betreiberdaten füllen könnte.
    Aktuell sind diese noch manuell in die Vorlage einzutragen.

    Hoffe Ihr könnt mir helfen ^^

    Gruß,
    Benny



    Linkback: https://www.modified-shop.org/forum/index.php?topic=6618.0

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.185
    • Geschlecht:
    send_order mit 3 Anhängen (Anhang für fax.html)
    Antwort #1 am: 11. Juli 2010, 18:29:01
    Schau mal hier: eMail-Attachment

    Grüße

    Torsten

    Benny

    • Mitglied
    • Beiträge: 245
    send_order mit 3 Anhängen (Anhang für fax.html)
    Antwort #2 am: 11. Juli 2010, 19:08:57
    THX Tomcraft, aber mir geht's es wirklich nur um die Bestellbestätigung und nicht die anderen Mails.

    Nach kurzem Blick über das Modul, sind dort scheinbar auch nur 2 Anhänge möglich.

    Und meine Anhänge sind in der "send_order.php" fest geschrieben.

    Also besteht das Problem leider noch, dass ich mehr als 2 Anhänge versenden möchte.

    jkatzorke

    • Frisch an Board
    • Beiträge: 77
    send_order mit 3 Anhängen (Anhang für fax.html)
    Antwort #3 am: 13. Juli 2010, 10:31:48
    Ich hab es mal gerade überflogen...

    Die Datei "send_order.php" ruft ja die Mail-Funktion "xtc_php_mail" aus "inc/xtc_php_mail.inc.php" auf.

    An diese Funktion könnten zwei Attachements mitgegeben werden.

    Innerhalb der Mail-Funktion ist dies aber auskommentiert:

    Code: PHP  [Auswählen]
            $mail->WordWrap = 50; // set word wrap to 50 characters
            //$mail->AddAttachment($path_to_attachement);                     // add attachments
            //$mail->AddAttachment($path_to_more_attachements);               // optional name
     
    Gibt es einen Grund dafür?

    Sonst könnte man die Funktion ein wenig abändern, indem man statt zwei Variablen mit Anhängen ein Array an die Funktion übergibt. Dadurch wären beliebig viele Anhänge möglich.
    Mittels Schleife wird das Array durchlaufen und jedes Mal "$mail->AddAttachment" ausgeführt... Natürlich muss vorab geprüft werden, ob es sich um ein gültiges Array handelt und ob die Dateien vorhanden sind...

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.185
    • Geschlecht:
    send_order mit 3 Anhängen (Anhang für fax.html)
    Antwort #4 am: 13. Juli 2010, 11:05:17
    Das ist ein "hidden feature". ;-)

    Siehe: ANLEITUNG: E-Mail Anhänge in Bestellmails (AGB, WRB, etc.)

    Kannst du gerne ein array daraus basteln. ;-)

    Grüße

    Torsten

    jkatzorke

    • Frisch an Board
    • Beiträge: 77
    send_order mit 3 Anhängen (Anhang für fax.html)
    Antwort #5 am: 13. Juli 2010, 11:13:02
    Ach ja, da war doch was :D

    Aber nach Deinem Hinweis

    [EDIT Tomcraft 09.06.2010: Zum Einfügen der Widerrufsbelehrung (WRB) empfehlen wir dieses Modul hier: MODUL: Widerruf in Bestell-Email]

    hab ich den Teil wieder "verdrängt" :D

    Aber damit hat Benny bestimmt einen guten Ansatz, wo er seine Anhänge unterbringen kann ;)

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.185
    • Geschlecht:
    send_order mit 3 Anhängen (Anhang für fax.html)
    Antwort #6 am: 13. Juli 2010, 11:18:14
    Ich denke auch. ;-)

    Grüße

    Torsten

    Benny

    • Mitglied
    • Beiträge: 245
    send_order mit 3 Anhängen (Anhang für fax.html)
    Antwort #7 am: 13. Juli 2010, 11:45:32
    Boah Ihr seit klasse.
    Und ich hatte schon nicht mehr dran geglaubt. ^^

    Ich mach mich gleich mal an die Arbeit.

    Benny

    • Mitglied
    • Beiträge: 245
    send_order mit 3 Anhängen (Anhang für fax.html)
    Antwort #8 am: 13. Juli 2010, 13:00:26
    Und fertig ^^, danke nochmals für die Hilfe.
    Das Hiddenfeature hatte ich schon sehr lange aktiv in Gebrauch.

    Bin zwar kein großer PHP-Programmierer, aber das sollte nun funktionieren ^^.

    Die neuen Array-Anhänge sind vollkommen Abwärtskompatibel zur Originalfunktion.
    Das heißt die normalen Strings werden erkannt und nun NEU auch geprüft ob Sie existieren.
    Zusätzlich wird nun nach einem Array geprüft und durchlaufen.

    Als kleine Zusatzergänzung habe ich in der Anleitung unten schon den optionellen Anhang für den Fax-Anhang der Lastschriftbezahlung hinzugefügt.
    (Ich nutze zwar ein vorausgefülltes PDF, aber der Kommentar zeigt wo man dies ändern kann)

    Falls noch jemandem eine Ergänzung oder ein Fehler auffällt gerne melden.

    EINBAU und GEBRAUCH auf EIGENE GEFAHR.
    Ich übernehme keine Haftung für etwaige Schäden.


    Nachfolgend eine Einbau-Anleitung:

    /send_order.php:
    Suche:

    Code: PHP  [Auswählen]
    // add attachment
    $path_to_attachement = DIR_FS_DOCUMENT_ROOT . 'AGB.pdf';
    $path_to_more_attachements = DIR_FS_DOCUMENT_ROOT . 'widerrufsbelehrung.pdf';

    Ersetze mit:

    Code: PHP  [Auswählen]
    // add attachment
            //BOF PCH Anhänge-Array
        /* // Einfache Anhänge
          $path_to_attachement = '';
          $path_to_more_attachements = '';
            $path_to_attachement = DIR_FS_DOCUMENT_ROOT . 'media/content/AGB.pdf';
          $path_to_more_attachements = DIR_FS_DOCUMENT_ROOT . 'media/content/widerrufsbelehrung.pdf';
        */


        // Array-Anhänge
        $path_to_attachement = array();
            $path_to_attachement[] = DIR_FS_DOCUMENT_ROOT . 'media/content/AGB.pdf';
        $path_to_attachement[] = DIR_FS_DOCUMENT_ROOT . 'media/content/widerrufsbelehrung.pdf';

        $path_to_more_attachements = array();
        if ($order->info['payment_method'] == 'banktransfer') {
          $path_to_more_attachements[] = DIR_FS_DOCUMENT_ROOT . 'fax.pdf'; //fax.html ist Original
        }
      //EOF PCH Anhänge-Array

    /inc/xtc_php_mail.inc.php:
    Suche:

    Code: PHP  [Auswählen]
    //$mail->AddAttachment($path_to_attachement);                     // add attachments
    //$mail->AddAttachment($path_to_more_attachements);               // optional name

    Ersetze:

    Code: PHP  [Auswählen]
    //BOF PCH Anhänge-Array //Abwärtskompatibel zur Original Funktion
            //$mail->AddAttachment($path_to_attachement);                     // add attachments
            //$mail->AddAttachment($path_to_more_attachements);               // optional name

            if ($path_to_attachement != '') {
            if (is_array($path_to_attachement)) {
            $num = count($path_to_attachement);
            for($i=0; $i <$num; $i++) {
              if (file_exists($path_to_attachement[$i])) {
                $mail->AddAttachment($path_to_attachement[$i]);
              }
                    }
          } elseif (is_string($path_to_attachement)) {
            if (file_exists($path_to_attachement)) {
              $mail->AddAttachment($path_to_attachement);
            }
          }
        }

        if ($path_to_more_attachements != '') {
            if (is_array($path_to_more_attachements)) {
            $num = count($path_to_more_attachements);
            for($i=0; $i <$num; $i++) {
              if (file_exists($path_to_more_attachements[$i])) {
                $mail->AddAttachment($path_to_more_attachements[$i]);
              }
                    }
          } elseif (is_string($path_to_more_attachements)) {
            if (file_exists($path_to_more_attachements[$i])) {
              $mail->AddAttachment($path_to_more_attachements[$i]);
            }
          }
        }
      //EOF PCH Anhänge-Array

    EINBAU und GEBRAUCH auf EIGENE GEFAHR.
    Ich übernehme keine Haftung für etwaige Schäden.


    Hoffe das hilft einigen Anderen auch.

    Gruß,
    Benny

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.225
    • Geschlecht:
    send_order mit 3 Anhängen (Anhang für fax.html)
    Antwort #9 am: 13. Juli 2010, 13:06:55
    nur mal so als INFO:

    AGB und Widerrufsbelehrung dürfen nicht als PDF mitgesendet werden!

    Diese müssen in Textform sein.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.185
    • Geschlecht:
    send_order mit 3 Anhängen (Anhang für fax.html)
    Antwort #10 am: 13. Juli 2010, 13:29:22
    Hallo Benny,

    das ist ja lieb, aber genau diese Anleitung hatte ich doch bereits verlinkt!

    Das ist ein "hidden feature". ;-)

    Siehe: ANLEITUNG: E-Mail Anhänge in Bestellmails (AGB, WRB, etc.)

    Kannst du gerne ein array daraus basteln. ;-)

    Grüße

    Torsten

    Grüße

    Torsten

    Benny

    • Mitglied
    • Beiträge: 245
    send_order mit 3 Anhängen (Anhang für fax.html)
    Antwort #11 am: 13. Juli 2010, 13:37:16
    @Tomcraft:

    Es geht um die Anleitung der Anhänge, sodass mehr als 2 Anhänge möglich sind.

    @GTB:
    Das ist mir bewusst.
    In der Anleitung sind die Namen eh vertauscht.
    Als Text-Anhang ist auch nicht astrein sicher, weil diese gefiltert werden können, also wurden Sie in den Bestelltext integriert, gem. des von Tomcraft verlinkten Moduls.
    Und da Anhänge sowieso gefiltert werden können, kann ich dann auch ruhig ne PDF anhängen.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.185
    • Geschlecht:
    send_order mit 3 Anhängen (Anhang für fax.html)
    Antwort #12 am: 13. Juli 2010, 13:43:32
    Boah.... verdammt! Voll verpeilt, dass du daraus direkt ein array gebaut hast... den unteren teil hatte ich völlig übersehen, sorry!

    Spitzenklase! :thx:

    Grüße

    Torsten

    Benny

    • Mitglied
    • Beiträge: 245
    send_order mit 3 Anhängen (Anhang für fax.html)
    Antwort #13 am: 13. Juli 2010, 13:44:30
    @Tomcraft:

    Kein Problem, passiert mir auch öfters :D

    mantis

    • Viel Schreiber
    • Beiträge: 1.188
    • Geschlecht:
    send_order mit 3 Anhängen (Anhang für fax.html)
    Antwort #14 am: 13. August 2010, 09:17:31
    Um die Anhänge sprachabhängig zu machen was in mehrsprachigen Shops Sinn macht

    Folgendes suchen:

    Code: PHP  [Auswählen]
    // Array-Anhänge
        $path_to_attachement = array();
        $path_to_attachement[] = DIR_FS_DOCUMENT_ROOT . 'media/content/AGB.pdf';
        $path_to_attachement[] = DIR_FS_DOCUMENT_ROOT . 'media/content/widerrufsbelehrung.pdf';

    ändern in:

    Code: PHP  [Auswählen]
    // Array-Anhänge
        $path_to_attachement = array();
        $path_to_attachement[] = DIR_FS_DOCUMENT_ROOT . 'media/content/'.$_SESSION['language'].'/AGB.pdf';
        $path_to_attachement[] = DIR_FS_DOCUMENT_ROOT . 'media/content/'.$_SESSION['language'].'/widerrufsbelehrung.pdf';

    (nicht vergessen die Ordner anzulegen und die Dateien hinein zu kopieren.)

    auch die Zeile:

    Code: PHP  [Auswählen]
    $path_to_more_attachements[] = DIR_FS_DOCUMENT_ROOT . 'fax.pdf'; //fax.html ist Original

    ändern in:

    Code: PHP  [Auswählen]
    $path_to_more_attachements[] = DIR_FS_DOCUMENT_ROOT . 'fax_'.$_SESSION['language'].'.pdf'; //fax.html ist Original

    und sicherstellen, dass beide Dateien vorhanden sind.

    Gruss
    mantis
    8 Antworten
    5334 Aufrufe
    20. Februar 2012, 21:05:50 von thomas673
    2 Antworten
    361 Aufrufe
    04. März 2024, 10:15:32 von CojaX89
    3 Antworten
    2993 Aufrufe
    13. Januar 2014, 23:37:32 von karsta.de