HEX
Server: Apache
System: Linux vpshost0650.publiccloud.com.br 4.4.79-grsec-1.lc.x86_64 #1 SMP Wed Aug 2 14:18:21 -03 2017 x86_64
User: bandeirantesbomb3 (10068)
PHP: 8.0.7
Disabled: apache_child_terminate,dl,escapeshellarg,escapeshellcmd,exec,link,mail,openlog,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_check_syntax,php_strip_whitespace,popen,proc_close,proc_open,shell_exec,symlink,system
Upload Files
File: /home/goremar3/public_html/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"
        ] );
	}



}