PluginProbe ʕ •ᴥ•ʔ
Discount Rules for WooCommerce / 1.6.1
Discount Rules for WooCommerce v1.6.1
1.4.39 1.4.4 1.4.40 1.4.41 1.4.42 1.4.43 1.4.44 1.4.45 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.10 1.5.11 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.14 1.6.15 1.6.16 1.6.17 1.6.18 1.6.19 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.10 1.7.11 1.7.12 1.7.13 1.7.14 1.7.15 1.7.16 1.7.17 1.7.18 1.7.19 1.7.2 1.7.20 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.2 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.2 2.1.0 2.1.1 2.1.2 2.2.0 2.2.1 2.2.2 2.3.0 2.3.1 2.3.10 2.3.11 2.3.12 2.3.13 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 2.4.0 2.4.1 2.4.2 2.4.4 2.4.5 2.5.0 2.5.2 2.5.3 2.5.4 2.6.0 2.6.1 2.6.10 2.6.11 2.6.12 2.6.13 2.6.14 2.6.15 2.6.2 2.6.3 2.6.4 2.6.5 2.6.6 2.6.7 2.6.8 2.6.9 trunk 1.1 1.2 1.3 1.4 1.4.1 1.4.10 1.4.11 1.4.12 1.4.13 1.4.14 1.4.15 1.4.16 1.4.17 1.4.18 1.4.19 1.4.2 1.4.20 1.4.21 1.4.22 1.4.23 1.4.24 1.4.25 1.4.26 1.4.27 1.4.28 1.4.29 1.4.3 1.4.30 1.4.31 1.4.32 1.4.33 1.4.34 1.4.35 1.4.36 1.4.37 1.4.38
woo-discount-rules / loader.php
woo-discount-rules Last commit date
assets 8 years ago helper 8 years ago i18n 8 years ago includes 8 years ago vendor 8 years ago view 8 years ago loader.php 8 years ago readme.txt 8 years ago woo-discount-rules.php 8 years ago
loader.php
218 lines
1 <?php
2 if (!defined('ABSPATH')) exit; // Exit if accessed directly
3
4 /**
5 * Plugin Directory.
6 */
7 define('WOO_DISCOUNT_DIR', untrailingslashit(plugin_dir_path(__FILE__)));
8
9 /**
10 * Plugin Directory URI.
11 */
12 define('WOO_DISCOUNT_URI', untrailingslashit(plugin_dir_url(__FILE__)));
13
14 /**
15 * Plugin Base Name.
16 */
17 define('WOO_DISCOUNT_PLUGIN_BASENAME', plugin_basename(__FILE__));
18
19 if(!function_exists('get_plugin_data')){
20 require_once ABSPATH . 'wp-admin/includes/plugin.php';
21 }
22
23 /**
24 * Version of Woo Discount Rules.
25 */
26 $pluginDetails = get_plugin_data(plugin_dir_path(__FILE__).'woo-discount-rules.php');
27 define('WOO_DISCOUNT_VERSION', $pluginDetails['Version']);
28
29 if(!class_exists('FlycartWooDiscountRules')){
30 class FlycartWooDiscountRules{
31
32 private static $instance;
33 public $discountBase;
34 public $pricingRules;
35 public $config;
36
37 /**
38 * To run the plugin
39 * */
40 public static function init() {
41 if ( self::$instance == null ) {
42 self::$instance = new FlycartWooDiscountRules();
43 }
44 return self::$instance;
45 }
46
47 /**
48 * FlycartWooDiscountRules constructor
49 * */
50 public function __construct() {
51 $this->includeFiles();
52 $this->discountBase = new FlycartWooDiscountBase();
53 $this->runUpdater();
54 $this->pricingRules = new FlycartWooDiscountRulesPricingRules();
55 if (is_admin()) {
56 $this->loadAdminScripts();
57 }
58 if(FlycartWooDiscountRulesGeneralHelper::doIHaveToRun()){
59 $this->loadSiteScripts();
60 }
61 }
62
63 /**
64 * To include Files
65 * */
66 protected function includeFiles(){
67 include_once('helper/woo-function.php');
68 include_once('includes/pricing-rules.php');
69 include_once('helper/general-helper.php');
70 include_once('includes/cart-rules.php');
71 include_once('includes/discount-base.php');
72 include_once('helper/purchase.php');
73 require_once __DIR__ . '/vendor/autoload.php';
74 }
75
76 /**
77 * Run Plugin updater
78 * */
79 protected function runUpdater(){
80 try{
81 require plugin_dir_path( __FILE__ ).'/vendor/yahnis-elsts/plugin-update-checker/plugin-update-checker.php';
82
83 $purchase_helper = new FlycartWooDiscountRulesPurchase();
84 $purchase_helper->init();
85 $update_url = $purchase_helper->getUpdateURL();
86 if(!$purchase_helper->isPro()){
87 $dlid = $this->discountBase->getConfigData('license_key', null);
88 if(empty($dlid)) return false;
89 }
90 $myUpdateChecker = Puc_v4_Factory::buildUpdateChecker(
91 $update_url,
92 plugin_dir_path( __FILE__ ).'woo-discount-rules.php',
93 'woo-discount-rules'
94 );
95 add_action( 'after_plugin_row', array($purchase_helper, 'woodisc_after_plugin_row'),10,3 );
96
97 add_action('wp_ajax_forceValidateLicenseKey', array($purchase_helper, 'forceValidateLicenseKey'));
98
99 add_action( 'admin_notices', array($purchase_helper, 'errorNoticeInAdminPages'));
100 } catch (Exception $e){}
101 }
102
103 /**
104 * Load Admin scripts
105 * */
106 protected function loadAdminScripts(){
107 // Init in Admin Menu
108 add_action('admin_menu', array($this->discountBase, 'adminMenu'));
109 add_action('wp_ajax_savePriceRule', array($this->discountBase, 'savePriceRule'));
110 add_action('wp_ajax_saveCartRule', array($this->discountBase, 'saveCartRule'));
111 add_action('wp_ajax_saveConfig', array($this->discountBase, 'saveConfig'));
112
113 add_action('wp_ajax_UpdateStatus', array($this->discountBase, 'updateStatus'));
114 add_action('wp_ajax_RemoveRule', array($this->discountBase, 'removeRule'));
115 }
116
117 /**
118 * Apply discount rules
119 * */
120 public function applyDiscountRules(){
121 $this->discountBase->handlePriceDiscount();
122 remove_action('woocommerce_before_calculate_totals', array($this, 'applyDiscountRules'), 1000);
123 }
124
125 /**
126 * Apply discount rules
127 * */
128 public function applyCartDiscountRules(){
129 $this->discountBase->handleCartDiscount();
130 remove_action('woocommerce_cart_loaded_from_session', array($this, 'applyCartDiscountRules'), 100);
131 }
132
133 /**
134 * Load Admin scripts
135 * */
136 protected function loadSiteScripts(){
137 $woocommerce_version = '2.0.0';
138 $pluginDetails = get_plugin_data(WP_PLUGIN_DIR.'/woocommerce/woocommerce.php');
139 if(isset($pluginDetails['Version'])){
140 $woocommerce_version = $pluginDetails['Version'];
141 }
142
143 add_action('woocommerce_after_cart_item_quantity_update', array($this->discountBase, 'handleDiscount'), 100);
144 if(version_compare($woocommerce_version, '3.0', '>=')){
145 add_action('woocommerce_before_calculate_totals', array($this, 'applyDiscountRules'), 1000);
146 add_action('woocommerce_cart_loaded_from_session', array($this, 'applyCartDiscountRules'), 100);
147 add_action( 'woocommerce_after_cart_item_quantity_update', array($this->pricingRules, 'handleBOGODiscountOnUpdateQuantity'), 10, 4 );
148 } else {
149 add_action( 'woocommerce_after_cart_item_quantity_update', array($this->pricingRules, 'handleBOGODiscountOnUpdateQuantity'), 10, 3 );
150 add_action('woocommerce_cart_loaded_from_session', array($this->discountBase, 'handleDiscount'), 100);
151 }
152
153 add_action('woocommerce_add_to_cart', array($this->pricingRules, 'handleBOGODiscount'), 10, 6);
154
155
156 // Manually Update Line Item Name.
157 add_filter('woocommerce_cart_item_name', array($this->discountBase, 'modifyName'));
158
159 // Remove Filter to make the previous one as last filter.
160 remove_filter('woocommerce_cart_item_name', 'filter_woocommerce_cart_item_name', 10, 3);
161
162 // Alter the Display Price HTML.
163 add_filter('woocommerce_cart_item_price', array($this->pricingRules, 'replaceVisiblePricesCart'), 1000, 3);
164
165 //replace visible price in product page
166 add_filter('woocommerce_get_price_html', array($this->pricingRules, 'replaceVisiblePrices'), 100, 3);
167 //replace visible price in product page for variant
168 add_filter('woocommerce_available_variation', array($this->pricingRules, 'replaceVisiblePricesForVariant'), 100, 3);
169
170
171 // Older Version support this hook.
172 add_filter('woocommerce_cart_item_price_html', array($this->pricingRules, 'replaceVisiblePricesCart'), 1000, 3);
173
174 // Pricing Table of Individual Product.
175 add_filter('woocommerce_before_add_to_cart_form', array($this->pricingRules, 'priceTable'));
176
177 // Updating Log After Creating Order
178 add_action('woocommerce_thankyou', array($this->discountBase, 'storeLog'));
179
180 add_action( 'woocommerce_after_checkout_form', array($this->discountBase, 'addScriptInCheckoutPage'));
181
182 //To enable on-sale tag
183 add_filter('woocommerce_product_is_on_sale', array($this->pricingRules, 'displayProductIsOnSaleTag'), 10, 2);
184
185 $force_refresh_cart_widget = $this->discountBase->getConfigData('force_refresh_cart_widget', 0);
186 if($force_refresh_cart_widget){
187 if (isset($_REQUEST['wc-ajax']) && ($_REQUEST['wc-ajax'] == 'add_to_cart' || $_REQUEST['wc-ajax'] == 'remove_from_cart')) {
188 add_action('woocommerce_before_mini_cart', array($this, 'applyRulesBeforeMiniCart'), 10);
189 }
190 }
191 }
192
193 /**
194 * To load the dynamic data in mini-cart/cart widget while add to cart and remove from cart through widget
195 * */
196 public function applyRulesBeforeMiniCart(){
197 WC()->cart->get_cart_from_session();
198 $this->discountBase->handlePriceDiscount();
199 WC()->cart->calculate_totals();
200 }
201 }
202 }
203
204 /**
205 * init Woo Discount Rules
206 */
207 if ( is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
208 global $flycart_woo_discount_rules;
209 $flycart_woo_discount_rules = FlycartWooDiscountRules::init();
210 $purchase_helper = new FlycartWooDiscountRulesPurchase();
211 if($purchase_helper->isPro()){
212 include_once('includes/advanced/free_shipping_method.php');
213 include_once('includes/advanced/pricing-productdependent.php');
214 include_once('includes/advanced/cart-totals.php');
215 include_once('includes/advanced/advanced-helper.php');
216 }
217 }
218