���� 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 is_elementor_editor() && class_exists( 'WooCommerce' ) && astra_check_elementor_pro_3_5_version() ) { add_action( 'init', array( $this, 'update_woocommerce_checkout' ) ); } } /** * Check if Elementor Editor is open. * * @since 3.8.0 * * @return boolean true iF Elementor Editor is loaded, false If Elementor Editor is not loaded. */ public function is_elementor_editor() { if ( ( isset( $_REQUEST['action'] ) && 'elementor' == $_REQUEST['action'] ) || isset( $_REQUEST['elementor-preview'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended return true; } return false; } /** * Remove actions of WooCommerce for shipping form fields, as it needs only in 'col-1'. * * Case: Theme's 'woocommerce_checkout' action conflicting with Elementor Pro's checkout widget. On frontend billing + shipping details wrapper comes under col-1 div because of theme's above action. But in Elementor editor, billing + shipping wrappers comes in two different cols, i.e. col-1 & col-2. Due to this, styling looks inappropriate in editor only. * * @since 3.8.0 * @return void */ public function update_woocommerce_checkout() { if ( ! apply_filters( 'astra_woo_shop_product_structure_override', false ) ) { add_action( 'woocommerce_checkout_billing', array( WC()->checkout(), 'checkout_form_shipping' ) ); } remove_action( 'woocommerce_checkout_shipping', array( WC()->checkout(), 'checkout_form_shipping' ) ); } /** * Compatibility CSS for Elementor Pro's WooCommerce widgets releasing in their v3.6.0 * * @param string $css_output CSS stylesheet. * @return string $css_output CSS stylesheet. * * @since 3.7.5 */ public function elementor_wc_widgets_compatibility_styles( $css_output ) { if ( ! astra_check_elementor_pro_3_5_version() ) { return $css_output; } $woo_widgets_desktop_css = array( '.woocommerce.woocommerce-checkout .elementor-widget-woocommerce-checkout-page #customer_details.col2-set, .woocommerce-page.woocommerce-checkout .elementor-widget-woocommerce-checkout-page #customer_details.col2-set' => array( 'width' => '100%', ), '.woocommerce.woocommerce-checkout .elementor-widget-woocommerce-checkout-page #order_review, .woocommerce.woocommerce-checkout .elementor-widget-woocommerce-checkout-page #order_review_heading, .woocommerce-page.woocommerce-checkout .elementor-widget-woocommerce-checkout-page #order_review, .woocommerce-page.woocommerce-checkout .elementor-widget-woocommerce-checkout-page #order_review_heading' => array( 'width' => '100%', 'float' => 'inherit', ), '.elementor-widget-woocommerce-checkout-page .select2-container .select2-selection--single, .elementor-widget-woocommerce-cart .select2-container .select2-selection--single' => array( 'padding' => '0', ), '.elementor-widget-woocommerce-checkout-page .woocommerce form .woocommerce-additional-fields, .elementor-widget-woocommerce-checkout-page .woocommerce form .shipping_address, .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation-link, .elementor-widget-woocommerce-cart .woocommerce a.remove' => array( 'border' => 'none', ), '.elementor-widget-woocommerce-cart .cart-collaterals .cart_totals > h2' => array( 'background-color' => 'inherit', 'border-bottom' => '0px', 'margin' => '0px', ), '.elementor-widget-woocommerce-cart .cart-collaterals .cart_totals' => array( 'padding' => '0', 'border-color' => 'inherit', 'border-radius' => '0', 'margin-bottom' => '0px', 'border-width' => '0px', ), '.elementor-widget-woocommerce-cart .woocommerce-cart-form .e-apply-coupon' => array( 'line-height' => 'initial', ), '.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content .woocommerce-Address-title h3' => array( 'margin-bottom' => 'var(--myaccount-section-title-spacing, 0px)', ), '.elementor-widget-woocommerce-my-account .woocommerce-Addresses .woocommerce-Address-title, .elementor-widget-woocommerce-my-account table.shop_table thead, .elementor-widget-woocommerce-my-account .woocommerce-page table.shop_table thead, .elementor-widget-woocommerce-cart table.shop_table thead' => array( 'background' => 'inherit', ), '.elementor-widget-woocommerce-cart .e-apply-coupon, .elementor-widget-woocommerce-cart #coupon_code, .elementor-widget-woocommerce-checkout-page .e-apply-coupon, .elementor-widget-woocommerce-checkout-page #coupon_code' => array( 'height' => '100%', ), '.elementor-widget-woocommerce-cart td.product-name dl.variation dt' => array( 'font-weight' => 'inherit', ), '.elementor-element.elementor-widget-woocommerce-checkout-page .e-checkout__container #customer_details .col-1' => array( 'margin-bottom' => '0', ), ); $css_output .= astra_parse_css( $woo_widgets_desktop_css ); return $css_output; } /** * Register Locations * * @since 1.2.7 * @param object $manager Location manager. * @return void */ public function register_locations( $manager ) { $manager->register_all_core_location(); } /** * Template Parts Support * * @since 1.2.7 * @return void */ public function do_template_parts() { // Is Archive? $did_location = Module::instance()->get_locations_manager()->do_location( 'archive' ); if ( $did_location ) { // Search and default. remove_action( 'astra_template_parts_content', array( \Astra_Loop::get_instance(), 'template_parts_search' ) );// phpcs:ignore PHPCompatibility.LanguageConstructs.NewLanguageConstructs.t_ns_separatorFound remove_action( 'astra_template_parts_content', array( \Astra_Loop::get_instance(), 'template_parts_default' ) );// phpcs:ignore PHPCompatibility.LanguageConstructs.NewLanguageConstructs.t_ns_separatorFound // Remove pagination. remove_action( 'astra_pagination', 'astra_number_pagination' ); remove_action( 'astra_entry_after', 'astra_single_post_navigation_markup' ); // Content. remove_action( 'astra_entry_content_single', 'astra_entry_content_single_template' ); } // IS Single? $did_location = Module::instance()->get_locations_manager()->do_location( 'single' ); if ( $did_location ) { // @codingStandardsIgnoreStart PHPCompatibility.LanguageConstructs.NewLanguageConstructs.t_ns_separatorFound remove_action( 'astra_page_template_parts_content', array( \Astra_Loop::get_instance(), 'template_parts_page' ) ); remove_action( 'astra_template_parts_content', array( \Astra_Loop::get_instance(), 'template_parts_post' ) ); remove_action( 'astra_template_parts_content', array( \Astra_Loop::get_instance(), 'template_parts_comments' ), 15 ); remove_action( 'astra_page_template_parts_content', array( \Astra_Loop::get_instance(), 'template_parts_comments' ), 15 ); // @codingStandardsIgnoreEnd PHPCompatibility.LanguageConstructs.NewLanguageConstructs.t_ns_separatorFound } } /** * Override 404 page * * @since 1.2.7 * @return void */ public function do_template_part_404() { if ( is_404() ) { // Is Single? $did_location = Module::instance()->get_locations_manager()->do_location( 'single' ); if ( $did_location ) { remove_action( 'astra_entry_content_404_page', 'astra_entry_content_404_page_template' ); } } } /** * Override sidebar, title etc with post meta * * @since 1.2.7 * @return void */ public function override_meta() { // don't override meta for `elementor_library` post type. if ( 'elementor_library' == get_post_type() ) { return; } // Override post meta for single pages. $documents_single = Module::instance()->get_conditions_manager()->get_documents_for_location( 'single' ); if ( $documents_single ) { foreach ( $documents_single as $document ) { $this->override_with_post_meta( $document->get_post()->ID ); } } // Override post meta for archive pages. $documents_archive = Module::instance()->get_conditions_manager()->get_documents_for_location( 'archive' ); if ( $documents_archive ) { foreach ( $documents_archive as $document ) { $this->override_with_post_meta( $document->get_post()->ID ); } } } /** * Override sidebar, title etc with post meta * * @since 1.2.7 * @param integer $post_id Post ID. * @return void */ public function override_with_post_meta( $post_id = 0 ) { // Override! Page Title. $title = get_post_meta( $post_id, 'site-post-title', true ); if ( 'disabled' === $title ) { // Archive page. add_filter( 'astra_the_title_enabled', '__return_false', 99 ); // Single page. add_filter( 'astra_the_title_enabled', '__return_false' ); remove_action( 'astra_archive_header', 'astra_archive_page_info' ); } // Override! Sidebar. $sidebar = get_post_meta( $post_id, 'site-sidebar-layout', true ); if ( '' === $sidebar ) { $sidebar = 'default'; } // @codingStandardsIgnoreStart PHPCompatibility.FunctionDeclarations.NewClosure.Found if ( 'default' !== $sidebar ) { add_filter( 'astra_page_layout', function( $page_layout ) use ( $sidebar ) { return $sidebar; } ); } // Override! Content Layout. $content_layout = get_post_meta( $post_id, 'site-content-layout', true ); if ( '' === $content_layout ) { $content_layout = 'default'; } if ( 'default' !== $content_layout ) { add_filter( 'astra_get_content_layout', function( $layout ) use ( $content_layout ) { return $content_layout; } ); } // Override! Footer Bar. $footer_layout = get_post_meta( $post_id, 'footer-sml-layout', true ); if ( '' === $footer_layout ) { $footer_layout = 'default'; } if ( 'disabled' === $footer_layout ) { add_filter( 'astra_footer_sml_layout', function( $is_footer ) { return 'disabled'; } ); } // Override! Footer Widgets. $footer_widgets = get_post_meta( $post_id, 'footer-adv-display', true ); if ( '' === $footer_widgets ) { $footer_widgets = 'default'; } if ( 'disabled' === $footer_widgets ) { add_filter( 'astra_advanced_footer_disable', function() { return true; } ); } // Override! Header. $main_header_display = get_post_meta( $post_id, 'ast-main-header-display', true ); if ( '' === $main_header_display ) { $main_header_display = 'default'; } if ( 'disabled' === $main_header_display ) { remove_action( 'astra_masthead', 'astra_masthead_primary_template' ); add_filter( 'astra_main_header_display', function( $display_header ) { return 'disabled'; } ); } // @codingStandardsIgnoreEnd PHPCompatibility.FunctionDeclarations.NewClosure.Found } /** * Header Support * * @since 1.2.7 * @return void */ public function do_header() { $did_location = Module::instance()->get_locations_manager()->do_location( 'header' ); if ( $did_location ) { remove_action( 'astra_header', 'astra_header_markup' ); 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( \Astra_Builder_Header::get_instance(), 'header_builder_markup' ) ); // phpcs:ignore PHPCompatibility.Keywords.NewKeywords.t_namespaceFound, PHPCompatibility.LanguageConstructs.NewLanguageConstructs.t_ns_separatorFound } } } /** * Footer Support * * @since 1.2.7 * @return void */ public function do_footer() { $did_location = Module::instance()->get_locations_manager()->do_location( 'footer' ); if ( $did_location ) { remove_action( 'astra_footer', 'astra_footer_markup' ); 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_footer', array( \Astra_Builder_Footer::get_instance(), 'footer_markup' ) ); // phpcs:ignore PHPCompatibility.Keywords.NewKeywords.t_namespaceFound, PHPCompatibility.LanguageConstructs.NewLanguageConstructs.t_ns_separatorFound } } } /** * Remove theme post's default classes when Elementor's template builder is activated. * * @param array $classes Post Classes. * @return array * @since 1.4.9 */ public function render_post_class( $classes ) { $post_class = array( 'elementor-post elementor-grid-item', 'elementor-portfolio-item' ); $result = array_intersect( $classes, $post_class ); if ( count( $result ) > 0 ) { $classes = array_diff( $classes, array( // Astra common grid. 'ast-col-xs-1', 'ast-col-xs-2', 'ast-col-xs-3', 'ast-col-xs-4', 'ast-col-xs-5', 'ast-col-xs-6', 'ast-col-xs-7', 'ast-col-xs-8', 'ast-col-xs-9', 'ast-col-xs-10', 'ast-col-xs-11', 'ast-col-xs-12', 'ast-col-sm-1', 'ast-col-sm-2', 'ast-col-sm-3', 'ast-col-sm-4', 'ast-col-sm-5', 'ast-col-sm-6', 'ast-col-sm-7', 'ast-col-sm-8', 'ast-col-sm-9', 'ast-col-sm-10', 'ast-col-sm-11', 'ast-col-sm-12', 'ast-col-md-1', 'ast-col-md-2', 'ast-col-md-3', 'ast-col-md-4', 'ast-col-md-5', 'ast-col-md-6', 'ast-col-md-7', 'ast-col-md-8', 'ast-col-md-9', 'ast-col-md-10', 'ast-col-md-11', 'ast-col-md-12', 'ast-col-lg-1', 'ast-col-lg-2', 'ast-col-lg-3', 'ast-col-lg-4', 'ast-col-lg-5', 'ast-col-lg-6', 'ast-col-lg-7', 'ast-col-lg-8', 'ast-col-lg-9', 'ast-col-lg-10', 'ast-col-lg-11', 'ast-col-lg-12', 'ast-col-xl-1', 'ast-col-xl-2', 'ast-col-xl-3', 'ast-col-xl-4', 'ast-col-xl-5', 'ast-col-xl-6', 'ast-col-xl-7', 'ast-col-xl-8', 'ast-col-xl-9', 'ast-col-xl-10', 'ast-col-xl-11', 'ast-col-xl-12', // Astra Blog / Single Post. 'ast-article-post', 'ast-article-single', 'ast-separate-posts', 'remove-featured-img-padding', 'ast-featured-post', // Astra Woocommerce. 'ast-product-gallery-layout-vertical', 'ast-product-gallery-layout-horizontal', 'ast-product-gallery-with-no-image', 'ast-product-tabs-layout-vertical', 'ast-product-tabs-layout-horizontal', 'ast-qv-disabled', 'ast-qv-on-image', 'ast-qv-on-image-click', 'ast-qv-after-summary', 'astra-woo-hover-swap', 'box-shadow-0', 'box-shadow-0-hover', 'box-shadow-1', 'box-shadow-1-hover', 'box-shadow-2', 'box-shadow-2-hover', 'box-shadow-3', 'box-shadow-3-hover', 'box-shadow-4', 'box-shadow-4-hover', 'box-shadow-5', 'box-shadow-5-hover', ) ); } return $classes; } } /** * Kicking this off by calling 'get_instance()' method */ Astra_Elementor_Pro::get_instance(); endif;