Server IP : 192.158.238.246 / Your IP : 18.191.89.23 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/7779/task/7779/cwd/plugins/woocommerce/src/Blocks/Templates/ |
Upload File : |
<?php namespace Automattic\WooCommerce\Blocks\Templates; use Automattic\WooCommerce\Blocks\Assets\AssetDataRegistry; /** * ClassicTemplatesCompatibility class. * * To bridge the gap on compatibility with widget blocks and classic PHP core templates. * * @internal */ class ClassicTemplatesCompatibility { /** * Instance of the asset data registry. * * @var AssetDataRegistry */ protected $asset_data_registry; /** * Constructor. * * @param AssetDataRegistry $asset_data_registry Instance of the asset data registry. */ public function __construct( AssetDataRegistry $asset_data_registry ) { $this->asset_data_registry = $asset_data_registry; $this->init(); } /** * Initialization method. */ protected function init() { // phpcs:ignore WooCommerce.Functions.InternalInjectionMethod.MissingPublic if ( ! wc_current_theme_is_fse_theme() ) { add_action( 'template_redirect', array( $this, 'set_classic_template_data' ) ); // We need to set this data on the widgets screen so the filters render previews. add_action( 'load-widgets.php', array( $this, 'set_filterable_product_data' ) ); } } /** * Executes the methods which set the necessary data needed for filter blocks to work correctly as widgets in Classic templates. * * @return void */ public function set_classic_template_data() { $this->set_filterable_product_data(); $this->set_php_template_data(); } /** * This method passes the value `has_filterable_products` to the front-end for product archive pages, * so that widget product filter blocks are aware of the context they are in and can render accordingly. * * @return void */ public function set_filterable_product_data() { global $pagenow; if ( is_shop() || is_product_taxonomy() || 'widgets.php' === $pagenow ) { $this->asset_data_registry->add( 'hasFilterableProducts', true ); } } /** * This method passes the value `is_rendering_php_template` to the front-end of Classic themes, * so that widget product filter blocks are aware of how to filter the products. * * This data only matters on WooCommerce product archive pages. * On non-archive pages the merchant could be using the All Products block which is not a PHP template. * * @return void */ public function set_php_template_data() { if ( is_shop() || is_product_taxonomy() ) { $this->asset_data_registry->add( 'isRenderingPhpTemplate', true ); } } }