Discount Rules for WooCommerce - Version 2.3.11

Version Description

  • 16/12/21 =
  • Improvement - Load cart item quantity through event advanced_woo_discount_rules_cart_item_quantity.
  • Improvement - Load cart item count through event advanced_woo_discount_rules_include_cart_item_to_count_quantity.
  • Improvement - Disable free shipping rule in statistics.
  • Improvement - Event: advanced_woo_discount_rules_admin_rule_notices.
  • Improvement - Warning on product doesn't exists / out of stock for BXGY.
  • Fix - Purchase history quantities for Specific Product condition doesn't considered variants.
  • Fix - Not displaying variant name when having more than 3 combination of attributes.
  • Fix - Auto add next available variant when a variant in not purchasable.
Download this release

Release Info

Developer flycart
Plugin Icon 128x128 Discount Rules for WooCommerce
Version 2.3.11
Comparing to
See all releases

Code changes from version 2.3.10 to 2.3.11

common.php CHANGED
@@ -89,7 +89,7 @@ add_action('advanced_woo_discount_rules_on_settings_head', function () {
89
  global $awdr_load_version;
90
  $version = ($awdr_load_version == "v1") ? "v2" : "v1";
91
  $url = admin_url('admin.php?page=' . $page . '&awdr_switch_plugin_to=' . $version);
92
- $message = __('Switch to Discount Rules V2 which comes with a better UI and advanced rules. (You can switch back any time. Your settings and rules in V1 are kept as is)', 'woo-discount-rules');
93
  $button_text = __("Switch to v2", 'woo-discount-rules');
94
  if($version == "v1"){
95
  $has_switch = \Wdr\App\Helpers\Migration::hasSwitchBackOption();
@@ -102,6 +102,10 @@ add_action('advanced_woo_discount_rules_on_settings_head', function () {
102
  } else {
103
  $nounce = FlycartWooDiscountRulesGeneralHelper::createNonce('wdr_ajax_switch_version');
104
  }
 
 
 
 
105
  echo '<div style="background: #fff;padding: 20px;font-size: 13px;font-weight: bold;">' . $message . ' <button class="btn btn-info awdr-switch-version-button" data-version="' . $version . '" data-page="'.$page.'" data-nonce="'.$nounce.'">' . $button_text . '</button></div>';
106
  echo "<div class='wdr_switch_message' style='color:#a00;font-weight: bold;'></div>";
107
  echo '<div class="modal" id="wdr_switch_popup">
89
  global $awdr_load_version;
90
  $version = ($awdr_load_version == "v1") ? "v2" : "v1";
91
  $url = admin_url('admin.php?page=' . $page . '&awdr_switch_plugin_to=' . $version);
92
+ $message = __('Discount Rules V2 comes with a better UI and advanced options.', 'woo-discount-rules');
93
  $button_text = __("Switch to v2", 'woo-discount-rules');
94
  if($version == "v1"){
95
  $has_switch = \Wdr\App\Helpers\Migration::hasSwitchBackOption();
102
  } else {
103
  $nounce = FlycartWooDiscountRulesGeneralHelper::createNonce('wdr_ajax_switch_version');
104
  }
105
+ echo '<div class="notice notice-danger" style="background: red; color:#fff; padding: 20px;font-size: 13px;font-weight: bold;">
106
+ <p><b>Important: </b>This UI will be deprecated from 30th March 2022. It is recommended to switch to V2</p>
107
+ </div>';
108
+
109
  echo '<div style="background: #fff;padding: 20px;font-size: 13px;font-weight: bold;">' . $message . ' <button class="btn btn-info awdr-switch-version-button" data-version="' . $version . '" data-page="'.$page.'" data-nonce="'.$nounce.'">' . $button_text . '</button></div>';
110
  echo "<div class='wdr_switch_message' style='color:#a00;font-weight: bold;'></div>";
111
  echo '<div class="modal" id="wdr_switch_popup">
i18n/languages/woo-discount-rules.pot CHANGED
@@ -4,21 +4,21 @@ msgstr ""
4
  "Content-Type: text/plain; charset=UTF-8\n"
5
  "Content-Transfer-Encoding: 8bit\n"
6
  "Project-Id-Version: Woo Discount Rules\n"
7
- "POT-Creation-Date: 2021-10-20\n"
8
- "PO-Revision-Date: 2021-10-20n"
9
  "Language-Team: Flycart\n"
10
  "MIME-Version: 1.0\n"
11
  "Language: \n"
12
  "X-Generator: Loco https://localise.biz/\n"
13
  "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;"
14
 
15
- #: common.php:9 v2/App/Controllers/Admin/Tabs/Statistics.php:118
16
  #: v2/App/Controllers/Admin/WDRAjax.php:69
17
  #: v2/App/Controllers/Admin/WDRAjax.php:72
18
  msgid "Authentication required"
19
  msgstr ""
20
 
21
- #: common.php:17 v2/App/Controllers/Admin/WDRAjax.php:779
22
  msgid "Invalid request"
23
  msgstr ""
24
 
@@ -70,10 +70,7 @@ msgid ""
70
  msgstr ""
71
 
72
  #: common.php:92
73
- msgid ""
74
- "Switch to Discount Rules V2 which comes with a better UI and advanced "
75
- "rules. (You can switch back any time. Your settings and rules in V1 are "
76
- "kept as is)"
77
  msgstr ""
78
 
79
  #: common.php:93
@@ -88,26 +85,26 @@ msgstr ""
88
  msgid "Click here to Switch back"
89
  msgstr ""
90
 
91
- #: common.php:112
92
  msgid "Install 2.0 Pro package"
93
  msgstr ""
94
 
95
- #: common.php:139
96
  msgid "Switch back to Discount Rules 1.x"
97
  msgstr ""
98
 
99
- #: common.php:226
100
  msgid ""
101
  "This plugin can not be activated because it requires minimum PHP version of "
102
  msgstr ""
103
 
104
- #: common.php:229
105
  msgid ""
106
  "Woocommerce must installed and activated in-order to use Advanced woo "
107
  "discount rules!"
108
  msgstr ""
109
 
110
- #: common.php:232
111
  msgid " Advanced woo discount rules requires at least Woocommerce"
112
  msgstr ""
113
 
@@ -183,13 +180,13 @@ msgstr ""
183
 
184
  #: v1/helper/general-helper.php:797
185
  #: v2/App/Views/Admin/Rules/Conditions/Main.php:11
186
- #: v2/App/Views/Admin/Rules/Manage.php:148
187
- #: v2/App/Views/Admin/Rules/Manage.php:149
188
- #: v2/App/Views/Admin/Rules/Manage.php:150
189
- #: v2/App/Views/Admin/Rules/Manage.php:151
190
- #: v2/App/Views/Admin/Rules/Manage.php:152
191
- #: v2/App/Views/Admin/Rules/Manage.php:153
192
- #: v2/App/Views/Admin/Rules/Manage.php:154
193
  #: v2/App/Views/Admin/Tabs/settings.php:24
194
  #: v2/App/Views/Admin/Tabs/settings.php:65
195
  #: v2/App/Views/Admin/Tabs/settings.php:138
@@ -755,7 +752,7 @@ msgid "Action"
755
  msgstr ""
756
 
757
  #: v1/includes/discount-base.php:1169 v1/view/settings.php:33
758
- #: v1/view/settings_taxonomy.php:21 v2/App/Views/Admin/Rules/Manage.php:101
759
  msgid "Save"
760
  msgstr ""
761
 
@@ -845,7 +842,7 @@ msgid ""
845
  msgstr ""
846
 
847
  #: v1/includes/discount-base.php:1186 v1/view/view-cart-rules.php:221
848
- #: v2/App/Controllers/Base.php:47 v2/App/Views/Admin/Rules/Filters/Main.php:69
849
  msgid "Products"
850
  msgstr ""
851
 
@@ -1018,7 +1015,7 @@ msgid ""
1018
  msgstr ""
1019
 
1020
  #: v1/includes/discount-base.php:1302
1021
- #: v2/App/Controllers/ManageDiscount.php:1222
1022
  #, php-format
1023
  msgid ""
1024
  "Sorry, it is not possible to apply coupon <b>\"%s\"</b> as you already have "
@@ -1440,8 +1437,8 @@ msgstr ""
1440
  #: v1/view/includes/cart-menu.php:13 v1/view/includes/sub-menu.php:13
1441
  #: v1/view/template/discount-table.php:42 v1/view/view-cart-rules.php:756
1442
  #: v1/view/view-pricing-rules.php:708 v2/App/Controllers/Admin/Settings.php:463
1443
- #: v2/App/Helpers/Rule.php:1230 v2/App/Views/Admin/Rules/Discounts/Bulk.php:59
1444
- #: v2/App/Views/Admin/Rules/Manage.php:209
1445
  msgid "Discount"
1446
  msgstr ""
1447
 
@@ -2101,7 +2098,7 @@ msgid ""
2101
  msgstr ""
2102
 
2103
  #: v1/view/view-cart-rules.php:98 v1/view/view-pricing-rules.php:81
2104
- #: v2/App/Controllers/Admin/Tabs/Statistics.php:37
2105
  msgid "Rule Name"
2106
  msgstr ""
2107
 
@@ -2136,7 +2133,6 @@ msgid "To"
2136
  msgstr ""
2137
 
2138
  #: v1/view/view-cart-rules.php:140 v1/view/view-pricing-rules.php:149
2139
- #: v2/App/Views/Admin/Rules/Conditions/Main.php:150
2140
  #, php-format
2141
  msgid "Current date and time: %s"
2142
  msgstr ""
@@ -2625,11 +2621,11 @@ msgstr ""
2625
  msgid "Add compatible for WooCommerce Wholesale Prices"
2626
  msgstr ""
2627
 
2628
- #: v2/App/Conditions/CartLineItemsCount.php:15
2629
  msgid "Line Item Count"
2630
  msgstr ""
2631
 
2632
- #: v2/App/Conditions/CartLineItemsCount.php:16
2633
  #: v2/App/Conditions/CartSubTotal.php:19 v2/App/Helpers/ProOptions.php:80
2634
  #: v2/App/Helpers/ProOptions.php:136 v2/App/Helpers/ProOptions.php:144
2635
  #: v2/App/Helpers/ProOptions.php:152 v2/App/Views/Admin/Tabs/settings.php:292
@@ -2733,7 +2729,7 @@ msgid "Filter (Buy)"
2733
  msgstr ""
2734
 
2735
  #: v2/App/Controllers/Admin/Settings.php:460
2736
- #: v2/App/Views/Admin/Rules/Manage.php:163
2737
  msgid "Filter"
2738
  msgstr ""
2739
 
@@ -3033,20 +3029,20 @@ msgstr ""
3033
  msgid "Reports"
3034
  msgstr ""
3035
 
3036
- #: v2/App/Controllers/Admin/Tabs/Statistics.php:44
3037
  msgid "All Rules"
3038
  msgstr ""
3039
 
3040
- #: v2/App/Controllers/Admin/Tabs/Statistics.php:45
3041
- #: v2/App/Controllers/Admin/Tabs/Statistics.php:51
3042
  msgid "Rule"
3043
  msgstr ""
3044
 
3045
- #: v2/App/Controllers/Admin/Tabs/Statistics.php:50
3046
  msgid "All Rules (except cart adjustment type)"
3047
  msgstr ""
3048
 
3049
- #: v2/App/Controllers/Admin/WDRAjax.php:740
3050
  msgid "Search State"
3051
  msgstr ""
3052
 
@@ -3080,31 +3076,31 @@ msgstr ""
3080
  msgid "Bulk Discount"
3081
  msgstr ""
3082
 
3083
- #: v2/App/Controllers/ManageDiscount.php:166
3084
  msgid "<span class=\"onsale\">{{percentage}}%</span>"
3085
  msgstr ""
3086
 
3087
- #: v2/App/Controllers/ManageDiscount.php:177
3088
  msgid "<span class=\"onsale\">Sale!</span>"
3089
  msgstr ""
3090
 
3091
- #: v2/App/Controllers/ManageDiscount.php:750
3092
- #: v2/App/Controllers/ManageDiscount.php:970
3093
- #: v2/App/Controllers/ManageDiscount.php:973 v2/App/Helpers/Helper.php:271
3094
  #: v2/App/Helpers/Helper.php:272
3095
  msgid "Cart discount"
3096
  msgstr ""
3097
 
3098
- #: v2/App/Controllers/ManageDiscount.php:1236
3099
  msgid "Coupon code applied successfully."
3100
  msgstr ""
3101
 
3102
- #: v2/App/Controllers/ManageDiscount.php:1656
3103
  #: v2/App/Views/Admin/Tabs/settings.php:441
3104
  msgid "Discount <strong>{{title}}</strong> has been applied to your cart."
3105
  msgstr ""
3106
 
3107
- #: v2/App/Controllers/ManageDiscount.php:1782
3108
  msgid "You saved {{total_discount}}"
3109
  msgstr ""
3110
 
@@ -3357,7 +3353,7 @@ msgstr ""
3357
  msgid "Bundle (Set) Discount - PRO -"
3358
  msgstr ""
3359
 
3360
- #: v2/App/Helpers/Rule.php:1308 v2/App/Helpers/Rule.php:1408
3361
  #: v2/App/Views/Admin/Tabs/ImportExport.php:101
3362
  msgid "Untitled Rule"
3363
  msgstr ""
@@ -3633,6 +3629,11 @@ msgstr ""
3633
  msgid "Rule Limits"
3634
  msgstr ""
3635
 
 
 
 
 
 
3636
  #: v2/App/Views/Admin/Rules/Conditions/Main.php:153
3637
  msgid "Rule Used: "
3638
  msgstr ""
@@ -3944,18 +3945,18 @@ msgstr ""
3944
  msgid "Not In List"
3945
  msgstr ""
3946
 
3947
- #: v2/App/Views/Admin/Rules/Filters/Main.php:82
3948
  msgid "Select "
3949
  msgstr ""
3950
 
3951
- #: v2/App/Views/Admin/Rules/Filters/Main.php:98
3952
  msgid ""
3953
  "Choose products that get the discount using \"In List\". If you want to "
3954
  "exclude a few products, choose \"Not In List\" and select the products you "
3955
  "wanted to exclude from discount. (You can add multiple filters)"
3956
  msgstr ""
3957
 
3958
- #: v2/App/Views/Admin/Rules/Filters/Main.php:101
3959
  msgid ""
3960
  "Choose categories that get the discount using \"In List\". If you want to "
3961
  "exclude a few categories, choose \"Not In List\" and select the categories "
@@ -3963,7 +3964,7 @@ msgid ""
3963
  "type)"
3964
  msgstr ""
3965
 
3966
- #: v2/App/Views/Admin/Rules/Filters/Main.php:104
3967
  msgid ""
3968
  "Choose attributes that get the discount using \"In List\". If you want to "
3969
  "exclude a few attributes, choose \"Not In List\" and select the attributes "
@@ -3971,36 +3972,36 @@ msgid ""
3971
  "type)"
3972
  msgstr ""
3973
 
3974
- #: v2/App/Views/Admin/Rules/Filters/Main.php:107
3975
  msgid ""
3976
  "Choose tags that get the discount using \"In List\". If you want to exclude "
3977
  "a few tags, choose \"Not In List\" and select the tags you wanted to exclude "
3978
  "from discount. (You can add multiple filters of same type)"
3979
  msgstr ""
3980
 
3981
- #: v2/App/Views/Admin/Rules/Filters/Main.php:110
3982
  msgid ""
3983
  "Choose SKUs that get the discount using \"In List\". If you want to exclude "
3984
  "a few SKUs, choose \"Not In List\" and select the SKUs you wanted to exclude "
3985
  "from discount. (You can add multiple filters of same type)"
3986
  msgstr ""
3987
 
3988
- #: v2/App/Views/Admin/Rules/Filters/Main.php:113
3989
  msgid ""
3990
  "Choose whether you want to include (or exclude) products on sale (those "
3991
  "having a sale price) for the discount "
3992
  msgstr ""
3993
 
3994
- #: v2/App/Views/Admin/Rules/Filters/Main.php:116
3995
- #: v2/App/Views/Admin/Rules/Filters/Main.php:162
3996
  msgid "Discount applies to all eligible products in the store"
3997
  msgstr ""
3998
 
3999
- #: v2/App/Views/Admin/Rules/Filters/Main.php:120
4000
  msgid "Discount applies to custom taxonomy"
4001
  msgstr ""
4002
 
4003
- #: v2/App/Views/Admin/Rules/Filters/Main.php:173
4004
  msgid "Add filter"
4005
  msgstr ""
4006
 
@@ -4022,47 +4023,47 @@ msgstr ""
4022
  msgid " Validity expired"
4023
  msgstr ""
4024
 
4025
- #: v2/App/Views/Admin/Rules/Manage.php:66
4026
- #: v2/App/Views/Admin/Rules/Manage.php:82
4027
  msgid "Enable?"
4028
  msgstr ""
4029
 
4030
- #: v2/App/Views/Admin/Rules/Manage.php:75
4031
- #: v2/App/Views/Admin/Rules/Manage.php:89
4032
  msgid "Apply this rule if matched and ignore all other rules"
4033
  msgstr ""
4034
 
4035
- #: v2/App/Views/Admin/Rules/Manage.php:96
4036
  msgid "#Rule ID: "
4037
  msgstr ""
4038
 
4039
- #: v2/App/Views/Admin/Rules/Manage.php:103
4040
  msgid "Save & Close"
4041
  msgstr ""
4042
 
4043
- #: v2/App/Views/Admin/Rules/Manage.php:106
4044
  msgid "Cancel"
4045
  msgstr ""
4046
 
4047
- #: v2/App/Views/Admin/Rules/Manage.php:115
4048
  msgid "Choose a discount type"
4049
  msgstr ""
4050
 
4051
- #: v2/App/Views/Admin/Rules/Manage.php:119
4052
  msgid "Select Discount Type"
4053
  msgstr ""
4054
 
4055
- #: v2/App/Views/Admin/Rules/Manage.php:165
4056
  msgid ""
4057
  "Choose which <b>gets</b> discount (products/categories/attributes/SKU and so "
4058
  "on )"
4059
  msgstr ""
4060
 
4061
- #: v2/App/Views/Admin/Rules/Manage.php:166
4062
  msgid "Note : You can also exclude products/categories."
4063
  msgstr ""
4064
 
4065
- #: v2/App/Views/Admin/Rules/Manage.php:211
4066
  msgid "Select discount type and its value (percentage/price/fixed price)"
4067
  msgstr ""
4068
 
@@ -4371,27 +4372,32 @@ msgstr ""
4371
  msgid "Subtotal tiered discount - sample"
4372
  msgstr ""
4373
 
4374
- #: v2/App/Views/Admin/Tabs/Statistics.php:39
4375
- msgid "This Week"
 
4376
  msgstr ""
4377
 
4378
  #: v2/App/Views/Admin/Tabs/Statistics.php:40
4379
- msgid "This Month"
4380
  msgstr ""
4381
 
4382
  #: v2/App/Views/Admin/Tabs/Statistics.php:41
 
 
 
 
4383
  msgid "Custom Range"
4384
  msgstr ""
4385
 
4386
- #: v2/App/Views/Admin/Tabs/Statistics.php:49
4387
  msgid "From: yyyy/mm/dd"
4388
  msgstr ""
4389
 
4390
- #: v2/App/Views/Admin/Tabs/Statistics.php:60
4391
  msgid "To: yyyy/mm/dd"
4392
  msgstr ""
4393
 
4394
- #: v2/App/Views/Admin/Tabs/Statistics.php:91
4395
  msgid "Update Chart"
4396
  msgstr ""
4397
 
@@ -4493,11 +4499,11 @@ msgid "All matched rules"
4493
  msgstr ""
4494
 
4495
  #: v2/App/Views/Admin/Tabs/settings.php:50
4496
- msgid "Apply discount subsequently"
4497
  msgstr ""
4498
 
4499
  #: v2/App/Views/Admin/Tabs/settings.php:51
4500
- msgid "discounts applied subsequently"
4501
  msgstr ""
4502
 
4503
  #: v2/App/Views/Admin/Tabs/settings.php:65
@@ -4881,7 +4887,7 @@ msgstr ""
4881
  #: v2/App/Views/Admin/Tabs/settings.php:775
4882
  #: v2/App/Views/Admin/Tabs/settings.php:821
4883
  #: v2/App/Views/Admin/Tabs/settings.php:888
4884
- #: v2/App/Views/Templates/discount_table.php:131
4885
  msgid " flat"
4886
  msgstr ""
4887
 
@@ -4950,6 +4956,6 @@ msgstr ""
4950
  msgid "15"
4951
  msgstr ""
4952
 
4953
- #: v2/App/Views/Templates/discount_table.php:126
4954
  msgid " (in cart)"
4955
  msgstr ""
4
  "Content-Type: text/plain; charset=UTF-8\n"
5
  "Content-Transfer-Encoding: 8bit\n"
6
  "Project-Id-Version: Woo Discount Rules\n"
7
+ "POT-Creation-Date: 2021-12-15\n"
8
+ "PO-Revision-Date: 2021-12-15"
9
  "Language-Team: Flycart\n"
10
  "MIME-Version: 1.0\n"
11
  "Language: \n"
12
  "X-Generator: Loco https://localise.biz/\n"
13
  "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;"
14
 
15
+ #: common.php:9 v2/App/Controllers/Admin/Tabs/Statistics.php:121
16
  #: v2/App/Controllers/Admin/WDRAjax.php:69
17
  #: v2/App/Controllers/Admin/WDRAjax.php:72
18
  msgid "Authentication required"
19
  msgstr ""
20
 
21
+ #: common.php:17 v2/App/Controllers/Admin/WDRAjax.php:782
22
  msgid "Invalid request"
23
  msgstr ""
24
 
70
  msgstr ""
71
 
72
  #: common.php:92
73
+ msgid "Discount Rules V2 comes with a better UI and advanced options."
 
 
 
74
  msgstr ""
75
 
76
  #: common.php:93
85
  msgid "Click here to Switch back"
86
  msgstr ""
87
 
88
+ #: common.php:116
89
  msgid "Install 2.0 Pro package"
90
  msgstr ""
91
 
92
+ #: common.php:143
93
  msgid "Switch back to Discount Rules 1.x"
94
  msgstr ""
95
 
96
+ #: common.php:230
97
  msgid ""
98
  "This plugin can not be activated because it requires minimum PHP version of "
99
  msgstr ""
100
 
101
+ #: common.php:233
102
  msgid ""
103
  "Woocommerce must installed and activated in-order to use Advanced woo "
104
  "discount rules!"
105
  msgstr ""
106
 
107
+ #: common.php:236
108
  msgid " Advanced woo discount rules requires at least Woocommerce"
109
  msgstr ""
110
 
180
 
181
  #: v1/helper/general-helper.php:797
182
  #: v2/App/Views/Admin/Rules/Conditions/Main.php:11
183
+ #: v2/App/Views/Admin/Rules/Manage.php:181
184
+ #: v2/App/Views/Admin/Rules/Manage.php:182
185
+ #: v2/App/Views/Admin/Rules/Manage.php:183
186
+ #: v2/App/Views/Admin/Rules/Manage.php:184
187
+ #: v2/App/Views/Admin/Rules/Manage.php:185
188
+ #: v2/App/Views/Admin/Rules/Manage.php:186
189
+ #: v2/App/Views/Admin/Rules/Manage.php:187
190
  #: v2/App/Views/Admin/Tabs/settings.php:24
191
  #: v2/App/Views/Admin/Tabs/settings.php:65
192
  #: v2/App/Views/Admin/Tabs/settings.php:138
752
  msgstr ""
753
 
754
  #: v1/includes/discount-base.php:1169 v1/view/settings.php:33
755
+ #: v1/view/settings_taxonomy.php:21 v2/App/Views/Admin/Rules/Manage.php:134
756
  msgid "Save"
757
  msgstr ""
758
 
842
  msgstr ""
843
 
844
  #: v1/includes/discount-base.php:1186 v1/view/view-cart-rules.php:221
845
+ #: v2/App/Controllers/Base.php:47 v2/App/Views/Admin/Rules/Filters/Main.php:68
846
  msgid "Products"
847
  msgstr ""
848
 
1015
  msgstr ""
1016
 
1017
  #: v1/includes/discount-base.php:1302
1018
+ #: v2/App/Controllers/ManageDiscount.php:1243
1019
  #, php-format
1020
  msgid ""
1021
  "Sorry, it is not possible to apply coupon <b>\"%s\"</b> as you already have "
1437
  #: v1/view/includes/cart-menu.php:13 v1/view/includes/sub-menu.php:13
1438
  #: v1/view/template/discount-table.php:42 v1/view/view-cart-rules.php:756
1439
  #: v1/view/view-pricing-rules.php:708 v2/App/Controllers/Admin/Settings.php:463
1440
+ #: v2/App/Helpers/Rule.php:1237 v2/App/Views/Admin/Rules/Discounts/Bulk.php:59
1441
+ #: v2/App/Views/Admin/Rules/Manage.php:242
1442
  msgid "Discount"
1443
  msgstr ""
1444
 
2098
  msgstr ""
2099
 
2100
  #: v1/view/view-cart-rules.php:98 v1/view/view-pricing-rules.php:81
2101
+ #: v2/App/Controllers/Admin/Tabs/Statistics.php:39
2102
  msgid "Rule Name"
2103
  msgstr ""
2104
 
2133
  msgstr ""
2134
 
2135
  #: v1/view/view-cart-rules.php:140 v1/view/view-pricing-rules.php:149
 
2136
  #, php-format
2137
  msgid "Current date and time: %s"
2138
  msgstr ""
2621
  msgid "Add compatible for WooCommerce Wholesale Prices"
2622
  msgstr ""
2623
 
2624
+ #: v2/App/Conditions/CartLineItemsCount.php:16
2625
  msgid "Line Item Count"
2626
  msgstr ""
2627
 
2628
+ #: v2/App/Conditions/CartLineItemsCount.php:17
2629
  #: v2/App/Conditions/CartSubTotal.php:19 v2/App/Helpers/ProOptions.php:80
2630
  #: v2/App/Helpers/ProOptions.php:136 v2/App/Helpers/ProOptions.php:144
2631
  #: v2/App/Helpers/ProOptions.php:152 v2/App/Views/Admin/Tabs/settings.php:292
2729
  msgstr ""
2730
 
2731
  #: v2/App/Controllers/Admin/Settings.php:460
2732
+ #: v2/App/Views/Admin/Rules/Manage.php:196
2733
  msgid "Filter"
2734
  msgstr ""
2735
 
3029
  msgid "Reports"
3030
  msgstr ""
3031
 
3032
+ #: v2/App/Controllers/Admin/Tabs/Statistics.php:47
3033
  msgid "All Rules"
3034
  msgstr ""
3035
 
3036
+ #: v2/App/Controllers/Admin/Tabs/Statistics.php:48
3037
+ #: v2/App/Controllers/Admin/Tabs/Statistics.php:54
3038
  msgid "Rule"
3039
  msgstr ""
3040
 
3041
+ #: v2/App/Controllers/Admin/Tabs/Statistics.php:53
3042
  msgid "All Rules (except cart adjustment type)"
3043
  msgstr ""
3044
 
3045
+ #: v2/App/Controllers/Admin/WDRAjax.php:743
3046
  msgid "Search State"
3047
  msgstr ""
3048
 
3076
  msgid "Bulk Discount"
3077
  msgstr ""
3078
 
3079
+ #: v2/App/Controllers/ManageDiscount.php:173
3080
  msgid "<span class=\"onsale\">{{percentage}}%</span>"
3081
  msgstr ""
3082
 
3083
+ #: v2/App/Controllers/ManageDiscount.php:184
3084
  msgid "<span class=\"onsale\">Sale!</span>"
3085
  msgstr ""
3086
 
3087
+ #: v2/App/Controllers/ManageDiscount.php:771
3088
+ #: v2/App/Controllers/ManageDiscount.php:991
3089
+ #: v2/App/Controllers/ManageDiscount.php:994 v2/App/Helpers/Helper.php:271
3090
  #: v2/App/Helpers/Helper.php:272
3091
  msgid "Cart discount"
3092
  msgstr ""
3093
 
3094
+ #: v2/App/Controllers/ManageDiscount.php:1257
3095
  msgid "Coupon code applied successfully."
3096
  msgstr ""
3097
 
3098
+ #: v2/App/Controllers/ManageDiscount.php:1678
3099
  #: v2/App/Views/Admin/Tabs/settings.php:441
3100
  msgid "Discount <strong>{{title}}</strong> has been applied to your cart."
3101
  msgstr ""
3102
 
3103
+ #: v2/App/Controllers/ManageDiscount.php:1806
3104
  msgid "You saved {{total_discount}}"
3105
  msgstr ""
3106
 
3353
  msgid "Bundle (Set) Discount - PRO -"
3354
  msgstr ""
3355
 
3356
+ #: v2/App/Helpers/Rule.php:1315 v2/App/Helpers/Rule.php:1415
3357
  #: v2/App/Views/Admin/Tabs/ImportExport.php:101
3358
  msgid "Untitled Rule"
3359
  msgstr ""
3629
  msgid "Rule Limits"
3630
  msgstr ""
3631
 
3632
+ #: v2/App/Views/Admin/Rules/Conditions/Main.php:150
3633
+ #, php-format
3634
+ msgid "Current server date and time: %s"
3635
+ msgstr ""
3636
+
3637
  #: v2/App/Views/Admin/Rules/Conditions/Main.php:153
3638
  msgid "Rule Used: "
3639
  msgstr ""
3945
  msgid "Not In List"
3946
  msgstr ""
3947
 
3948
+ #: v2/App/Views/Admin/Rules/Filters/Main.php:81
3949
  msgid "Select "
3950
  msgstr ""
3951
 
3952
+ #: v2/App/Views/Admin/Rules/Filters/Main.php:97
3953
  msgid ""
3954
  "Choose products that get the discount using \"In List\". If you want to "
3955
  "exclude a few products, choose \"Not In List\" and select the products you "
3956
  "wanted to exclude from discount. (You can add multiple filters)"
3957
  msgstr ""
3958
 
3959
+ #: v2/App/Views/Admin/Rules/Filters/Main.php:100
3960
  msgid ""
3961
  "Choose categories that get the discount using \"In List\". If you want to "
3962
  "exclude a few categories, choose \"Not In List\" and select the categories "
3964
  "type)"
3965
  msgstr ""
3966
 
3967
+ #: v2/App/Views/Admin/Rules/Filters/Main.php:103
3968
  msgid ""
3969
  "Choose attributes that get the discount using \"In List\". If you want to "
3970
  "exclude a few attributes, choose \"Not In List\" and select the attributes "
3972
  "type)"
3973
  msgstr ""
3974
 
3975
+ #: v2/App/Views/Admin/Rules/Filters/Main.php:106
3976
  msgid ""
3977
  "Choose tags that get the discount using \"In List\". If you want to exclude "
3978
  "a few tags, choose \"Not In List\" and select the tags you wanted to exclude "
3979
  "from discount. (You can add multiple filters of same type)"
3980
  msgstr ""
3981
 
3982
+ #: v2/App/Views/Admin/Rules/Filters/Main.php:109
3983
  msgid ""
3984
  "Choose SKUs that get the discount using \"In List\". If you want to exclude "
3985
  "a few SKUs, choose \"Not In List\" and select the SKUs you wanted to exclude "
3986
  "from discount. (You can add multiple filters of same type)"
3987
  msgstr ""
3988
 
3989
+ #: v2/App/Views/Admin/Rules/Filters/Main.php:112
3990
  msgid ""
3991
  "Choose whether you want to include (or exclude) products on sale (those "
3992
  "having a sale price) for the discount "
3993
  msgstr ""
3994
 
3995
+ #: v2/App/Views/Admin/Rules/Filters/Main.php:115
3996
+ #: v2/App/Views/Admin/Rules/Filters/Main.php:161
3997
  msgid "Discount applies to all eligible products in the store"
3998
  msgstr ""
3999
 
4000
+ #: v2/App/Views/Admin/Rules/Filters/Main.php:119
4001
  msgid "Discount applies to custom taxonomy"
4002
  msgstr ""
4003
 
4004
+ #: v2/App/Views/Admin/Rules/Filters/Main.php:172
4005
  msgid "Add filter"
4006
  msgstr ""
4007
 
4023
  msgid " Validity expired"
4024
  msgstr ""
4025
 
4026
+ #: v2/App/Views/Admin/Rules/Manage.php:99
4027
+ #: v2/App/Views/Admin/Rules/Manage.php:115
4028
  msgid "Enable?"
4029
  msgstr ""
4030
 
4031
+ #: v2/App/Views/Admin/Rules/Manage.php:108
4032
+ #: v2/App/Views/Admin/Rules/Manage.php:122
4033
  msgid "Apply this rule if matched and ignore all other rules"
4034
  msgstr ""
4035
 
4036
+ #: v2/App/Views/Admin/Rules/Manage.php:129
4037
  msgid "#Rule ID: "
4038
  msgstr ""
4039
 
4040
+ #: v2/App/Views/Admin/Rules/Manage.php:136
4041
  msgid "Save & Close"
4042
  msgstr ""
4043
 
4044
+ #: v2/App/Views/Admin/Rules/Manage.php:139
4045
  msgid "Cancel"
4046
  msgstr ""
4047
 
4048
+ #: v2/App/Views/Admin/Rules/Manage.php:148
4049
  msgid "Choose a discount type"
4050
  msgstr ""
4051
 
4052
+ #: v2/App/Views/Admin/Rules/Manage.php:152
4053
  msgid "Select Discount Type"
4054
  msgstr ""
4055
 
4056
+ #: v2/App/Views/Admin/Rules/Manage.php:198
4057
  msgid ""
4058
  "Choose which <b>gets</b> discount (products/categories/attributes/SKU and so "
4059
  "on )"
4060
  msgstr ""
4061
 
4062
+ #: v2/App/Views/Admin/Rules/Manage.php:199
4063
  msgid "Note : You can also exclude products/categories."
4064
  msgstr ""
4065
 
4066
+ #: v2/App/Views/Admin/Rules/Manage.php:244
4067
  msgid "Select discount type and its value (percentage/price/fixed price)"
4068
  msgstr ""
4069
 
4372
  msgid "Subtotal tiered discount - sample"
4373
  msgstr ""
4374
 
4375
+ #: v2/App/Views/Admin/Tabs/Statistics.php:33
4376
+ msgid ""
4377
+ "<strong>Note</strong> : Free Shipping rules will not be shown in reports."
4378
  msgstr ""
4379
 
4380
  #: v2/App/Views/Admin/Tabs/Statistics.php:40
4381
+ msgid "This Week"
4382
  msgstr ""
4383
 
4384
  #: v2/App/Views/Admin/Tabs/Statistics.php:41
4385
+ msgid "This Month"
4386
+ msgstr ""
4387
+
4388
+ #: v2/App/Views/Admin/Tabs/Statistics.php:42
4389
  msgid "Custom Range"
4390
  msgstr ""
4391
 
4392
+ #: v2/App/Views/Admin/Tabs/Statistics.php:50
4393
  msgid "From: yyyy/mm/dd"
4394
  msgstr ""
4395
 
4396
+ #: v2/App/Views/Admin/Tabs/Statistics.php:61
4397
  msgid "To: yyyy/mm/dd"
4398
  msgstr ""
4399
 
4400
+ #: v2/App/Views/Admin/Tabs/Statistics.php:92
4401
  msgid "Update Chart"
4402
  msgstr ""
4403
 
4499
  msgstr ""
4500
 
4501
  #: v2/App/Views/Admin/Tabs/settings.php:50
4502
+ msgid "Apply discount sequentially"
4503
  msgstr ""
4504
 
4505
  #: v2/App/Views/Admin/Tabs/settings.php:51
4506
+ msgid "This apply the discount rules in a sequential order."
4507
  msgstr ""
4508
 
4509
  #: v2/App/Views/Admin/Tabs/settings.php:65
4887
  #: v2/App/Views/Admin/Tabs/settings.php:775
4888
  #: v2/App/Views/Admin/Tabs/settings.php:821
4889
  #: v2/App/Views/Admin/Tabs/settings.php:888
4890
+ #: v2/App/Views/Templates/discount_table.php:141
4891
  msgid " flat"
4892
  msgstr ""
4893
 
4956
  msgid "15"
4957
  msgstr ""
4958
 
4959
+ #: v2/App/Views/Templates/discount_table.php:136
4960
  msgid " (in cart)"
4961
  msgstr ""
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://flycart.org/
4
  Tags: woocommerce, coupons, discounts, dynamic pricing, Buy One Get One Free, pricing deals, bulk discount, discount
5
  Requires at least: 4.4.1
6
  Tested up to: 5.8
7
- Stable tag: 2.3.10
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -336,6 +336,16 @@ Note : Enable recursive checkbox if the discounts should be applied in sequentia
336
 
337
  == Changelog ==
338
 
 
 
 
 
 
 
 
 
 
 
339
  = 2.3.10 - 15/11/21 =
340
  * Improvement - Event advanced_woo_discount_rules_calculate_cheapest_discount.
341
  * Improvement - Event advanced_woo_discount_rules_use_sale_badge_percentage_customization.
4
  Tags: woocommerce, coupons, discounts, dynamic pricing, Buy One Get One Free, pricing deals, bulk discount, discount
5
  Requires at least: 4.4.1
6
  Tested up to: 5.8
7
+ Stable tag: 2.3.11
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
336
 
337
  == Changelog ==
338
 
339
+ = 2.3.11 - 16/12/21 =
340
+ * Improvement - Load cart item quantity through event advanced_woo_discount_rules_cart_item_quantity.
341
+ * Improvement - Load cart item count through event advanced_woo_discount_rules_include_cart_item_to_count_quantity.
342
+ * Improvement - Disable free shipping rule in statistics.
343
+ * Improvement - Event: advanced_woo_discount_rules_admin_rule_notices.
344
+ * Improvement - Warning on product doesn't exists / out of stock for BXGY.
345
+ * Fix - Purchase history quantities for Specific Product condition doesn't considered variants.
346
+ * Fix - Not displaying variant name when having more than 3 combination of attributes.
347
+ * Fix - Auto add next available variant when a variant in not purchasable.
348
+
349
  = 2.3.10 - 15/11/21 =
350
  * Improvement - Event advanced_woo_discount_rules_calculate_cheapest_discount.
351
  * Improvement - Event advanced_woo_discount_rules_use_sale_badge_percentage_customization.
v2/App/Conditions/CartLineItemsCount.php CHANGED
@@ -2,6 +2,7 @@
2
 
3
  namespace Wdr\App\Conditions;
4
 
 
5
  use Wdr\App\Controllers\DiscountCalculator;
6
 
7
  if (!defined('ABSPATH')) exit;
@@ -22,16 +23,25 @@ class CartLineItemsCount extends Base
22
  if(empty($cart)){
23
  return false;
24
  }
 
25
  if (isset($options->operator) && $options->value) {
26
  $operator = sanitize_text_field($options->operator);
27
  $value = $options->value;
28
  if($options->calculate_from == 'from_filter'){
29
  $line_items = DiscountCalculator::getFilterBasedCartQuantities('cart_line_items_count', $this->rule);
30
  }else{
31
- $line_items = (is_array($cart)) ? count($cart) : 0;
 
 
 
 
 
 
 
 
32
  }
33
  return $this->doComparisionOperation($operator, $line_items, $value);
34
  }
35
  return false;
36
  }
37
- }
2
 
3
  namespace Wdr\App\Conditions;
4
 
5
+ use Wdr\App\Helpers\Helper;
6
  use Wdr\App\Controllers\DiscountCalculator;
7
 
8
  if (!defined('ABSPATH')) exit;
23
  if(empty($cart)){
24
  return false;
25
  }
26
+
27
  if (isset($options->operator) && $options->value) {
28
  $operator = sanitize_text_field($options->operator);
29
  $value = $options->value;
30
  if($options->calculate_from == 'from_filter'){
31
  $line_items = DiscountCalculator::getFilterBasedCartQuantities('cart_line_items_count', $this->rule);
32
  }else{
33
+ $line_item_count = 0;
34
+ if (is_array($cart)) {
35
+ foreach ($cart as $cart_item) {
36
+ if (Helper::isCartItemConsideredForCalculation(true, $cart_item, 'cart_line_items_count')) {
37
+ $line_item_count++;
38
+ }
39
+ }
40
+ }
41
+ $line_items = $line_item_count;
42
  }
43
  return $this->doComparisionOperation($operator, $line_items, $value);
44
  }
45
  return false;
46
  }
47
+ }
v2/App/Controllers/Admin/Tabs/Statistics.php CHANGED
@@ -29,14 +29,17 @@ class Statistics extends Base
29
  $available_conditions = $this->getAvailableConditions();
30
  $rules = $rule_helper->getAllRules($available_conditions);
31
  foreach ($rules as $rule){
32
- $rule_id = $rule->getId();
33
- $rule_title = $rule->getTitle();
34
- $this->rule_details[$rule_id] = array(
35
- 'handler' => new Reports\RuleNameDiscount($rule),
36
- 'label' => __( $rule_title , 'woo-discount-rules' ),
37
- 'group' => __( 'Rule Name', 'woo-discount-rules' ),
38
- 'rule_id' => $rule_id,
39
- );
 
 
 
40
  }
41
  $this->reports = array(
42
  'rule_amount_extra' => array(
@@ -119,4 +122,4 @@ class Statistics extends Base
119
  }
120
  }
121
 
122
- }
29
  $available_conditions = $this->getAvailableConditions();
30
  $rules = $rule_helper->getAllRules($available_conditions);
31
  foreach ($rules as $rule){
32
+ $rule_discount_type = $rule->getRuleDiscountType();
33
+ if ($rule_discount_type != 'wdr_free_shipping') { // to remove free shipping rules data from statistics reports
34
+ $rule_id = $rule->getId();
35
+ $rule_title = $rule->getTitle();
36
+ $this->rule_details[$rule_id] = array(
37
+ 'handler' => new Reports\RuleNameDiscount($rule),
38
+ 'label' => __( $rule_title , 'woo-discount-rules' ),
39
+ 'group' => __( 'Rule Name', 'woo-discount-rules' ),
40
+ 'rule_id' => $rule_id,
41
+ );
42
+ }
43
  }
44
  $this->reports = array(
45
  'rule_amount_extra' => array(
122
  }
123
  }
124
 
125
+ }
v2/App/Controllers/Admin/WDRAjax.php CHANGED
@@ -155,9 +155,12 @@ class WDRAjax extends Base
155
  $data_store = WC_Data_Store::load('product');
156
  $ids = $data_store->search_products($query, '', true, false, $this->search_result_limit);
157
  return array_values(array_map( function ( $post_id ) {
 
 
 
158
  return array(
159
  'id' => (string) $post_id,
160
- 'text' => '#' . $post_id . ' ' . get_the_title( $post_id ),
161
  );
162
  }, array_filter( $ids ) ));
163
  }
@@ -278,7 +281,7 @@ class WDRAjax extends Base
278
  if(function_exists('wc_get_product_id_by_sku') && function_exists('get_the_title') ){
279
  $p_id = wc_get_product_id_by_sku( $result->meta_value );
280
  if( $p_id > 0){
281
- $p_title = $p_id.': '.get_the_title( $p_id );
282
  if(!empty($p_title)){
283
  $p_title = 'SKU: ' . $result->meta_value . ' ( ' . $p_title . ' )';
284
  }
155
  $data_store = WC_Data_Store::load('product');
156
  $ids = $data_store->search_products($query, '', true, false, $this->search_result_limit);
157
  return array_values(array_map( function ( $post_id ) {
158
+ $product = Woocommerce::getProduct($post_id);
159
+ $product_title = Woocommerce::getTitleOfProduct($product);
160
+
161
  return array(
162
  'id' => (string) $post_id,
163
+ 'text' => '#' . $post_id . ' ' . $product_title,
164
  );
165
  }, array_filter( $ids ) ));
166
  }
281
  if(function_exists('wc_get_product_id_by_sku') && function_exists('get_the_title') ){
282
  $p_id = wc_get_product_id_by_sku( $result->meta_value );
283
  if( $p_id > 0){
284
+ $p_title = $p_id.': '.Woocommerce::getTitleOfProduct($p_id);
285
  if(!empty($p_title)){
286
  $p_title = 'SKU: ' . $result->meta_value . ' ( ' . $p_title . ' )';
287
  }
v2/App/Controllers/DiscountCalculator.php CHANGED
@@ -1191,7 +1191,7 @@ class DiscountCalculator extends Base
1191
  if($condition_type == 'cart_subtotal'){
1192
  $filter_calculate_values += self::$woocommerce_helper->getCartLineItemSubtotal($cart_item);
1193
  }elseif ($condition_type == 'cart_quantities'){
1194
- $filter_calculate_values += intval((isset($cart_item['quantity'])) ? $cart_item['quantity'] : 0);
1195
  }elseif ($condition_type == 'cart_line_items_count'){
1196
  $filter_calculate_values += 1;
1197
  }else{
@@ -1202,4 +1202,4 @@ class DiscountCalculator extends Base
1202
  }
1203
  return $filter_calculate_values;
1204
  }
1205
- }
1191
  if($condition_type == 'cart_subtotal'){
1192
  $filter_calculate_values += self::$woocommerce_helper->getCartLineItemSubtotal($cart_item);
1193
  }elseif ($condition_type == 'cart_quantities'){
1194
+ $filter_calculate_values += $rule->getCartItemQuantity($cart_item);
1195
  }elseif ($condition_type == 'cart_line_items_count'){
1196
  $filter_calculate_values += 1;
1197
  }else{
1202
  }
1203
  return $filter_calculate_values;
1204
  }
1205
+ }
v2/App/Helpers/Helper.php CHANGED
@@ -332,9 +332,9 @@ class Helper
332
 
333
  public static function displayCompatibleCheckMessages()
334
  {
335
- if (version_compare(WDR_VERSION, '2.3.10', '>=')) {
336
  if (defined('WDR_PRO_VERSION')) {
337
- if (version_compare(WDR_PRO_VERSION, '2.3.10', '<')) {
338
  $url = admin_url() . "plugins.php";
339
  $plugin_page = '<a target="_blank" href="' . $url . '">' . __('Update now', 'woo-discount-rules') . '</a>';
340
  ?>
332
 
333
  public static function displayCompatibleCheckMessages()
334
  {
335
+ if (version_compare(WDR_VERSION, '2.3.11', '>=')) {
336
  if (defined('WDR_PRO_VERSION')) {
337
+ if (version_compare(WDR_PRO_VERSION, '2.3.11', '<')) {
338
  $url = admin_url() . "plugins.php";
339
  $plugin_page = '<a target="_blank" href="' . $url . '">' . __('Update now', 'woo-discount-rules') . '</a>';
340
  ?>
v2/App/Helpers/Rule.php CHANGED
@@ -908,7 +908,8 @@ class Rule
908
  }
909
 
910
  function getCartItemQuantity($cart_item){
911
- return apply_filters('advanced_woo_discount_rules_cart_item_quantity', $cart_item['quantity'], $cart_item, $this->rule);
 
912
  }
913
 
914
  /**
@@ -1542,13 +1543,14 @@ class Rule
1542
  if (!empty($array_filters)) {
1543
  foreach ($array_filters as $key => $array_filter) {
1544
  if (isset($array_filter['type']) && isset($array_filter['options'])) {
1545
- if (in_array($array_filter['type'], array('cart_item_product_combination', 'cart_item_products', 'purchase_previous_orders_for_specific_product')) && !empty($array_filter['options'])) {
1546
  $product_field_key = 'product';
1547
  if ($array_filter['type'] == 'cart_item_products') {
1548
  $product_field_key = 'value';
1549
- } elseif ($array_filter['type'] == 'purchase_previous_orders_for_specific_product') {
1550
  $product_field_key = 'products';
1551
  }
 
1552
  if (is_array($array_filter['options']) && isset($array_filter['options'][$product_field_key])) {
1553
  $array_filters[$key]['options']['product_variants'] = array();
1554
  if (is_array($array_filter['options'][$product_field_key]) && !empty($array_filter['options'][$product_field_key])) {
@@ -1742,4 +1744,4 @@ class Rule
1742
  }
1743
  return false;
1744
  }
1745
- }
908
  }
909
 
910
  function getCartItemQuantity($cart_item){
911
+ $cart_item_quantity = (isset($cart_item['quantity'])) ? $cart_item['quantity'] : 0;
912
+ return apply_filters('advanced_woo_discount_rules_cart_item_quantity', intval($cart_item_quantity), $cart_item, $this->rule);
913
  }
914
 
915
  /**
1543
  if (!empty($array_filters)) {
1544
  foreach ($array_filters as $key => $array_filter) {
1545
  if (isset($array_filter['type']) && isset($array_filter['options'])) {
1546
+ if (in_array($array_filter['type'], array('cart_item_product_combination', 'cart_item_products', 'purchase_previous_orders_for_specific_product', 'purchase_quantities_for_specific_product')) && !empty($array_filter['options'])) {
1547
  $product_field_key = 'product';
1548
  if ($array_filter['type'] == 'cart_item_products') {
1549
  $product_field_key = 'value';
1550
+ } elseif (in_array($array_filter['type'], array('purchase_previous_orders_for_specific_product', 'purchase_quantities_for_specific_product'))) {
1551
  $product_field_key = 'products';
1552
  }
1553
+
1554
  if (is_array($array_filter['options']) && isset($array_filter['options'][$product_field_key])) {
1555
  $array_filters[$key]['options']['product_variants'] = array();
1556
  if (is_array($array_filter['options'][$product_field_key]) && !empty($array_filter['options'][$product_field_key])) {
1744
  }
1745
  return false;
1746
  }
1747
+ }
v2/App/Helpers/Woocommerce.php CHANGED
@@ -1687,4 +1687,45 @@ class Woocommerce
1687
  return false;
1688
  }
1689
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1690
  }
1687
  return false;
1688
  }
1689
  }
1690
+
1691
+ /**
1692
+ * @param array|WC_Product_Variation $variation Variation object.
1693
+ * @param bool $flat Should this be a flat list or HTML list? (default: false).
1694
+ * @param bool $include_names include attribute names/labels in the list.
1695
+ * @param bool $skip_attributes_in_name Do not list attributes already part of the variation name.
1696
+ * @return string
1697
+ */
1698
+ static function wc_get_formatted_variation( $variation, $flat = false, $include_names = true, $skip_attributes_in_name = false ) {
1699
+ if (function_exists('wc_get_formatted_variation')) {
1700
+ return wc_get_formatted_variation($variation, $flat, $include_names, $skip_attributes_in_name);
1701
+ } else {
1702
+ return '';
1703
+ }
1704
+ }
1705
+
1706
+ /**
1707
+ * Get title of product
1708
+ * @param $product - woocommerce product object
1709
+ * @return string
1710
+ */
1711
+ static function getTitleOfProduct($product){
1712
+ if (is_numeric($product)) $product = self::getProduct($product);
1713
+ $product_id = self::getProductId($product);
1714
+ if(self::productTypeIs($product, 'variation')){
1715
+ $attributes = (array) self::getProductAttributes($product);
1716
+ if (count($attributes) > 2) {
1717
+ $variation_parent_id = self::getProductParentId($product);
1718
+ $variation_parent_title = get_the_title($variation_parent_id);
1719
+ $variation_separator = apply_filters('woocommerce_product_variation_title_attributes_separator', ' - ', $product);
1720
+ $variation_attributes = self::wc_get_formatted_variation($product, true, false);
1721
+ $product_title = $variation_parent_title . $variation_separator . $variation_attributes;
1722
+ } else {
1723
+ $product_title = get_the_title($product_id);
1724
+ }
1725
+ } else {
1726
+ $product_title = get_the_title($product_id);
1727
+ }
1728
+
1729
+ return $product_title;
1730
+ }
1731
  }
v2/App/Views/Admin/Rules/Conditions/Main.php CHANGED
@@ -147,7 +147,7 @@ $is_pro = \Wdr\App\Helpers\Helper::hasPro();
147
  $used_limits = $rule->getUsedLimits(); ?>
148
  <label><b><?php _e('Rule Limits', 'woo-discount-rules'); ?></b>
149
  <span class="awdr-rule-limit-timestamp"><?php
150
- if(!empty($current_time)) echo sprintf(esc_html__('Current date and time: %s', 'woo-discount-rules'), '<b>' . date('Y-m-d H:i', $current_time) . '</b>'); ?>
151
  </span>
152
  <span class="awdr-rule-limit-timestamp "> <?php
153
  _e('Rule Used: ', 'woo-discount-rules');
147
  $used_limits = $rule->getUsedLimits(); ?>
148
  <label><b><?php _e('Rule Limits', 'woo-discount-rules'); ?></b>
149
  <span class="awdr-rule-limit-timestamp"><?php
150
+ if(!empty($current_time)) echo sprintf(esc_html__('Current server date and time: %s', 'woo-discount-rules'), '<b>' . date('Y-m-d H:i', $current_time) . '</b>'); ?>
151
  </span>
152
  <span class="awdr-rule-limit-timestamp "> <?php
153
  _e('Rule Used: ', 'woo-discount-rules');
v2/App/Views/Admin/Rules/Filters/Main.php CHANGED
@@ -61,11 +61,10 @@ if (!defined('ABSPATH')) {
61
  $selected_options = '';
62
  if (!empty($filter->value) && is_array($filter->value)) {
63
  $item_name = '';
64
-
65
  foreach ($filter->value as $option) {
66
  switch ($filter->type) {
67
  case 'products':
68
- $item_name = '#'.$option.' '.get_the_title($option);
69
  $placeholder = __('Products', 'woo-discount-rules');
70
  break;
71
  }
61
  $selected_options = '';
62
  if (!empty($filter->value) && is_array($filter->value)) {
63
  $item_name = '';
 
64
  foreach ($filter->value as $option) {
65
  switch ($filter->type) {
66
  case 'products':
67
+ $item_name = '#'.$option.' '.\Wdr\App\Helpers\Woocommerce::getTitleOfProduct($option);
68
  $placeholder = __('Products', 'woo-discount-rules');
69
  break;
70
  }
v2/App/Views/Admin/Rules/Manage.php CHANGED
@@ -15,7 +15,7 @@
15
  $check_rule_limit = $rule->checkRuleUsageLimits();
16
  $rule_id = $rule->getId();
17
  if ($rule_status == 'in_future') { ?>
18
- <div class="notice inline notice notice-warning notice-alt awdr-rule-limit-disabled">
19
  <p class="rule_limit_msg_future">
20
  <b><?php esc_html_e('This rule is not running currently: ', 'woo-discount-rules'); ?></b><?php esc_html_e(' Start date and time is set in the future date', 'woo-discount-rules'); ?>
21
  </p><?php
@@ -27,7 +27,7 @@
27
  </div><?php
28
  } elseif ($rule_status == 'expired') {
29
  ?>
30
- <div class="notice inline notice notice-warning notice-alt awdr-rule-limit-disabled">
31
  <p class="rule_limit_msg_expired">
32
  <b><?php esc_html_e('This rule is not running currently: ', 'woo-discount-rules'); ?></b><?php esc_html_e(' Validity expired', 'woo-discount-rules'); ?>
33
  </p><?php
@@ -39,14 +39,47 @@
39
  </div><?php
40
  }else{
41
  if($check_rule_limit == 'Disabled') {?>
42
- <div class="notice inline notice notice-warning notice-alt awdr-rule-limit-disabled">
43
  <p class="rule_limit_msg">
44
  <b><?php esc_html_e('This rule is not running currently: ', 'woo-discount-rules'); ?></b><?php esc_html_e(' Rule reached maximum usage limit ', 'woo-discount-rules'); ?>
45
  </p>
46
  </div><?php
47
  }
48
  }?>
49
- <div class="notice inline notice notice-warning notice-alt awdr-rule-limit-disabled-outer" style="display: none; padding: 10px;">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  <p class="rule_limit_msg_outer"></p>
51
  </div>
52
  <form id="wdr-save-rule" name="rule_generator">
15
  $check_rule_limit = $rule->checkRuleUsageLimits();
16
  $rule_id = $rule->getId();
17
  if ($rule_status == 'in_future') { ?>
18
+ <div class="notice inline notice-warning notice-alt awdr-rule-limit-disabled">
19
  <p class="rule_limit_msg_future">
20
  <b><?php esc_html_e('This rule is not running currently: ', 'woo-discount-rules'); ?></b><?php esc_html_e(' Start date and time is set in the future date', 'woo-discount-rules'); ?>
21
  </p><?php
27
  </div><?php
28
  } elseif ($rule_status == 'expired') {
29
  ?>
30
+ <div class="notice inline notice-warning notice-alt awdr-rule-limit-disabled">
31
  <p class="rule_limit_msg_expired">
32
  <b><?php esc_html_e('This rule is not running currently: ', 'woo-discount-rules'); ?></b><?php esc_html_e(' Validity expired', 'woo-discount-rules'); ?>
33
  </p><?php
39
  </div><?php
40
  }else{
41
  if($check_rule_limit == 'Disabled') {?>
42
+ <div class="notice inline notice-warning notice-alt awdr-rule-limit-disabled">
43
  <p class="rule_limit_msg">
44
  <b><?php esc_html_e('This rule is not running currently: ', 'woo-discount-rules'); ?></b><?php esc_html_e(' Rule reached maximum usage limit ', 'woo-discount-rules'); ?>
45
  </p>
46
  </div><?php
47
  }
48
  }?>
49
+ <?php
50
+ /* @since 2.3.11 */
51
+ $notices = apply_filters('advanced_woo_discount_rules_admin_rule_notices', array(), $rule, $rule_status);
52
+ if (!empty($notices) && is_array($notices)) {
53
+ foreach ($notices as $notice) {
54
+ $notice_status = 'warning';
55
+ $notice_message = $notice_title = '';
56
+ if (!empty($notice)) {
57
+ if (is_array($notice)) {
58
+ $notice_title = isset($notice['title']) ? $notice['title'] : $notice_title;
59
+ $notice_status = isset($notice['status']) ? $notice['status'] : $notice_status;
60
+ $notice_message = isset($notice['message']) ? $notice['message'] : $notice_message;
61
+ } else {
62
+ $notice_message = $notice;
63
+ }
64
+ if (!empty($notice_message)) {
65
+ ?>
66
+ <div class="notice inline notice-<?php echo esc_attr($notice_status); ?> notice-alt awdr-rule-notices">
67
+ <p class="rule-notice">
68
+ <?php
69
+ if (!empty($notice_title)) {
70
+ echo '<b>' . esc_html($notice_title) . ':</b> ';
71
+ }
72
+ echo esc_html($notice_message);
73
+ ?>
74
+ </p>
75
+ </div>
76
+ <?php
77
+ }
78
+ }
79
+ }
80
+ }
81
+ ?>
82
+ <div class="notice inline notice-warning notice-alt awdr-rule-limit-disabled-outer" style="display: none; padding: 10px;">
83
  <p class="rule_limit_msg_outer"></p>
84
  </div>
85
  <form id="wdr-save-rule" name="rule_generator">
v2/App/Views/Admin/Tabs/Statistics.php CHANGED
@@ -30,6 +30,7 @@ if (!defined('ABSPATH')) {
30
  content: '';
31
  }
32
  </style>
 
33
  <br>
34
  <div id="wpbody-content" class="awdr-container">
35
  <form method="post" name="wdr-statistics" class="chart-options">
30
  content: '';
31
  }
32
  </style>
33
+ <p class="wdr_settings_desc_text text-info"><?php _e('<strong>Note</strong> : Free Shipping rules will not be shown in reports.', 'woo-discount-rules'); ?></p>
34
  <br>
35
  <div id="wpbody-content" class="awdr-container">
36
  <form method="post" name="wdr-statistics" class="chart-options">
v2/App/Views/Admin/Tabs/settings.php CHANGED
@@ -47,8 +47,8 @@
47
  </tr>
48
  <tr class="apply_product_discount_subsequently_row" style="<?php echo ($configuration->getConfig('apply_product_discount_to', 'biggest_discount') != 'all') ? 'display:none' : ''; ?>">
49
  <td scope="row">
50
- <label for="awdr_subsequent_discount" class="awdr-left-align"><?php _e('Apply discount subsequently', 'woo-discount-rules') ?></label>
51
- <span class="wdr_settings_desc_text awdr-clear-both"><?php esc_attr_e('discounts applied subsequently', 'woo-discount-rules'); ?></span>
52
  </td>
53
  <td>
54
  <input type="radio" name="apply_discount_subsequently" id="do_apply_discount_subsequently"
47
  </tr>
48
  <tr class="apply_product_discount_subsequently_row" style="<?php echo ($configuration->getConfig('apply_product_discount_to', 'biggest_discount') != 'all') ? 'display:none' : ''; ?>">
49
  <td scope="row">
50
+ <label for="awdr_subsequent_discount" class="awdr-left-align"><?php _e('Apply discount sequentially', 'woo-discount-rules') ?></label>
51
+ <span class="wdr_settings_desc_text awdr-clear-both"><?php esc_attr_e('This apply the discount rules in a sequential order.', 'woo-discount-rules'); ?></span>
52
  </td>
53
  <td>
54
  <input type="radio" name="apply_discount_subsequently" id="do_apply_discount_subsequently"
v2/App/Views/Templates/discount_table.php CHANGED
@@ -1,4 +1,15 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
2
  if (!defined('ABSPATH')) exit; // Exit if accessed directly
3
 
4
  if (!empty($ranges) && !empty($woocommerce)) {
@@ -111,7 +122,6 @@ if (!empty($ranges) && !empty($woocommerce)) {
111
  foreach ($ranges as $range) :
112
  $cart_discount_text = '';
113
  $discount_type_value = isset($range['discount_value']) ? $range['discount_value'] : 0;
114
- //echo "<pre>"; print_r($discount_type_value); echo "</pre>";
115
  if (!isset($range['discount_value'])){
116
  continue;
117
  }
1
  <?php
2
+ /**
3
+ * Discount table
4
+ *
5
+ * This template can be overridden by copying it to yourtheme/advanced_woo_discount_rules/discount_table.php.
6
+ *
7
+ * HOWEVER, on occasion Discount rules will need to update template files and you
8
+ * (the theme developer) will need to copy the new files to your theme to
9
+ * maintain compatibility. We try to do this as little as possible, but it does
10
+ * happen. When this occurs the version of the template file will be bumped and
11
+ * the readme will list any important changes.
12
+ */
13
  if (!defined('ABSPATH')) exit; // Exit if accessed directly
14
 
15
  if (!empty($ranges) && !empty($woocommerce)) {
122
  foreach ($ranges as $range) :
123
  $cart_discount_text = '';
124
  $discount_type_value = isset($range['discount_value']) ? $range['discount_value'] : 0;
 
125
  if (!isset($range['discount_value'])){
126
  continue;
127
  }
woo-discount-rules.php CHANGED
@@ -5,13 +5,13 @@
5
  * Description: Simple to complex discount rules for your WooCommerce store. Core package.
6
  * Author: Flycart
7
  * Author URI: https://www.flycart.org
8
- * Version: 2.3.10
9
  * Slug: woo-discount-rules
10
  * Text Domain: woo-discount-rules
11
  * Domain Path: /i18n/languages/
12
  * Requires at least: 4.6.1
13
  * WC requires at least: 3.0
14
- * WC tested up to: 5.9
15
  */
16
  if (!defined('ABSPATH')) {
17
  exit;
@@ -21,7 +21,7 @@ if (!defined('ABSPATH')) {
21
  * Current version of our app
22
  */
23
  if (!defined('WDR_VERSION')) {
24
- define('WDR_VERSION', '2.3.10');
25
  }
26
 
27
  global $awdr_load_version;
5
  * Description: Simple to complex discount rules for your WooCommerce store. Core package.
6
  * Author: Flycart
7
  * Author URI: https://www.flycart.org
8
+ * Version: 2.3.11
9
  * Slug: woo-discount-rules
10
  * Text Domain: woo-discount-rules
11
  * Domain Path: /i18n/languages/
12
  * Requires at least: 4.6.1
13
  * WC requires at least: 3.0
14
+ * WC tested up to: 6.0
15
  */
16
  if (!defined('ABSPATH')) {
17
  exit;
21
  * Current version of our app
22
  */
23
  if (!defined('WDR_VERSION')) {
24
+ define('WDR_VERSION', '2.3.11');
25
  }
26
 
27
  global $awdr_load_version;