PluginProbe ʕ •ᴥ•ʔ
Discount Rules for WooCommerce / 1.7.3
Discount Rules for WooCommerce v1.7.3
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 7 years ago helper 7 years ago i18n 7 years ago includes 7 years ago vendor 7 years ago view 7 years ago loader.php 7 years ago readme.txt 7 years ago woo-discount-rules.php 7 years ago
loader.php
506 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 $this->loadCommonScripts();
62 }
63
64 /**
65 * To include Files
66 * */
67 protected function includeFiles(){
68 include_once('helper/woo-function.php');
69 include_once('includes/pricing-rules.php');
70 include_once('helper/general-helper.php');
71 include_once('includes/cart-rules.php');
72 include_once('includes/discount-base.php');
73 include_once('helper/purchase.php');
74 require_once __DIR__ . '/vendor/autoload.php';
75 }
76
77 /**
78 * Run Plugin updater
79 * */
80 protected function runUpdater(){
81 try{
82 require plugin_dir_path( __FILE__ ).'/vendor/yahnis-elsts/plugin-update-checker/plugin-update-checker.php';
83
84 $purchase_helper = new FlycartWooDiscountRulesPurchase();
85 $purchase_helper->init();
86 $update_url = $purchase_helper->getUpdateURL();
87 if(!$purchase_helper->isPro()){
88 $dlid = $this->discountBase->getConfigData('license_key', null);
89 if(empty($dlid)) return false;
90 }
91 $myUpdateChecker = Puc_v4_Factory::buildUpdateChecker(
92 $update_url,
93 plugin_dir_path( __FILE__ ).'woo-discount-rules.php',
94 'woo-discount-rules'
95 );
96 add_action( 'after_plugin_row', array($purchase_helper, 'woodisc_after_plugin_row'),10,3 );
97
98 add_action('wp_ajax_forceValidateLicenseKey', array($purchase_helper, 'forceValidateLicenseKey'));
99
100 add_action( 'admin_notices', array($purchase_helper, 'errorNoticeInAdminPages'));
101 } catch (Exception $e){}
102 }
103
104 /**
105 * Load Admin scripts
106 * */
107 protected function loadAdminScripts(){
108 // Init in Admin Menu
109 add_action('admin_menu', array($this->discountBase, 'adminMenu'));
110 add_action('wp_ajax_savePriceRule', array($this->discountBase, 'savePriceRule'));
111 add_action('wp_ajax_saveCartRule', array($this->discountBase, 'saveCartRule'));
112 add_action('wp_ajax_saveConfig', array($this->discountBase, 'saveConfig'));
113 add_action('wp_ajax_resetWDRCache', array($this->discountBase, 'resetWDRCache'));
114 add_action('wp_ajax_loadProductSelectBox', array($this->discountBase, 'loadProductSelectBox'));
115
116 add_action('wp_ajax_UpdateStatus', array($this->discountBase, 'updateStatus'));
117 add_action('wp_ajax_RemoveRule', array($this->discountBase, 'removeRule'));
118 add_action('wp_ajax_doBulkAction', array($this->discountBase, 'doBulkAction'));
119 add_action('wp_ajax_createDuplicateRule', array($this->discountBase, 'createDuplicateRule'));
120 add_action('admin_enqueue_scripts', array($this->discountBase, 'woo_discount_adminPageScript'), 100 );
121 $display_you_saved_text = $this->discountBase->getConfigData('display_you_saved_text', 'no');
122 if(in_array($display_you_saved_text, array('on_each_line_item', 'both_line_item_and_after_total'))){
123 add_action( 'woocommerce_after_order_itemmeta', array( $this->pricingRules, 'addAdditionalContentInAfterOrderItemMeta'), 1000, 3);
124 }
125 if(in_array($display_you_saved_text, array('after_total', 'both_line_item_and_after_total'))){
126 add_action( 'woocommerce_admin_order_totals_after_total', array( $this->pricingRules, 'displayTotalSavingsThroughDiscountInOrder'), 10);
127 }
128 }
129
130 /**
131 * Apply discount rules
132 * */
133 public function applyDiscountRules(){
134 $this->discountBase->handlePriceDiscount();
135 $removeTheEvent = apply_filters('woo_discount_rules_remove_event_woocommerce_before_calculate_totals', false);
136 if(!$removeTheEvent){
137 remove_action('woocommerce_before_calculate_totals', array($this, 'applyDiscountRules'), 1000);
138 }
139 }
140
141 /**
142 * Apply discount rules
143 * */
144 public function applyCartDiscountRules(){
145 remove_action('woocommerce_cart_loaded_from_session', array($this, 'applyCartDiscountRules'), 97);
146 $this->discountBase->handleCartDiscount();
147 }
148
149 /**
150 * Script on product page for loading variant strikeout
151 * */
152 public function script_on_product_page(){
153 $runVariationStrikeoutAjax = apply_filters('woo_discount_rules_run_variation_strikeout_through_ajax', true);
154 $script = '<script>';
155 $script .= 'jQuery( document ).ready( function() {';
156 $do_product_page_strikeout = $this->discountBase->getConfigData('show_price_discount_on_product_page', 'show');
157 $enable_variable_product_cache = $this->discountBase->getConfigData('enable_variable_product_cache', 0);
158 if($do_product_page_strikeout == 'show' && $runVariationStrikeoutAjax) {
159 $script .= 'jQuery( ".single_variation_wrap" ).on( "show_variation", function ( event, variation, purchasable ) {';
160 $script .= ' var container = jQuery(".single_variation .woocommerce-variation-price");';
161 $script .= ' var current_object = jQuery(this);
162 current_object.trigger("woo_discount_rules_before_variant_strikeout");/*container.hide("slow");*/';
163 $script .= ' jQuery.ajax({
164 url: woo_discount_rules.ajax_url,
165 dataType: "json",
166 type: "POST",
167 data: {action: "loadWooDiscountedPriceForVariant", id: variation.variation_id, price_html: variation.price_html},
168 beforeSend: function() {
169 },
170 complete: function() {
171 },
172 success: function (response) {
173 if(response.status == 1){
174 jQuery(".single_variation .woocommerce-variation-price").html(response.price_html);
175 }
176 current_object.trigger("woo_discount_rules_after_variant_strikeout");
177 /*container.show("slow");*/
178 }
179 });';
180 $script .= ' });';
181 }
182 if($enable_variable_product_cache){
183 $script .= ' var woo_discount_rules_session_storage_id = "woo_discount_rules_session_storage_id_";
184 var woo_discount_rules_session_storage_time_id = "woo_discount_rules_session_storage_time_id_";
185 const WOO_DISCOUNT_RULES = {
186 checkSessionStorageExists: function (id) {
187 var name = woo_discount_rules_session_storage_id+id;
188 if (sessionStorage.getItem(name) === null) {
189 return false;
190 }
191 return true;
192 },
193 setSessionStorage: function (id, value) {
194 var name = woo_discount_rules_session_storage_id+id;
195 sessionStorage.setItem(name, value);
196 },
197 getSessionStorage: function (id) {
198 var name = woo_discount_rules_session_storage_id+id;
199 return sessionStorage.getItem(name);
200 },
201 setSessionStorageTime: function (id, value) {
202 var name = woo_discount_rules_session_storage_time_id+id;
203 sessionStorage.setItem(name, value);
204 },
205 getSessionStorageTime: function (id) {
206 var name = woo_discount_rules_session_storage_time_id+id;
207 return sessionStorage.getItem(name);
208 }
209 }
210 ';
211 }
212
213 $script .= ' if(jQuery(".woo_discount_rules_variant_table").length > 0){
214 var p_id = jQuery( ".woo_discount_rules_variant_table" ).attr("data-id");';
215 if($enable_variable_product_cache) {
216 $script .= ' var already_exists = WOO_DISCOUNT_RULES.checkSessionStorageExists(p_id);';
217 $script .= ' var last_storage_time = WOO_DISCOUNT_RULES.getSessionStorageTime(p_id);';
218 } else {
219 $script .= ' var already_exists = 0;';
220 $script .= ' var last_storage_time = "";';
221 }
222 $script .= ' setTimeout(function(){
223 jQuery.ajax({
224 url: woo_discount_rules.ajax_url,
225 type: "POST",
226 data: {action: "loadWooDiscountedDiscountTable", id: p_id, loaded: already_exists, time: last_storage_time},
227 beforeSend: function() {
228 },
229 complete: function() {
230 },
231 success: function (response) {
232 responseData = jQuery.parseJSON(response);
233 if(responseData.cookie == "1" && already_exists){';
234 if($enable_variable_product_cache) {
235 $script .= ' jQuery(".woo_discount_rules_variant_table").html(WOO_DISCOUNT_RULES.getSessionStorage(p_id));';
236 }
237 $script .= ' } else {
238 jQuery(".woo_discount_rules_variant_table").html(responseData.html);';
239 if($enable_variable_product_cache) {
240 $script .= ' WOO_DISCOUNT_RULES.setSessionStorage(p_id, responseData.html);
241 WOO_DISCOUNT_RULES.setSessionStorageTime(p_id, responseData.time);';
242 }
243 $script .= ' }
244 }
245 });
246 }, 1);';
247 $script .= ' }';
248 $script .= '});';
249 $script .= '</script>';
250
251 echo $script;
252 }
253
254 /**
255 * Load common scripts
256 * */
257 protected function loadCommonScripts(){
258 add_filter( 'woocommerce_email_styles', array($this, 'add_additional_woocommerce_email_styles'), 100);
259 $display_you_saved_text = $this->discountBase->getConfigData('display_you_saved_text', 'no');
260 if(in_array($display_you_saved_text, array('on_each_line_item', 'both_line_item_and_after_total'))){
261 add_filter( 'woocommerce_order_formatted_line_subtotal', array( $this->pricingRules, 'addAdditionalContentInOrderItemSubTotal'), 1000, 3);
262 }
263 if(in_array($display_you_saved_text, array('after_total', 'both_line_item_and_after_total'))){
264 add_action( 'woocommerce_email_after_order_table', array( $this->pricingRules, 'displayTotalSavingsThroughDiscountInOrder'), 10);
265 }
266 add_action( 'woo_discount_rules_get_total_savings_through_discount_in_cart', array( $this->pricingRules, 'displayTotalSavingsThroughDiscountInCart'), 10);
267 add_action( 'woo_discount_rules_get_total_savings_through_discount_from_order', array( $this->pricingRules, 'displayTotalSavingsThroughDiscountInOrder'), 10);
268 }
269
270 /**
271 * Add additional css in emails
272 * */
273 public function add_additional_woocommerce_email_styles($css){
274 return $css.'.wdr_you_saved_con {
275 color: green;
276 }';
277 }
278
279 /**
280 * Load Admin scripts
281 * */
282 protected function loadSiteScripts(){
283 $woocommerce_version = '2.0.0';
284 $pluginDetails = get_plugin_data(WP_PLUGIN_DIR.'/woocommerce/woocommerce.php');
285 if(isset($pluginDetails['Version'])){
286 $woocommerce_version = $pluginDetails['Version'];
287 }
288
289 add_action('woocommerce_after_cart_item_quantity_update', array($this->discountBase, 'handleDiscount'), 100);
290 if(version_compare($woocommerce_version, '3.0', '>=')){
291 add_action('woocommerce_before_calculate_totals', array($this, 'applyDiscountRules'), 1000);
292 add_action('woocommerce_cart_loaded_from_session', array($this, 'applyCartDiscountRules'), 97);
293 add_action( 'woocommerce_after_cart_item_quantity_update', array($this->pricingRules, 'handleBOGODiscountOnUpdateQuantity'), 10, 4 );
294 } else {
295 add_action( 'woocommerce_after_cart_item_quantity_update', array($this->pricingRules, 'handleBOGODiscountOnUpdateQuantity'), 10, 3 );
296 add_action('woocommerce_cart_loaded_from_session', array($this->discountBase, 'handleDiscount'), 100);
297 }
298
299 add_action('woocommerce_add_to_cart', array($this->pricingRules, 'handleBOGODiscount'), 10, 6);
300
301 $add_free_product_on_coupon_applied = $this->discountBase->getConfigData('add_free_product_on_coupon_applied', 0);
302 if($add_free_product_on_coupon_applied){
303 add_action('woocommerce_applied_coupon', array($this->pricingRules, 'handleBOGODiscountAfterApplyCoupon'), 10, 1);
304 }
305
306 add_action( 'woocommerce_checkout_create_order_line_item', array( $this->pricingRules, 'onCreateWoocommerceOrderLineItem'), 10, 4);
307 $display_you_saved_text = $this->discountBase->getConfigData('display_you_saved_text', 'no');
308 if(in_array($display_you_saved_text, array('on_each_line_item', 'both_line_item_and_after_total'))){
309 add_filter( 'woocommerce_cart_item_subtotal', array( $this->pricingRules, 'addAdditionalContentInCartItemSubTotal'), 1000, 3);
310 }
311 if(in_array($display_you_saved_text, array('after_total', 'both_line_item_and_after_total'))){
312 add_action( 'woocommerce_cart_totals_after_order_total', array( $this->pricingRules, 'displayTotalSavingsThroughDiscountInCart'), 10);
313 add_action( 'woocommerce_review_order_after_order_total', array( $this->pricingRules, 'displayTotalSavingsThroughDiscountInCart'), 10);
314 add_action( 'woocommerce_order_details_after_order_table', array( $this->pricingRules, 'displayTotalSavingsThroughDiscountInOrder'), 10);
315 }
316
317 // Manually Update Line Item Name.
318 add_filter('woocommerce_cart_item_name', array($this->discountBase, 'modifyName'));
319
320 // Remove Filter to make the previous one as last filter.
321 remove_filter('woocommerce_cart_item_name', 'filter_woocommerce_cart_item_name', 10, 3);
322
323 // Alter the Display Price HTML.
324 add_filter('woocommerce_cart_item_price', array($this->pricingRules, 'replaceVisiblePricesCart'), 1000, 3);
325
326 //replace visible price in product page
327 add_filter('woocommerce_get_price_html', array($this->pricingRules, 'replaceVisiblePricesOptimized'), 100, 3);
328 //replace visible price in product page for variant
329 add_filter('woocommerce_available_variation', array($this->pricingRules, 'replaceVisiblePricesForVariant'), 100, 3);
330
331 // Older Version support this hook.
332 add_filter('woocommerce_cart_item_price_html', array($this->pricingRules, 'replaceVisiblePricesCart'), 1000, 3);
333
334 // Pricing Table of Individual Product.
335 $discount_table_placement = $this->discountBase->getConfigData('discount_table_placement', 'before_cart_form');
336 if($discount_table_placement == 'before_cart_form'){
337 add_filter('woocommerce_before_add_to_cart_form', array($this->pricingRules, 'priceTable'));
338 add_filter('woocommerce_before_add_to_cart_form', array($this, 'script_on_product_page'));
339 } else {
340 add_filter('woocommerce_after_add_to_cart_form', array($this->pricingRules, 'priceTable'));
341 add_filter('woocommerce_after_add_to_cart_form', array($this, 'script_on_product_page'));
342 }
343
344 // Updating Log After Creating Order
345 add_action('woocommerce_thankyou', array($this->discountBase, 'storeLog'));
346
347 add_action( 'woocommerce_after_checkout_form', array($this->discountBase, 'addScriptInCheckoutPage'));
348
349 //To enable on-sale tag
350 add_filter('woocommerce_product_is_on_sale', array($this->pricingRules, 'displayProductIsOnSaleTagOptimized'), 10, 2);
351
352 $force_refresh_cart_widget = $this->discountBase->getConfigData('force_refresh_cart_widget', 0);
353 if($force_refresh_cart_widget){
354 if (isset($_REQUEST['wc-ajax']) && ($_REQUEST['wc-ajax'] == 'add_to_cart' || $_REQUEST['wc-ajax'] == 'remove_from_cart')) {
355 add_action('woocommerce_before_mini_cart', array($this, 'applyRulesBeforeMiniCart'), 10);
356 }
357 }
358
359 add_action('wp_ajax_loadWooDiscountedPriceForVariant', array($this->pricingRules, 'getWooDiscountedPriceForVariant'));
360 add_action('wp_ajax_nopriv_loadWooDiscountedPriceForVariant', array($this->pricingRules, 'getWooDiscountedPriceForVariant'));
361 add_action('wp_ajax_loadWooDiscountedDiscountTable', array($this->pricingRules, 'getWooDiscountedPriceTableForVariant'));
362 add_action('wp_ajax_nopriv_loadWooDiscountedDiscountTable', array($this->pricingRules, 'getWooDiscountedPriceTableForVariant'));
363 add_action( 'wp_enqueue_scripts', array($this, 'includeScriptAndStyles') );
364
365 add_action('woocommerce_before_checkout_form', array($this, 'displayAppliedDiscountMessagesForPriceRules'));
366 add_action('woocommerce_before_checkout_form', array($this, 'displayAppliedDiscountMessagesForCartRules'));
367 add_action('woocommerce_before_cart', array($this, 'displayAppliedDiscountMessagesForPriceRules'));
368 add_action('woocommerce_before_cart', array($this, 'displayAppliedDiscountMessagesForCartRules'));
369
370
371 add_filter('woo_discount_rule_products_to_exclude', array($this, 'woo_discount_get_variations'));
372 add_filter('woo_discount_rule_products_to_include', array($this, 'woo_discount_get_variations'));
373 }
374
375 /**
376 * Include the variant product as well while choose parent product
377 *
378 * @param array $excluded_products
379 * @return array
380 * */
381 public function woo_discount_get_variations($excluded_products = array()) {
382 $include_variants_on_select_parent_product = $this->discountBase->getConfigData('include_variants_on_select_parent_product', 0);
383 if($include_variants_on_select_parent_product){
384 static $sets;
385 if (!is_array($sets)) {
386 $sets = array();
387 }
388
389 if(count($excluded_products) < 1) return $excluded_products;
390 $string = json_encode($excluded_products);
391
392 if (!isset($sets[$string])) {
393 $all_excluded_products = $excluded_products;
394 foreach ($excluded_products as $exclude_id) {
395 $product = wc_get_product($exclude_id);
396 if (is_object($product) && method_exists($product, 'get_type') && $product->get_type() == 'variable') {
397 $children_ids = $product->get_children();
398 $all_excluded_products = array_merge($all_excluded_products, $children_ids);
399 }
400 }
401 $sets[$string] = $all_excluded_products;
402 }
403
404 return $sets[$string];
405 } else {
406 return $excluded_products;
407 }
408 }
409
410 /**
411 * To include the styles
412 * */
413 public function includeScriptAndStyles(){
414 wp_register_style('woo_discount_rules_front_end', WOO_DISCOUNT_URI . '/assets/css/woo_discount_rules.css', array(), WOO_DISCOUNT_VERSION);
415 wp_enqueue_style('woo_discount_rules_front_end');
416 // Enqueued script with localized data.
417 wp_register_script( 'woo_discount_rules_site', WOO_DISCOUNT_URI . '/assets/js/woo_discount_rules.js', array('jquery'), WOO_DISCOUNT_VERSION, true );
418 wp_localize_script('woo_discount_rules_site', 'woo_discount_rules', array(
419 'home_url' => get_home_url(),
420 'admin_url' => admin_url(),
421 'ajax_url' => admin_url('admin-ajax.php')
422 ));
423 wp_enqueue_script( 'woo_discount_rules_site');
424 }
425
426 /**
427 * To load the dynamic data in mini-cart/cart widget while add to cart and remove from cart through widget
428 * */
429 public function applyRulesBeforeMiniCart(){
430 WC()->cart->get_cart_from_session();
431 $this->discountBase->handlePriceDiscount();
432 WC()->cart->calculate_totals();
433 }
434
435 /**
436 * To display applied discount messages for cart rules
437 * */
438 public function displayAppliedDiscountMessagesForCartRules(){
439 $message_on_apply_cart_discount = $this->discountBase->getConfigData('message_on_apply_cart_discount', 'no');
440 if($message_on_apply_cart_discount == "yes"){
441 if(!empty($this->cart_rules)){
442 if(!empty($this->cart_rules->matched_discounts)){
443 $matched_discounts = $this->cart_rules->matched_discounts;
444 if(!empty($matched_discounts['name'])){
445 foreach ($matched_discounts['name'] as $key => $matched_discount_name){
446 $rule_sets = $this->cart_rules->rule_sets;
447 $rule_title = $matched_discount_name;
448 $rule_description = '';
449 if(isset($rule_sets[$key])){
450 if(!empty($rule_sets[$key]['descr'])) $rule_description = $rule_sets[$key]['descr'];
451 }
452 $message_on_apply_cart_discount_text = $this->discountBase->getConfigData('message_on_apply_cart_discount_text', 'Discount <strong>"{{title}}"</strong> has been applied to your cart.');
453 $message_on_apply_cart_discount_text = __($message_on_apply_cart_discount_text, 'woo-discount-rules');
454 $message_on_apply_cart_discount_text = str_replace('{{title}}', $rule_title, $message_on_apply_cart_discount_text);
455 $message_on_apply_cart_discount_text = str_replace('{{description}}', $rule_description, $message_on_apply_cart_discount_text);
456 wc_print_notice( apply_filters('woo_discount_rules_message_on_apply_cart_rules', $message_on_apply_cart_discount_text, $rule_sets), 'success' );
457 }
458 }
459 }
460 }
461 }
462 }
463
464 /**
465 * To display applied discount messages for cart rules
466 * */
467 public function displayAppliedDiscountMessagesForPriceRules(){
468 $message_on_apply_price_discount = $this->discountBase->getConfigData('message_on_apply_price_discount', 'no');
469 if($message_on_apply_price_discount == "yes"){
470 $applied_discount_rules = FlycartWooDiscountRulesPricingRules::$applied_discount_rules;
471 if(!empty($applied_discount_rules)){
472 foreach ($applied_discount_rules as $key => $matched_discount_rules){
473 $rule_title = $matched_discount_rules['name'];
474 $rule_description = $matched_discount_rules['descr'];
475 $message_on_apply_cart_discount_text = $this->discountBase->getConfigData('message_on_apply_price_discount_text', 'Discount <strong>"{{title}}"</strong> has been applied to your cart.');
476 $message_on_apply_cart_discount_text = __($message_on_apply_cart_discount_text, 'woo-discount-rules');
477 $message_on_apply_cart_discount_text = str_replace('{{title}}', $rule_title, $message_on_apply_cart_discount_text);
478 $message_on_apply_cart_discount_text = str_replace('{{description}}', $rule_description, $message_on_apply_cart_discount_text);
479 wc_print_notice( apply_filters('woo_discount_rules_message_on_apply_price_rules', $message_on_apply_cart_discount_text, $matched_discount_rules), 'success' );
480 }
481 }
482 }
483 }
484 }
485 }
486
487 add_filter('woocommerce_screen_ids', function($screen_ids){
488 $screen_ids[] = 'woocommerce_page_woo_discount_rules';
489 return $screen_ids;
490 });
491
492 /**
493 * init Woo Discount Rules
494 */
495 if ( is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
496 global $flycart_woo_discount_rules;
497 $flycart_woo_discount_rules = FlycartWooDiscountRules::init();
498 $purchase_helper = new FlycartWooDiscountRulesPurchase();
499 if($purchase_helper->isPro()){
500 include_once('includes/advanced/free_shipping_method.php');
501 include_once('includes/advanced/pricing-productdependent.php');
502 include_once('includes/advanced/cart-totals.php');
503 include_once('includes/advanced/advanced-helper.php');
504 }
505 }
506