is_customize = isset( $wp_customize ) ? true : false; if ( $this->is_any_page_extension_enabled() ) { $page = $this->get_queried_object(); if ( ( $atts = $this->get_loader_attributes( $page->ID ) ) !== false ) { if ( isset( $atts['loftloader_show_close_tip'] ) ) { $atts['loftloader_show_close_tip'] = base64_decode( $atts['loftloader_show_close_tip'] ); } $this->page_settings = array_merge( $loftloader_default_settings, $atts ); $this->page_enabled = ( $atts['loftloader_main_switch'] === 'on' ); } } } /** * @description helper function to get shortcode attributes */ private function get_loader_attributes($page_id){ $loader = get_post_meta($page_id, 'loftloader_page_shortcode', true); $loader = trim($loader); if(!empty($loader)){ $loader = substr($loader, 1, -1); return shortcode_parse_atts($loader); } return false; } /** * Helper function to test whether show loftloader * @return boolean return true if loftloader enabled and display on current page, otherwise false */ public function loader_enabled(){ return $this->page_enabled; } /** * Helper function get setting option */ public function get_loader_setting($setting_value, $setting_id){ return ($this->page_enabled && !$this->is_customize && isset($this->page_settings[$setting_id])) ? $this->page_settings[$setting_id] : $setting_value; } /** * Help function to test if any page extension enabled on current page */ protected function is_any_page_extension_enabled() { $is_fromt_home_page = ( is_front_page() || is_home() ) && ( get_option('show_on_front', false ) == 'page' ); $is_shop_page = $this->is_woocommerce_shop(); return $is_fromt_home_page || $is_shop_page || is_page(); } /** * Get queried page object */ protected function get_queried_object() { if ( $this->is_woocommerce_shop() ) { $page_id = wc_get_page_id( 'shop' ); return get_page( $page_id ); } else { return get_queried_object(); } } /** * Condition function test if is woocommerce shop page */ protected function is_woocommerce_shop() { if ( function_exists( 'is_shop' ) ) { $page_id = wc_get_page_id( 'shop' ); return ! empty( $page_id ) && ( $page_id !== -1 ) && is_shop(); } return false; } } }