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: ANLEITUNG: Zusätzliches Kommentarfeld in checkout_payment Seite einfügen

    Alex_CC

    • Frisch an Board
    • Beiträge: 51
    • Geschlecht:
    Hallo except,

    soweit ich es verstehe, möchtest Du einen einzelnen Wert (Referenznummer) hinzufügen. Order-History ist für wechselnde Werte wie den Status einer Bestellung mit einem Kommentar, warum der Status sich geändert hat. Lass einfach mal Schritt 1 bis 3 weg und befolge die Schritte 4 bis 7. Damit hast Du einen Datenbankplatz für deinen Wert in der Datenbank, der geschrieben und ausgelesen wird. Statt den Schritten 1 bis 3, welche für die Eingabe im Shopbereich sind, hier eine Möglichkeit um die Eingabe als Admin zu machen.

    Zuerst erstellst Du ein Eingabefeld und schreibst den Wert in die Datenbank.

    Code: PHP  [Auswählen]
    <!-- Sprachen Ende //-->
    <br /><br />
    <!-- Referenz Anfang //-->
    <table border="0" width="100%" cellspacing="0" cellpadding="2">
        <tr class="dataTableHeadingRow">
            <td class="dataTableHeadingContent" width="100%" colspan="3"><b>Referenz</b></td>
        </tr>
        <?php
        echo xtc_draw_form('ref_edit', FILENAME_ORDERS_EDIT, 'action=ref_edit', 'post');
        ?>
        <tr class="dataTableRow">
            <td class="dataTableContent" align="left" width="30%">Referenznummer</td>
            <td class="dataTableContent" align="left" width="30%"><?php echo xtc_draw_input_field('extracomments', $order->info['extracomments']); ?></td>
            <td class="dataTableContent" align="left">&nbsp;</td>
        </tr>
        <tr class="dataTableRow">
            <td class="dataTableContent" align="left" colspan="3">
                <?php
                echo xtc_draw_hidden_field('old_currency', $order->info['currency']);
                echo xtc_draw_hidden_field('oID', $_GET['oID']);
                echo '<input type="submit" class="button" onclick="this.blur();" value="' . BUTTON_SAVE . '"/>';
                ?>
            </td>
        </tr>
        </form>
    </table>
    <!-- Referenz Ende //-->
    <br /><br />
    <!-- Währungen Anfang //-->
    (/admin/orders_edit_other.php, ~Zeile 66)

    Code: PHP  [Auswählen]
    // Sprachupdate Ende

    // Referenzupdate Anfang

    if ($action == 'ref_edit') {
        $sql_data_array = array('extracomments' => xtc_db_prepare_input($_POST['extracomments']));
        xtc_db_perform(TABLE_ORDERS, $sql_data_array, 'update', 'orders_id  = \'' . (int)($_POST['oID']) . '\'');
    }

    // Referenzupdate Ende

    // Währungswechsel Anfang
    (/admin/orders_edit.php, ~Zeile 683)

    [ Für Gäste sind keine Dateianhänge sichtbar ]
    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Dank Schritt 7 wird der Wert bereits in der Bestellübersicht angezeigt.

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Jetzt noch fix in die Rechnung einfügen.

    Code: PHP  [Auswählen]
    $smarty->assign('EXTRACOMMENTS', $order->info['extracomments']);
    (/admin/print_order.php, ~Zeile 72)

    Code: Text  [Auswählen]
    {if $EXTRACOMMENTS}<strong>Referenz:</strong> {$EXTRACOMMENTS}<br />{/if}
    (/templates/[your_template]/module/print_order.html, ~Zeile 31)

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    So kannst Du den entsprechenden Referenzwert zur Bestellung speichern und auf der Rechnung ausgeben.

    Ich hoffe, das hilft. :)

    VG, Alex

    except

    • Fördermitglied
    • Beiträge: 69
    Hi Alex

    Danke.
    Müsste aber in Zeile 19 nicht das hier stehen?

    Code: PHP  [Auswählen]
    echo xtc_draw_hidden_field('old_referenz', $order->info['referenz']);

    anstatt was hier in Zeile 19 steht??

    Code: PHP  [Auswählen]
        <!-- Sprachen Ende //-->
        <br /><br />
        <!-- Referenz Anfang //-->
        <table border="0" width="100%" cellspacing="0" cellpadding="2">
            <tr class="dataTableHeadingRow">
                <td class="dataTableHeadingContent" width="100%" colspan="3"><b>Referenz</b></td>
            </tr>
            <?php
            echo xtc_draw_form('ref_edit', FILENAME_ORDERS_EDIT, 'action=ref_edit', 'post');
            ?>
            <tr class="dataTableRow">
                <td class="dataTableContent" align="left" width="30%">Referenznummer</td>
                <td class="dataTableContent" align="left" width="30%"><?php echo xtc_draw_input_field('extracomments', $order->info['extracomments']); ?></td>
                <td class="dataTableContent" align="left">&nbsp;</td>
            </tr>
            <tr class="dataTableRow">
                <td class="dataTableContent" align="left" colspan="3">
                    <?php
                    echo xtc_draw_hidden_field('old_currency', $order->info['currency']);
                    echo xtc_draw_hidden_field('oID', $_GET['oID']);
                    echo '<input type="submit" class="button" onclick="this.blur();" value="' . BUTTON_SAVE . '"/>';
                    ?>
                </td>
            </tr>
            </form>
        </table>
        <!-- Referenz Ende //-->
        <br /><br />
        <!-- Währungen Anfang //-->

    Gruss Except

    except

    • Fördermitglied
    • Beiträge: 69
    Hallo Alex

    Habs mal so gemacht, wie ich es gerade geschrieben hatte und es funktioniert. :thumbs:

    Das Danke vorhin war in der Hitze des Gefechts ein bisschen knapp ausgefallen  :oops:

    Also nochmals VIELEN VIELEN DANK!!!!! Echt super von dir! :thx: :pro:

    Gruss
    Except

    Alex_CC

    • Frisch an Board
    • Beiträge: 51
    • Geschlecht:
    Hallo Except,

    dieses "old_currency" bzw. "old_referenz" Feld kann man weglassen, da es eh nicht ausgelesen wird. Wichtig sind natürlich nur das "referenz" sowie das "oID" Feld. Dann hoffe ich mal, dass es euch jetzt leichter fällt, die E-Mail-Bestellungen von Kunden zu verarbeiten. Allzeit gute Umsätz. :)

    VG, Alex

    ND

    • Neu im Forum
    • Beiträge: 8
    • Geschlecht:
    Hallo Experten,

    ich weiß das Thema ist schon älter, aber ich versuche schon seit Tagen den Inhalt des EXTRACOMMENT-Feldes auszulesen und in der account.html im Abschnitt getätigte Bestellungen, in einer spalte, anzeigen zu lassen. Ich bekomme es einfach nicht hin. Die Shopversion ist 1.06.

    Vielen Dank für euere Hilfe im voraus!

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 10.248
    • Geschlecht:
    Da drängt sich die Frage auf: "Was hast du denn versucht ?"

    Gruß,
    noRiddle

    Alex_CC

    • Frisch an Board
    • Beiträge: 51
    • Geschlecht:
    Hallo ND,

    wie es der Zufall so will, habe ich noch ein E-Mail-Abo auf diesen Thread. ;) Ich habe mir mal die neuste modified v1.06 runtergeladen und den Code angesehen. Da ich aktuell auf dem Rechner nur PHP 7.2 habe, kann ich es leider nicht selbst testen, aber ich denke folgendenes sollte funktionieren:

    In der Datei /account.php im Hauptverzeichnis werden die Daten aus der Datenbank zusammen getragen. Bei mir Zeile 71.

    Code: PHP  [Auswählen]
    $orders_query = xtc_db_query("select
                                              o.orders_id,
                                              o.date_purchased,
                                              o.delivery_name,[...]

    Hier fügst du eine Zeile mit "o.extracomments," ein, sofern du das Datenbankfeld so benannt hast. (Komma nicht vergessen!)

    Dann geht es bei mir weiter in Zeile 97, wo das SELECT-Ergebnis in die Variable $order_content geschrieben wird, welche später an das Template übergeben wird.

    Code: PHP  [Auswählen]
    $order_content[] = array([...])

    Hier fügst du folgendes ein:

    Code: PHP  [Auswählen]
    $order_content[] = array('EXTRA_COMMENTS' => $orders['extracomments'], [...])

    Die Reihenfolge der einzelnen Werte im Array ist egal, daher kann es auch vorne dran. Das Gleiche gilt für die SQL-Abfrage weiter vorn.

    Jedenfalls hast du jetzt alle Werte in einem Array und die dazugehörige Variable wird kurz darauf an Smarty übergeben, bei mir in Zeile 115.

    Code: PHP  [Auswählen]
    $smarty->assign('order_content', $order_content);

    Und jetzt musst du nur noch innerhalb der /templates/[template]/module/account.html in der foreach-Schleife für $order_content (beginnt bei mir in Zeile 27), deinen Wert ausgeben.

    Code: PHP  [Auswählen]
    {foreach name=aussen item=order_data from=$order_content}{$order_data.EXTRA_COMMENTS}

    Natürlich nicht zwangsweise direkt danach, sondern wo immer du willst. :)

    Hoffe es klappt so, wie du es dir vorstellst.

    VG, Alex

    ND

    • Neu im Forum
    • Beiträge: 8
    • Geschlecht:
    Hallo Alex,

    vielen, vielen Dank für die Hilfe! Hat super funktioniert! Konnte mit der mit Hilfe deiner Anleitung es noch in die account_history einbauen.

    VG ND

    Alex_CC

    • Frisch an Board
    • Beiträge: 51
    • Geschlecht:
    Hallo ND,

    freut mich, dass ich helfen konnte.   :-) :bye:

    VG Alex
    6 Antworten
    4362 Aufrufe
    29. April 2015, 12:23:40 von moscbabe
    3 Antworten
    2034 Aufrufe
    05. Januar 2012, 16:32:02 von sweettigerpunk
    9 Antworten
    4672 Aufrufe
    11. März 2011, 16:05:38 von Tomcraft
    4 Antworten
    1627 Aufrufe
    18. Mai 2016, 11:58:58 von webald
    anything