diff --git a/Makefile b/Makefile index 8dd0a76031745ada94ce5d645e6a974f1144444c..3fc227d2ba621934d41e6533caa75a555a132c5f 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ BASE=rules_shipping BASE_ADV=rules_shipping_advanced PLUGINTYPE=vmshipment ZIPBASE=opentools_vm -VERSION=5.4 +VERSION=5.5 PLUGINFILES=$(BASE).php $(BASE)_base.php $(BASE).script.php $(BASE).xml index.html PLUGINFILES_ADV=$(BASE_ADV).php $(BASE)_base.php $(BASE_ADV).script.php $(BASE_ADV).xml index.html diff --git a/releases/plg_opentools_vm_rules_shipping_advanced_v5.5.zip b/releases/plg_opentools_vm_rules_shipping_advanced_v5.5.zip new file mode 100644 index 0000000000000000000000000000000000000000..0f36c83e36ee20a4c93ce40421c4c47821261bbb Binary files /dev/null and b/releases/plg_opentools_vm_rules_shipping_advanced_v5.5.zip differ diff --git a/releases/plg_opentools_vm_rules_shipping_v5.5.zip b/releases/plg_opentools_vm_rules_shipping_v5.5.zip new file mode 100644 index 0000000000000000000000000000000000000000..eb957a76c0622c5eaaa7780dd428201f36b2326b Binary files /dev/null and b/releases/plg_opentools_vm_rules_shipping_v5.5.zip differ diff --git a/rules_shipping.xml b/rules_shipping.xml index f13b0b35c58cd6eeb7db8953894b6f08f2908619..090c13c9eb4a1eadc5308549f4ff066a5a270af0 100644 --- a/rules_shipping.xml +++ b/rules_shipping.xml @@ -6,7 +6,7 @@ <authorUrl>http://www.open-tools.net</authorUrl> <copyright>Copyright (C) 2013-2014, Reinhold Kainhofer</copyright> <license>GPL v3+</license> - <version>5.4</version> + <version>5.5</version> <description>VMSHIPMENT_RULES_DESC</description> <files> <filename plugin="rules_shipping">rules_shipping.php</filename> diff --git a/rules_shipping_advanced.xml b/rules_shipping_advanced.xml index 39b7ddd6128a68c37eb9ca2e92a6069eaa09c6bc..bcb7831bd6973cc68870a57e3f078adf49b57d8f 100644 --- a/rules_shipping_advanced.xml +++ b/rules_shipping_advanced.xml @@ -6,7 +6,7 @@ <authorUrl>http://www.open-tools.net</authorUrl> <copyright>Copyright (C) 2013-2014, Reinhold Kainhofer</copyright> <license>GPL v3+</license> - <version>5.4</version> + <version>5.5</version> <description>VMSHIPMENT_RULES_ADV_DESC</description> <files> <filename plugin="rules_shipping_advanced">rules_shipping_advanced.php</filename> diff --git a/rules_shipping_base.php b/rules_shipping_base.php index 143ae09d73d51c5ef47d7e153548762e33abeec1..3a0cbe66ec6c9cb33ae7ef2cbb5e5418a2b3a8b6 100644 --- a/rules_shipping_base.php +++ b/rules_shipping_base.php @@ -469,7 +469,7 @@ class plgVmShipmentRules_Shipping_Base extends vmPSPlugin { } } else { // BEGIN_RK_CHANGES: VM change in VM3! - if (is_array($calculator->_cartData)) { // VM2: + if (isset($calculator->_cartData) && is_array($calculator->_cartData)) { // VM2: $taxrules = array_merge($calculator->_cartData['VatTax'],$calculator->_cartData['taxRulesBill']); } else { // VM3: $taxrules = array_merge($cart->cartData['VatTax'],$cart->cartData['taxRulesBill']); @@ -1204,9 +1204,10 @@ class ShippingRule { $filterkeys = array( "evaluate_for_categories" => 'categories', - "evaluate_for_products" => 'products', + "evaluate_for_products" => 'skus', + "evaluate_for_skus" => 'skus', "evaluate_for_vendors" => 'vendors', - "evaluate_for_manufacturers" => 'manufacturers' + "evaluate_for_manufacturers" => 'manufacturers', ); $conditions = array(); @@ -1338,7 +1339,11 @@ class ShippingRule { $op = array_shift($expr); // ignore the "FUNCTION" $func = array_shift($expr); // The scoping function name $expression = array_shift($expr); // The expression to be evaluated - $conditions = $expr; // the remaining $expr list now contains the conditions + // the remaining $expr list now contains the conditions. Evaluate them one by one: + $conditions = array(); + foreach ($expr as $e) { + $conditions[] = $this->evaluateTerm($e, $vals, $products, $cartvals_callback); + } return $this->evaluateScoping ($expression, $func, $conditions, $vals, $products, $cartvals_callback); } elseif (is_array($expr)) {