HEX
Server: Apache
System: Linux p3plzcpnl476737.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: p8pyefaexf70 (9161224)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: //proc/thread-self/cwd/wp-content/plugins/shopengine/modules/comparison/route.php
<?php

namespace ShopEngine\Modules\Comparison;

use ShopEngine\Base\Api;
use ShopEngine\Utils\Helper;

class Route extends Api {

	public function config() {

		$this->prefix = 'comparison';
		$this->param  = "";
	}


	public function get_comparison_table() {
		$data       = $this->request->get_params();
		$product_id = !empty($data['pid']) ? $data['pid'] : "";

		if( $product_id ) Comparison_Cookie::add_product_id($product_id);
		$product_ids = Comparison_Cookie::get_product_ids($product_id);

		Comparison_Helper::get_html($product_ids);
		exit();
	}

	public function post_remove() {

		$data = $this->request->get_params();
		$pid  = $data['pid'];

		Comparison_Cookie::remove_product_id($pid);

		$product_ids = Comparison_Cookie::get_product_ids();
		if (($key = array_search($pid, $product_ids)) !== false) {
			unset($product_ids[$key]);
		}
		$share_url = home_url( '?comparison=yes&product_ids=' . implode( ',', $product_ids ) );

		wp_send_json([
			"status" => "Success",
			"share_url" => $product_ids ? $share_url : home_url( '?comparison=yes' ),
		]);
	}



	public function get_comparison_bar_data() {

		$product_ids =  Comparison_Cookie::get_product_ids();

		$content = '';
		if ( empty( $product_ids ) ) {
			$content .=  '<h1 class="shopengine-no-comparison-product-for-bar">' . esc_html__( 'No product is added for comparison, please add some product to compare',
					'shopengine' ) . '</h1>';
			return $content;
		}

		$title = esc_html__("Remove Product For Comparison", "shopengine");

		$args = [
			'post_type' => 'product',
			'post__in'  => $product_ids
		];

		$productQuery = new \WP_Query($args);

		if ($productQuery->have_posts()) {
			while ($productQuery->have_posts()) {
				$productQuery->the_post();
				$product = wc_get_product(get_the_ID());
				$content .= '<div class="comparison-for-bottom-bar-item">
				<a title="' . $title . '" class="shopengine-comparison-bar-action badge-comparison" data-pid="'.esc_attr( get_the_ID() ).'"><i class="eicon-close"></i></a>
				'.$product->get_image('woocommerce_thumbnail').'</div>';
			}
		}

		return $content;
	}



	public function get_attributes() {
	    global $wpdb;

        $attributes = $wpdb->get_results("SELECT  * FROM {$wpdb->prefix}woocommerce_attribute_taxonomies");

        $formatted_attributes = [];
        foreach ($attributes as $attribute){
            $formatted_attributes[$attribute->attribute_name] = $attribute->attribute_label;
        }

        wp_send_json([
	        "status" => "success",
	        "result" => $formatted_attributes,
	        "message" =>  "Available attributes"
        ] );
	}


	public function get_custom_meta() {

        wp_send_json([
	        "status" => "success",
	        "result" => Comparison_Helper::get_products_meta_keys(),
	        "message" =>  "Products Meta keys"
        ] );
	}



}