HEX
Server: Apache
System: Linux webd006.cluster128.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: zwafgyp (177615)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/zwafgyp/lacalita/wp-content/plugins/rey-core/inc/modules/view-switcher/component.php
<?php
namespace ReyCore\Modules\ViewSwitcher;

if (!defined('ABSPATH')) exit; // Exit if accessed directly

class Component extends \ReyCore\WooCommerce\LoopComponents\Component {

	public function __construct(){
		add_action( 'customize_controls_print_scripts', [$this, 'customizer_print_js'], 30 );
	}

	public function status(){
		return Base::instance()->is_enabled();
	}

	public function get_id(){
		return 'view_selector';
	}

	public function get_name(){
		return 'View Selector';
	}

	public function loop_type(){
		return 'grid';
	}

	public function scheme(){

		return [
			'type'          => 'action',
			'tag'           => 'reycore/woocommerce/loop/before_grid',
			'priority'      => 29,
		];

	}

	public function render(){

		if( ! wc_get_loop_prop( 'is_paginated' ) ){
			return;
		}

		if( is_singular() ){
			return;
		}

		if( ! $this->maybe_render() ){
			return;
		}

		reycore__get_template_part('template-parts/woocommerce/view-selector');

		reycore_assets()->add_styles( [Base::ASSET_HANDLE, 'rey-wc-loop-inlinelist'] );
		reycore_assets()->add_scripts( Base::ASSET_HANDLE );
	}

	/**
	 * Print JS script in Customizer Preview.
	 * Clean localstorage
	 *
	 * @since 1.0.0
	 */
	function customizer_print_js()
	{ ?>
		<script type="text/javascript">
			(function ( api ) {

				if( ! api ){
					return;
				}

				var lsName = "rey-active-view-selector-" + <?php echo is_multisite() ? absint( get_current_blog_id() ) : 0 ?>;

				var removeLs = function(){
						localStorage.removeItem( lsName );
						localStorage.removeItem( lsName + '-mobile' );
					};

				api.bind( "ready", function () {
					removeLs();
				});

				api.bind( "saved", function () {
					removeLs();
				});

				api( 'woocommerce_catalog_columns', function( value ) {
					value.bind( function( to ) {
						removeLs();
					} );
				} );
			})( wp.customize );
		</script>
		<?php
	}

}