/** * Content 404 page * * @package Inc/Views/Main */ /** * Class Hestia_Content_404 */ class Hestia_Content_404 extends Hestia_Abstract_Main { /** * Init Content 404 view */ public function init() { add_action( 'hestia_do_404', array( $this, 'render_404_page' ) ); } /** * Render 404 page. */ public function render_404_page() { $default = hestia_get_blog_layout_default(); $sidebar_layout = apply_filters( 'hestia_sidebar_layout', get_theme_mod( 'hestia_blog_sidebar_layout', $default ) ); $wrap_class = apply_filters( 'hestia_filter_index_search_content_classes', 'col-md-8 blog-posts-wrap' ); $layout_classes = hestia_layout(); do_action( 'hestia_before_index_wrapper' ); echo '
'; echo '
'; echo '
'; do_action( 'hestia_before_index_posts_loop' ); echo '
'; if ( $sidebar_layout === 'sidebar-left' ) { get_sidebar(); } echo '
'; do_action( 'hestia_before_index_content' ); echo '
'; echo '
'; echo '
'; echo '

'; esc_html_e( 'It seems we can’t find what you’re looking for. Perhaps searching can help.', 'hestia' ); echo '

'; get_search_form(); echo '
'; echo '
'; echo '
'; echo '
'; if ( $sidebar_layout === 'sidebar-right' ) { get_sidebar(); } echo '
'; echo '
'; echo '
'; do_action( 'hestia_after_archive_content' ); } }
/** * Compatibility with Elementor Header Footer plugin. * * @package Hestia */ /** * Class Hestia_Header_Footer_Elementor */ class Hestia_Header_Footer_Elementor extends Hestia_Abstract_Main { /** * Check if plugin is installed. */ private function should_load() { if ( ! defined( 'ELEMENTOR_VERSION' ) ) { return false; } if ( ! class_exists( 'Header_Footer_Elementor', false ) ) { return false; } return true; } /** * Init function. */ public function init() { if ( ! $this->should_load() ) { return; } $this->add_theme_builder_hooks(); } /** * Replace theme hooks with the one from the plugin. */ private function add_theme_builder_hooks() { add_filter( 'body_class', array( $this, 'add_body_class' ) ); add_action( 'hestia_do_header', array( $this, 'do_header' ), 0 ); add_action( 'hestia_do_footer', array( $this, 'do_footer' ), 0 ); } /** * Add body class to know to disable parallax on header. * * @param array $classes Classes on body. * @return array */ public function add_body_class( $classes ) { $classes[] = 'header-footer-elementor'; return $classes; } /** * Replace Header hooks. */ public function do_header() { if ( ! hfe_header_enabled() ) { return; } hfe_render_header(); remove_all_actions( 'hestia_do_header' ); remove_all_actions( 'hestia_do_top_bar' ); } /** * Replace Footer hooks. */ public function do_footer() { if ( ! hfe_footer_enabled() ) { return; } hfe_render_footer(); remove_all_actions( 'hestia_do_footer' ); } }
/** * Class that handle the show/hide hooks. * * @package Hestia */ /** * Class Hestia_View_Hooks */ class Hestia_View_Hooks_With_Upsell { /** * Initialize function. */ public function init() { if ( ! $this->should_load() ) { return; } add_action( 'admin_bar_menu', array( $this, 'admin_bar_menu' ), 99 ); add_action( 'wp', array( $this, 'render_hook_placeholder' ) ); add_action( 'wp_head', array( $this, 'render_hook_placeholder_css' ) ); } /** * Check user role before allowing the class to run * * @return bool */ private function should_load() { return current_user_can( 'administrator' ); } /** * Admin Bar Menu * * @param array $wp_admin_bar Admin bar menus. */ function admin_bar_menu( $wp_admin_bar = array() ) { if ( is_admin() ) { return; } $title = __( 'Show Hooks', 'hestia' ); $href = add_query_arg( 'hestia_preview_hook', 'show' ); if ( isset( $_GET['hestia_preview_hook'] ) && 'show' === $_GET['hestia_preview_hook'] ) { $title = __( 'Hide Hooks', 'hestia' ); $href = remove_query_arg( 'hestia_preview_hook' ); } $wp_admin_bar->add_menu( array( 'title' => sprintf( '%s ', $title ), 'id' => 'hestia_preview_hook', 'parent' => false, 'href' => $href, ) ); } /** * Beautify hook names. * * @param string $hook Hook name. * * @return string */ public static function beautify_hook( $hook ) { $hook_label = str_replace( '_', ' ', $hook ); $hook_label = str_replace( 'hestia', ' ', $hook_label ); $hook_label = str_replace( 'woocommerce', ' ', $hook_label ); $hook_label = ucwords( $hook_label ); return $hook_label; } /** * Render hook placeholder. */ public function render_hook_placeholder() { if ( ! isset( $_GET['hestia_preview_hook'] ) || 'show' !== $_GET['hestia_preview_hook'] ) { return; } $hooks = $this->hook_lists(); foreach ( $hooks as $hooks_in_category ) { foreach ( $hooks_in_category as $hook_value ) { $hook_label = self::beautify_hook( $hook_value ); add_action( $hook_value, function () use ( $hook_label ) { echo '
'; echo '
'; echo '' . esc_html( $hook_label ) . ''; echo '
' . __( 'Add content to this location conditionally using', 'hestia' ) . ' ' . __( 'Hestia PRO', 'hestia' ) . '
'; echo '
'; echo '
'; } ); } } } /** * Hook lists. */ private function hook_lists() { $hooks = array( 'header' => array( 'hestia_before_header_content_hook', 'hestia_before_header_hook', 'hestia_after_header_hook', 'hestia_after_header_content_hook', ), 'footer' => array( 'hestia_before_footer_hook', 'hestia_after_footer_hook', 'hestia_before_footer_content_hook', 'hestia_after_footer_content_hook', 'hestia_before_footer_widgets_hook', 'hestia_after_footer_widgets_hook', ), 'frontpage' => array( 'hestia_before_big_title_section_hook', 'hestia_before_big_title_section_content_hook', 'hestia_top_big_title_section_content_hook', 'hestia_big_title_section_buttons', 'hestia_bottom_big_title_section_content_hook', 'hestia_after_big_title_section_content_hook', 'hestia_after_big_title_section_hook', 'hestia_before_team_section_hook', 'hestia_before_team_section_content_hook', 'hestia_top_team_section_content_hook', 'hestia_bottom_team_section_content_hook', 'hestia_after_team_section_content_hook', 'hestia_after_team_section_hook', 'hestia_before_features_section_hook', 'hestia_before_features_section_content_hook', 'hestia_top_features_section_content_hook', 'hestia_bottom_features_section_content_hook', 'hestia_after_features_section_content_hook', 'hestia_after_features_section_hook', 'hestia_before_pricing_section_hook', 'hestia_before_pricing_section_content_hook', 'hestia_top_pricing_section_content_hook', 'hestia_bottom_pricing_section_content_hook', 'hestia_after_pricing_section_content_hook', 'hestia_after_pricing_section_hook', 'hestia_before_about_section_hook', 'hestia_after_about_section_hook', 'hestia_before_shop_section_hook', 'hestia_before_shop_section_content_hook', 'hestia_top_shop_section_content_hook', 'hestia_bottom_shop_section_content_hook', 'hestia_after_shop_section_content_hook', 'hestia_after_shop_section_hook', 'hestia_before_testimonials_section_hook', 'hestia_before_testimonials_section_content_hook', 'hestia_top_testimonials_section_content_hook', 'hestia_bottom_testimonials_section_content_hook', 'hestia_after_testimonials_section_content_hook', 'hestia_after_testimonials_section_hook', 'hestia_before_subscribe_section_hook', 'hestia_before_subscribe_section_content_hook', 'hestia_top_subscribe_section_content_hook', 'hestia_bottom_subscribe_section_content_hook', 'hestia_after_subscribe_section_content_hook', 'hestia_after_subscribe_section_hook', 'hestia_before_blog_section_hook', 'hestia_before_blog_section_content_hook', 'hestia_top_blog_section_content_hook', 'hestia_bottom_blog_section_content_hook', 'hestia_after_blog_section_content_hook', 'hestia_after_blog_section_hook', 'hestia_before_contact_section_hook', 'hestia_before_contact_section_content_hook', 'hestia_top_contact_section_content_hook', 'hestia_bottom_contact_section_content_hook', 'hestia_after_contact_section_content_hook', 'hestia_after_contact_section_hook', 'hestia_before_portfolio_section_hook', 'hestia_before_portfolio_section_content_hook', 'hestia_top_portfolio_section_content_hook', 'hestia_bottom_portfolio_section_content_hook', 'hestia_after_portfolio_section_content_hook', 'hestia_after_portfolio_section_hook', 'hestia_before_clients_bar_section_hook', 'hestia_clients_bar_section_content_hook', 'hestia_after_clients_bar_section_hook', 'hestia_before_ribbon_section_hook', 'hestia_after_ribbon_section_hook', ), 'post' => array( 'hestia_before_single_post_article', 'hestia_after_single_post_article', ), 'page' => array( 'hestia_before_page_content', ), 'sidebar' => array( 'hestia_before_sidebar_content', 'hestia_after_sidebar_content', ), 'blog' => array( 'hestia_before_index_posts_loop', 'hestia_before_index_content', 'hestia_after_archive_content', ), 'pagination' => array( 'hestia_before_pagination', 'hestia_after_pagination', ), ); return $hooks; } /** * View hook page css. */ public function render_hook_placeholder_css() { $css = ' .hestia-hook-wrapper { text-align: center; width: 100%; } .hestia-hook-placeholder { display: flex; width: 98%; justify-content: center; align-items: center; margin: 10px auto; border: 2px dashed #A020F0; font-size: 14px; padding: 6px 10px; text-align: left; word-break: break-word; color: #A020F0; } .hestia-hook-placeholder a, .hestia-hook-upsell a { align-items: center; justify-content: center; min-width: 250px; width: 100%; font-size: 14px !important; min-height: 32px; text-decoration: none; color: #A020F0 !important; } .hestia-hook-placeholder a:hover, .hestia-hook-upsell a:hover { color: #A020F0 !important; } .hestia-hook-placeholder a:hover, .hestia-hook-placeholder a:focus { text-decoration: none; } .hestia-hook-placeholder a:hover .hestia-hook-icon, .hestia-hook-placeholder a:focus .hestia-hook-icon { box-shadow: inset 0 0 0 1px #A020F0; color: #A020F0; opacity: 1; display: block; } .hestia-hook-placeholder a .hestia-hook-icon { box-shadow: inset 0 0 0 1px #A020F0; border-radius: 50%; width: 20px; height: 20px; font-size: 16px; padding: 3px 2px; margin-left: -2px; opacity: 0; transform:rotate(360deg); transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1); position: absolute; } .hestia-hook-placeholder a .hestia-hook-label { transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1); font-size: 14px; opacity: 1; } .hestia-hook-placeholder a:hover .hestia-hook-label, .hestia-hook-placeholder a:focus .hestia-hook-label { opacity: 0; } .section-image .hestia-hook-wrapper { position: relative; z-index: 2; }'; echo ''; } }