File: //proc/self/cwd/wp-content/plugins/coblocks/includes/class-coblocks-accordion-ie-support.php
<?php
/**
* Load assets and meta for browser legacy support.
*
* @package CoBlocks
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Load general assets for our accordion polyfill
*
* @since 1.0.0
*/
class CoBlocks_Accordion_IE_Support {
/**
* This plugin's instance.
*
* @var CoBlocks_Accordion_IE_Support
*/
private static $instance;
/**
* Registers the plugin.
*
* @return CoBlocks_Accordion_IE_Support
*/
public static function register() {
if ( null === self::$instance ) {
self::$instance = new CoBlocks_Accordion_IE_Support();
}
return self::$instance;
}
/**
* The base URL path (without trailing slash).
*
* @var string $url
*/
private $url;
/**
* The Plugin slug.
*
* @var string $slug
*/
private $slug;
/**
* The Constructor.
*/
public function __construct() {
$this->slug = 'coblocks';
$this->url = untrailingslashit( plugins_url( '/', dirname( __FILE__ ) ) );
add_action( 'wp_enqueue_scripts', array( $this, 'load_assets' ) );
add_action( 'the_post', array( $this, 'load_assets' ) );
}
/**
* Enqueue front-end assets for blocks.
*
* @access public
*/
public function load_assets() {
global $post;
// Validate Post ID.
if ( ! isset( $post->ID ) || empty( $post->ID ) ) {
return;
}
$legacy_support = get_post_meta( $post->ID, '_coblocks_accordion_ie_support', true );
// Determine whether a $post contains an Accordion block.
if ( has_block( 'coblocks/accordion' ) && "'true'" === $legacy_support ) {
$dir = CoBlocks()->asset_source( 'js' );
wp_enqueue_script(
$this->slug . '-accordion-polyfill',
$dir . $this->slug . '-accordion-polyfill.js',
array(),
COBLOCKS_VERSION,
true
);
}
}
}
CoBlocks_Accordion_IE_Support::register();