Man kann im invoice Zahlungsmodul einstellen wie viele Bestellungen der Kunde haben muss, um per Rechnung zahlen zu können.
Die Abfrage im Modul filtert allerdings nicht, sprich egal ob der Bestellstatus PayPal Abbruch, storniert, offen usw. ist.
Durch die nachfolgenden Änderungen kann man beim Modul einstellen, welche Bestellstatus berücksichtigt werden und welches Mindestalter diese haben müssen.
Folgenden SQL Befehl in der Datenbank ausführen:
INSERT INTO `configuration` (`configuration_id`, `configuration_key`, `configuration_value`, `configuration_group_id`, `sort_order`, `last_modified`, `date_added`, `use_function`, `set_function`) VALUES (NULL, 'MODULE_PAYMENT_INVOICE_ORDER_STATUS', '3', '6', '0', NULL, NOW(), NULL, NULL), (NULL, 'MODULE_PAYMENT_INVOICE_ORDER_DATE', '15', '6', '0', NULL, NOW(), NULL, NULL);
In die lang/german/modules/payment/invoice.php folgendes ans Ende vor "?>" einfügen:
define('MODULE_PAYMENT_INVOICE_ORDER_STATUS_TITLE' , 'Notwendige Bestellungen - Bestellstatus');define('MODULE_PAYMENT_INVOICE_ORDER_STATUS_DESC' , 'Bei der Anzahl an Bestellungen zählen nur solche, die einen der folgenden Bestellstatus haben (ID, mit Komma getrennt).');define('MODULE_PAYMENT_INVOICE_ORDER_DATE_TITLE' , 'Notwendige Bestellungen - Mindestalter');define('MODULE_PAYMENT_INVOICE_ORDER_DATE_DESC' , 'Bei der Anzahl an Bestellungen zählen nur solche, die älter als x Tage sind (0 = egal).'); In die lang/english/modules/payment/invoice.php folgendes ans Ende vor "?>" einfügen:
define('MODULE_PAYMENT_INVOICE_ORDER_STATUS_TITLE' , 'Minimum Orders - Orders status');define('MODULE_PAYMENT_INVOICE_ORDER_STATUS_DESC' , 'The number of orders only include one of the following order status (ID, comma separated).');define('MODULE_PAYMENT_INVOICE_ORDER_DATE_TITLE' , 'Minimum Orders - minimum age');define('MODULE_PAYMENT_INVOICE_ORDER_DATE_DESC' , 'The number of orders include only those that are older than x days (0 = no matter).'); Nun
entweder die includes/modules/payment/invoice mit der im Anhang ersetzen
oder folgende Änderungen selber durchführen:
Suche:
function update_status() {
global $order;
Danach einfügen:
if(MODULE_PAYMENT_INVOICE_ORDER_DATE
> 0) $min_date = " AND date_purchased <= '".date('Y-m-d', strtotime('-'.MODULE_PAYMENT_INVOICE_ORDER_DATE
.' days'))."'"; Suche:
$check_order_query = xtc_db_query("select count(*) as count from ".TABLE_ORDERS." where customers_id = '".(int) $_SESSION['customer_id']."'");
Ersetze mit:
$check_order_query = xtc_db_query("select count(*) as count from ".TABLE_ORDERS." where customers_id = '".(int) $_SESSION['customer_id']."' AND orders_status IN(".MODULE_PAYMENT_INVOICE_ORDER_STATUS.")".$min_date."");
Suche:
xtc_db_query("insert into ".TABLE_CONFIGURATION." ( configuration_key, configuration_value, configuration_group_id, sort_order, set_function, use_function, date_added) values ('MODULE_PAYMENT_INVOICE_ORDER_STATUS_ID', '0', '6', '0', 'xtc_cfg_pull_down_order_statuses(', 'xtc_get_order_status_name', now())");
Danach einfügen:
xtc_db_query("insert into ".TABLE_CONFIGURATION." ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_PAYMENT_INVOICE_ORDER_STATUS', '3', '6', '0', now())");
xtc_db_query("insert into ".TABLE_CONFIGURATION." ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_PAYMENT_INVOICE_ORDER_DATE', '15', '6', '0', now())");
Suche:
return array ('MODULE_PAYMENT_INVOICE_STATUS', 'MODULE_PAYMENT_INVOICE_ALLOWED', 'MODULE_PAYMENT_INVOICE_ZONE', 'MODULE_PAYMENT_INVOICE_ORDER_STATUS_ID', 'MODULE_PAYMENT_INVOICE_MIN_ORDER', 'MODULE_PAYMENT_INVOICE_SORT_ORDER'); Ersetze mit:
return array ('MODULE_PAYMENT_INVOICE_STATUS', 'MODULE_PAYMENT_INVOICE_ALLOWED', 'MODULE_PAYMENT_INVOICE_ZONE', 'MODULE_PAYMENT_INVOICE_ORDER_STATUS_ID', 'MODULE_PAYMENT_INVOICE_MIN_ORDER', 'MODULE_PAYMENT_INVOICE_SORT_ORDER', 'MODULE_PAYMENT_INVOICE_ORDER_STATUS', 'MODULE_PAYMENT_INVOICE_ORDER_DATE'); Nun kann im Backend beim Zahlungsmodul die Bestellstatus und das mindestalter in Tagen eintragen.
Viel Spaß damit.
Linkback: https://www.modified-shop.org/forum/index.php?topic=24940.0