Changeset 3062036
- Timestamp:
- 04/01/2024 11:09:16 AM (2 years ago)
- Location:
- pushalert-onsite-messaging
- Files:
-
- 4 added
- 6 edited
-
assets/screenshot-1.png (modified) (previous)
-
assets/screenshot-2.png (modified) (previous)
-
assets/screenshot-3.png (added)
-
assets/screenshot-4.png (modified) (previous)
-
assets/screenshot-5.png (modified) (previous)
-
assets/screenshot-6.png (added)
-
assets/screenshot-7.png (added)
-
assets/screenshot-8.gif (added)
-
trunk/pushalert-onsite-messaging.php (modified) (5 diffs)
-
trunk/readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
pushalert-onsite-messaging/trunk/pushalert-onsite-messaging.php
r2598764 r3062036 6 6 * Author: PushAlert 7 7 * Author URI: https://pushalert.co/onsite-messaging 8 * Version: 1. 0.08 * Version: 1.1.0 9 9 */ 10 10 … … 16 16 add_filter('plugin_action_links_' . plugin_basename(__FILE__), 'pa_onsite_messaging_settings_link'); 17 17 18 //For options related to WooCommerce 18 if (pa_onsite_messaging_woocommerce_enabled()) { 19 add_action('wp_footer', 'get_pa_onsite_cart_info'); 20 } 19 21 /*if (pa_onsite_messaging_woocommerce_version_check()) { 20 22 if(get_option('_onsite_messaging_report_sales', 0)){ … … 157 159 } 158 160 159 /*function pa_onsite_messaging_woocommerce_version_check( $version = '2.6' ) { 161 function pa_onsite_messaging_woocommerce_enabled(){ 162 $is_enable = in_array('woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option('active_plugins'))); 163 return $is_enable; 164 } 165 166 function get_pa_onsite_cart_info(){ 167 if(pa_onsite_messaging_woocommerce_enabled()){ 168 $pa_onsite_cart_info = []; 169 170 $item_details = WC()->cart->cart_contents; 171 $product_ids = []; 172 $product_variant_ids = []; 173 foreach($item_details as $key=>$data){ 174 $product_ids[] = $data['product_id']; 175 if($data['variation_id']!=0){ 176 $product_variant_ids[] = $data['variation_id']; 177 } 178 else{ 179 $product_variant_ids[] = $data['product_id']; 180 } 181 } 182 183 $total_items = WC()->cart->get_cart_contents_count(); 184 $pa_onsite_cart_info['cti'] = WC()->cart->get_cart_contents_count(); 185 $pa_onsite_cart_info['ctp'] = WC()->cart->get_cart_contents_total(); 186 $pa_onsite_cart_info['cd'] = WC()->cart->get_cart_discount_total(); 187 $pa_onsite_cart_info['pic'] = implode(",", $product_ids); 188 $pa_onsite_cart_info['pvic'] = implode(",", $product_variant_ids); 189 190 $curr_user_id = get_current_user_id(); 191 if(!$curr_user_id){ 192 $pa_onsite_cart_info['li'] = false; 193 $pa_onsite_cart_info['oc'] = 0; 194 $pa_onsite_cart_info['ts'] = 0; 195 $pa_onsite_cart_info['ms'] = true; 196 $pa_onsite_cart_info['ct'] = ""; 197 } 198 else{ 199 $customer = new WC_Customer( $curr_user_id ); 200 $pa_onsite_cart_info['li'] = true; 201 $pa_onsite_cart_info['oc'] = $customer->get_order_count(); 202 $pa_onsite_cart_info['ts'] = $customer->get_total_spent(); 203 $pa_onsite_cart_info['ms'] = true; 204 $pa_onsite_cart_info['ct'] = ""; 205 } 206 207 if(is_product()){ 208 global $product; 209 if(pa_woocommerce_version_check()){ 210 $product_id = $product->get_id(); 211 } 212 else{ 213 $product_id = $product->id; 214 } 215 $cart_url = apply_filters( 'woocommerce_get_cart_url', wc_get_page_permalink( 'cart' ) ); 216 $pa_onsite_product_info = 217 array( 218 'pi'=>$product_id, 219 'pa' => $product->is_in_stock(), 220 "pp" => $product->get_display_price(), 221 'pfi' => wp_get_attachment_url($product->get_image_id()), 222 'pt' =>strip_tags($product->get_categories()), 223 'pta'=>strip_tags($product->get_tags()), 224 'pve'=>"", 225 'ptype' => $product->get_type() 226 ); 227 if ( $product->is_type( 'variable' ) ) { 228 229 // Get variations 230 $product_variations = new WC_Product_Variable( $product_id ); 231 $variations = $product_variations->get_available_variations(); 232 233 $variations_data = []; 234 // Loop through each variation 235 foreach ($variations as $variation ) { 236 $variations_data[] = array( 237 "pi" => $variation['variation_id'], 238 "vp" => $variation['display_price'], 239 "vimg" => wp_get_attachment_url( $variation['image_id']), 240 "va" => $variation['is_in_stock'], 241 ); 242 } 243 $pa_onsite_product_info['pv'] = $variations_data; 244 } 245 else{ 246 $pa_onsite_product_info['pv'] =[ 247 [ 248 "pi" => $product_id, 249 "vp" => $product->get_display_price(), 250 "vimg" => wp_get_attachment_url($product->get_image_id()), 251 "va" => $product->is_in_stock(), 252 ] 253 ]; 254 } 255 $pa_onsite_cart_info = array_merge($pa_onsite_cart_info, $pa_onsite_product_info); 256 } 257 258 echo '<script>var pa_onsite_ecomm_type = "woocommerce";var pa_onsite_cart_info = '.json_encode($pa_onsite_cart_info).';</script>'; 259 } 260 } 261 262 function pa_onsite_messaging_woocommerce_version_check( $version = '2.6' ) { 160 263 global $woocommerce; 161 264 if( version_compare( $woocommerce->version, $version, ">=" ) ) { … … 165 268 return false; 166 269 } 167 } */270 } 168 271 169 272 function pa_onsite_messaging_on_order_placed($order_id) { //When user places an order … … 180 283 } 181 284 285 add_filter('woocommerce_rest_prepare_product_object', 'custom_change_product_response', 20, 3); 286 //add_filter('woocommerce_rest_prepare_product_variation_object', 'custom_change_product_response', 20, 3); 287 288 function custom_change_product_response($response, $object, $request) { 289 $variations = $response->data['variations']; 290 291 $variations_array = array(); 292 if (!empty($variations) && is_array($variations)) { 293 foreach ($variations as $variation) { 294 $variations_res = array(); 295 $variation_id = $variation; 296 $variation = new WC_Product_Variation($variation_id); 297 $variations_res['id'] = $variation_id; 298 $variations_res['on_sale'] = $variation->is_on_sale(); 299 $variations_res['regular_price'] = (float)$variation->get_regular_price(); 300 $variations_res['sale_price'] = (float)$variation->get_sale_price(); 301 $variations_res['price'] = (float)$variation->get_price(); 302 $variations_res['sku'] = $variation->get_sku(); 303 $variations_res['quantity'] = $variation->get_stock_quantity(); 304 if ($variations_res['quantity'] == null) { 305 $variations_res['quantity'] = ''; 306 } 307 $variations_res['stock_status'] = $variation->get_stock_status(); 308 309 $variations_res['image'] = wp_get_attachment_url($variation->get_image_id()); 310 $variations_res['name'] = $variation->get_name(); 311 312 $attributes = array(); 313 // variation attributes 314 foreach ( $variation->get_variation_attributes() as $attribute_name => $attribute ) { 315 // taxonomy-based attributes are prefixed with `pa_`, otherwise simply `attribute_` 316 $attributes[] = array( 317 'name' => wc_attribute_label( str_replace( 'attribute_', '', $attribute_name ), $variation ), 318 'slug' => str_replace( 'attribute_', '', wc_attribute_taxonomy_slug( $attribute_name ) ), 319 'option' => $attribute, 320 ); 321 } 322 323 $variations_res['attributes'] = $attributes; 324 $variations_array[] = $variations_res; 325 } 326 } 327 $response->data['product_variations'] = $variations_array; 328 329 return $response; 330 } 182 331 ?> -
pushalert-onsite-messaging/trunk/readme.txt
r2984951 r3062036 1 === Onsite Messaging by PushAlert - Exit Intent Popups, Email Optins ===1 === Onsite Messaging by PushAlert - Exit Intent Popups, Email Optins, Discount Overlays === 2 2 Contributors: PushAlert 3 3 Donate link: https://pushalert.co/ 4 Tags: pushalert,onsite messaging, popups, exit intent popups, recover abandoned cart, woocommerce, web overlays, email optins, email list builder4 Tags: onsite messaging, popups, exit intent popups, recover abandoned cart, woocommerce, web overlays, email optins, email list builder 5 5 Requires at least: 2.7 6 Tested up to: 6. 46 Tested up to: 6.5 7 7 Requires PHP: 5.6 8 Stable tag: 1. 0.08 Stable tag: 1.1.0 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 31 31 32 32 = EASY SEGMENTATION = 33 Personalize your messaging to online users with advanced on-page segmentation. Target users based on their current behavior including pages visited, traffic source, cookies and session details. 33 Personalize your messaging to online users with advanced on-page segmentation. Target users based on their current behavior including pages visited, traffic source, cookies and session details. For WooCommerce, identify target customers through dynamic segmentation leveraging parameters such as current cart value, product selections, and individual purchasing history for tailored marketing strategies. 34 34 35 35 … … 72 72 == Screenshots == 73 73 1. PushAlert - Onsite Messaging for WordPress and WooCommerce 74 2. Campaign Types - LightBox Popup, Fullscreen, Countdown, Floating Bars and more 75 3. Exit Intent Popup 76 4. Fullscreen Popup 77 5. Spin 2 Win (Fortune Wheel) Popup 74 2. Grow Email List 75 3. Reduce Abandonment 76 4. Discounts and Coupons 77 5. Cross-sell and Upsell Products 78 6. Various Popup Examples 79 7. Campaign Types - LightBox Popup, Fullscreen, Countdown, Floating Bars and more 80 8. Exit Intent Popup Demo 81 == Changelog == 78 82 79 == Changelog == 83 = 1.1.0 = 84 * Added targeting based on cart value, products in cart, discount on cart, product customer viewing and customer buying history. 80 85 81 86 = 1.0 =
Note: See TracChangeset
for help on using the changeset viewer.