Astra_Customizer_Notices_Configs
Description
Source
File: classes/customizer/class-astra-customizer-notices-configs.php
class Astra_Customizer_Notices_Configs extends Astra_Customizer_Config_Base { /** * Register General Customizer Configurations. * * @param Array $configurations Astra Customizer Configurations. * @param WP_Customize_Manager $wp_customize instance of WP_Customize_Manager. * @since 1.4.3 * @return Array Astra Customizer Configurations with updated configurations. */ public function register_configuration( $configurations, $wp_customize ) { // Add controls only if Advanced Hooks addon is active. if ( defined( 'ASTRA_ADVANCED_HOOKS_POST_TYPE' ) ) { $_configs = array(); if ( true === astra_addon_builder_helper()->is_header_footer_builder_active ) { $_configs = array( /** * Notice for custom layout. */ array( 'name' => ASTRA_THEME_SETTINGS . '[ast-callback-notice-custom-layout]', 'type' => 'control', 'control' => 'ast-description', 'section' => 'section-header-builder-layout', 'priority' => 1, 'active_callback' => array( $this, 'is_custom_layout_header' ), 'help' => $this->get_help_text_notice( 'custom-header' ), ), ); } else { $_configs = array( /** * Notice for Above header created using custom layout. */ array( 'name' => ASTRA_THEME_SETTINGS . '[header-custom-layout-above-header]', 'type' => 'control', 'control' => 'ast-description', 'section' => 'section-above-header', 'priority' => 1, 'active_callback' => array( $this, 'is_custom_layout_header' ), 'help' => $this->get_help_text_notice( 'custom-header' ), ), /** * Notice for Below header created using custom layout. */ array( 'name' => ASTRA_THEME_SETTINGS . '[header-custom-layout-below-header]', 'type' => 'control', 'control' => 'ast-description', 'section' => 'section-below-header', 'priority' => 1, 'active_callback' => array( $this, 'is_custom_layout_header' ), 'help' => $this->get_help_text_notice( 'custom-header' ), ), /** * Notice for Primary header created using custom layout. */ array( 'name' => ASTRA_THEME_SETTINGS . '[header-custom-layout-header]', 'type' => 'control', 'control' => 'ast-description', 'section' => 'section-header', 'priority' => 1, 'active_callback' => array( $this, 'is_custom_layout_header' ), 'help' => $this->get_help_text_notice( 'custom-header' ), ), /** * Notice for Sticky header created using custom layout. */ array( 'name' => ASTRA_THEME_SETTINGS . '[header-custom-layout-sticky-header]', 'type' => 'control', 'control' => 'ast-description', 'section' => 'section-sticky-header', 'priority' => 1, 'active_callback' => array( $this, 'is_custom_layout_header' ), 'help' => $this->get_help_text_notice( 'custom-header' ), ), /** * Notice for Transparent header created using custom layout. */ array( 'name' => ASTRA_THEME_SETTINGS . '[header-custom-layout-transparent-header]', 'type' => 'control', 'control' => 'ast-description', 'section' => 'section-transparent-header', 'priority' => 1, 'active_callback' => array( $this, 'is_custom_layout_header' ), 'help' => $this->get_help_text_notice( 'custom-header' ), ), /** * Notice for Colors - Primary header created using custom layout. */ array( 'name' => ASTRA_THEME_SETTINGS . '[header-custom-color-primary-header]', 'type' => 'control', 'control' => 'ast-description', 'section' => 'section-colors-primary-menu', 'priority' => 1, 'active_callback' => array( $this, 'is_custom_layout_header' ), 'help' => $this->get_help_text_notice( 'custom-header' ), ), /** * Notice for Title & Tagline section when header is created using custom layout. */ array( 'name' => ASTRA_THEME_SETTINGS . '[header-custom-title_tagline]', 'type' => 'control', 'control' => 'ast-description', 'section' => 'title_tagline', 'priority' => 1, 'active_callback' => array( $this, 'is_custom_layout_header' ), 'help' => $this->get_help_text_notice( 'custom-header' ), ), ); } $configurations = array_merge( $configurations, $_configs ); } return $configurations; } /** * Help notice message to be displayed when the page that is being previewed has header built using Custom Layout. * * @since 1.4.0 * @param String $context Type of notice message to be returned. * @return String HTML Markup for the help notice. */ private function get_help_text_notice( $context ) { switch ( $context ) { case 'custom-header': $notice = '<div class="ast-customizer-notice wp-ui-highlight"><p>The header on the page you are previewing is built using Custom Layouts. Options given below will not work here.</p><p> <a href="' . $this->get_custom_layout_edit_link() . '" target="_blank">Click here</a> to modify the header on this page.<p></div>'; break; default: $notice = ''; break; } return $notice; } /** * Return post edit page url for Custom Layouts post type. * * @return String Admin URL for Custom Layouts post edit screen. */ private function get_custom_layout_edit_link() { return admin_url( 'edit.php?post_type=astra-advanced-hook' ); } /** * Decide if Notice for Header Built using Custom Layout should be displayed. * This runs teh target rules to check if the page neing previewed has a header built using Custom Layout. * * @return boolean True - If the notice should be displayed, False - If the notice should be hidden. */ public function is_custom_layout_header() { $option = array( 'location' => 'ast-advanced-hook-location', 'exclusion' => 'ast-advanced-hook-exclusion', 'users' => 'ast-advanced-hook-users', ); $advanced_hooks = Astra_Target_Rules_Fields::get_instance()->get_posts_by_conditions( ASTRA_ADVANCED_HOOKS_POST_TYPE, $option ); foreach ( $advanced_hooks as $post_id => $post_data ) { $layout = get_post_meta( $post_id, 'ast-advanced-hook-layout', false ); if ( isset( $layout[0] ) && 'header' == $layout[0] ) { return true; } } return false; } }
Expand full source code Collapse full source code View on Trac
Methods
- get_custom_layout_edit_link — Return post edit page url for Custom Layouts post type.
- get_help_text_notice — Help notice message to be displayed when the page that is being previewed has header built using Custom Layout.
- is_custom_layout_header — Decide if Notice for Header Built using Custom Layout should be displayed.
- is_transparent_header_enabled — Check if transparent header is enabled on the page being previewed.
- register_configuration — Register General Customizer Configurations.