Jump to content
xt:Commerce Community Forum

Bemerkung auf der Bestätigungsseite


psn

Recommended Posts

  • 7 months later...

Hi,

ich hab es zwar nicht genau überprüft, aber der Fehler dürfte folgende Ursache haben:

In der checkout.php wird relativ weit unten folgende Abfrage gemacht:


if($page->page_action=='success'){
include 'xtCore/pages/page_action/checkout.success.php';
}
[/PHP]

In diesem File checkout.success.php wird die letzte Bestellung instanziert:

[PHP]
$success_order = new order($_SESSION['success_order_id'],$_SESSION['customer']->customers_id);
[/PHP]

dieses Array $success_order wird aber nicht an das Template übergeben, und daher funktioniert der Platzhalter nicht.

Bugfix:

in der checkout.success.php in Zeile 52 oder in der Nähe findet sich:

[PHP]
$checkout_data = array('page_action'=>$page_data,'show_next_button'=>$_show);
[/PHP]

ändern in:

[PHP]
$checkout_data = array('page_action'=>$page_data,'show_next_button'=>$_show,'order' => $success_order);
[/PHP]

Dann sollte über {$order.comments} oder ähnlich der platzhalter funktionieren.

Zumindest solte über {$order|@print_r} mal das gesamte Order-Objekt auftauchen. Dann findet Ihr sicher selbst den richtigen Wert.

Link to comment
Share on other sites

Hallo ph1975,

danke für die schnelle Antwort. Leider funktioniert es nicht.

Müsste das Problem nicht eher in den Dateien "subpage_confirmation.html" oder "checkout.confirmation.php" liegen, weil die Einträge in das Feld "Bemerkungen" auf der confirmation-Seite nicht eingelesen oder aufgerufen werden.

Vorhanden sind die Einträge aber, denn in der E-Mail kommen sie an und im Adminbereich werden sie auch angezeigt.

Mit meinen bescheidenen php-Kenntnissen kriege ich es aber nicht raus.

Sonnige Grüße

Link to comment
Share on other sites

Hi Buchenkauz,

also, ich habs bei mir im Testshop nachgespielt. Funktioniert eigentlich soweit ich das beurteilen kann wunderbar.

Was habe ich gemacht?

im File xtCore/pages/page_action/checkout.success.php folgende Änderung bei mir in Zeile 52 (kann bei Dir eine andere sein)


$checkout_data = array('page_action'=>$page_data,'show_next_button'=>$_show);
[/PHP]

geändert in:

[PHP]
$checkout_data = array('page_action'=>$page_data,'show_next_button'=>$_show, 'order' => $success_order);
[/PHP]

Dann im File:

templates/<TemplateVerzeichnis>/xtCore/pages/checkout/subpage_success.html

testweise ganz oben eingefügt:

[PHP]{$order|@print_r}[/PHP]

dann wird mir nach Durchführung einer Bestellung das gesamte Order-Objekt ausgegeben.

Auf die Comments kommst Du dann mit

{$order.order_data.comments}

Gib mal Bescheid ob´s geklappt hat.

Gruss,

Ph

Link to comment
Share on other sites

Hallo ph1975,

ich glaube es liegt ein Missverständnis vor.

Dein Vorschlag funktioniert und ich bekam alle Daten der Bestellung zu sehen, aber erst nach Abschluß der Bestellung. Ich will die eingetragenen Bemerkungen aber schon auf der Bestätigungsseite sehen.

Mit

{$order.order_data.comments}

kann ich die eingetragenen Bemerkungen auf der confirmation-Seite (Bestätigungsseite) nicht eingelesen. Auch nicht mit:

{$order_data.comments} oder

{$comments}

Hast du nicht auch einen Variablenaufruf (nennt man das so) für die "checkout.confirmation.php" oder "checkout.php", der dann in der "subpage_confirmation.html" verwendet werden kann. Durch eigenes Grübeln komm ich nicht drauf.

Werden die Bemerkungen erst nach der Bestätigung auf der letzten Seite als order.order_data.comments angelegt und liegen bis dahin nur in einer Variablen?

Danke schon mal und Grüsse.

Link to comment
Share on other sites

Hi Buchenkauz,

sorry, dass hatte ich wirklich überlesen und ja, geht genauso.

Die gesamten Daten sind bis zur Confirmation-Page in der Session-Variable und dort im Cart-Objekt gespeichert.

in der checkout.confirmation.php (xtCore/pages/page_action) ganz am Ende findest Du:


$data = array('data' => $_SESSION['cart']->show_content,
'payment_info' => $payment_info,
'shipping_info' => $shipping_info,
'post_form' => $post_form,
'sub_total' => $_SESSION['cart']->content_total['formated'],
'sub_data' => $_SESSION['cart']->show_sub_content,
'tax' => $_SESSION['cart']->tax,
'total' => $_SESSION['cart']->total['formated']
);
[/PHP]

Dabei enthält $_SESSION['cart']->show_content die gesamten Warenkorbinhalte und vermutlich auch den Comment. Dies wird in die "data" Variable an Smarty/Template übergeben.

Versuch einfach mal im confirmation-template folgenden Platzhalter:

{$data|@print_r}

vermutlich ist es sowas wie {$data.comments}

Grüße,

Ph

Link to comment
Share on other sites

danke für deine Geduld,

Ich kann den Inhalt des Warenkorbes wie vorgeschlagen anzeigen.

Die Bemerkungen sind nicht darin gespeichert.

Aufrufen konnte ich noch die Variablen von "checkout.confirmation.php":

$payment_info

$shipping_info

Auch darin sind die Bemerkungen nicht gespeichert.

Wenn ich das richtig sehe, werden die Bemerkungen in "checkout.php"

erst in die Session-Variable in das Objekt order_comments (Zeile 155-157)

und dann in die Variable $comments und als array in $order_data (Zeile 218)

gespeichert.

Ich kann in "subpage_confirmation.html" mit {$order_data|@print_r} aber diese Daten nicht aufrufen. Es erscheint nur eine "1".

Hast du noch Geduld?

Dieses Problem müssten doch viele haben. Der Kunde sollte doch alle eingegebenen Daten überprüfen können.

Grüße in die sternenklare Nacht.

Link to comment
Share on other sites

Versuch mal folgendes - ich habe die Comments bei mir abgestellt, daher kann ich es nicht wirklich testen.

Die Comments werden nach $_SESSION['order_comments'] geschrieben.

Du kannst per Smarty/Template Befehle direkt die Session-Daten auslesen mit:


{$smarty.session.order_comments}
[/PHP]

Sollte klappen.

Link to comment
Share on other sites

  • 2 months later...

hallo,

habe ein ähnliches Problem.

Möchte gerne die Kunden mail Adresse auf der checkout/success.html Seite ausgeben.

Dachte ich könnte das im tamplate subpage_success.html mit

{$smarty.session.customers_email_address}
hinbekommen. geht leider nicht. Mit der Auftragsnummer geht es super hier habe ich:
{$smarty.session.success_order_id}[/code]


so gibt mir die Seite die Richtige Order ID aus.



Habe bei der email auch versucht:

[CODE]{$smarty.session.customer.customer_info.customers_email_address}[/code]

Mit dem Erfolg, das es mir das ganze Layout/Template zerschießt.

Hat jemand einen schnellen Rat bzw. Tip

Vielen Dank!

Link to comment
Share on other sites

hi,

liegt daran, das die E-Mail-Adresse im Objekt 'customer' und nicht in einer einfachen Variablen gespeichert ist !

{php}

$customers_email_address = $_SESSION['customer']->customer_info['customers_email_address'];

$this->assign('customers_email_address',$customers_email_address);

{/php}

{$customers_email_address}

Grüsse

Link to comment
Share on other sites

  • 8 months later...

... danke schön ...

... in der kombination mit dieser seite für das traversing durch die objekte in smarty:

Smarty Zugriff auf Arrays und Objekte

wer es mal in subpage_success ohne session ausprobieren will (nachdem jemand per "vorkasse-zahlung" ausgewählt hat):


{if $success_order->order_data.payment_code == 'xt_prepayment'}

  {$success_order->order_total.total.formated}

{/if}

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...