Theme_Customizer

Summary

No summary available.

Source

File: src/BigCommerce/Container/Theme_Customizer.php

class Theme_Customizer extends Provider {
	const PANEL_PRIMARY           = 'customizer.panel.primary';
	const SECTION_BUTTONS         = 'customizer.section.buttons';
	const SECTION_COLORS          = 'customizer.section.colors';
	const SECTION_PRODUCT_SINGLE  = 'customizer.section.product_single';
	const SECTION_PRODUCT_ARCHIVE = 'customizer.section.product_archive';
	const SECTION_CART            = 'customizer.section.cart';
	const SECTION_CHECKOUT        = 'customizer.section.checkout';
	const SECTION_BANNERS         = 'customizer.section.banners';
	const STYLES                  = 'customizer.styles';

	public function register( Container $container ) {
		$container[ self::PANEL_PRIMARY ] = function ( Container $container ) {
			return new Panels\Primary();
		};

		$container[ self::SECTION_BUTTONS ] = function ( Container $container ) {
			return new Sections\Buttons();
		};

		$container[ self::SECTION_COLORS ] = function ( Container $container ) {
			return new Sections\Colors();
		};

		$container[ self::SECTION_PRODUCT_SINGLE ] = function ( Container $container ) {
			return new Sections\Product_Single();
		};

		$container[ self::SECTION_PRODUCT_ARCHIVE ] = function ( Container $container ) {
			return new Sections\Product_Archive();
		};

		$container[ self::SECTION_CART ] = function ( Container $container ) {
			return new Sections\Cart();
		};

		$container[ self::SECTION_CHECKOUT ] = function ( Container $container ) {
			return new Sections\Checkout();
		};
		
		$container[ self::SECTION_BANNERS ] = function ( Container $container ) {
			return new Sections\Banners();
		};

		$container[ self::STYLES ] = function ( Container $container ) {
			$path = dirname( $container[ 'plugin_file' ] ) . '/assets/customizer.template.css';

			return new Styles( $path );
		};

		add_action( 'customize_register', $this->create_callback( 'customize_register', function ( $wp_customize ) use ( $container ) {
			$container[ self::PANEL_PRIMARY ]->register( $wp_customize );
			$container[ self::SECTION_BUTTONS ]->register( $wp_customize );
			$container[ self::SECTION_COLORS ]->register( $wp_customize );
			$container[ self::SECTION_PRODUCT_SINGLE ]->register( $wp_customize );
			$container[ self::SECTION_PRODUCT_ARCHIVE ]->register( $wp_customize );
			$container[ self::SECTION_BANNERS ]->register( $wp_customize );

			if ( get_option( \BigCommerce\Settings\Sections\Cart::OPTION_ENABLE_CART, true ) ) {
				$container[ self::SECTION_CART ]->register( $wp_customize );
			}

			if ( get_option( \BigCommerce\Settings\Sections\Cart::OPTION_EMBEDDED_CHECKOUT, true ) ) {
				$container[ self::SECTION_CHECKOUT ]->register( $wp_customize );
			}
		} ), 10, 1 );

		add_action( 'wp_head', $this->create_callback( 'customizer_styles', function () use ( $container ) {
			$container[ self::STYLES ]->print_styles();
		} ), 10, 0 );
	}

}

Methods


User Contributed Notes

You must log in before being able to contribute a note or feedback.