273 lines
8.1 KiB
PHP
273 lines
8.1 KiB
PHP
<?php
|
|
|
|
use DgoraWcas\Helpers;
|
|
|
|
// Exit if accessed directly
|
|
if ( ! defined( 'DGWT_WCAS_FILE' ) ) {
|
|
exit;
|
|
}
|
|
|
|
add_action( 'init', function () {
|
|
$headerSource = thegem_get_option( 'header_source', 'default' );
|
|
// Built-in Header.
|
|
if ( $headerSource === 'default' ) {
|
|
// Header Vertical
|
|
remove_filter( 'wp_nav_menu_items', 'thegem_menu_item_search', 10, 2 );
|
|
add_filter( 'wp_nav_menu_items', function ( $items, $args ) {
|
|
if ( $args->theme_location == 'primary' && ! thegem_get_option( 'hide_search_icon' ) ) {
|
|
$items .= '<li class="menu-item menu-item-search dgwt-wcas-thegem-menu-search">';
|
|
$items .= do_shortcode( '[fibosearch layout="icon"]' );
|
|
$items .= '</li>';
|
|
}
|
|
|
|
return $items;
|
|
}, 10, 2 );
|
|
|
|
// Header Fullwidth hamburger
|
|
remove_filter( 'wp_nav_menu_items', 'thegem_menu_item_hamburger_widget', 100, 2 );
|
|
add_action( 'thegem_before_nav_menu', function () {
|
|
if ( in_array( thegem_get_option( 'header_layout' ), array(
|
|
'perspective',
|
|
'fullwidth_hamburger',
|
|
'overlay'
|
|
) ) ) {
|
|
echo do_shortcode( '[fibosearch]' );
|
|
}
|
|
} );
|
|
|
|
// Perspective header
|
|
remove_filter( 'get_search_form', 'thegem_serch_form_vertical_header' );
|
|
add_action( 'thegem_perspective_menu_buttons', function () {
|
|
echo do_shortcode( '[fibosearch]' );
|
|
} );
|
|
|
|
// Remove the search bar from vertical header
|
|
add_filter( 'get_search_form', function ( $form ) {
|
|
if ( in_array( thegem_get_option( 'header_layout' ), array( 'fullwidth_hamburger', 'vertical' ) ) ) {
|
|
$form = '';
|
|
}
|
|
|
|
return $form;
|
|
}, 100 );
|
|
|
|
add_action( 'thegem_before_header', function () {
|
|
if ( ! in_array( thegem_get_option( 'header_layout' ), array( 'vertical' ) ) ) {
|
|
return;
|
|
}
|
|
|
|
$html = '<div class="dgwt-wcas-thegem-vertical-search">';
|
|
$html .= do_shortcode( '[fibosearch]' );
|
|
$html .= '</div>';
|
|
|
|
echo $html;
|
|
}, 20 );
|
|
|
|
// Force enable overlay for mobile search
|
|
add_filter( 'dgwt/wcas/settings/load_value/key=enable_mobile_overlay', function () {
|
|
return 'on';
|
|
} );
|
|
} else {
|
|
// Header Builder.
|
|
function dgwtWcasTheGemGetCustomCss( $atts, $uniqid ) {
|
|
$defaultAtts = [
|
|
'desktop_disable' => '',
|
|
'tablet_disable' => '',
|
|
'mobile_disable' => '',
|
|
];
|
|
if ( function_exists( 'thegem_templates_extra_options_extract' ) && function_exists( 'thegem_templates_design_options_extract' ) ) {
|
|
$defaultAtts = array_merge( thegem_templates_extra_options_extract(), thegem_templates_design_options_extract() );
|
|
}
|
|
$atts = wp_parse_args( $atts, $defaultAtts );
|
|
|
|
return thegem_templates_element_design_options( $uniqid, '.dgwt-wcas-search-wrapp', $atts );
|
|
}
|
|
|
|
add_shortcode( 'thegem_te_search_form', function ( $atts, $content, $shortcodeTag ) {
|
|
$uniqid = uniqid( 'thegem-custom-' ) . rand( 1, 9999 );
|
|
|
|
$customCss = dgwtWcasTheGemGetCustomCss( $atts, $uniqid );
|
|
$cssOutput = empty( $customCss ) ? '' : '<style>' . $customCss . '</style>';
|
|
|
|
return $cssOutput . do_shortcode( '[fibosearch layout="classic" class="' . $uniqid . '"]' );
|
|
} );
|
|
|
|
add_shortcode( 'thegem_te_search', function ( $atts, $content, $shortcodeTag ) {
|
|
$uniqid = uniqid( 'thegem-custom-' ) . rand( 1, 9999 );
|
|
|
|
$customCss = dgwtWcasTheGemGetCustomCss( $atts, $uniqid );
|
|
|
|
if ( isset( $atts['icon_size'] ) ) {
|
|
$customCss .= ".$uniqid .dgwt-wcas-ico-magnifier, .$uniqid .dgwt-wcas-ico-magnifier-handler{max-height:" . $atts['icon_size'] . "px;}";
|
|
}
|
|
|
|
if ( isset( $atts['icon_color_normal'] ) ) {
|
|
$customCss .= ".$uniqid .dgwt-wcas-ico-magnifier, .$uniqid .dgwt-wcas-ico-magnifier-handler{fill:" . $atts['icon_color_normal'] . ";}";
|
|
}
|
|
|
|
if ( isset( $atts['icon_color_hover'] ) ) {
|
|
$customCss .= ".$uniqid:hover .dgwt-wcas-ico-magnifier, .$uniqid:hover .dgwt-wcas-ico-magnifier-handler{fill:" . $atts['icon_color_hover'] . ";}";
|
|
}
|
|
|
|
$cssOutput = empty( $customCss ) ? '' : '<style>' . $customCss . '</style>';
|
|
|
|
return $cssOutput . do_shortcode( '[fibosearch layout="icon" class="' . $uniqid . '"]' );
|
|
} );
|
|
}
|
|
} );
|
|
|
|
/**
|
|
* Forcing our engine to run when WooCommerce >> Shop grid >> Layout Type is "Products Grid".
|
|
*/
|
|
add_filter( 'dgwt/wcas/helpers/is_search_query', function ( $enabled, $query ) {
|
|
if (
|
|
$query->get( 'post_type' ) &&
|
|
is_string( $query->get( 'post_type' ) ) &&
|
|
$query->get( 'post_type' ) === 'product' &&
|
|
is_string( $query->get( 's' ) ) &&
|
|
strlen( $query->get( 's' ) ) > 0 &&
|
|
Helpers::isRunningInsideFunction( 'thegem_extended_products_get_posts', 25 )
|
|
) {
|
|
$enabled = true;
|
|
}
|
|
|
|
return $enabled;
|
|
}, 10, 2 );
|
|
|
|
|
|
add_action( 'wp_head', function () {
|
|
$headerSource = thegem_get_option( 'header_source', 'default' );
|
|
$color = thegem_get_option( 'main_menu_level1_color' );
|
|
$colorHover = thegem_get_option( 'main_menu_level1_hover_color' );
|
|
$mobileColor = thegem_get_option( 'mobile_menu_level1_color' );
|
|
// Built-in Header.
|
|
if ( $headerSource === 'default' ) {
|
|
?>
|
|
<style>
|
|
.dgwt-wcas-thegem-menu-search .dgwt-wcas-search-wrapp {
|
|
margin-left: 10px;
|
|
margin-right: 10px;
|
|
}
|
|
|
|
.dgwt-wcas-thegem-menu-search .dgwt-wcas-ico-magnifier-handler {
|
|
max-width: 19px;
|
|
}
|
|
|
|
.dgwt-wcas-thegem-menu-search .dgwt-wcas-search-icon path {
|
|
fill: <?php echo $color; ?>;
|
|
}
|
|
|
|
.dgwt-wcas-thegem-menu-search .dgwt-wcas-search-icon:hover path {
|
|
fill: <?php echo $colorHover; ?>;
|
|
}
|
|
|
|
#primary-navigation.responsive .dgwt-wcas-thegem-menu-search .dgwt-wcas-search-icon path {
|
|
fill: <?php echo $mobileColor; ?>;
|
|
}
|
|
|
|
#primary-navigation.responsive .dgwt-wcas-thegem-menu-search {
|
|
padding: 16px 20px;
|
|
}
|
|
|
|
.header-layout-perspective > .dgwt-wcas-search-wrapp {
|
|
top: 30px;
|
|
position: absolute;
|
|
max-width: 600px;
|
|
left: 270px;
|
|
right: auto;
|
|
margin: 0 auto;
|
|
z-index: 10;
|
|
}
|
|
|
|
@media (max-width: 979px) {
|
|
.header-layout-fullwidth_hamburger #primary-navigation > .dgwt-wcas-search-wrapp,
|
|
.header-layout-perspective > .dgwt-wcas-search-wrapp {
|
|
max-width: 350px;
|
|
}
|
|
|
|
.header-style-vertical #site-header-wrapper .dgwt-wcas-thegem-vertical-search {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 769px) {
|
|
.header-layout-fullwidth_hamburger #primary-navigation > .dgwt-wcas-search-wrapp,
|
|
.header-layout-overlay .primary-navigation.responsive .overlay-menu-cell > .dgwt-wcas-search-wrapp,
|
|
.header-layout-perspective > .dgwt-wcas-search-wrapp {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
#page.vertical-header .dgwt-wcas-thegem-vertical-search {
|
|
margin-right: auto;
|
|
margin-left: auto;
|
|
padding-left: 21px;
|
|
padding-right: 21px;
|
|
}
|
|
|
|
.header-layout-fullwidth_hamburger #primary-navigation > .dgwt-wcas-search-wrapp {
|
|
top: 30px;
|
|
position: absolute;
|
|
left: 150px;
|
|
max-width: 600px;
|
|
|
|
-webkit-transition: all .3s, transform 1s;
|
|
transition: all .3s, transform 1s;
|
|
-webkit-transform: translateX(0);
|
|
transform: translateX(0);
|
|
}
|
|
|
|
@media (max-width: 979px) {
|
|
.header-layout-fullwidth_hamburger #primary-navigation > .dgwt-wcas-search-wrapp {
|
|
top: 12px;
|
|
}
|
|
}
|
|
|
|
.header-layout-fullwidth_hamburger #primary-navigation.hamburger-active > .dgwt-wcas-search-wrapp {
|
|
-moz-transform: translateX(-450px);
|
|
-webkit-transform: translateX(-450px);
|
|
transform: translateX(-450px);
|
|
}
|
|
|
|
.site-header.fixed .header-layout-fullwidth_hamburger #primary-navigation > .dgwt-wcas-search-wrapp,
|
|
.site-header.fixed .header-layout-perspective > .dgwt-wcas-search-wrapp {
|
|
top: 4px;
|
|
}
|
|
|
|
.site-header.fixed .header-layout-fullwidth_hamburger #primary-navigation > .dgwt-wcas-search-wrapp {
|
|
left: 80px;
|
|
}
|
|
|
|
@media (max-width: 979px) {
|
|
.header-layout-perspective > .dgwt-wcas-search-wrapp {
|
|
top: 10px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1212px) and (min-width: 980px) {
|
|
.header-layout-perspective #perspective-menu-buttons {
|
|
padding-bottom: 30px;
|
|
}
|
|
|
|
.header-layout-perspective > .dgwt-wcas-search-wrapp {
|
|
top: 110px;
|
|
}
|
|
}
|
|
</style>
|
|
<?php
|
|
} else {
|
|
// Header Builder.
|
|
?>
|
|
<style>
|
|
.thegem-template-header .dgwt-wcas-search-wrapp.dgwt-wcas-layout-classic {
|
|
max-width: 300px;
|
|
margin: 0;
|
|
}
|
|
|
|
.thegem-template-header .dgwt-wcas-search-wrapp.dgwt-wcas-layout-icon {
|
|
max-width: 300px;
|
|
}
|
|
</style>
|
|
<?php
|
|
}
|
|
} );
|