1108 lines
47 KiB
PHP
Executable File
1108 lines
47 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Calls in Templates using theme hooks.
|
|
*
|
|
* @package kadence
|
|
*/
|
|
|
|
namespace Kadence;
|
|
|
|
use function Kadence\kadence;
|
|
use function get_template_part;
|
|
use function add_action;
|
|
|
|
defined( 'ABSPATH' ) || exit;
|
|
|
|
/**
|
|
* Main Call for Kadence Header
|
|
*/
|
|
function header_markup() {
|
|
if ( kadence()->has_header() ) {
|
|
get_template_part( 'template-parts/header/base' );
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Header Top Row
|
|
*/
|
|
function top_header() {
|
|
if ( kadence()->display_header_row( 'top' ) ) {
|
|
kadence()->get_template( 'template-parts/header/header', 'row', array( 'row' => 'top' ) );
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Header Main Row
|
|
*/
|
|
function main_header() {
|
|
if ( kadence()->display_header_row( 'main' ) ) {
|
|
kadence()->get_template( 'template-parts/header/header', 'row', array( 'row' => 'main' ) );
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Header Bottom Row
|
|
*/
|
|
function bottom_header() {
|
|
if ( kadence()->display_header_row( 'bottom' ) ) {
|
|
kadence()->get_template( 'template-parts/header/header', 'row', array( 'row' => 'bottom' ) );
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Header Column
|
|
*
|
|
* @param string $row the column row.
|
|
* @param string $column the row column.
|
|
*/
|
|
function header_column( $row, $column ) {
|
|
kadence()->render_header( $row, $column );
|
|
}
|
|
|
|
/**
|
|
* Mobile Header
|
|
*/
|
|
function mobile_header() {
|
|
get_template_part( 'template-parts/header/mobile' );
|
|
}
|
|
|
|
/**
|
|
* Mobile Header Top Row
|
|
*/
|
|
function mobile_top_header() {
|
|
if ( kadence()->display_mobile_header_row( 'top' ) ) {
|
|
kadence()->get_template( 'template-parts/header/mobile-header', 'row', array( 'mobile_row' => 'top' ) );
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Mobile Header Main Row
|
|
*/
|
|
function mobile_main_header() {
|
|
if ( kadence()->display_mobile_header_row( 'main' ) ) {
|
|
kadence()->get_template( 'template-parts/header/mobile-header', 'row', array( 'mobile_row' => 'main' ) );
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Mobile Header Bottom Row
|
|
*/
|
|
function mobile_bottom_header() {
|
|
if ( kadence()->display_mobile_header_row( 'bottom' ) ) {
|
|
kadence()->get_template( 'template-parts/header/mobile-header', 'row', array( 'mobile_row' => 'bottom' ) );
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Mobile Header Column
|
|
*
|
|
* @param string $row the header row.
|
|
* @param string $column the row column.
|
|
*/
|
|
function mobile_header_column( $row, $column ) {
|
|
kadence()->render_header( $row, $column, 'mobile' );
|
|
}
|
|
|
|
/**
|
|
* Header Row Class.
|
|
*
|
|
* @param string $row the header row.
|
|
*/
|
|
function header_row_class( $row ) {
|
|
$classes = 'site-' . esc_attr( $row ) . '-header-wrap site-header-row-container site-header-focus-item site-header-row-layout-' . esc_attr( kadence()->sub_option( 'header_' . $row . '_layout', 'desktop' ) ) . esc_attr( kadence()->option( 'header_sticky' ) === $row ? ' kadence-sticky-header' : '' );
|
|
return apply_filters( 'kadence-header-row-class-string', $classes );
|
|
}
|
|
|
|
/**
|
|
* Desktop Site Branding
|
|
*/
|
|
function site_branding() {
|
|
$layout = kadence()->option( 'logo_layout' );
|
|
$includes = array();
|
|
$layouts = array();
|
|
if ( is_array( $layout ) && isset( $layout['include'] ) ) {
|
|
if ( isset( $layout['layout'] ) ) {
|
|
if ( isset( $layout['layout']['desktop'] ) && ! empty( $layout['layout']['desktop'] ) ) {
|
|
$layouts['desktop'] = $layout['layout']['desktop'];
|
|
}
|
|
}
|
|
if ( isset( $layout['include']['desktop'] ) && ! empty( $layout['include']['desktop'] ) ) {
|
|
if ( strpos( $layout['include']['desktop'], 'logo' ) !== false ) {
|
|
if ( ! in_array( 'logo', $includes, true ) ) {
|
|
$includes[] = 'logo';
|
|
}
|
|
}
|
|
if ( strpos( $layout['include']['desktop'], 'title' ) !== false ) {
|
|
if ( ! in_array( 'title', $includes, true ) ) {
|
|
$includes[] = 'title';
|
|
}
|
|
}
|
|
if ( strpos( $layout['include']['desktop'], 'tagline' ) !== false ) {
|
|
if ( ! in_array( 'tagline', $includes, true ) ) {
|
|
$includes[] = 'tagline';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$layout_slug = isset( $layouts['desktop'] ) ? $layouts['desktop'] : 'standard';
|
|
if ( 'title_logo' === $layout_slug || 'title_tag_logo' === $layout_slug ) {
|
|
$layout_class = 'standard-reverse';
|
|
} elseif ( 'top_logo_title' === $layout_slug || 'top_logo_title_tag' === $layout_slug ) {
|
|
$layout_class = 'vertical';
|
|
} elseif ( 'top_title_logo' === $layout_slug || 'top_title_tag_logo' === $layout_slug ) {
|
|
$layout_class = 'vertical-reverse';
|
|
} elseif ( 'top_title_logo_tag' === $layout_slug ) {
|
|
$layout_class = 'vertical site-title-top';
|
|
} elseif ( 'standard' === $layout_slug && ! in_array( 'title', $includes, true ) ) {
|
|
$layout_class = 'standard site-brand-logo-only';
|
|
} else {
|
|
$layout_class = 'standard';
|
|
}
|
|
|
|
echo '<div class="site-branding branding-layout-' . esc_attr( $layout_class ) . '">';
|
|
kadence()->customizer_quick_link();
|
|
|
|
$has_desktop_tagline_and_logo = in_array( 'tagline', $includes, true ) && ( ! isset( $layouts['desktop'] ) || ( isset( $layouts['desktop'] ) && 'top_title_logo_tag' !== $layouts['desktop'] ) );
|
|
|
|
echo '<a class="brand' . ( in_array( 'logo', $includes, true ) && ( kadence()->option( 'custom_logo' ) || ( ! kadence()->option( 'custom_logo' ) && kadence()->option( 'use_logo_icon' ) && kadence()->option( 'logo_icon' ) ) ) ? ' has-logo-image' : '' ) . ( in_array( 'logo', $includes, true ) && 'no' !== kadence()->option( 'header_sticky' ) && kadence()->option( 'header_sticky_custom_logo' ) && kadence()->option( 'header_sticky_logo' ) ? ' has-sticky-logo' : '' ) . '" href="' . esc_url( apply_filters( 'kadence_logo_url', home_url( '/' ) ) ) . '" rel="home">';
|
|
foreach ( $includes as $include ) {
|
|
switch ( $include ) {
|
|
case 'logo':
|
|
do_action( 'before_kadence_logo_output' );
|
|
if ( kadence()->desk_transparent_header() && kadence()->option( 'transparent_header_custom_logo' ) && kadence()->option( 'transparent_header_logo' ) ) {
|
|
render_custom_logo( 'transparent_header_logo', 'kadence-transparent-logo' );
|
|
} else if ( ! kadence()->option( 'custom_logo' ) && kadence()->option( 'use_logo_icon' ) && kadence()->option( 'logo_icon' ) ) {
|
|
logo_icon();
|
|
} else {
|
|
custom_logo();
|
|
}
|
|
if ( 'no' !== kadence()->option( 'header_sticky' ) && kadence()->option( 'header_sticky_custom_logo' ) && kadence()->option( 'header_sticky_logo' ) ) {
|
|
render_custom_logo( 'header_sticky_logo', 'kadence-sticky-logo' );
|
|
}
|
|
break;
|
|
case 'title':
|
|
echo '<div class="site-title-wrap">';
|
|
echo '<p class="site-title">' . get_bloginfo( 'name' ) . '</p>'; /* phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped */
|
|
if ( $has_desktop_tagline_and_logo ) {
|
|
echo '<p class="site-description">' . get_bloginfo( 'description' ) . '</p>'; /* phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped */
|
|
}
|
|
echo '</div>';
|
|
break;
|
|
case 'tagline':
|
|
if ( isset( $layouts['desktop'] ) && 'top_title_logo_tag' === $layouts['desktop'] ) {
|
|
echo '<p class="site-description">' . get_bloginfo( 'description' ) . '</p>'; /* phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped */
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
echo '</a>';
|
|
echo '</div>';
|
|
}
|
|
/**
|
|
* Logo Icon Render
|
|
*/
|
|
function logo_icon() {
|
|
echo '<span class="logo-icon">';
|
|
$icon = kadence()->option( 'logo_icon' );
|
|
if ( 'custom' === $icon ) {
|
|
echo kadence()->option( 'logo_icon_custom' ); /* phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped */
|
|
} else {
|
|
kadence()->print_icon( $icon, '', false );
|
|
}
|
|
echo '</span>';
|
|
}
|
|
/**
|
|
* Desktop Navigation
|
|
*/
|
|
function primary_navigation() {
|
|
?>
|
|
<nav id="site-navigation" class="main-navigation header-navigation nav--toggle-sub header-navigation-style-<?php echo esc_attr( kadence()->option( 'primary_navigation_style' ) ); ?> header-navigation-dropdown-animation-<?php echo esc_attr( kadence()->option( 'dropdown_navigation_reveal' ) ); ?>" role="navigation" aria-label="<?php esc_attr_e( 'Primary Navigation', 'kadence' ); ?>">
|
|
<?php kadence()->customizer_quick_link(); ?>
|
|
<div class="primary-menu-container header-menu-container">
|
|
<?php
|
|
if ( kadence()->is_primary_nav_menu_active() ) {
|
|
kadence()->display_primary_nav_menu( array( 'menu_id' => 'primary-menu' ) );
|
|
} else {
|
|
kadence()->display_fallback_menu();
|
|
}
|
|
?>
|
|
</div>
|
|
</nav><!-- #site-navigation -->
|
|
<?php
|
|
}
|
|
|
|
/**
|
|
* Desktop Navigation
|
|
*/
|
|
function secondary_navigation() {
|
|
?>
|
|
<nav id="secondary-navigation" class="secondary-navigation header-navigation nav--toggle-sub header-navigation-style-<?php echo esc_attr( kadence()->option( 'secondary_navigation_style' ) ); ?> header-navigation-dropdown-animation-<?php echo esc_attr( kadence()->option( 'dropdown_navigation_reveal' ) ); ?>" role="navigation" aria-label="<?php esc_attr_e( 'Secondary Navigation', 'kadence' ); ?>">
|
|
<?php kadence()->customizer_quick_link(); ?>
|
|
<div class="secondary-menu-container header-menu-container">
|
|
<?php
|
|
if ( kadence()->is_secondary_nav_menu_active() ) {
|
|
kadence()->display_secondary_nav_menu( array( 'menu_id' => 'secondary-menu' ) );
|
|
} else {
|
|
kadence()->display_fallback_menu();
|
|
}
|
|
?>
|
|
</div>
|
|
</nav><!-- #secondary-navigation -->
|
|
<?php
|
|
}
|
|
|
|
/**
|
|
* Output custom logo
|
|
*
|
|
* @param string $option_string the image option id string
|
|
* @param string $custom_class the image custom class.
|
|
*/
|
|
function render_custom_logo( $option_string = '', $custom_class = 'extra-custom-logo' ) {
|
|
$html = '';
|
|
if ( empty( $option_string ) ) {
|
|
return;
|
|
}
|
|
$custom_logo_id = kadence()->option( $option_string );
|
|
|
|
// We have a logo. Logo is go.
|
|
if ( $custom_logo_id ) {
|
|
$custom_logo_attr = array(
|
|
'class' => 'custom-logo ' . $custom_class,
|
|
'loading' => false,
|
|
);
|
|
|
|
/*
|
|
* If the logo alt attribute is empty, get the site title and explicitly
|
|
* pass it to the attributes used by wp_get_attachment_image().
|
|
*/
|
|
$image_alt = get_post_meta( $custom_logo_id, '_wp_attachment_image_alt', true );
|
|
if ( empty( $image_alt ) ) {
|
|
$custom_logo_attr['alt'] = get_bloginfo( 'name', 'display' );
|
|
}
|
|
$type = get_post_mime_type( $custom_logo_id );
|
|
if ( isset( $type ) && 'image/svg+xml' === $type ) {
|
|
$custom_logo_attr['class'] = 'custom-logo ' . $custom_class . ' svg-logo-image';
|
|
}
|
|
|
|
/*
|
|
* If the alt attribute is not empty, there's no need to explicitly pass
|
|
* it because wp_get_attachment_image() already adds the alt attribute.
|
|
*/
|
|
$html = wp_get_attachment_image( $custom_logo_id, 'full', false, $custom_logo_attr );
|
|
} elseif ( is_customize_preview() ) {
|
|
// If no logo is set but we're in the Customizer, leave a placeholder (needed for the live preview).
|
|
$html = '<img class="custom-logo"/></a>';
|
|
}
|
|
/**
|
|
* Filters the custom logo output.
|
|
*
|
|
* @param string $html Custom logo HTML output.
|
|
* @param string $option_string the ID of the logo option.
|
|
*/
|
|
echo apply_filters( 'kadence_extra_custom_logo', $html, $option_string ); /* phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped */
|
|
}
|
|
|
|
/**
|
|
* Output custom logo
|
|
*
|
|
* @param integer $blog_id the site ID for multisites.
|
|
*/
|
|
function custom_logo( $blog_id = 0 ) {
|
|
$html = '';
|
|
$switched_blog = false;
|
|
|
|
if ( is_multisite() && ! empty( $blog_id ) && get_current_blog_id() !== (int) $blog_id ) {
|
|
switch_to_blog( $blog_id );
|
|
$switched_blog = true;
|
|
}
|
|
|
|
$custom_logo_id = kadence()->option( 'custom_logo' );
|
|
|
|
// We have a logo. Logo is go.
|
|
if ( $custom_logo_id ) {
|
|
$custom_logo_attr = array(
|
|
'class' => 'custom-logo',
|
|
'loading' => false,
|
|
);
|
|
|
|
/*
|
|
* If the logo alt attribute is empty, get the site title and explicitly
|
|
* pass it to the attributes used by wp_get_attachment_image().
|
|
*/
|
|
$image_alt = get_post_meta( $custom_logo_id, '_wp_attachment_image_alt', true );
|
|
if ( empty( $image_alt ) ) {
|
|
$custom_logo_attr['alt'] = get_bloginfo( 'name', 'display' );
|
|
}
|
|
|
|
$type = get_post_mime_type( $custom_logo_id );
|
|
if ( isset( $type ) && 'image/svg+xml' === $type ) {
|
|
$custom_logo_attr['class'] = 'custom-logo svg-logo-image';
|
|
}
|
|
|
|
/*
|
|
* If the alt attribute is not empty, there's no need to explicitly pass
|
|
* it because wp_get_attachment_image() already adds the alt attribute.
|
|
*/
|
|
$html = wp_get_attachment_image( $custom_logo_id, 'full', false, $custom_logo_attr );
|
|
} elseif ( is_customize_preview() ) {
|
|
// If no logo is set but we're in the Customizer, leave a placeholder (needed for the live preview).
|
|
$html = '<img class="custom-logo"/></a>';
|
|
}
|
|
|
|
if ( $switched_blog ) {
|
|
restore_current_blog();
|
|
}
|
|
/**
|
|
* Filters the custom logo output.
|
|
*
|
|
* @since 4.5.0
|
|
* @since 4.6.0 Added the `$blog_id` parameter.
|
|
*
|
|
* @param string $html Custom logo HTML output.
|
|
* @param int $blog_id ID of the blog to get the custom logo for.
|
|
*/
|
|
echo apply_filters( 'kadence_custom_logo', $html, $blog_id ); /* phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped */
|
|
}
|
|
|
|
/**
|
|
* Mobile Site Branding
|
|
*/
|
|
function mobile_site_branding() {
|
|
$layout = kadence()->option( 'logo_layout' );
|
|
$includes = array();
|
|
$layouts = array();
|
|
if ( is_array( $layout ) && isset( $layout['include'] ) ) {
|
|
foreach ( array( 'mobile', 'tablet', 'desktop' ) as $device ) {
|
|
if ( isset( $layout['layout'] ) ) {
|
|
if ( isset( $layout['layout'][ $device ] ) && ! empty( $layout['layout'][ $device ] ) ) {
|
|
$layouts[ $device ] = $layout['layout'][ $device ];
|
|
}
|
|
}
|
|
// if ( 'desktop' === $device && ! empty( $includes ) ) {
|
|
// continue;
|
|
// }
|
|
if ( isset( $layout['include'][ $device ] ) && ! empty( $layout['include'][ $device ] ) ) {
|
|
if ( strpos( $layout['include'][ $device ], 'logo' ) !== false ) {
|
|
if ( ! in_array( 'logo', $includes, true ) ) {
|
|
$includes[] = 'logo';
|
|
}
|
|
}
|
|
if ( strpos( $layout['include'][ $device ], 'title' ) !== false ) {
|
|
if ( ! in_array( 'title', $includes, true ) ) {
|
|
$includes[] = 'title';
|
|
}
|
|
}
|
|
if ( strpos( $layout['include'][ $device ], 'tagline' ) !== false ) {
|
|
if ( ! in_array( 'tagline', $includes, true ) ) {
|
|
$includes[] = 'tagline';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ( isset( $layouts['tablet'] ) ) {
|
|
if ( 'title_logo' === $layouts['tablet'] || 'title_tag_logo' === $layouts['tablet'] ) {
|
|
$tab_layout_class = 'standard-reverse';
|
|
} elseif ( 'top_logo_title' === $layouts['tablet'] || 'top_logo_title_tag' === $layouts['tablet'] ) {
|
|
$tab_layout_class = 'vertical';
|
|
} elseif ( 'top_title_logo' === $layouts['tablet'] || 'top_title_tag_logo' === $layouts['tablet'] ) {
|
|
$tab_layout_class = 'vertical-reverse';
|
|
} elseif ( 'top_title_logo_tag' === $layouts['tablet'] ) {
|
|
$tab_layout_class = 'vertical site-title-top';
|
|
} elseif ( 'standard' === $layouts['tablet'] && ! in_array( 'title', $includes, true ) ) {
|
|
$tab_layout_class = 'standard site-brand-logo-only';
|
|
} elseif ( 'standard' === $layouts['tablet'] ) {
|
|
$tab_layout_class = 'standard';
|
|
} else {
|
|
if ( ! in_array( 'title', $includes, true ) ) {
|
|
$tab_layout_class = 'inherit site-brand-logo-only';
|
|
} else {
|
|
$tab_layout_class = 'inherit';
|
|
}
|
|
}
|
|
} else {
|
|
if ( ! in_array( 'title', $includes, true ) ) {
|
|
$tab_layout_class = 'inherit site-brand-logo-only';
|
|
} else {
|
|
$tab_layout_class = 'inherit';
|
|
}
|
|
}
|
|
if ( isset( $layouts['mobile'] ) ) {
|
|
if ( 'title_logo' === $layouts['mobile'] || 'title_tag_logo' === $layouts['mobile'] ) {
|
|
$mobile_layout_class = 'standard-reverse';
|
|
} elseif ( 'top_logo_title' === $layouts['mobile'] || 'top_logo_title_tag' === $layouts['mobile'] ) {
|
|
$mobile_layout_class = 'vertical';
|
|
} elseif ( 'top_title_logo' === $layouts['mobile'] || 'top_title_tag_logo' === $layouts['mobile'] ) {
|
|
$mobile_layout_class = 'vertical-reverse';
|
|
} elseif ( 'top_title_logo_tag' === $layouts['mobile'] ) {
|
|
$mobile_layout_class = 'vertical site-title-top';
|
|
} elseif ( 'standard' === $layouts['mobile'] && ! in_array( 'title', $includes, true ) ) {
|
|
$mobile_layout_class = 'standard site-brand-logo-only';
|
|
} elseif ( 'standard' === $layouts['mobile'] ) {
|
|
$mobile_layout_class = 'standard';
|
|
} else {
|
|
$mobile_layout_class = 'inherit';
|
|
}
|
|
} else {
|
|
$mobile_layout_class = 'inherit';
|
|
}
|
|
|
|
$has_mobile_tagline_and_logo = in_array( 'tagline', $includes, true ) && ( ! isset( $layouts['mobile'] ) || ( isset( $layouts['mobile'] ) && 'top_title_logo_tag' !== $layouts['mobile'] ) );
|
|
|
|
echo '<div class="site-branding mobile-site-branding branding-layout-' . esc_attr( isset( $layouts['desktop'] ) ? $layouts['desktop'] : 'standard' ) . ' branding-tablet-layout-' . esc_attr( $tab_layout_class ) . ' branding-mobile-layout-' . esc_attr( $mobile_layout_class ) . '">';
|
|
echo '<a class="brand' . ( in_array( 'logo', $includes, true ) && ( kadence()->option( 'custom_logo' ) || ( ! kadence()->option( 'custom_logo' ) && kadence()->option( 'use_logo_icon' ) && kadence()->option( 'logo_icon' ) ) ) ? ' has-logo-image' : '' ) . ( in_array( 'logo', $includes, true ) && 'no' !== kadence()->option( 'mobile_header_sticky' ) && ( kadence()->option( 'header_sticky_custom_mobile_logo' ) && kadence()->option( 'header_sticky_mobile_logo' ) || kadence()->option( 'header_sticky_custom_logo' ) && kadence()->option( 'header_sticky_logo' ) ) ? ' has-sticky-logo' : '' ) . '" href="' . esc_url( apply_filters( 'kadence_logo_url', home_url( '/' ) ) ) . '" rel="home">';
|
|
foreach ( $includes as $include ) {
|
|
switch ( $include ) {
|
|
case 'logo':
|
|
do_action( 'before_kadence_mobile_logo_output' );
|
|
if ( kadence()->mobile_transparent_header() && kadence()->option( 'transparent_header_custom_mobile_logo' ) && kadence()->option( 'transparent_header_mobile_logo' ) ) {
|
|
render_custom_logo( 'transparent_header_mobile_logo', 'kadence-transparent-logo' );
|
|
} elseif ( kadence()->mobile_transparent_header() && kadence()->option( 'transparent_header_custom_logo' ) && kadence()->option( 'transparent_header_logo' ) ) {
|
|
render_custom_logo( 'transparent_header_logo', 'kadence-transparent-logo' );
|
|
} else if ( ! kadence()->option( 'use_mobile_logo' ) && ! kadence()->option( 'custom_logo' ) && kadence()->option( 'use_logo_icon' ) && kadence()->option( 'logo_icon' ) ) {
|
|
logo_icon();
|
|
} else {
|
|
if ( kadence()->option( 'use_mobile_logo' ) && kadence()->option( 'mobile_logo' ) ) {
|
|
render_custom_logo( 'mobile_logo' );
|
|
} else {
|
|
custom_logo();
|
|
}
|
|
}
|
|
if ( 'no' !== kadence()->option( 'mobile_header_sticky' ) && kadence()->option( 'header_sticky_custom_mobile_logo' ) && kadence()->option( 'header_sticky_mobile_logo' ) ) {
|
|
render_custom_logo( 'header_sticky_mobile_logo', 'kadence-sticky-logo' );
|
|
} elseif ( 'no' !== kadence()->option( 'mobile_header_sticky' ) && kadence()->option( 'header_sticky_custom_logo' ) && kadence()->option( 'header_sticky_logo' ) ) {
|
|
render_custom_logo( 'header_sticky_logo', 'kadence-sticky-logo' );
|
|
}
|
|
break;
|
|
case 'title':
|
|
echo '<div class="site-title-wrap">';
|
|
echo '<div class="site-title' . ( ! empty( $layout['include']['mobile'] ) && ( strpos( $layout['include']['mobile'], 'title' ) === false ) ? ' vs-sm-false' : '' ) . ( ( strpos( $layout['include']['tablet'], 'title' ) === false ) ? ' vs-md-false' : '' ) . '">' . get_bloginfo( 'name' ) . '</div>'; /* phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped */
|
|
if ( $has_mobile_tagline_and_logo ) {
|
|
echo '<div class="site-description' . ( ( strpos( $layout['include']['mobile'], 'tagline' ) === false ) ? ' vs-sm-false' : '' ) . ( ( strpos( $layout['include']['tablet'], 'tagline' ) === false ) ? ' vs-md-false' : '' ) . '">' . get_bloginfo( 'description' ) . '</div>'; /* phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped */
|
|
}
|
|
echo '</div>';
|
|
break;
|
|
case 'tagline':
|
|
if ( isset( $layouts['desktop'] ) && 'top_title_logo_tag' === $layouts['desktop'] ) {
|
|
echo '<div class="site-description' . ( ( strpos( $layout['include']['mobile'], 'tagline' ) === false ) ? ' vs-sm-false' : '' ) . ( ( strpos( $layout['include']['tablet'], 'tagline' ) === false ) ? ' vs-md-false' : '' ) . '">' . get_bloginfo( 'description' ) . '</div>'; /* phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped */
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
echo '</a>';
|
|
echo '</div>';
|
|
}
|
|
/**
|
|
* Mobile Navigation Popup Toggle
|
|
*/
|
|
function navigation_popup_toggle() {
|
|
add_action( 'wp_footer', 'Kadence\navigation_popup' );
|
|
?>
|
|
<div class="mobile-toggle-open-container">
|
|
<?php kadence()->customizer_quick_link(); ?>
|
|
<?php
|
|
if ( kadence()->is_amp() ) {
|
|
?>
|
|
<amp-state id="siteNavigationMenu">
|
|
<script type="application/json">
|
|
{
|
|
"expanded": false
|
|
}
|
|
</script>
|
|
</amp-state>
|
|
<?php
|
|
}
|
|
?>
|
|
<button id="mobile-toggle" class="menu-toggle-open drawer-toggle menu-toggle-style-<?php echo esc_attr( kadence()->option( 'mobile_trigger_style' ) ); ?>" aria-label="<?php esc_attr_e( 'Open menu', 'kadence' ); ?>" data-toggle-target="#mobile-drawer" data-toggle-body-class="showing-popup-drawer-from-<?php echo esc_attr( 'sidepanel' === kadence()->option( 'header_popup_layout' ) ? kadence()->option( 'header_popup_side' ) : 'full' ); ?>" aria-expanded="false" data-set-focus=".menu-toggle-close"
|
|
<?php
|
|
if ( kadence()->is_amp() ) {
|
|
?>
|
|
[class]=" siteNavigationMenu.expanded ? 'menu-toggle-open drawer-toggle menu-toggle-style-<?php echo esc_attr( kadence()->option( 'mobile_trigger_style' ) ); ?> active' : 'menu-toggle-open drawer-toggle menu-toggle-style-<?php echo esc_attr( kadence()->option( 'mobile_trigger_style' ) ); ?>' "
|
|
on="tap:AMP.setState( { siteNavigationMenu: { expanded: ! siteNavigationMenu.expanded } } )"
|
|
[aria-expanded]="siteNavigationMenu.expanded ? 'true' : 'false'"
|
|
<?php
|
|
}
|
|
?>
|
|
>
|
|
<?php
|
|
$label = kadence()->option( 'mobile_trigger_label' );
|
|
if ( ! empty( $label ) || is_customize_preview() ) {
|
|
?>
|
|
<span class="menu-toggle-label"><?php echo esc_html( $label ); ?></span>
|
|
<?php
|
|
}
|
|
?>
|
|
<span class="menu-toggle-icon"><?php popup_toggle(); ?></span>
|
|
</button>
|
|
</div>
|
|
<?php
|
|
}
|
|
add_action( 'kadence_navigation_popup_toggle', 'Kadence\navigation_popup_toggle' );
|
|
/**
|
|
* Mobile Navigation Popup Toggle
|
|
*/
|
|
function popup_toggle() {
|
|
$icon = kadence()->option( 'mobile_trigger_icon' );
|
|
kadence()->print_icon( $icon, '', false );
|
|
}
|
|
/**
|
|
* Mobile Navigation Popup Toggle
|
|
*/
|
|
function navigation_popup() {
|
|
?>
|
|
<div id="mobile-drawer" class="popup-drawer popup-drawer-layout-<?php echo esc_attr( kadence()->option( 'header_popup_layout' ) ); ?> popup-drawer-animation-<?php echo esc_attr( kadence()->option( 'header_popup_animation' ) ); ?> popup-drawer-side-<?php echo esc_attr( kadence()->option( 'header_popup_side' ) ); ?>" data-drawer-target-string="#mobile-drawer"
|
|
<?php
|
|
if ( kadence()->is_amp() ) {
|
|
?>
|
|
[class]=" siteNavigationMenu.expanded ? 'popup-drawer popup-drawer-layout-<?php echo esc_attr( kadence()->option( 'header_popup_layout' ) ); ?> popup-drawer-side-<?php echo esc_attr( kadence()->option( 'header_popup_side' ) ); ?> show-drawer active' : 'popup-drawer popup-drawer-layout-<?php echo esc_attr( kadence()->option( 'header_popup_layout' ) ); ?> popup-drawer-side-<?php echo esc_attr( kadence()->option( 'header_popup_side' ) ); ?>' "
|
|
<?php
|
|
}
|
|
?>
|
|
>
|
|
<div class="drawer-overlay" data-drawer-target-string="#mobile-drawer"></div>
|
|
<div class="drawer-inner">
|
|
<?php
|
|
if ( 'fullwidth' === kadence()->option( 'header_popup_layout' ) && 'slice' === kadence()->option( 'header_popup_animation' ) ) {
|
|
echo '<div class="pop-slice-background"><div class="pop-portion-bg"></div><div class="pop-portion-bg"></div><div class="pop-portion-bg"></div></div>';
|
|
}
|
|
?>
|
|
<div class="drawer-header">
|
|
<button class="menu-toggle-close drawer-toggle" aria-label="<?php esc_attr_e( 'Close menu', 'kadence' ); ?>" data-toggle-target="#mobile-drawer" data-toggle-body-class="showing-popup-drawer-from-<?php echo esc_attr( 'sidepanel' === kadence()->option( 'header_popup_layout' ) ? kadence()->option( 'header_popup_side' ) : 'full' ); ?>" aria-expanded="false" data-set-focus=".menu-toggle-open"
|
|
<?php
|
|
if ( kadence()->is_amp() ) {
|
|
?>
|
|
on="tap:AMP.setState( { siteNavigationMenu: { expanded: ! siteNavigationMenu.expanded } } )"
|
|
[aria-expanded]="siteNavigationMenu.expanded ? 'true' : 'false'"
|
|
<?php
|
|
}
|
|
?>
|
|
>
|
|
<span class="toggle-close-bar"></span>
|
|
<span class="toggle-close-bar"></span>
|
|
</button>
|
|
</div>
|
|
<div class="drawer-content mobile-drawer-content content-align-<?php echo esc_attr( kadence()->option( 'header_popup_content_align' ) ); ?> content-valign-<?php echo esc_attr( kadence()->option( 'header_popup_vertical_align' ) ); ?>">
|
|
<?php do_action( 'kadence_before_mobile_navigation_popup' ); ?>
|
|
<?php kadence()->render_header( 'popup', 'content', 'mobile' ); ?>
|
|
<?php do_action( 'kadence_after_mobile_navigation_popup' ); ?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php
|
|
}
|
|
/**
|
|
* Mobile Navigation
|
|
*/
|
|
function mobile_navigation() {
|
|
?>
|
|
<nav id="mobile-site-navigation" class="mobile-navigation drawer-navigation drawer-navigation-parent-toggle-<?php echo esc_attr( kadence()->option( 'mobile_navigation_parent_toggle' ) ? 'true' : 'false' ); ?>" role="navigation" aria-label="<?php esc_attr_e( 'Primary Mobile Navigation', 'kadence' ); ?>">
|
|
<?php kadence()->customizer_quick_link(); ?>
|
|
<div class="mobile-menu-container drawer-menu-container">
|
|
<?php
|
|
if ( kadence()->is_mobile_nav_menu_active() ) {
|
|
kadence()->display_mobile_nav_menu( array( 'menu_id' => 'mobile-menu', 'menu_class' => ( kadence()->option( 'mobile_navigation_collapse' ) ? 'menu has-collapse-sub-nav' : 'menu' ) ) );
|
|
} elseif ( kadence()->is_primary_nav_menu_active() ) {
|
|
kadence()->display_primary_nav_menu( array( 'menu_id' => 'mobile-menu', 'menu_class' => ( kadence()->option( 'mobile_navigation_collapse' ) ? 'menu has-collapse-sub-nav' : 'menu' ), 'show_toggles' => ( kadence()->option( 'mobile_navigation_collapse' ) ? true : false ), 'sub_arrows' => false, 'mega_support' => apply_filters( 'kadence_mobile_allow_mega_support', true ) ) );
|
|
} else {
|
|
kadence()->display_fallback_menu();
|
|
}
|
|
?>
|
|
</div>
|
|
</nav><!-- #site-navigation -->
|
|
<?php
|
|
}
|
|
|
|
/**
|
|
* Desktop HTML
|
|
*/
|
|
function header_html() {
|
|
$content = kadence()->option( 'header_html_content' );
|
|
if ( $content || is_customize_preview() ) {
|
|
$link_style = kadence()->option( 'header_html_link_style' );
|
|
$wpautop = kadence()->option( 'header_html_wpautop' );
|
|
echo '<div class="header-html inner-link-style-' . esc_attr( $link_style ) . '">';
|
|
kadence()->customizer_quick_link();
|
|
echo '<div class="header-html-inner">';
|
|
if ( $wpautop ) {
|
|
echo do_shortcode( wpautop( $content ) );
|
|
} else {
|
|
$array = array(
|
|
'<p>[' => '[',
|
|
']</p>' => ']',
|
|
'<p></p>' => '',
|
|
']<br />' => ']',
|
|
'<br />[' => '[',
|
|
);
|
|
$content = strtr( $content, $array );
|
|
echo do_shortcode( $content );
|
|
}
|
|
echo '</div>';
|
|
echo '</div>';
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Mobile HTML
|
|
*/
|
|
function mobile_html() {
|
|
$content = kadence()->option( 'mobile_html_content' );
|
|
if ( $content || is_customize_preview() ) {
|
|
$link_style = kadence()->option( 'mobile_html_link_style' );
|
|
$wpautop = kadence()->option( 'mobile_html_wpautop' );
|
|
echo '<div class="mobile-html inner-link-style-' . esc_attr( $link_style ) . '">';
|
|
kadence()->customizer_quick_link();
|
|
echo '<div class="mobile-html-inner">';
|
|
if ( $wpautop ) {
|
|
echo do_shortcode( wpautop( $content ) );
|
|
} else {
|
|
echo do_shortcode( $content );
|
|
}
|
|
echo '</div>';
|
|
echo '</div>';
|
|
}
|
|
}
|
|
/**
|
|
* Desktop Button
|
|
*/
|
|
function header_button() {
|
|
$label = kadence()->option( 'header_button_label' );
|
|
if ( 'loggedin' === kadence()->option( 'header_button_visibility' ) && ! is_user_logged_in() ) {
|
|
return;
|
|
}
|
|
if ( 'loggedout' === kadence()->option( 'header_button_visibility' ) && is_user_logged_in() ) {
|
|
return;
|
|
}
|
|
if ( $label || is_customize_preview() ) {
|
|
$wrap_classes = array();
|
|
$wrap_classes[] = 'header-button-wrap';
|
|
if ( 'loggedin' === kadence()->option( 'header_button_visibility' ) ) {
|
|
$wrap_classes[] = 'vs-logged-out-false';
|
|
}
|
|
if ( 'loggedout' === kadence()->option( 'header_button_visibility' ) ) {
|
|
$wrap_classes[] = 'vs-logged-in-false';
|
|
}
|
|
echo '<div class="' . esc_attr( implode( ' ', $wrap_classes ) ) . '">';
|
|
kadence()->customizer_quick_link();
|
|
echo '<div class="header-button-inner-wrap">';
|
|
$rel = array();
|
|
if ( kadence()->option( 'header_button_target' ) ) {
|
|
$rel[] = 'noopener';
|
|
$rel[] = 'noreferrer';
|
|
}
|
|
if ( kadence()->option( 'header_button_nofollow' ) ) {
|
|
$rel[] = 'nofollow';
|
|
}
|
|
if ( kadence()->option( 'header_button_sponsored' ) ) {
|
|
$rel[] = 'sponsored';
|
|
}
|
|
echo '<a href="' . esc_attr( do_shortcode( kadence()->option( 'header_button_link' ) ) ) . '" target="' . esc_attr( kadence()->option( 'header_button_target' ) ? '_blank' : '_self' ) . '"' . ( ! empty( $rel ) ? ' rel="' . esc_attr( implode( ' ', $rel ) ) . '"' : '' ) . ( ! empty( kadence()->option( 'header_button_download' ) ) ? ' download' : '' ) . ' class="button header-button button-size-' . esc_attr( kadence()->option( 'header_button_size' ) ) . ' button-style-' . esc_attr( kadence()->option( 'header_button_style' ) ) . '">';
|
|
echo esc_html( do_shortcode( $label ) );
|
|
echo '</a>';
|
|
echo '</div>';
|
|
echo '</div>';
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Mobile Button
|
|
*/
|
|
function mobile_button() {
|
|
$label = kadence()->option( 'mobile_button_label' );
|
|
if ( 'loggedin' === kadence()->option( 'mobile_button_visibility' ) && ! is_user_logged_in() ) {
|
|
return;
|
|
}
|
|
if ( 'loggedout' === kadence()->option( 'mobile_button_visibility' ) && is_user_logged_in() ) {
|
|
return;
|
|
}
|
|
if ( $label || is_customize_preview() ) {
|
|
$wrap_classes = array();
|
|
$wrap_classes[] = 'mobile-header-button-wrap';
|
|
if ( 'loggedin' === kadence()->option( 'mobile_button_visibility' ) ) {
|
|
$wrap_classes[] = 'vs-logged-out-false';
|
|
}
|
|
if ( 'loggedout' === kadence()->option( 'mobile_button_visibility' ) ) {
|
|
$wrap_classes[] = 'vs-logged-in-false';
|
|
}
|
|
echo '<div class="' . esc_attr( implode( ' ', $wrap_classes ) ) . '">';
|
|
kadence()->customizer_quick_link();
|
|
$rel = array();
|
|
if ( kadence()->option( 'mobile_button_target' ) ) {
|
|
$rel[] = 'noopener';
|
|
$rel[] = 'noreferrer';
|
|
}
|
|
if ( kadence()->option( 'mobile_button_nofollow' ) ) {
|
|
$rel[] = 'nofollow';
|
|
}
|
|
if ( kadence()->option( 'mobile_button_sponsored' ) ) {
|
|
$rel[] = 'sponsored';
|
|
}
|
|
$classes = array();
|
|
$classes[] = 'button';
|
|
$classes[] = 'mobile-header-button';
|
|
$classes[] = 'button-size-' . esc_attr( kadence()->option( 'mobile_button_size' ) );
|
|
$classes[] = 'button-style-' . esc_attr( kadence()->option( 'mobile_button_style' ) );
|
|
echo '<div class="mobile-header-button-inner-wrap">';
|
|
echo '<a href="' . esc_attr( do_shortcode( kadence()->option( 'mobile_button_link' ) ) ) . '" target="' . esc_attr( kadence()->option( 'mobile_button_target' ) ? '_blank' : '_self' ) . '"' . ( ! empty( $rel ) ? ' rel="' . esc_attr( implode( ' ', $rel ) ) . '"' : '' ) . ' class="' . esc_attr( implode( ' ', $classes ) ) . '">';
|
|
echo esc_html( do_shortcode( $label ) );
|
|
echo '</a>';
|
|
echo '</div>';
|
|
echo '</div>';
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Desktop Cart
|
|
*/
|
|
function header_cart() {
|
|
if ( class_exists( 'woocommerce' ) ) {
|
|
wp_enqueue_script( 'wc-cart-fragments' );
|
|
$label = kadence()->option( 'header_cart_label' );
|
|
$show_total = kadence()->option( 'header_cart_show_total' );
|
|
$icon = kadence()->option( 'header_cart_icon', 'shopping-bag' );
|
|
$dropdown = 'header-navigation nav--toggle-sub header-navigation-dropdown-animation-' . esc_attr( kadence()->option( 'dropdown_navigation_reveal' ) );
|
|
echo '<div class="header-cart-wrap kadence-header-cart' . ( 'dropdown' === kadence()->option( 'header_cart_style' ) ? ' ' . esc_attr( $dropdown ) : '' ) . '">';
|
|
kadence()->customizer_quick_link();
|
|
$cart_contents_count = ( isset( WC()->cart ) ? WC()->cart->get_cart_contents_count() : 0 );
|
|
echo '<span class="header-cart-empty-check header-cart-is-empty-' . ( $cart_contents_count > 0 ? 'false' : 'true' ) . '"></span>';
|
|
echo '<div class="header-cart-inner-wrap cart-show-label-' . ( ! empty( $label ) ? 'true' : 'false' ) . ' cart-style-' . esc_attr( kadence()->option( 'header_cart_style' ) ) . ( 'dropdown' === kadence()->option( 'header_cart_style' ) ? ' header-menu-container' : '' ) . '">';
|
|
if ( 'link' === kadence()->option( 'header_cart_style' ) ) {
|
|
echo '<a href="' . esc_url( wc_get_cart_url() ) . '"' . ( ! empty( $label ) ? '' : ' aria-label="' . esc_attr__( 'Shopping Cart', 'kadence' ) . '"' ) . ' class="header-cart-button">';
|
|
if ( ! empty( $label ) || is_customize_preview() ) {
|
|
?>
|
|
<span class="header-cart-label"><?php echo esc_html( $label ); ?></span>
|
|
<?php
|
|
}
|
|
kadence()->print_icon( $icon, '', false );
|
|
if ( $show_total ) {
|
|
echo '<span class="header-cart-total header-cart-is-empty-' . ( $cart_contents_count > 0 ? 'false' : 'true' ) . '">' . wp_kses_post( $cart_contents_count ) . '</span>';
|
|
}
|
|
echo '</a>';
|
|
} elseif ( 'slide' === kadence()->option( 'header_cart_style' ) ) {
|
|
add_action( 'wp_footer', 'Kadence\cart_popup', 5 );
|
|
echo '<button data-toggle-target="#cart-drawer"' . ( ! empty( $label ) ? '' : ' aria-label="' . esc_attr__( 'Shopping Cart', 'kadence' ) . '"' ) . ' class="drawer-toggle header-cart-button" data-toggle-body-class="showing-popup-drawer-from-' . esc_attr( kadence()->option( 'header_mobile_cart_popup_side' ) ) . '" aria-expanded="false" data-set-focus=".cart-toggle-close">';
|
|
if ( ! empty( $label ) || is_customize_preview() ) {
|
|
?>
|
|
<span class="header-cart-label"><?php echo esc_html( $label ); ?></span>
|
|
<?php
|
|
}
|
|
kadence()->print_icon( $icon, '', false );
|
|
if ( $show_total ) {
|
|
echo '<span class="header-cart-total header-cart-is-empty-' . ( $cart_contents_count > 0 ? 'false' : 'true' ) . '">' . wp_kses_post( $cart_contents_count ) . '</span>';
|
|
}
|
|
echo '</button>';
|
|
} elseif ( 'dropdown' === kadence()->option( 'header_cart_style' ) ) {
|
|
echo '<ul id="cart-menu" class="menu woocommerce widget_shopping_cart">';
|
|
echo '<li class="menu-item menu-item-has-children menu-item-kadence-cart kadence-menu-has-icon menu-item--has-toggle">';
|
|
echo '<a href="' . esc_url( wc_get_cart_url() ) . '"' . ( ! empty( $label ) ? '' : ' aria-label="' . esc_attr__( 'Shopping Cart', 'kadence' ) . '"' ) . ' class="header-cart-button">';
|
|
if ( ! empty( $label ) || is_customize_preview() ) {
|
|
?>
|
|
<span class="header-cart-label"><?php echo esc_html( $label ); ?></span>
|
|
<?php
|
|
}
|
|
kadence()->print_icon( $icon, '', false );
|
|
if ( $show_total ) {
|
|
echo '<span class="header-cart-total header-cart-is-empty-' . ( $cart_contents_count > 0 ? 'false' : 'true' ) . '">' . wp_kses_post( $cart_contents_count ) . '</span>';
|
|
}
|
|
echo '</a>';
|
|
echo '<ul class="sub-menu">
|
|
<li class="menu-item menu-item-kadence-cart-dropdown">
|
|
<div class="kadence-mini-cart-refresh">';
|
|
woocommerce_mini_cart();
|
|
echo '</div>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>';
|
|
if ( is_checkout() ) {
|
|
echo "<script>jQuery( document.body ).on( 'removed_from_cart', function() {jQuery(document.body).trigger('update_checkout'); });</script>";
|
|
}
|
|
}
|
|
echo '</div>';
|
|
echo '</div>';
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Cart Popup Toggle
|
|
*/
|
|
function cart_popup() {
|
|
?>
|
|
<div id="cart-drawer" class="popup-drawer popup-drawer-layout-sidepanel popup-drawer-side-<?php echo esc_attr( kadence()->option( 'header_cart_popup_side' ) ); ?> popup-mobile-drawer-side-<?php echo esc_attr( kadence()->option( 'header_mobile_cart_popup_side' ) ); ?>" data-drawer-target-string="#cart-drawer">
|
|
<div class="drawer-overlay" data-drawer-target-string="#cart-drawer"></div>
|
|
<div class="drawer-inner">
|
|
<div class="drawer-header">
|
|
<h2 class="side-cart-header"><?php esc_html_e( 'Review Cart', 'kadence' ); ?></h2>
|
|
<button class="cart-toggle-close drawer-toggle" aria-label="<?php esc_attr_e( 'Close Cart', 'kadence' ); ?>" data-toggle-target="#cart-drawer" data-toggle-body-class="showing-popup-drawer-from-<?php echo esc_attr( kadence()->option( 'header_mobile_cart_popup_side' ) ); ?>" aria-expanded="false" data-set-focus=".header-cart-button">
|
|
<?php kadence()->print_icon( 'close', '', false ); ?>
|
|
</button>
|
|
</div>
|
|
<div class="drawer-content woocommerce widget_shopping_cart">
|
|
<?php do_action( 'kadence-before-side-cart' ); ?>
|
|
<div class="mini-cart-container">
|
|
<div class="kadence-mini-cart-refresh">
|
|
<?php woocommerce_mini_cart(); ?>
|
|
</div>
|
|
</div>
|
|
<?php do_action( 'kadence-after-side-cart' ); ?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php
|
|
if ( is_checkout() ) {
|
|
echo "<script>jQuery( document.body ).on( 'removed_from_cart', function() {jQuery(document.body).trigger('update_checkout'); });</script>";
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Desktop Cart
|
|
*/
|
|
function mobile_cart() {
|
|
if ( class_exists( 'woocommerce' ) ) {
|
|
wp_enqueue_script( 'wc-cart-fragments' );
|
|
$label = kadence()->option( 'header_mobile_cart_label' );
|
|
$show_total = kadence()->option( 'header_mobile_cart_show_total' );
|
|
$icon = kadence()->option( 'header_mobile_cart_icon', 'shopping-bag' );
|
|
echo '<div class="header-mobile-cart-wrap kadence-header-cart">';
|
|
kadence()->customizer_quick_link();
|
|
$cart_contents_count = ( isset( WC()->cart ) ? WC()->cart->get_cart_contents_count() : 0 );
|
|
echo '<span class="header-cart-empty-check header-cart-is-empty-' . ( $cart_contents_count > 0 ? 'false' : 'true' ) . '"></span>';
|
|
echo '<div class="header-cart-inner-wrap cart-show-label-' . ( ! empty( $label ) ? 'true' : 'false' ) . ' cart-style-' . esc_attr( kadence()->option( 'header_mobile_cart_style' ) ) . '">';
|
|
if ( 'link' === kadence()->option( 'header_mobile_cart_style' ) ) {
|
|
echo '<a href="' . esc_url( wc_get_cart_url() ) . '"' . ( ! empty( $label ) ? '' : ' aria-label="' . esc_attr__( 'Shopping Cart', 'kadence' ) . '"' ) . ' class="header-cart-button">';
|
|
if ( ! empty( $label ) || is_customize_preview() ) {
|
|
?>
|
|
<span class="header-cart-label"><?php echo esc_html( $label ); ?></span>
|
|
<?php
|
|
}
|
|
kadence()->print_icon( $icon, '', false );
|
|
if ( $show_total ) {
|
|
echo '<span class="header-cart-total">' . wp_kses_post( $cart_contents_count ) . '</span>';
|
|
}
|
|
echo '</a>';
|
|
} elseif ( 'slide' === kadence()->option( 'header_mobile_cart_style' ) ) {
|
|
add_action( 'wp_footer', 'Kadence\cart_popup', 5 );
|
|
echo '<button data-toggle-target="#cart-drawer"' . ( ! empty( $label ) ? '' : ' aria-label="' . esc_attr__( 'Shopping Cart', 'kadence' ) . '"' ) . ' class="drawer-toggle header-cart-button" data-toggle-body-class="showing-popup-drawer-from-' . esc_attr( kadence()->option( 'header_mobile_cart_popup_side' ) ) . '" aria-expanded="false" data-set-focus=".cart-toggle-close">';
|
|
if ( ! empty( $label ) || is_customize_preview() ) {
|
|
?>
|
|
<span class="header-cart-label"><?php echo esc_html( $label ); ?></span>
|
|
<?php
|
|
}
|
|
kadence()->print_icon( $icon, '', false );
|
|
if ( $show_total ) {
|
|
echo '<span class="header-cart-total">' . wp_kses_post( $cart_contents_count ) . '</span>';
|
|
}
|
|
echo '</button>';
|
|
}
|
|
echo '</div>';
|
|
echo '</div>';
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Desktop Social
|
|
*/
|
|
function header_social() {
|
|
$items = kadence()->sub_option( 'header_social_items', 'items' );
|
|
$show_label = kadence()->option( 'header_social_show_label' );
|
|
$brand_colors = kadence()->option( 'header_social_brand' );
|
|
$brand_color_class = '';
|
|
if ( 'onhover' === $brand_colors ) {
|
|
$brand_color_class = ' social-show-brand-hover';
|
|
} elseif ( 'untilhover' === $brand_colors ) {
|
|
$brand_color_class = ' social-show-brand-until';
|
|
} elseif ( 'always' === $brand_colors ) {
|
|
$brand_color_class = ' social-show-brand-always';
|
|
}
|
|
echo '<div class="header-social-wrap">';
|
|
kadence()->customizer_quick_link();
|
|
echo '<div class="header-social-inner-wrap element-social-inner-wrap social-show-label-' . ( $show_label ? 'true' : 'false' ) . ' social-style-' . esc_attr( kadence()->option( 'header_social_style' ) ) . esc_attr( $brand_color_class ) . '">';
|
|
if ( is_array( $items ) && ! empty( $items ) ) {
|
|
foreach ( $items as $item ) {
|
|
if ( $item['enabled'] ) {
|
|
$link = kadence()->option( $item['id'] . '_link' );
|
|
if ( 'phone' === $item['id'] ) {
|
|
$link = 'tel:' . str_replace( 'tel:', '', $link );
|
|
} elseif ( 'email' === $item['id'] ) {
|
|
$link = str_replace( 'mailto:', '', $link );
|
|
if ( is_email( $link ) ) {
|
|
$link = 'mailto:' . $link;
|
|
}
|
|
}
|
|
echo '<a href="' . esc_attr( $link ) . '"' . ( $show_label ? '' : ' aria-label="' . esc_attr( $item['label'] ) . '"' ) . ' ' . ( 'phone' === $item['id'] || 'email' === $item['id'] || apply_filters( 'kadence_social_link_target', false, $item ) ? '' : 'target="_blank" rel="noopener noreferrer" ' ) . 'class="social-button header-social-item social-link-' . esc_attr( $item['id'] ) . esc_attr( 'image' === $item['source'] ? ' has-custom-image' : '' ) . '">';
|
|
if ( 'image' === $item['source'] ) {
|
|
if ( $item['imageid'] && wp_get_attachment_image( $item['imageid'], 'full', true ) ) {
|
|
echo wp_get_attachment_image( $item['imageid'], 'full', true, array( 'class' => 'social-icon-image', 'style' => 'max-width:' . esc_attr( $item['width'] ) . 'px' ) );
|
|
} elseif ( ! empty( $item['url'] ) ) {
|
|
echo '<img src="' . esc_attr( $item['url'] ) . '" alt="' . esc_attr( $item['label'] ) . '" class="social-icon-image" style="max-width:' . esc_attr( $item['width'] ) . 'px"/>';
|
|
}
|
|
} elseif ( 'svg' === $item['source'] ) {
|
|
if ( ! empty( $item['svg'] ) ) {
|
|
echo '<span class="social-icon-custom-svg" style="max-width:' . esc_attr( $item['width'] ) . 'px">' . $item['svg'] . '</span>';
|
|
}
|
|
} else {
|
|
kadence()->print_icon( $item['icon'], '', false );
|
|
}
|
|
if ( $show_label ) {
|
|
echo '<span class="social-label">' . esc_html( $item['label'] ) . '</span>';
|
|
}
|
|
echo '</a>';
|
|
}
|
|
}
|
|
}
|
|
echo '</div>';
|
|
echo '</div>';
|
|
}
|
|
|
|
/**
|
|
* Mobile Social
|
|
*/
|
|
function mobile_social() {
|
|
$items = kadence()->sub_option( 'header_mobile_social_items', 'items' );
|
|
$show_label = kadence()->option( 'header_mobile_social_show_label' );
|
|
$brand_colors = kadence()->option( 'header_mobile_social_brand' );
|
|
$brand_color_class = '';
|
|
if ( 'onhover' === $brand_colors ) {
|
|
$brand_color_class = ' social-show-brand-hover';
|
|
} elseif ( 'untilhover' === $brand_colors ) {
|
|
$brand_color_class = ' social-show-brand-until';
|
|
} elseif ( 'always' === $brand_colors ) {
|
|
$brand_color_class = ' social-show-brand-always';
|
|
}
|
|
echo '<div class="header-mobile-social-wrap">';
|
|
kadence()->customizer_quick_link();
|
|
echo '<div class="header-mobile-social-inner-wrap element-social-inner-wrap social-show-label-' . ( $show_label ? 'true' : 'false' ) . ' social-style-' . esc_attr( kadence()->option( 'header_mobile_social_style' ) ) . esc_attr( $brand_color_class ) . '">';
|
|
if ( is_array( $items ) && ! empty( $items ) ) {
|
|
foreach ( $items as $item ) {
|
|
if ( $item['enabled'] ) {
|
|
$link = kadence()->option( $item['id'] . '_link' );
|
|
if ( 'phone' === $item['id'] ) {
|
|
$link = 'tel:' . str_replace( 'tel:', '', $link );
|
|
} elseif ( 'email' === $item['id'] ) {
|
|
$link = str_replace( 'mailto:', '', $link );
|
|
if ( is_email( $link ) ) {
|
|
$link = 'mailto:' . $link;
|
|
}
|
|
}
|
|
echo '<a href="' . esc_attr( $link ) . '"' . ( $show_label ? '' : ' aria-label="' . esc_attr( $item['label'] ) . '"' ) . ' ' . ( 'phone' === $item['id'] || 'email' === $item['id'] || apply_filters( 'kadence_social_link_target', false, $item ) ? '' : 'target="_blank" rel="noopener noreferrer" ' ) . 'class="social-button header-social-item social-link-' . esc_attr( $item['id'] ) . esc_attr( 'image' === $item['source'] ? ' has-custom-image' : '' ) . '">';
|
|
if ( 'image' === $item['source'] ) {
|
|
if ( $item['imageid'] && wp_get_attachment_image( $item['imageid'], 'full', true ) ) {
|
|
echo wp_get_attachment_image( $item['imageid'], 'full', true, array( 'class' => 'social-icon-image', 'style' => 'max-width:' . esc_attr( $item['width'] ) . 'px' ) );
|
|
} elseif ( ! empty( $item['url'] ) ) {
|
|
echo '<img src="' . esc_attr( $item['url'] ) . '" alt="' . esc_attr( $item['label'] ) . '" class="social-icon-image" style="max-width:' . esc_attr( $item['width'] ) . 'px"/>';
|
|
}
|
|
} elseif ( 'svg' === $item['source'] ) {
|
|
if ( ! empty( $item['svg'] ) ) {
|
|
echo '<span class="social-icon-custom-svg" style="max-width:' . esc_attr( $item['width'] ) . 'px">' . $item['svg'] . '</span>';
|
|
}
|
|
} else {
|
|
kadence()->print_icon( $item['icon'], '', false );
|
|
}
|
|
if ( $show_label ) {
|
|
echo '<span class="social-label">' . esc_html( $item['label'] ) . '</span>';
|
|
}
|
|
echo '</a>';
|
|
}
|
|
}
|
|
}
|
|
echo '</div>';
|
|
echo '</div>';
|
|
}
|
|
|
|
/**
|
|
* Header Search Popup Toggle
|
|
*/
|
|
function header_search() {
|
|
add_action( 'wp_footer', 'Kadence\search_modal', 20 );
|
|
?>
|
|
<div class="search-toggle-open-container">
|
|
<?php kadence()->customizer_quick_link(); ?>
|
|
<?php
|
|
if ( kadence()->is_amp() ) {
|
|
?>
|
|
<amp-state id="siteSearchModal">
|
|
<script type="application/json">
|
|
{
|
|
"expanded": false
|
|
}
|
|
</script>
|
|
</amp-state>
|
|
<?php
|
|
}
|
|
?>
|
|
<button class="search-toggle-open drawer-toggle search-toggle-style-<?php echo esc_attr( kadence()->option( 'header_search_style' ) ); ?>" aria-label="<?php esc_attr_e( 'View Search Form', 'kadence' ); ?>" data-toggle-target="#search-drawer" data-toggle-body-class="showing-popup-drawer-from-full" aria-expanded="false" data-set-focus="#search-drawer .search-field"
|
|
<?php
|
|
if ( kadence()->is_amp() ) {
|
|
?>
|
|
[class]=" siteSearchModal.expanded ? 'search-toggle-open drawer-toggle search-toggle-style-<?php echo esc_attr( kadence()->option( 'header_search_style' ) ); ?> active' : 'search-toggle-open drawer-toggle search-toggle-style-<?php echo esc_attr( kadence()->option( 'header_search_style' ) ); ?>' "
|
|
on="tap:AMP.setState( { siteSearchModal: { expanded: ! siteSearchModal.expanded } } )"
|
|
[aria-expanded]="siteSearchModal.expanded ? 'true' : 'false'"
|
|
<?php
|
|
}
|
|
?>
|
|
>
|
|
<?php
|
|
$label = kadence()->option( 'header_search_label' );
|
|
if ( ! empty( $label ) || is_customize_preview() ) {
|
|
?>
|
|
<span class="search-toggle-label vs-lg-<?php echo ( kadence()->sub_option( 'header_search_label_visiblity', 'desktop' ) ? 'true' : 'false' ); ?> vs-md-<?php echo ( kadence()->sub_option( 'header_search_label_visiblity', 'tablet' ) ? 'true' : 'false' ); ?> vs-sm-<?php echo ( kadence()->sub_option( 'header_search_label_visiblity', 'mobile' ) ? 'true' : 'false' ); ?>"><?php echo esc_html( $label ); ?></span>
|
|
<?php
|
|
}
|
|
?>
|
|
<span class="search-toggle-icon"><?php search_toggle(); ?></span>
|
|
</button>
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
/**
|
|
* Search Popup Toggle Icon
|
|
*/
|
|
function search_toggle() {
|
|
$icon = kadence()->option( 'header_search_icon' );
|
|
kadence()->print_icon( $icon, '', false );
|
|
}
|
|
/**
|
|
* Search Popup Modal
|
|
*/
|
|
function search_modal() {
|
|
?>
|
|
<div id="search-drawer" class="popup-drawer popup-drawer-layout-fullwidth" data-drawer-target-string="#search-drawer"
|
|
<?php
|
|
if ( kadence()->is_amp() ) {
|
|
?>
|
|
[class]=" siteSearchModal.expanded ? 'popup-drawer popup-drawer-layout-fullwidth show-drawer active' : 'popup-drawer popup-drawer-layout-fullwidth' "
|
|
<?php
|
|
}
|
|
?>
|
|
>
|
|
<div class="drawer-overlay" data-drawer-target-string="#search-drawer"></div>
|
|
<div class="drawer-inner">
|
|
<div class="drawer-header">
|
|
<button class="search-toggle-close drawer-toggle" aria-label="<?php esc_attr_e( 'Close search', 'kadence' ); ?>" data-toggle-target="#search-drawer" data-toggle-body-class="showing-popup-drawer-from-full" aria-expanded="false" data-set-focus=".search-toggle-open"
|
|
<?php
|
|
if ( kadence()->is_amp() ) {
|
|
?>
|
|
on="tap:AMP.setState( { siteSearchModal: { expanded: ! siteSearchModal.expanded } } )"
|
|
[aria-expanded]="siteSearchModal.expanded ? 'true' : 'false'"
|
|
<?php
|
|
}
|
|
?>
|
|
>
|
|
<?php kadence()->print_icon( 'close', '', false ); ?>
|
|
</button>
|
|
</div>
|
|
<div class="drawer-content">
|
|
<?php
|
|
if ( class_exists( 'woocommerce' ) && kadence()->option( 'header_search_woo' ) ) {
|
|
get_product_search_form();
|
|
} else {
|
|
get_search_form();
|
|
}
|
|
?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php
|
|
}
|