Moin,
dann will ich diese seit Jahren unbeantwortete Frage mal aufgreifen:
Ich habe in einer 3.0.3-Version mal auf einer OSC-Contribution ("purchase without account") aufbauend folgendes gemacht:
Mit folgenden Änderungen geht's bei mir (habe einige Zeilen auskommentiert, die aber zu Vergleichszwecken mit dem OSC-Code im Beispiel dringelassen):
Code:
PHP-Code:
//if (xtc_session_is_registered('noaccount')) {
// diese Abfrage funzt in XTC 3.0.3 nicht, deshalb...
if( $_SESSION['account_type'] == '1' ){
//$order_update = array('purchased_without_account' => '1');
//xtc_db_perform(TABLE_ORDERS, $order_update, 'update', "orders_id = '".$orders['orders_id']."'");
// dieses Feld gibt es in XTC 3.0.3 nicht!
// xtc_db_query("insert into " . TABLE_ORDERS . " (purchased_without_account) values ('1') where orders_id = '" . (int)$orders['orders_id'] . "'");
xtc_db_query("delete from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . xtc_db_input($_SESSION['customer_id']) . "'");
xtc_db_query("delete from " . TABLE_CUSTOMERS . " where customers_id = '" . xtc_db_input($_SESSION['customer_id']) . "'");
xtc_db_query("delete from " . TABLE_CUSTOMERS_INFO . " where customers_info_id = '" . xtc_db_input($_SESSION['customer_id']) . "'");
xtc_db_query("delete from " . TABLE_CUSTOMERS_BASKET . " where customers_id = '" . xtc_db_input($_SESSION['customer_id']) . "'");
xtc_db_query("delete from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where customers_id = '" . xtc_db_input($_SESSION['customer_id']) . "'");
xtc_db_query("delete from " . TABLE_WHOS_ONLINE . " where customer_id = '" . xtc_db_input($_SESSION['customer_id']) . "'");
xtc_session_destroy();
}
...und das ganze eingebaut am Ende von checkout_success.php zwischen
PHP-Code:
$smarty->caching = 0;
und
PHP-Code:
if (!defined(RM))
Fazit: Kunde wird sofort nach Abschluss der Bestellung gelöscht (
wenn er sie denn auch abschliesst...) und kann sich sofort danach einen Account anlegen oder wieder als Gast bestellen ("Herzlich Willkommen Gast") - echt knorke!
Danke auch an Jansen, der mir den richtigen Tipp (in einem anderen Forum...) gab!
Cheers,
IaN