dazu habe ich nur im Archiv diesen Thread zu zc1.3.9 gefunden:
Ich nutze das Modul, um für eine bestimmte Zahlungsart eine Gebühr zu erheben (+0.35,+1.9%)
Meine Wünsche waren:
1. incl. Versandkosten und loworderfee
2. incl. Rabatt für Zahlungsart (die Gebühr für die Gebühr)
3. Prozent und Festbetrag sollen beide berücksichtigt werden.
Umsetzung:
Der Code steht in ..\NEUE DATEIEN\includes\modules\order_total\ot_paymentmod ulefee.php
Ich habe die folgende Function geschrieben, die die Werte aus der globalen Var. $order ausliest und den zu berücksichtigenden Preis zurückgibt.
(Das "Besorgen" der Werte für $lowOrderFee war mir zu aufwendig, deswegen sind sie hier fix eingetragen.)
Die Zeilen 49-58 in ot_paymentmodulefee.php habe ich geändert in
die Function adGet_fee() wird 2x aufgerufen,
das erste mal mit dem neu zusammengestellten Preis aus ad_getPrice($order)
das zweite mal wird die Gebühr für die Gebühr dazu addiert.
Die Function sieht so aus:
Ich hoffe, dass auch andere dies verwenden können und vielleicht finden sich hier noch weitere Vorschläge und Verbesserungen ein.
Ich nutze das Modul, um für eine bestimmte Zahlungsart eine Gebühr zu erheben (+0.35,+1.9%)
Meine Wünsche waren:
1. incl. Versandkosten und loworderfee
2. incl. Rabatt für Zahlungsart (die Gebühr für die Gebühr)
3. Prozent und Festbetrag sollen beide berücksichtigt werden.
Umsetzung:
Der Code steht in ..\NEUE DATEIEN\includes\modules\order_total\ot_paymentmod ulefee.php
Ich habe die folgende Function geschrieben, die die Werte aus der globalen Var. $order ausliest und den zu berücksichtigenden Preis zurückgibt.
(Das "Besorgen" der Werte für $lowOrderFee war mir zu aufwendig, deswegen sind sie hier fix eingetragen.)
PHP-Code:
function ad_getPrice($order) {
$lowOrderFee= ($order->info['subtotal'] <30)? 5:0; //these are fixed values. You can change them here only.
return ($order->info['subtotal']
+ $order->info['shipping_cost']
+ $order->info['shipping_tax']
+ $lowOrderFee);
}
PHP-Code:
// not needed anymore //$key = array_search($_SESSION['payment'], $this->payment_modules);
$this->payment_fees = explode(',', MODULE_ORDER_TOTAL_PAYMENTMODULEFEE_FEE);
// not needed anymore //$this->payment_fee = $this->payment_fees[$key];
$payment_module_fee=$this->adGet_fee( $this->ad_getPrice($order) );
$payment_module_fee +=$this->adGet_fee( $payment_module_fee, 'TRUE' );
das erste mal mit dem neu zusammengestellten Preis aus ad_getPrice($order)
das zweite mal wird die Gebühr für die Gebühr dazu addiert.
Die Function sieht so aus:
PHP-Code:
function adGet_fee($price, $onlyPercent='False') {
foreach($this->payment_fees as $payment_fee){
// calculate from flat fee or percentage
if (substr($payment_fee, -1) == '%') {
$payment_module_fee += ($price * ($payment_fee/100)); //++ad++ zeile ersetzt
} else {
if ($onlyPercent==='TRUE') continue; //the fixed amount can be blocked by 'TRUE'
$payment_module_fee += $payment_fee;
}
}
return $payment_module_fee;
}
Kommentar