PluginProbe ʕ •ᴥ•ʔ
Discount Rules for WooCommerce / 2.3.10
Discount Rules for WooCommerce v2.3.10
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 / common.php
woo-discount-rules Last commit date
i18n 4 years ago v1 4 years ago v2 4 years ago common.php 4 years ago readme.txt 4 years ago woo-discount-rules.php 4 years ago
common.php
245 lines
1 <?php
2 if (!defined('ABSPATH')) exit; // Exit if accessed directly
3
4 add_action('wp_ajax_awdr_auto_install_pro_plugin', function (){
5 if (current_user_can( 'manage_woocommerce' )) {
6 FlycartWooDiscountRulesExistingPROUpdater::installProPlugin();
7 exit;
8 } else {
9 die(__('Authentication required', 'woo-discount-rules'));
10 }
11 });
12 add_action('wp_ajax_awdr_switch_version', function (){
13 $version = isset($_REQUEST['version'])? $_REQUEST['version']: '';
14 $page = isset($_REQUEST['page'])? $_REQUEST['page']: '';
15 $wdr_nonce = isset($_REQUEST['wdr_nonce'])? $_REQUEST['wdr_nonce']: '';
16 $return['status'] = false;
17 $return['message'] = esc_html__('Invalid request', 'woo-discount-rules');
18 if($version == "v1"){
19 \Wdr\App\Helpers\Helper::validateRequest('wdr_ajax_switch_version', $wdr_nonce);
20 } else {
21 FlycartWooDiscountRulesGeneralHelper::validateRequest('wdr_ajax_switch_version', $wdr_nonce);
22 }
23 if (current_user_can( 'manage_woocommerce' )) {
24 if($version !== '' && $page !== ''){
25 $url = admin_url('admin.php?page=' . $page . '&awdr_switch_plugin_to=' . $version);
26 $do_switch = true;
27 if (!isAWDREnvironmentCompatible()) {
28 $return['message'] = __('Discount Rules 2.0 requires minimum PHP version of ', 'woo-discount-rules') . ' ' . WDR_REQUIRED_PHP_VERSION;
29 wp_send_json_success($return);
30 }
31 if (!isAWDRWooCompatible()) {
32 $return['message'] = __('Discount Rules 2.0 requires at least Woocommerce', 'woo-discount-rules') . ' ' . WDR_WC_REQUIRED_VERSION;
33 wp_send_json_success($return);
34 }
35 if (defined('WDR_BACKWARD_COMPATIBLE')) {
36 if(WDR_BACKWARD_COMPATIBLE == true){
37 if ($version == "v2") {
38 if (!defined('WDR_PRO')) {
39 $do_switch = false;
40 }
41 }
42 }
43 }
44 if($do_switch){
45 if(in_array($version, array('v1', 'v2'))){
46 update_option('advanced_woo_discount_rules_load_version', $version);
47 }
48 $return['status'] = true;
49 $return['message'] = '';
50 $return['url'] = $url;
51 } else {
52 $has_auto_update = false;
53 if (!is_multisite()) {
54 if(class_exists('FlycartWooDiscountRulesExistingPROUpdater')){
55 if(FlycartWooDiscountRulesExistingPROUpdater::availableAutoInstall()){
56 $has_auto_update = true;
57 }
58 }
59 }
60 if($has_auto_update){
61 $return['type'] = 'auto_install';
62 $message = __('<p>Since 2.0, you need BOTH Core and Pro (2.0) packages installed and activated.</p>', 'woo-discount-rules');
63 $message .= __('<p><b>Why we made this change?</b></p>', 'woo-discount-rules');
64 $message .= __('<p>This arrangement is to avoid the confusion in the installation and upgrade process. Many users first install the core free version. Then purchase the PRO version and try to install it over the free version. Since both free and pro packages have same names, wordpress asks them to uninstall free and then install pro. As you can see, this is quite confusing for the end users.</p>', 'woo-discount-rules');
65 $message .= __('<p>As a result, starting from 2.0, we now have two packs: 1. Core 2. PRO.</p>', 'woo-discount-rules');
66 $message .= '<p><button type="button" class="awdr_auto_install_pro_plugin btn btn-info">'.__('Download and Install', 'woo-discount-rules').'</button></p>';
67 $return['message'] = $message;
68 } else {
69 $return['message'] = __('Since 2.0, you need BOTH Core and Pro (2.0) packages installed and activated. Please download the Pro 2.0 pack from My Downloads page in our site, install and activate it. <a href="https://docs.flycart.org/en/articles/4006520-switching-to-2-0-from-v1-x-versions?utm_source=woo-discount-rules-v2&utm_campaign=doc&utm_medium=text-click&utm_content=switch_to_v2" target="_blank">Here is a guide and video tutorial</a>', 'woo-discount-rules');
70 $return['type'] = 'manual_install';
71 }
72 }
73 }
74 }
75
76 wp_send_json_success($return);
77 });
78
79
80 /**
81 * Action sto show the toggle button
82 */
83 add_action('advanced_woo_discount_rules_on_settings_head', function () {
84 $has_switch = true;
85 $page = NULL;
86 if (isset($_GET['page'])) {
87 $page = sanitize_text_field($_GET['page']);
88 }
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();
96 $message = __('Would you like to switch to older Woo Discount Rules?', 'woo-discount-rules');
97 $button_text = __("Click here to Switch back", 'woo-discount-rules');
98 }
99 if($has_switch){
100 if($version == "v1"){
101 $nounce = \Wdr\App\Helpers\Helper::create_nonce('wdr_ajax_switch_version');
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">
108 <div class="modal-sandbox"></div>
109 <div class="modal-box">
110 <div class="modal-header">
111 <div class="close-modal"><span class="wdr-close-modal-box">&#10006;</span></div>
112 <h1 class="wdr-modal-header-title">'.__("Install 2.0 Pro package", 'woo-discount-rules').'</h1>
113 </div>
114 <div class="modal-body">
115 <div class=\'wdr_pro_install_message\'></div>
116 </div>
117 </div>
118 </div>';
119 }
120 });
121
122 add_action('advanced_woo_discount_rules_content_next_to_tabs', function () {
123 $has_switch = true;
124 $page = NULL;
125 if (isset($_GET['page'])) {
126 $page = sanitize_text_field($_GET['page']);
127 }
128 global $awdr_load_version;
129 $version = ($awdr_load_version == "v1") ? "v2" : "v1";
130 if($version == "v1"){
131 $has_switch = \Wdr\App\Helpers\Migration::hasSwitchBackOption();
132 }
133 if($version == "v1"){
134 $nounce = \Wdr\App\Helpers\Helper::create_nonce('wdr_ajax_switch_version');
135 } else {
136 $nounce = FlycartWooDiscountRulesGeneralHelper::createNonce('wdr_ajax_switch_version');
137 }
138 if($has_switch){
139 $button_text = __("Switch back to Discount Rules 1.x", 'woo-discount-rules');
140 echo '<button class="btn btn-info awdr-switch-version-button awdr-switch-version-button-on-tab" data-version="' . $version . '" data-page="'.$page.'" data-nonce="'.$nounce.'">' . $button_text . '</button>';
141 }
142 });
143
144 /**
145 * Determines if the server environment is compatible with this plugin.
146 *
147 * @return bool
148 * @since 1.0.0
149 *
150 */
151 if(!function_exists('isAWDREnvironmentCompatible')){
152 function isAWDREnvironmentCompatible()
153 {
154 return version_compare(PHP_VERSION, WDR_REQUIRED_PHP_VERSION, '>=');
155 }
156 }
157
158 /**
159 * Check the woocommerce is active or not
160 * @return bool
161 */
162 if(!function_exists('isAWDRWooActive')){
163 function isAWDRWooActive()
164 {
165 $active_plugins = apply_filters('active_plugins', get_option('active_plugins', array()));
166 if (is_multisite()) {
167 $active_plugins = array_merge($active_plugins, get_site_option('active_sitewide_plugins', array()));
168 }
169 return in_array('woocommerce/woocommerce.php', $active_plugins, false) || array_key_exists('woocommerce/woocommerce.php', $active_plugins);
170 }
171 }
172
173 /**
174 * Check woocommerce version is compatibility
175 * @return bool
176 */
177 if(!function_exists('isAWDRWooCompatible')){
178 function isAWDRWooCompatible()
179 {
180 $current_wc_version = getAWDRWooVersion();
181 return version_compare($current_wc_version, WDR_WC_REQUIRED_VERSION, '>=');
182 }
183 }
184
185 /**
186 * get the version of woocommerce
187 * @return mixed|null
188 */
189 if(!function_exists('getAWDRWooVersion')){
190 function getAWDRWooVersion()
191 {
192 if (defined('WC_VERSION')) {
193 return WC_VERSION;
194 }
195 if (!function_exists('get_plugins')) {
196 require_once(ABSPATH . 'wp-admin/includes/plugin.php');
197 }
198 $plugin_folder = get_plugins('/woocommerce');
199 $plugin_file = 'woocommerce.php';
200 $wc_installed_version = NULL;
201 if (isset($plugin_folder[$plugin_file]['Version'])) {
202 $wc_installed_version = $plugin_folder[$plugin_file]['Version'];
203 }
204 return $wc_installed_version;
205 }
206 }
207
208 /**
209 * Determines if the WordPress compatible.
210 *
211 * @return bool
212 * @since 1.0.0
213 *
214 */
215 if(!function_exists('isAWDRWpCompatible')){
216 function isAWDRWpCompatible()
217 {
218 $required_wp_version = 4.9;
219 return version_compare(get_bloginfo('version'), $required_wp_version, '>=');
220 }
221 }
222
223 if(!function_exists('awdr_check_compatible')){
224 function awdr_check_compatible(){
225 if (!isAWDREnvironmentCompatible()) {
226 exit(__('This plugin can not be activated because it requires minimum PHP version of ', 'woo-discount-rules') . ' ' . WDR_REQUIRED_PHP_VERSION);
227 }
228 if (!isAWDRWooActive()) {
229 exit(__('Woocommerce must installed and activated in-order to use Advanced woo discount rules!', 'woo-discount-rules'));
230 }
231 if (!isAWDRWooCompatible()) {
232 exit(__(' Advanced woo discount rules requires at least Woocommerce', 'woo-discount-rules') . ' ' . WDR_WC_REQUIRED_VERSION);
233 }
234 }
235 }
236
237 /**
238 * For plugin translation
239 * */
240 add_action( 'plugins_loaded', function (){
241 if(function_exists('load_plugin_textdomain')){
242 load_plugin_textdomain( 'woo-discount-rules', FALSE, basename( dirname( __FILE__ ) ) . '/i18n/languages/' );
243 }
244 });
245