PluginProbe
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution with eCommerce Templates & Woo Widgets / 1.7.0
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution with eCommerce Templates & Woo Widgets v1.7.0
4.9.5 4.9.4 4.9.3 4.9.2 4.9.1 4.9.0 2.0.0 2.1.0 2.2.0 2.2.1 2.2.2 2.3.0 2.4.0 2.5.0 2.5.1 3.0.0 3.1.0 3.1.1 4.0.0 4.0.1 4.1.0 4.1.1 4.2.0 4.2.1 4.3.0 All 85 releases
shopengine / modules / comparison / route.php
route.php
118 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace ShopEngine\Modules\Comparison;
4
5 use ShopEngine\Base\Api;
6 use ShopEngine\Utils\Helper;
7
8 class Route extends Api {
9
10 public function config() {
11
12 $this->prefix = 'comparison';
13 $this->param = "";
14 }
15
16
17 public function get_comparison_table() {
18 $data = $this->request->get_params();
19 $product_id = $data['pid'];
20
21 $product_id_from_cookie = empty( $_COOKIE[ Comparison::COOKIE_KEY ] ) ? '' : $_COOKIE[ Comparison::COOKIE_KEY ];
22
23 $existing_product_ids = explode( ',', $product_id_from_cookie );
24 $existing_product_ids[ $product_id ] = $product_id;
25
26 unset( $existing_product_ids[''] );
27
28 setcookie(
29 Comparison::COOKIE_KEY,
30 implode( ',', $existing_product_ids ),
31 strtotime( '+' . Comparison::COOKIE_TIME_IN_DAYS . ' days' ), '/'
32 );
33
34 Comparison_Helper::get_html($existing_product_ids);
35
36 exit();
37 }
38
39 public function post_remove() {
40
41 $data = $this->request->get_params();
42 $idd = $data['pid'];
43
44 $cck = empty($_COOKIE[Comparison::COOKIE_KEY]) ? '' : $_COOKIE[Comparison::COOKIE_KEY];
45 $cck = explode(',', $cck);
46 $content = array_combine($cck, $cck);
47
48 unset($content[$idd], $content['']);
49
50 $val = implode(',', $content);
51
52 setcookie(Comparison::COOKIE_KEY, $val, strtotime('+' . Comparison::COOKIE_TIME_IN_DAYS . ' days'), '/');
53
54 wp_send_json([
55 "status" => "Success"
56 ]);
57 exit();
58 }
59
60 public function get_comparison_bar_data() {
61 $cck = empty( $_COOKIE[ Comparison::COOKIE_KEY ] ) ? '' : $_COOKIE[ Comparison::COOKIE_KEY ];
62 $product_ids = explode( ',', $cck );
63 if ( isset( $product_ids[0] ) && ! $product_ids[0] ) {
64 unset( $product_ids[0] );
65 }
66
67 if ( empty( $product_ids ) ) {
68 echo '<h1 class="shopengine-no-comparison-product-for-bar">' . esc_html__( 'No product is added for comparison, please add some product to compare',
69 'shopengine' ) . '</h1>';
70 return ;
71 }
72
73 foreach ( $product_ids as $product_id ) {
74 $image = get_the_post_thumbnail_url( $product_id, 'shop_thumbnail' );
75 ?>
76 <div class="comparison-for-bottom-bar-item">
77 <a class="shopengine-comparison-bar-action badge-comparison" data-pid="<?php
78 echo esc_attr( $product_id ); ?>"><i class="eicon-close"></i></a>
79 <img src="<?php
80 echo $image ?>" alt="">
81 </div>
82 <?php
83 }
84 }
85
86
87
88 public function get_attributes() {
89 global $wpdb;
90
91 $attributes = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}woocommerce_attribute_taxonomies");
92
93 $formatted_attributes = [];
94 foreach ($attributes as $attribute){
95 $formatted_attributes[$attribute->attribute_name] = $attribute->attribute_label;
96 }
97
98 wp_send_json([
99 "status" => "success",
100 "result" => $formatted_attributes,
101 "message" => "Available attributes"
102 ] );
103 }
104
105
106 public function get_custom_meta() {
107
108 wp_send_json([
109 "status" => "success",
110 "result" => Comparison_Helper::get_products_meta_keys(),
111 "message" => "Products Meta keys"
112 ] );
113 }
114
115
116
117 }
118