PluginProbe ʕ •ᴥ•ʔ
Discount Rules for WooCommerce / 2.3.13
Discount Rules for WooCommerce v2.3.13
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
249 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 = __('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();
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 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">
112 <div class="modal-sandbox"></div>
113 <div class="modal-box">
114 <div class="modal-header">
115 <div class="close-modal"><span class="wdr-close-modal-box">&#10006;</span></div>
116 <h1 class="wdr-modal-header-title">'.__("Install 2.0 Pro package", 'woo-discount-rules').'</h1>
117 </div>
118 <div class="modal-body">
119 <div class=\'wdr_pro_install_message\'></div>
120 </div>
121 </div>
122 </div>';
123 }
124 });
125
126 add_action('advanced_woo_discount_rules_content_next_to_tabs', function () {
127 $has_switch = true;
128 $page = NULL;
129 if (isset($_GET['page'])) {
130 $page = sanitize_text_field($_GET['page']);
131 }
132 global $awdr_load_version;
133 $version = ($awdr_load_version == "v1") ? "v2" : "v1";
134 if($version == "v1"){
135 $has_switch = \Wdr\App\Helpers\Migration::hasSwitchBackOption();
136 }
137 if($version == "v1"){
138 $nounce = \Wdr\App\Helpers\Helper::create_nonce('wdr_ajax_switch_version');
139 } else {
140 $nounce = FlycartWooDiscountRulesGeneralHelper::createNonce('wdr_ajax_switch_version');
141 }
142 if($has_switch){
143 $button_text = __("Switch back to Discount Rules 1.x", 'woo-discount-rules');
144 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>';
145 }
146 });
147
148 /**
149 * Determines if the server environment is compatible with this plugin.
150 *
151 * @return bool
152 * @since 1.0.0
153 *
154 */
155 if(!function_exists('isAWDREnvironmentCompatible')){
156 function isAWDREnvironmentCompatible()
157 {
158 return version_compare(PHP_VERSION, WDR_REQUIRED_PHP_VERSION, '>=');
159 }
160 }
161
162 /**
163 * Check the woocommerce is active or not
164 * @return bool
165 */
166 if(!function_exists('isAWDRWooActive')){
167 function isAWDRWooActive()
168 {
169 $active_plugins = apply_filters('active_plugins', get_option('active_plugins', array()));
170 if (is_multisite()) {
171 $active_plugins = array_merge($active_plugins, get_site_option('active_sitewide_plugins', array()));
172 }
173 return in_array('woocommerce/woocommerce.php', $active_plugins, false) || array_key_exists('woocommerce/woocommerce.php', $active_plugins);
174 }
175 }
176
177 /**
178 * Check woocommerce version is compatibility
179 * @return bool
180 */
181 if(!function_exists('isAWDRWooCompatible')){
182 function isAWDRWooCompatible()
183 {
184 $current_wc_version = getAWDRWooVersion();
185 return version_compare($current_wc_version, WDR_WC_REQUIRED_VERSION, '>=');
186 }
187 }
188
189 /**
190 * get the version of woocommerce
191 * @return mixed|null
192 */
193 if(!function_exists('getAWDRWooVersion')){
194 function getAWDRWooVersion()
195 {
196 if (defined('WC_VERSION')) {
197 return WC_VERSION;
198 }
199 if (!function_exists('get_plugins')) {
200 require_once(ABSPATH . 'wp-admin/includes/plugin.php');
201 }
202 $plugin_folder = get_plugins('/woocommerce');
203 $plugin_file = 'woocommerce.php';
204 $wc_installed_version = NULL;
205 if (isset($plugin_folder[$plugin_file]['Version'])) {
206 $wc_installed_version = $plugin_folder[$plugin_file]['Version'];
207 }
208 return $wc_installed_version;
209 }
210 }
211
212 /**
213 * Determines if the WordPress compatible.
214 *
215 * @return bool
216 * @since 1.0.0
217 *
218 */
219 if(!function_exists('isAWDRWpCompatible')){
220 function isAWDRWpCompatible()
221 {
222 $required_wp_version = 4.9;
223 return version_compare(get_bloginfo('version'), $required_wp_version, '>=');
224 }
225 }
226
227 if(!function_exists('awdr_check_compatible')){
228 function awdr_check_compatible(){
229 if (!isAWDREnvironmentCompatible()) {
230 exit(__('This plugin can not be activated because it requires minimum PHP version of ', 'woo-discount-rules') . ' ' . WDR_REQUIRED_PHP_VERSION);
231 }
232 if (!isAWDRWooActive()) {
233 exit(__('Woocommerce must installed and activated in-order to use Advanced woo discount rules!', 'woo-discount-rules'));
234 }
235 if (!isAWDRWooCompatible()) {
236 exit(__(' Advanced woo discount rules requires at least Woocommerce', 'woo-discount-rules') . ' ' . WDR_WC_REQUIRED_VERSION);
237 }
238 }
239 }
240
241 /**
242 * For plugin translation
243 * */
244 add_action( 'plugins_loaded', function (){
245 if(function_exists('load_plugin_textdomain')){
246 load_plugin_textdomain( 'woo-discount-rules', FALSE, basename( dirname( __FILE__ ) ) . '/i18n/languages/' );
247 }
248 });
249