���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC remove_existing_actions(); add_action( 'body_class', array( $this, 'add_body_class' ) ); // Header Desktop Builder. add_action( 'astra_masthead', array( $this, 'desktop_header' ) ); add_action( 'astra_above_header', array( $this, 'above_header' ) ); add_action( 'astra_primary_header', array( $this, 'primary_header' ) ); add_action( 'astra_below_header', array( $this, 'below_header' ) ); add_action( 'astra_render_header_column', array( $this, 'render_column' ), 10, 2 ); // Mobile Builder. add_action( 'astra_mobile_header', array( $this, 'mobile_header' ) ); add_action( 'astra_mobile_above_header', array( $this, 'mobile_above_header' ) ); add_action( 'astra_mobile_primary_header', array( $this, 'mobile_primary_header' ) ); add_action( 'astra_mobile_below_header', array( $this, 'mobile_below_header' ) ); add_action( 'astra_render_mobile_header_column', array( $this, 'render_mobile_column' ), 10, 2 ); // Load Off-Canvas Markup on Footer. add_action( 'astra_footer', array( $this, 'mobile_popup' ) ); add_action( 'astra_mobile_header_content', array( $this, 'render_mobile_column' ), 10, 2 ); add_action( 'astra_render_mobile_popup', array( $this, 'render_mobile_column' ), 10, 2 ); for ( $index = 1; $index <= Astra_Builder_Helper::$component_limit; $index++ ) { // Buttons. add_action( 'astra_header_button_' . $index, array( $this, 'button_' . $index ) ); self::$methods[] = 'button_' . $index; // Htmls. add_action( 'astra_header_html_' . $index, array( $this, 'header_html_' . $index ) ); self::$methods[] = 'header_html_' . $index; // Social Icons. add_action( 'astra_header_social_' . $index, array( $this, 'header_social_' . $index ) ); self::$methods[] = 'header_social_' . $index; // Menus. add_action( 'astra_header_menu_' . $index, array( $this, 'menu_' . $index ) ); self::$methods[] = 'menu_' . $index; } add_action( 'astra_mobile_site_identity', __CLASS__ . '::site_identity' ); add_action( 'astra_header_search', array( $this, 'header_search' ), 10, 1 ); add_action( 'astra_header_woo_cart', array( $this, 'header_woo_cart' ) ); add_action( 'astra_header_edd_cart', array( $this, 'header_edd_cart' ) ); add_action( 'astra_header_account', array( $this, 'header_account' ) ); add_action( 'astra_header_mobile_trigger', array( $this, 'header_mobile_trigger' ) ); // Load Cart Flyout Markup on Footer. add_action( 'astra_footer', array( $this, 'mobile_cart_flyout' ) ); add_action( 'astra_header_menu_mobile', array( $this, 'header_mobile_menu_markup' ) ); } add_action( 'astra_site_identity', __CLASS__ . '::site_identity' ); } /** * Callback when method not exists. * * @param string $func function name. * @param array $params function parameters. */ public function __call( $func, $params ) { if ( in_array( $func, self::$methods, true ) ) { if ( 0 === strpos( $func, 'header_html_' ) ) { Astra_Builder_UI_Controller::render_html_markup( str_replace( '_', '-', $func ) ); } elseif ( 0 === strpos( $func, 'button_' ) ) { $index = (int) substr( $func, strrpos( $func, '_' ) + 1 ); if ( $index ) { Astra_Builder_UI_Controller::render_button( $index, 'header' ); } } elseif ( 0 === strpos( $func, 'menu_' ) ) { $index = (int) substr( $func, strrpos( $func, '_' ) + 1 ); if ( $index ) { Astra_Header_Menu_Component::menu_markup( $index, $params['0'] ); } } elseif ( 0 === strpos( $func, 'header_social_' ) ) { $index = (int) substr( $func, strrpos( $func, '_' ) + 1 ); if ( $index ) { Astra_Builder_UI_Controller::render_social_icon( $index, 'header' ); } } } } /** * Remove complete header Support on basis of meta option. * * @since 3.8.0 * @return void */ public function global_astra_header() { $display = get_post_meta( absint( astra_get_post_id() ), 'ast-global-header-display', true ); $display = apply_filters( 'astra_header_display', $display ); if ( 'disabled' === $display ) { remove_action( 'astra_header', 'astra_header_markup' ); /** @psalm-suppress DocblockTypeContradiction */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort if ( true === Astra_Builder_Helper::$is_header_footer_builder_active ) { // phpcs:ignore PHPCompatibility.Keywords.NewKeywords.t_namespaceFound, PHPCompatibility.LanguageConstructs.NewLanguageConstructs.t_ns_separatorFound remove_action( 'astra_header', array( $this, 'header_builder_markup' ) ); // phpcs:ignore PHPCompatibility.Keywords.NewKeywords.t_namespaceFound, PHPCompatibility.LanguageConstructs.NewLanguageConstructs.t_ns_separatorFound } } } /** * Inherit Header base layout. * Do all actions for header. */ public function header_builder_markup() { do_action( 'astra_header' ); } /** * Remove existing Header to load Header Builder. * * @since 3.0.0 * @return void */ public function remove_existing_actions() { remove_action( 'astra_masthead', 'astra_masthead_primary_template' ); remove_action( 'astra_masthead_content', 'astra_primary_navigation_markup', 10 ); remove_filter( 'wp_page_menu_args', 'astra_masthead_custom_page_menu_items', 10, 2 ); remove_filter( 'wp_nav_menu_items', 'astra_masthead_custom_nav_menu_items' ); } /** * Header Mobile trigger */ public function header_mobile_trigger() { Astra_Builder_UI_Controller::render_mobile_trigger(); } /** * Render WooCommerce Cart. */ public function header_woo_cart() { if ( class_exists( 'Astra_Woocommerce' ) ) { echo Astra_Woocommerce::get_instance()->woo_mini_cart_markup(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } } /** * Render EDD Cart. */ public function header_edd_cart() { if ( class_exists( 'Easy_Digital_Downloads' ) ) { echo Astra_Edd::get_instance()->edd_mini_cart_markup(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } } /** * Render account icon. */ public function header_account() { Astra_Builder_UI_Controller::render_account(); } /** * Render Search icon. * * @param string $device Device name. */ public function header_search( $device = 'desktop' ) { echo astra_get_search( '', $device ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } /** * Render site logo. * * @param string $device Device name. */ public static function site_identity( $device = 'desktop' ) { Astra_Builder_UI_Controller::render_site_identity( $device ); } /** * Call component header UI. * * @param string $row row. * @param string $column column. */ public function render_column( $row, $column ) { Astra_Builder_Helper::render_builder_markup( $row, $column, 'desktop', 'header' ); } /** * Render desktop header layout. */ public function desktop_header() { get_template_part( 'template-parts/header/builder/desktop-builder-layout' ); } /** * Call above header UI. */ public function above_header() { $display = get_post_meta( get_the_ID(), 'ast-hfb-above-header-display', true ); $display = apply_filters( 'astra_above_header_display', $display ); if ( 'disabled' !== $display ) { if ( astra_wp_version_compare( '5.4.99', '>=' ) ) { get_template_part( 'template-parts/header/builder/header', 'row', array( 'row' => 'above', ) ); } else { set_query_var( 'row', 'above' ); get_template_part( 'template-parts/header/builder/header', 'row' ); } } } /** * Call primary header UI. */ public function primary_header() { $display = get_post_meta( get_the_ID(), 'ast-main-header-display', true ); $display = apply_filters( 'astra_main_header_display', $display ); if ( 'disabled' !== $display ) { if ( astra_wp_version_compare( '5.4.99', '>=' ) ) { get_template_part( 'template-parts/header/builder/header', 'row', array( 'row' => 'primary', ) ); } else { set_query_var( 'row', 'primary' ); get_template_part( 'template-parts/header/builder/header', 'row' ); } } } /** * Call below header UI. */ public function below_header() { $display = get_post_meta( get_the_ID(), 'ast-hfb-below-header-display', true ); $display = apply_filters( 'astra_below_header_display', $display ); if ( 'disabled' !== $display ) { if ( astra_wp_version_compare( '5.4.99', '>=' ) ) { get_template_part( 'template-parts/header/builder/header', 'row', array( 'row' => 'below', ) ); } else { set_query_var( 'row', 'below' ); get_template_part( 'template-parts/header/builder/header', 'row' ); } } } /** * Call mobile component header UI. * * @param string $row row. * @param string $column column. */ public function render_mobile_column( $row, $column ) { Astra_Builder_Helper::render_builder_markup( $row, $column, 'mobile', 'header' ); } /** * Render Mobile header layout. */ public function mobile_header() { get_template_part( 'template-parts/header/builder/mobile-builder-layout' ); } /** * Call Mobile above header UI. */ public function mobile_above_header() { $display = get_post_meta( get_the_ID(), 'ast-hfb-mobile-header-display', true ); $display = apply_filters( 'astra_above_mobile_header_display', $display ); if ( 'disabled' !== $display ) { if ( astra_wp_version_compare( '5.4.99', '>=' ) ) { get_template_part( 'template-parts/header/builder/mobile-header', 'row', array( 'row' => 'above', ) ); } else { set_query_var( 'row', 'above' ); get_template_part( 'template-parts/header/builder/mobile-header', 'row' ); } } } /** * Call Mobile primary header UI. */ public function mobile_primary_header() { $display = get_post_meta( get_the_ID(), 'ast-hfb-mobile-header-display', true ); $display = apply_filters( 'astra_primary_mobile_header_display', $display ); if ( 'disabled' !== $display ) { if ( astra_wp_version_compare( '5.4.99', '>=' ) ) { get_template_part( 'template-parts/header/builder/mobile-header', 'row', array( 'row' => 'primary', ) ); } else { set_query_var( 'row', 'primary' ); get_template_part( 'template-parts/header/builder/mobile-header', 'row' ); } } } /** * Call Mobile below header UI. */ public function mobile_below_header() { $display = get_post_meta( absint( astra_get_post_id() ), 'ast-hfb-mobile-header-display', true ); $display = apply_filters( 'astra_below_mobile_header_display', $display ); if ( 'disabled' !== $display ) { if ( astra_wp_version_compare( '5.4.99', '>=' ) ) { get_template_part( 'template-parts/header/builder/mobile-header', 'row', array( 'row' => 'below', ) ); } else { set_query_var( 'row', 'below' ); get_template_part( 'template-parts/header/builder/mobile-header', 'row' ); } } } /** * Call Mobile Popup UI. */ public function mobile_popup() { $mobile_header_type = astra_get_option( 'mobile-header-type' ); if ( 'off-canvas' === $mobile_header_type || 'full-width' === $mobile_header_type || is_customize_preview() ) { Astra_Builder_Helper::render_mobile_popup_markup(); } } /** * Call Mobile Menu Markup. * * @param string $device Checking where mobile-menu is dropped. */ public function header_mobile_menu_markup( $device = '' ) { Astra_Mobile_Menu_Component::menu_markup( $device ); } /** * Call Mobile Cart Flyout UI. */ public function mobile_cart_flyout() { // Hide cart flyout only if current page is checkout/cart. if ( ( Astra_Builder_Helper::is_component_loaded( 'woo-cart', 'header' ) && class_exists( 'WooCommerce' ) && ! is_cart() && ! is_checkout() ) || Astra_Builder_Helper::is_component_loaded( 'edd-cart', 'header' ) ) { Astra_Builder_UI_Controller::render_mobile_cart_flyout_markup(); } } /** * Add Body Classes * * @param array $classes Body Class Array. * @return array */ public function add_body_class( $classes ) { $classes[] = 'ast-hfb-header'; if ( defined( 'ASTRA_EXT_VER' ) && version_compare( ASTRA_EXT_VER, '3.2.0', '<' ) ) { $classes[] = 'astra-hfb-header'; } return $classes; } } /** * Prepare if class 'Astra_Builder_Header' exist. * Kicking this off by calling 'get_instance()' method */ Astra_Builder_Header::get_instance(); }