@web28
Ah, verstehe, das hatte ich ja gar nicht bedacht und dich erst nicht verstanden, danke für den Hinweis.
Da habe ich mit meiner Erweiterung ja mal schön in's Klo gegriffen
, zumindest fast...
Da ich mich jetzt erstmal um unsere großen Billard-Turniere kümmern muß, schaue ich mir das später nochmal an.
Vielleicht hast du noch einen Tipp ?
Also brauche ich ja lediglich die Funktion
xtcRemoveCurr() zu benutzen, right ?
Oder sollte ich auf
$_SESSION['cart']->show_total() zugreifen anstatt auf
$order['subtotal'] ?,
und natürlich die Funktion
xtcRemoveCurr() nutzen (wie schön, daß es die schon gibt
)
Jendenfalls vielen Dank für den Tipp.
@web0null
Es ist doch ganz einfach so:
Das hier
if (count($cod_zones) == 0) return; bewirkt, daß eine Versandart die gar nicht in
ot_cod_fee berücksichtigt ist ausgeschlossen wird.
Damit kann ich aber nicht eine Versandart auschließen die in
ot_cod_fee vorhanden ist jedoch einen lerren string in der Gebühreneingabe hat, da
count($cod_zones) hier 1 ergeben würde, ein array mit einem index 0 und einem einzigen leeren Value.
Auch kann ich nicht an dieser Code-Stelle bereits auf empty($code_zones) prüfen um eine Versandart mit leerer Eingabe auszuschließen, da
$cod_zones eben wie oben gesagt nicht empty ist.
Das hier an der richtigen Stelle, nämlich innerhalb der for-Schleife
if ($cod_zones[$i] == 0) return;
bewirkt folgendes:
- Das array $code_zones hat ja bei einem leeren string in der Backend-Eingabe bei der Versandart diesen einen Wert:
array (0 => )
und beim Durchlaufen der for-Schleife findet es mit [$i] = 0 auch nur einen Value, nämlich einen leeren. - sobald eine korrekte Syntax im Backend eingegeben wurde, findet die Schleife jedoch Werte.
Dabei ist egal was du einträgst.
DE:0
DE:5.04,00:7.52
oder was immer.
Aber eben korrekte Syntax vorausgesetzt,
also nix sowas
DE:,
Gruß,
noRiddle
*EDIT*
if (empty($cod_zones[$i])) geht entgegen meiner Vermutung in einem vorherigen Post jedoch aus hier o.g. Gründen nicht.
*EDIT2*
@JZ_Aqua
Du solltest dann noch das hier in
/includes/modules/payment/cod.phpif($this->limit_subtotal && round($order->info['subtotal']) >= $this->limit_subtotal) return; austauschen gegen das hier
if($this->limit_subtotal && ($xtPrice->xtcRemoveCurr($_SESSION['cart']->show_total()) >= $this->limit_subtotal)) return; // added $_SESSION['cart']->show_total() comparison to be able to limit sum where cod allowed
Neue Anleitung folgt später.