Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:

Autor Thema: ANLEITUNG: Zusätzliches Kommentarfeld in checkout_payment Seite einfügen  (Gelesen 9246 mal)

Offline Alex_CC

  • Frisch an Board
  • **
  • Beiträge: 51
  • Geschlecht: Männlich
    • Teile Beitrag
    • GitHub
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

Offline except

  • Fördermitglied
  • *****
  • Beiträge: 69
    • Teile Beitrag
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

Offline except

  • Fördermitglied
  • *****
  • Beiträge: 69
    • Teile Beitrag
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

Offline Alex_CC

  • Frisch an Board
  • **
  • Beiträge: 51
  • Geschlecht: Männlich
    • Teile Beitrag
    • GitHub
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

Offline ND

  • Neu im Forum
  • *
  • Beiträge: 7
  • Geschlecht: Männlich
    • Teile Beitrag
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!

Offline noRiddle

  • Experte
  • *****
  • Beiträge: 10.070
  • Geschlecht: Männlich
    • Teile Beitrag
    • Webdesign Bonn - Köln
Da drängt sich die Frage auf: "Was hast du denn versucht ?"

Gruß,
noRiddle

Offline Alex_CC

  • Frisch an Board
  • **
  • Beiträge: 51
  • Geschlecht: Männlich
    • Teile Beitrag
    • GitHub
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

Offline ND

  • Neu im Forum
  • *
  • Beiträge: 7
  • Geschlecht: Männlich
    • Teile Beitrag
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

Offline Alex_CC

  • Frisch an Board
  • **
  • Beiträge: 51
  • Geschlecht: Männlich
    • Teile Beitrag
    • GitHub
Hallo ND,

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

VG Alex


Teile per facebook Teile per linkedin Teile per twitter

 


             
anything