HEX
Server: LiteSpeed
System: Linux pulsar191.sitesanctuary.org 5.14.0-284.30.1.el9.tuxcare.els9.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jan 10 17:34:05 UTC 2025 x86_64
User: lgooir (1604)
PHP: 8.1.32
Disabled: exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/lgooir/.trash/rising-bamboo/inc/app/frontend/class-quick-view.php
<?php
/**
 * RisingBambooCore
 *
 * @package RisingBambooCore.
 */

namespace RisingBambooCore\App\Frontend;

use RisingBambooCore\Core\Singleton;
use RisingBambooCore\App\App;
use RisingBambooCore\Helper\Helper;

/**
 * Quick View.
 */
class QuickView extends Singleton {

	/**
	 * Construct.
	 */
	public function __construct() {
		add_action('wp_ajax_rbb_product_quick_view', [ $this, 'quick_view' ]); // nonce - ok.
		add_action('wp_ajax_nopriv_rbb_product_quick_view', [ $this, 'quick_view' ]); // nonce - ok.
		add_action('wp_enqueue_scripts', [ $this, 'enqueue_scripts' ]);
	}

	/**
	 * Scripts.
	 *
	 * @return void
	 */
	public function enqueue_scripts(): void {
		wp_enqueue_script('wc-add-to-cart-variation');
		Helper::register_asset('rbb-quick-view-product', 'js/frontend/components/quick-view.js', [ 'jquery' ], App::get_version());
		wp_enqueue_script('rbb-quick-view-product');
	}

	/**
	 * Quick-view template.
	 *
	 * @return void
	 */
	public function quick_view(): void {
		global $product;
		if ( check_ajax_referer(App::get_nonce(), 'nonce') ) {
			$product_id = ( isset($_REQUEST['product_id']) && $_REQUEST['product_id'] > 0 ) ? sanitize_key(wp_unslash($_REQUEST['product_id'])) : 0;
			$product    = wc_get_product($product_id);
			$result     = '';
			if ( $product->exists() ) {
				ob_start();
				wc_get_template_part('content', 'quick-view-product');
				$result = ob_get_clean();
			}
			wp_send_json(
				[
					'result' => $result,
				]
			);
		}
	}
}