PluginProbe ʕ •ᴥ•ʔ
Discount Rules for WooCommerce / 2.1.0
Discount Rules for WooCommerce v2.1.0
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 5 years ago v1 5 years ago v2 5 years ago common.php 5 years ago readme.txt 5 years ago woo-discount-rules.php 5 years ago
common.php
217 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', WDR_TEXT_DOMAIN));
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 $return['status'] = false;
16 $return['message'] = esc_html__('Invalid request', WDR_TEXT_DOMAIN);
17 if (current_user_can( 'manage_woocommerce' )) {
18 if($version !== '' && $page !== ''){
19 $url = admin_url('admin.php?page=' . $page . '&awdr_switch_plugin_to=' . $version);
20 $do_switch = true;
21 if (!isAWDREnvironmentCompatible()) {
22 $return['message'] = __('Discount Rules 2.0 requires minimum PHP version of ', WDR_TEXT_DOMAIN) . ' ' . WDR_REQUIRED_PHP_VERSION;
23 wp_send_json_success($return);
24 }
25 if (!isAWDRWooCompatible()) {
26 $return['message'] = __('Discount Rules 2.0 requires at least Woocommerce', WDR_TEXT_DOMAIN) . ' ' . WDR_WC_REQUIRED_VERSION;
27 wp_send_json_success($return);
28 }
29 if (defined('WDR_BACKWARD_COMPATIBLE')) {
30 if(WDR_BACKWARD_COMPATIBLE == true){
31 if ($version == "v2") {
32 if (!defined('WDR_PRO')) {
33 $do_switch = false;
34 }
35 }
36 }
37 }
38 if($do_switch){
39 $return['status'] = true;
40 $return['message'] = '';
41 $return['url'] = $url;
42 } else {
43 $has_auto_update = false;
44 if (!is_multisite()) {
45 if(class_exists('FlycartWooDiscountRulesExistingPROUpdater')){
46 if(FlycartWooDiscountRulesExistingPROUpdater::availableAutoInstall()){
47 $has_auto_update = true;
48 }
49 }
50 }
51 if($has_auto_update){
52 $return['type'] = 'auto_install';
53 $message = __('<p>Since 2.0, you need BOTH Core and Pro (2.0) packages installed and activated.</p>', WDR_TEXT_DOMAIN);
54 $message .= __('<p><b>Why we made this change?</b></p>', WDR_TEXT_DOMAIN);
55 $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>', WDR_TEXT_DOMAIN);
56 $message .= __('<p>As a result, starting from 2.0, we now have two packs: 1. Core 2. PRO.</p>', WDR_TEXT_DOMAIN);
57 $message .= '<p><button type="button" class="awdr_auto_install_pro_plugin btn btn-info">'.__('Download and Install', WDR_TEXT_DOMAIN).'</button></p>';
58 $return['message'] = $message;
59 } else {
60 $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>', WDR_TEXT_DOMAIN);
61 $return['type'] = 'manual_install';
62 }
63 }
64 }
65 }
66
67 wp_send_json_success($return);
68 });
69
70
71 /**
72 * Action sto show the toggle button
73 */
74 add_action('advanced_woo_discount_rules_on_settings_head', function () {
75 $has_switch = true;
76 $page = NULL;
77 if (isset($_GET['page'])) {
78 $page = sanitize_text_field($_GET['page']);
79 }
80 global $awdr_load_version;
81 $version = ($awdr_load_version == "v1") ? "v2" : "v1";
82 $url = admin_url('admin.php?page=' . $page . '&awdr_switch_plugin_to=' . $version);
83 $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)', WDR_TEXT_DOMAIN);
84 $button_text = __("Switch to v2", WDR_TEXT_DOMAIN);
85 if($version == "v1"){
86 $has_switch = \Wdr\App\Helpers\Migration::hasSwitchBackOption();
87 $message = __('Would you like to switch to older Woo Discount Rules?', WDR_TEXT_DOMAIN);
88 $button_text = __("Click here to Switch back", WDR_TEXT_DOMAIN);
89 }
90 if($has_switch){
91 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.'">' . $button_text . '</button></div>';
92 echo "<div class='wdr_switch_message' style='color:#a00;font-weight: bold;'></div>";
93 echo '<div class="modal" id="wdr_switch_popup">
94 <div class="modal-sandbox"></div>
95 <div class="modal-box">
96 <div class="modal-header">
97 <div class="close-modal"><span class="wdr-close-modal-box">&#10006;</span></div>
98 <h1 class="wdr-modal-header-title">'.__("Install 2.0 Pro package", WDR_TEXT_DOMAIN).'</h1>
99 </div>
100 <div class="modal-body">
101 <div class=\'wdr_pro_install_message\'></div>
102 </div>
103 </div>
104 </div>';
105 }
106 });
107
108 add_action('advanced_woo_discount_rules_content_next_to_tabs', function () {
109 $has_switch = true;
110 $page = NULL;
111 if (isset($_GET['page'])) {
112 $page = sanitize_text_field($_GET['page']);
113 }
114 global $awdr_load_version;
115 $version = ($awdr_load_version == "v1") ? "v2" : "v1";
116 if($version == "v1"){
117 $has_switch = \Wdr\App\Helpers\Migration::hasSwitchBackOption();
118 }
119 if($has_switch){
120 $button_text = __("Switch back to Discount Rules 1.x", WDR_TEXT_DOMAIN);
121 echo '<button class="btn btn-info awdr-switch-version-button awdr-switch-version-button-on-tab" data-version="' . $version . '" data-page="'.$page.'">' . $button_text . '</button>';
122 }
123 });
124
125 /**
126 * Determines if the server environment is compatible with this plugin.
127 *
128 * @return bool
129 * @since 1.0.0
130 *
131 */
132 if(!function_exists('isAWDREnvironmentCompatible')){
133 function isAWDREnvironmentCompatible()
134 {
135 return version_compare(PHP_VERSION, WDR_REQUIRED_PHP_VERSION, '>=');
136 }
137 }
138
139 /**
140 * Check the woocommerce is active or not
141 * @return bool
142 */
143 if(!function_exists('isAWDRWooActive')){
144 function isAWDRWooActive()
145 {
146 $active_plugins = apply_filters('active_plugins', get_option('active_plugins', array()));
147 if (is_multisite()) {
148 $active_plugins = array_merge($active_plugins, get_site_option('active_sitewide_plugins', array()));
149 }
150 return in_array('woocommerce/woocommerce.php', $active_plugins, false) || array_key_exists('woocommerce/woocommerce.php', $active_plugins);
151 }
152 }
153
154 /**
155 * Check woocommerce version is compatibility
156 * @return bool
157 */
158 if(!function_exists('isAWDRWooCompatible')){
159 function isAWDRWooCompatible()
160 {
161 $current_wc_version = getAWDRWooVersion();
162 return version_compare($current_wc_version, WDR_WC_REQUIRED_VERSION, '>=');
163 }
164 }
165
166 /**
167 * get the version of woocommerce
168 * @return mixed|null
169 */
170 if(!function_exists('getAWDRWooVersion')){
171 function getAWDRWooVersion()
172 {
173 if (defined('WC_VERSION')) {
174 return WC_VERSION;
175 }
176 if (!function_exists('get_plugins')) {
177 require_once(ABSPATH . 'wp-admin/includes/plugin.php');
178 }
179 $plugin_folder = get_plugins('/woocommerce');
180 $plugin_file = 'woocommerce.php';
181 $wc_installed_version = NULL;
182 if (isset($plugin_folder[$plugin_file]['Version'])) {
183 $wc_installed_version = $plugin_folder[$plugin_file]['Version'];
184 }
185 return $wc_installed_version;
186 }
187 }
188
189 /**
190 * Determines if the WordPress compatible.
191 *
192 * @return bool
193 * @since 1.0.0
194 *
195 */
196 if(!function_exists('isAWDRWpCompatible')){
197 function isAWDRWpCompatible()
198 {
199 $required_wp_version = 4.9;
200 return version_compare(get_bloginfo('version'), $required_wp_version, '>=');
201 }
202 }
203
204 if(!function_exists('awdr_check_compatible')){
205 function awdr_check_compatible(){
206 if (!isAWDREnvironmentCompatible()) {
207 exit(__('This plugin can not be activated because it requires minimum PHP version of ', WDR_TEXT_DOMAIN) . ' ' . WDR_REQUIRED_PHP_VERSION);
208 }
209 if (!isAWDRWooActive()) {
210 exit(__('Woocommerce must installed and activated in-order to use Advanced woo discount rules!', WDR_TEXT_DOMAIN));
211 }
212 if (!isAWDRWooCompatible()) {
213 exit(__(' Advanced woo discount rules requires at least Woocommerce', WDR_TEXT_DOMAIN) . ' ' . WDR_WC_REQUIRED_VERSION);
214 }
215 }
216 }
217