Shop Support News Archive - Shopbetreiber News -> Forum : GPL Software xt eCommerce Templates Module SEO Support: 3.04sp2.1 Support: Zusatzfeld In Checkout_payment.php
koreagonstudio
23.05.2006, 13:41
Hi Leute,
ich habe eine Sonderfrage für PHP Masters!!
Ich möchte in checkout_payment ein feld eintrage, wo der Kunden Wählen kann, um wie viel uhr die Ware angeliefert werden soll. (s. Bild).
Habe ich jetzt mit HTML gemacht, aber dieser eingabe soll in Bestellung scheinen ( quasi wie $COMMENTS ).
Ein Drop menu wäre super, aber leider habe ich keine kentnisse von PHP.
<select name="Lieferung">
<option>Vormittag</option>
<option selected="selected">Nachmittag</option>
</select>
so ein Ding, aber auf PHP...
Danke!!!
''>ZITAT(koreagonstudio @ May 23 2006, 13:41) 5324
ich habe eine Sonderfrage für PHP Masters!!
....
aber leider habe ich keine kentnisse von PHP.
[/b]
Welche Frage hast du denn?
Gruss
Hen
koreagonstudio
23.05.2006, 14:29
''>ZITAT(hendrik @ May 23 2006, 14:25) 5325
Welche Frage hast du denn?
Gruss
Hen
[/b]
Ich möchte in checkout_payment ein feld eintragen, wo der Kunden Wählen kann, um wie viel uhr die Ware angeliefert werden soll. (s. Bild).
....dieser eingabe soll in Bestellung scheinen ( quasi wie $COMMENTS ).
''>ZITAT(koreagonstudio @ May 23 2006, 14:29) 5326
Ich möchte in checkout_payment ein feld eintragen, wo der Kunden Wählen kann, um wie viel uhr die Ware angeliefert werden soll. (s. Bild).
....dieser eingabe soll in Bestellung scheinen ( quasi wie $COMMENTS ).
[/b]
Allein das Template ändern genügt nicht. Wenn du allein das Template änderst, würde das Dropdownmenü lediglich angezeigt. Damit die Information (Auswahl Lieferzeit) vom System eingelesen, gespeichert und verarbeitet wird muß die Software geändert werden.
Ganz ohne php-Kenntnisse geht das nicht. Allerdings wenn du nur ne Lösung mit wirklich minimalem Aufwand brauchst, könnte man das so machen. Es wird ein Dropdownfeld eingefügt und die Software fügt dir eine Zeile ins Kommentarfeld ein ("Lieferung Vormittag", "Nachmittag", sonstwann).
Das kann man m.E. mit wenigen Programmzeilen hinbekommen.
Gruss
Hen
koreagonstudio
24.05.2006, 07:58
DAs wäre schon optimal, eien riesige änderung brauche ich nicht, nur irgendwie die Lieferzeit lesen können (und natürlich der Kunde aufmerksam machen dass er den Feld eintragen müss.....)
grüsse
Koreagonstudio
1.)
Datei checkout_payment.php, Zeile 120 ca.
Suche folgenden Codeabschnitt:
Original:
$smarty->assign('FORM_ACTION', xtc_draw_form('checkout_payment', xtc_href_link(FILENAME_CHECKOUT_CONFIRMATION, '', 'SSL'), 'post', 'onSubmit="return check_form();"'));
$smarty->assign('ADDRESS_LABEL', xtc_address_label($_SESSION['customer_id'], $_SESSION['billto'], true, ' ', '
'));
$smarty->assign('BUTTON_ADDRESS', ''.xtc_image_button('button_change_address.gif' , IMAGE_BUTTON_CHANGE_ADDRESS).' ('.xtc_href_link(FILENAME_CHECKOUT_PAYMENT_ADDRESS , '', 'SSL').')');
$smarty->assign('BUTTON_CONTINUE', xtc_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE));
$smarty->assign('FORM_END', '</form>');
require (DIR_WS_INCLUDES.'header.php');
Dort fügst du das kommentierte ein:
Geändert:
$smarty->assign('FORM_ACTION', xtc_draw_form('checkout_payment', xtc_href_link(FILENAME_CHECKOUT_CONFIRMATION, '', 'SSL'), 'post', 'onSubmit="return check_form();"'));
$smarty->assign('ADDRESS_LABEL', xtc_address_label($_SESSION['customer_id'], $_SESSION['billto'], true, ' ', '
'));
$smarty->assign('BUTTON_ADDRESS', ''.xtc_image_button('button_change_address.gif' , IMAGE_BUTTON_CHANGE_ADDRESS).' ('.xtc_href_link(FILENAME_CHECKOUT_PAYMENT_ADDRESS , '', 'SSL').')');
$smarty->assign('BUTTON_CONTINUE', xtc_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE));
$smarty->assign('FORM_END', '</form>');
// --- Extrafeld Lieferzeit ---- anfang ----------
// Texte:************im Kommentartext******************** im Dropdownmenue
$dt_val[0]['id'] = "Lieferung: morgens";****$dt_val[0]['text']="morgens";
$dt_val[1]['id'] = "Lieferung: mittags";****$dt_val[1]['text']="mittags";
$dt_val[2]['id'] = "Lieferung: abends";**** $dt_val[2]['text']="abends";
// ggf. überzählige Zeilen löschen, oder weitere hinzu, Indexwerte (0,1,2,..) hochzählen
$dt_default = 2;******// <-- Index Defaultwert (Voreinstellung) eintragen
$dt_field = xtc_draw_pull_down_menu("deliverytime", $dt_val, $dt_val[$dt_default]['id']);
$smarty->assign('DELIVERYTIME', $dt_field);
// --- Extrafeld Lieferzeit ---- ende ----------
require (DIR_WS_INCLUDES.'header.php');
2.)
Datei checkout_confirmation.php, Zeile 67 ca.
Original:
if ($_POST['comments_added'] != '')**********************
****$_SESSION['comments'] = xtc_db_prepare_input($_POST['comments']);
Geändert:
if ($_POST['comments_added'] != '')**********************
****$_SESSION['comments'] = xtc_db_prepare_input($_POST['comments'])."\n\n".xtc_db_prepare_input($_POST['deliverytime']);
//****$_SESSION['comments'] = xtc_db_prepare_input($_POST['comments']);
3.)
templates/<dein template>/module/checkout_payment.html
Einfügung "{$DELIVERYTIME}" an jener Stelle wo das Dropdownmenü erscheinen soll.
Ist nicht ganz sauber diese Lösung. Eigentlich sollten die Texte aus 1.) in den language-Files liegen (mehrsprachiger Betrieb des Systems nicht mehr möglich). ;)
Gruss
Hen
koreagonstudio
24.05.2006, 11:57
Ehy das siht gut aus, ich werde bald probieren!!!
Erstmal vielen dank!!!
Koreagonstudio
koreagonstudio
24.05.2006, 16:34
Es Funktnioniert!!!!!!
und wie!!!
Wirklich toll, vielen vielen Dank.
Sorry, muss das Thema nochmal nach oben schubsen :unsure:
Viellenicht liest es ja jetzt jemand der weiterhelfen kann?
moin,
hab jetzt auch ewig rumprobiert:
Mach mal folgendes:
in checkout_shipping.php
unter die zeile:
require (DIR_WS_CLASSES.'http_client.php');
(ca. zeile 43)
einfügen:
if(isset($_POST['deliverytime'])) {
$_SESSION['nc_deliverytime'] = $_POST['deliverytime'];
}
in der template-datei order_mail.html einfügen:
{php} echo $_SESSION['nc_deliverytime'] {/php}
Zusätzlich habe ich das noch in der checkout_confirmation.html eingebaut. So hat man am Ende eine saubere Zusammenfassung.
Gruß
Super, so funktioniert es. Danke.
Von den Sessions hab ich keine Ahnung, da habe ich mich bisher nicht rangetraut. Aber soo kompliziert scheint es ja nicht zu sein :D
Hallo zusammen,
ich hab das auch mal ausprobiert und sehe auch das Dropdownfeld. Allerdings erscheint
in meiner ordermail (ich verwende TXT) nicht der ausgewählte Wert. Wenn ich von Hand einen Kommentar eingebe, erscheint dieser in der ordermail.
Muss ich in der ordermail.txt noch etwas verändern? Oder wo könnte der Fehler sonst liegen?
Danke & Gruß
nimedia
vBulletin® v3.8.4, Copyright ©2000-2012, Jelsoft Enterprises Ltd.