PHP 8.2.31
Preview: AbstractTemplateWithFallback.php Size: 1.80 KB
/home/nshryvcy/radiantskinclinics.org/wp-content/plugins/woocommerce/src/Blocks/Templates/AbstractTemplateWithFallback.php

<?php
declare( strict_types=1 );
namespace Automattic\WooCommerce\Blocks\Templates;

use Automattic\WooCommerce\Blocks\Utils\BlockTemplateUtils;

/**
 * AbstractTemplateWithFallback class.
 *
 * Shared logic for templates with fallbacks.
 *
 * @internal
 */
abstract class AbstractTemplateWithFallback extends AbstractTemplate {
	/**
	 * The fallback template to render if the existing template is not available.
	 *
	 * @var string
	 */
	public string $fallback_template;

	/**
	 * Initialization method.
	 */
	public function init() {
		add_filter( 'taxonomy_template_hierarchy', array( $this, 'template_hierarchy' ), 1 );
		add_action( 'template_redirect', array( $this, 'render_block_template' ) );
	}

	/**
	 * Add the fallback template to the hierarchy, right after the current template.
	 *
	 * @param array $templates Templates that match the taxonomy_template_hierarchy.
	 */
	public function template_hierarchy( $templates ) {
		$index = array_search( static::SLUG, $templates, true );
		if ( false === $index ) {
			$index = array_search( static::SLUG . '.php', $templates, true );
		}

		if (
			false !== $index && (
				! array_key_exists( $index + 1, $templates ) || $templates[ $index + 1 ] !== $this->fallback_template
			) ) {
			array_splice( $templates, $index + 1, 0, $this->fallback_template );
		}

		return $templates;
	}

	/**
	 * This method is hooked to WordPress' 'template_redirect' action and allows
	 * template classes to:
	 * 1. Decide when block templates should be rendered based on the context.
	 * 2. Execute specific logic, such as managing the compatibility layer for
	 *    legacy template support.
	 *
	 * Child classes must implement this method to define their template
	 * rendering conditions and any additional template-specific behavior.
	 */
	abstract public function render_block_template();
}

Directory Contents

Dirs: 0 × Files: 26

Name Size Perms Modified Actions
1.81 KB lrw-r--r-- 2024-08-27 23:04:44
Edit Download
737 B lrw-r--r-- 2025-09-01 23:44:48
Edit Download
5.76 KB lrw-r--r-- 2025-03-03 22:28:12
Edit Download
332 B lrw-r--r-- 2024-03-26 16:56:02
Edit Download
1.80 KB lrw-r--r-- 2025-11-24 23:10:10
Edit Download
12.43 KB lrw-r--r-- 2024-09-23 20:44:04
Edit Download
1.96 KB lrw-r--r-- 2025-09-01 23:44:48
Edit Download
863 B lrw-r--r-- 2024-03-26 16:56:02
Edit Download
2.00 KB lrw-r--r-- 2025-09-01 23:44:48
Edit Download
2.37 KB lrw-r--r-- 2025-05-12 21:07:28
Edit Download
1.11 KB lrw-r--r-- 2024-12-18 22:19:16
Edit Download
2.58 KB lrw-r--r-- 2025-05-12 21:07:28
Edit Download
1021 B lrw-r--r-- 2025-06-23 19:46:28
Edit Download
1016 B lrw-r--r-- 2025-06-23 19:46:28
Edit Download
1.67 KB lrw-r--r-- 2024-04-30 19:35:34
Edit Download
1.58 KB lrw-r--r-- 2024-08-27 23:04:44
Edit Download
2.69 KB lrw-r--r-- 2025-11-24 23:10:10
Edit Download
1.74 KB lrw-r--r-- 2025-11-24 23:10:10
Edit Download
2.26 KB lrw-r--r-- 2025-11-24 23:10:10
Edit Download
1.74 KB lrw-r--r-- 2025-11-24 23:10:10
Edit Download
2.02 KB lrw-r--r-- 2025-11-24 23:10:10
Edit Download
1.72 KB lrw-r--r-- 2025-11-24 23:10:10
Edit Download
1011 B lrw-r--r-- 2025-06-23 19:46:28
Edit Download
9.58 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
14.43 KB lrw-r--r-- 2025-09-01 23:44:48
Edit Download
1021 B lrw-r--r-- 2025-06-23 19:46:28
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).