Habe noch einmal am Hauptrechner nachgeschaut, Dein auskommentieren der Payment-Session ist richtig und umgeht die Payment unabhängig davon welches Zahlungsmodul gewählt ist, allerdings ist in diesem Fall auch keine Zahlungsmethode in der Session, was bedeutet, dass ab da auch keine Zahlungsmethode mehr in der Bestellung verfügbar ist.
Sollte also passen.
Ich versuche das jetzt nochmal komplett zu machen für 2.0.4.2 um dem Titel des Themas gerecht zu werden und späteren Suchenden ein Gesamtbild zu geben.
Datei: checkout_shipping.php
Suche:
if ((!isset($_SESSION['shipping']) && CHECK_CHEAPEST_SHIPPING_MODUL
== 'true') || (isset($_SESSION['shipping']) && ($_SESSION['shipping'] == false) && (xtc_count_shipping_modules
() > 1))) { $_SESSION['shipping'] = $shipping_modules->cheapest();} Füge danach ein:
// Beginn: Umleitung FILENAME_CHECKOUT_SHIPPING
if (xtc_count_shipping_modules() == 1){ // Faster Checkout SE
$_SESSION['shipping'] = $shipping_modules->cheapest();
xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_CONFIRMATION, '', 'SSL'));
}
// Ende: Umleitung FILENAME_CHECKOUT_SHIPPING
Da wir ja die Session umgehen könnte auch jeder in die checkout_confirmation.php springen indem er diese direkt ansteuert, deshalb muß noch folgendes in die checkout_confirmation.php:
Datei: checkout_confirmation.php
Suche (ganz oben) :
include ('includes/application_top.php');
füge danach ein:
// Beginn: Wenn Warenkorb leer dann zurück zur shopping_cardif ($_SESSION['cart']->count_contents() < 1) xtc_redirect
(xtc_href_link
(FILENAME_SHOPPING_CART
)); // Ende: Beginn: Wenn Warenkorb leer dann zurück zur shopping_card// Beginn: Ist der User nicht angemeldet dann schicke ihn zurück zur create_quest_accountif (!isset ($_SESSION['customer_id'])) xtc_redirect
(xtc_href_link
(FILENAME_CREATE_QUEST_ACCOUNT
, '', 'SSL'));// Ende: Ist der User nicht angemeldet dann schicke ihn zurück zur create_quest_account Anmerkung: FILENAME_CREATE_QUEST_ACCOUNT gegebenenfalls auf die create_account setzen.
Suche:
// GV Code line changedif ((is_array($payment_modules->modules) Ersetze in diesem Block die Zeile:
xtc_redirect
(xtc_href_link
(FILENAME_CHECKOUT_PAYMENT
, 'error_message=' . urlencode(ERROR_NO_PAYMENT_MODULE_SELECTED
), 'SSL'));mit folgendem:
// Beginn: Umleitung FILENAME_CHECKOUT_PAYMENT wenn checkout_confirmation neu geladen wird
// xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(ERROR_NO_PAYMENT_MODULE_SELECTED), 'SSL'));
// Ende: Umleitung FILENAME_CHECKOUT_PAYMENT wenn checkout_confirmation neu geladen wird
Das sollte eigentlich funktionieren, zumindest wenn ich nichts übersehen habe.
Dieser Teil ist bei mir ebenfalls auskommentiert, jedoch kann ich nicht garantieren, dass dieser zu der Umleitung gehört, das weiß ich gerade nicht und schreibe ihn deshalb nur mit hier hin, falls er dazu gehören sollte, es ist schlicht zu lange her um mich daran zu erinnern, außerdem fehlt mir hier die genaue Bezeichnung:
//if ($_SESSION['sendto'] != false) {
// if ($order->info['shipping_method']) {
// $smarty->assign('SHIPPING_METHOD', $order->info['shipping_method']);
// $smarty->assign('SHIPPING_EDIT', xtc_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
// }
//}
So das sollte es eigentlich gewesen sein.
Gruß