diff --git a/Makefile b/Makefile index bded0bce815150f31516ef3476054cf22f51bc75..87a0f1b72e278688f3f1df61decd99830f49d447 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ BASE=rules_shipping BASE_ADV=rules_shipping_advanced PLUGINTYPE=vmshipment ZIPBASE=opentools_vm -VERSION=6.1.5 +VERSION=6.1.6 PLUGINFILES=$(BASE).php $(BASE)_base.php $(BASE)_framework_joomla.php $(BASE).script.php $(BASE).xml index.html PLUGINFILES_ADV=$(BASE_ADV).php $(BASE)_base.php $(BASE)_framework_joomla.php $(BASE_ADV).script.php $(BASE_ADV).xml index.html diff --git a/library/rules_shipping_framework.php b/library/rules_shipping_framework.php index 4e8c7c408b906d491084ae1b3d7130a19431d9d8..93fd054f7c672a3928cc1e8fc3984ac2dad059d8 100644 --- a/library/rules_shipping_framework.php +++ b/library/rules_shipping_framework.php @@ -275,6 +275,10 @@ class RulesShippingFramework { return array(); } + protected function getOrderUser ($cart, $method) { + return array(); + } + protected function getOrderAddress ($cart, $method) { return array(); } @@ -354,6 +358,8 @@ class RulesShippingFramework { $this->getOrderListProperties ($cart, $products, $method), // Add country / state variables: $this->getOrderAddress ($cart, $method), + // Add Customer information: + $this->getOrderUser ($cart, $method), // Add Total/Min/Max weight and dimension variables: $this->getOrderWeights ($cart, $products, $method), $this->getOrderDimensions ($cart, $products, $method), @@ -425,7 +431,7 @@ class RulesShippingFramework { } } // None of the rules matched, so return NULL, but keep the evaluated results; - $this->match[$id] = $result; + $this->match[$id] = NULL; return NULL; } @@ -453,7 +459,7 @@ class RulesShippingFramework { $this->parseMethodRules($method); // TODO: This needs to be redone sooner or later! $match = $this->evaluateMethodRules ($cart, $method); - if ($match && !is_null ($match['rule'])) { + if ($match && isset($match['rule']) && !is_null ($match['rule'])) { $this->setMethodCosts($method, $match, null); // If NoShipping is set, this method should NOT offer any shipping at all, so return FALSE, otherwise TRUE // If the rule has a name, print it as warning (otherwise don't print anything) @@ -484,7 +490,7 @@ class RulesShippingFramework { if (!isset($this->rules[$id])) $this->parseMethodRules($method); $match = $this->evaluateMethodRules ($cart, $method); - if ($match) { + if ($match && isset($match['rule']) && !is_null ($match['rule'])) { if ($this->handleNoShipping($match, $method)) { return $results; } diff --git a/releases/plg_opentools_vm_rules_shipping_advanced_v6.1.6.zip b/releases/plg_opentools_vm_rules_shipping_advanced_v6.1.6.zip new file mode 100644 index 0000000000000000000000000000000000000000..11668520503b2380d321a5bc6f53a7a408095e32 Binary files /dev/null and b/releases/plg_opentools_vm_rules_shipping_advanced_v6.1.6.zip differ diff --git a/releases/plg_opentools_vm_rules_shipping_v6.1.6.zip b/releases/plg_opentools_vm_rules_shipping_v6.1.6.zip new file mode 100644 index 0000000000000000000000000000000000000000..fbf96fcdadf2643a6b35cc4232edeb0aade67712 Binary files /dev/null and b/releases/plg_opentools_vm_rules_shipping_v6.1.6.zip differ diff --git a/rules_shipping.xml b/rules_shipping.xml index 97a8f0e352fed1c2b4eb786ca4bf4bcff9227dc5..808875637429553baecdcec577b2338e6e585985 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>6.1.5</version> + <version>6.1.6</version> <description>OTSHIPMENT_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 16d6fab234e427267ebf286af6a801c6c90a71a8..b6ddf9e122ac994c2b55006d947dc0ff30fe6338 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>6.1.5</version> + <version>6.1.6</version> <description>OTSHIPMENT_RULES_ADV_DESC</description> <files> <filename plugin="rules_shipping_advanced">rules_shipping_advanced.php</filename> diff --git a/rules_shipping_framework_joomla.php b/rules_shipping_framework_joomla.php index ff29c9eb6e58d0d64928e53783577d7001dab69c..72232dc4250e536430a0c5b65cc7541be987aae5 100644 --- a/rules_shipping_framework_joomla.php +++ b/rules_shipping_framework_joomla.php @@ -211,6 +211,21 @@ class RulesShippingFrameworkJoomla extends RulesShippingFramework { ); } + protected function getOrderUser ($cart, $method) { + $user = $cart->user; + $uinfo = array( + 'shoppergroups' => $user->shopper_groups, + 'groups' => $user->JUser->groups, + 'userid' => $user->virtuemart_user_id, + 'username' => $user->JUser->name, + 'isguest' => $user->JUser->guest, + 'isvendor' => $user->user_is_vendor, + 'customernumber' => $user->customer_number, + ); + + return $uinfo; + } + protected function getOrderAddress ($cart, $method) { $address = (($cart->ST == 0 || $cart->STsameAsBT == 1) ? $cart->BT : $cart->ST); $zip = isset($address['zip'])?trim($address['zip']):'';