From d4cce0f105999bd8509490bfea61ab1a7f39aad7 Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer <reinhold@kainhofer.com> Date: Sun, 13 Dec 2015 19:12:27 +0100 Subject: [PATCH] AwoCoupon: First version of the AwoCoupon variables plugin --- plugins/awocoupon/awocoupon.php | 41 +++++++++++++++--- ...> en-GB.plg_vmshipmentrules_awocoupon.ini} | 0 ...-GB.plg_vmshipmentrules_awocoupon.sys.ini} | 0 ...entools_vmshipmentrules_awocoupon_v1.0.zip | Bin 15000 -> 0 bytes ...entools_vmshipmentrules_awocoupon_v1.0.zip | Bin 0 -> 4935 bytes 5 files changed, 36 insertions(+), 5 deletions(-) rename plugins/awocoupon/language/en-GB/{en-GB.plg_vmshipmentrules_rules_awocoupon.ini => en-GB.plg_vmshipmentrules_awocoupon.ini} (100%) rename plugins/awocoupon/language/en-GB/{en-GB.plg_vmshipmentrules_rules_awocoupon.sys.ini => en-GB.plg_vmshipmentrules_awocoupon.sys.ini} (100%) delete mode 100644 plugins/awocoupon/plg_opentools_vmshipmentrules_awocoupon_v1.0.zip create mode 100644 plugins/awocoupon/releases/plg_opentools_vmshipmentrules_awocoupon_v1.0.zip diff --git a/plugins/awocoupon/awocoupon.php b/plugins/awocoupon/awocoupon.php index 9c50823..f61692c 100644 --- a/plugins/awocoupon/awocoupon.php +++ b/plugins/awocoupon/awocoupon.php @@ -6,7 +6,7 @@ defined ('_JEXEC') or die('Restricted access'); * AwoCoupon variables for VM Shipping by Rules * * @subpackage Plugins - VmShipmentRules - * @copyright Copyright (C) 2014 Reinhold Kainhofer, office@open-tools.net + * @copyright Copyright (C) 2015 Reinhold Kainhofer, office@open-tools.net * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.txt * VirtueMart is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or @@ -23,22 +23,53 @@ if (!class_exists ('VmPlugin')) { /** Extension plugin for the "Shipping by Rules" shipping plugin for VirtueMart */ -class plgVmShipmentRulesRules_AwoCoupon extends VmPlugin { +class plgVmShipmentRulesAwoCoupon extends VmPlugin { /** Trigger to add variables to the cart values * You can add new variables to the $cartvals array or modify existing ones. They will be directly * available in all rules. * Please notice that this function might also be called for only a subset of products of the cart. */ function onVmShippingRulesGetCartValues(&$cartvals, $cart, $products, $method, $cart_prices) { + // First, make sure coupons are processes (VM core processes third-party coupons AFTER the shipping) + // This does NOT update the cart_prices array, but at least it makes sure Awocoupon has processed the coupon + JPluginHelper::importPlugin('vmcoupon'); + if (!empty($cart->couponCode)) { + $dispatcher = JDispatcher::getInstance(); + // TODO: This does not yet work... +// $returnValues = $dispatcher->trigger('plgVmCouponHandler', array($cart->couponCode, &$cart->cartData, $cart->cartPrices)); + } + $coupon_discount = 0; $session = JFactory::getSession(); $coupon_row = $session->get('coupon', '', 'awocoupon'); + + $cartvals['awoproductdiscount'] = 0.0; + $cartvals['awoproductdiscountnotax'] = 0.0; +// $cartvals['awoproductdiscounttax'] = 0.0; + $cartvals['awoshippingdiscount'] = 0.0; + $cartvals['awoshippingdiscountnotax'] = 0.0; +// $cartvals['awoshippingdiscounttax'] = 0.0; + $cartvals['awodiscount'] = 0.0; if(!empty($coupon_row)) { $coupon_row = unserialize($coupon_row); - $coupon_discount = $coupon_row['product_discount'] + $coupon_row['shipping_discount']; +// JFactory::getApplication()->enqueueMessage("<pre>AwoCoupon row: ".print_r($coupon_row,1)."</pre>", 'error'); + + $cartvals['awoproductdiscount'] = $coupon_row['product_discount']; + $cartvals['awoproductdiscountnotax'] = $coupon_row['product_discount_notax']; +// $cartvals['awoproductdiscounttax'] = $coupon_row['product_discount_tax']; + $cartvals['awoshippingdiscount'] = $coupon_row['shipping_discount']; + $cartvals['awoshippingdiscountnotax'] = $coupon_row['shipping_discount_notax']; +// $cartvals['awoshippingdiscounttax'] = $coupon_row['shipping_discount_tax']; + $cartvals['awodiscount'] = $coupon_row['product_discount'] + $coupon_row['shipping_discount']; } - $cartvals['awodiscount'] = $coupon_discount; - } + $cartvals['amountaftercoupon'] = $cartvals['amount'] - $cartvals['awoproductdiscount']; + $cartvals['amountwithtaxaftercoupon'] = $cartvals['amountaftercoupon']; + $cartvals['taxamountaftercoupon'] = $cartvals['taxamount'] - ($cartvals['awoproductdiscount'] - $cartvals['awoproductdiscountnotax']); + $cartvals['amountwithouttaxaftercoupon'] = $cartvals['amountaftercoupon'] - $cartvals['taxamountaftercoupon']; + + // TODO: Apply shipping coupon discounts + } } + // No closing tag diff --git a/plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_rules_awocoupon.ini b/plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_awocoupon.ini similarity index 100% rename from plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_rules_awocoupon.ini rename to plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_awocoupon.ini diff --git a/plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_rules_awocoupon.sys.ini b/plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_awocoupon.sys.ini similarity index 100% rename from plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_rules_awocoupon.sys.ini rename to plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_awocoupon.sys.ini diff --git a/plugins/awocoupon/plg_opentools_vmshipmentrules_awocoupon_v1.0.zip b/plugins/awocoupon/plg_opentools_vmshipmentrules_awocoupon_v1.0.zip deleted file mode 100644 index ed5ed0583478b367f58854f562f6d28bb46be6f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15000 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 BR4o7i diff --git a/plugins/awocoupon/releases/plg_opentools_vmshipmentrules_awocoupon_v1.0.zip b/plugins/awocoupon/releases/plg_opentools_vmshipmentrules_awocoupon_v1.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..9b214a6697e2662e5bcbb6238ccb03df277a8a12 GIT binary patch literal 4935 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 literal 0 HcmV?d00001 -- GitLab