<?php
// Exit if accessed directly
if ( ! defined( 'DGWT_WCAS_FILE' ) ) {
exit;
}
function dgwt_wcas_astra_header_break_point() {
$header_break_point = 921;
if ( function_exists( 'astra_header_break_point' ) ) {
$header_break_point = astra_header_break_point();
}
return $header_break_point;
}
function dgwt_wcas_astra_search_box_type() {
$search_box_type = '';
if ( function_exists( 'astra_get_option' ) ) {
$search_box_type = astra_get_option( 'header-search-box-type' );
}
return $search_box_type;
}
// Force mobile overlay breakpoint.
add_filter( 'dgwt/wcas/settings/load_value/key=mobile_overlay_breakpoint', function () {
return dgwt_wcas_astra_header_break_point();
} );
// Force mobile breakpoint.
add_filter( 'dgwt/wcas/settings/load_value/key=mobile_breakpoint', function () {
return dgwt_wcas_astra_header_break_point();
} );
function dgwt_wcas_astra_search_form() {
$header_break_point = dgwt_wcas_astra_header_break_point();
$form = '<div class="search-form"><span class="search-field"></span>';
$form .= do_shortcode( '[wcas-search-form layout="classic" mobile_overlay="1" mobile_breakpoint="' . $header_break_point . '"]' );
$form .= '</div>';
return $form;
}
// Overwrite search in Slide Search and Search Box mode
if ( ! function_exists( 'astra_get_search_form' ) ) {
function astra_get_search_form( $echo = true ) {
$form = dgwt_wcas_astra_search_form();
if ( $echo ) {
echo $form;
} else {
return $form;
}
}
}
add_filter( 'astra_get_search_form', function ( $form ) {
return dgwt_wcas_astra_search_form();
} );
// Template for Header Cover
add_filter( 'astra_addon_get_template', function ( $located, $template_name, $args, $template_path, $default_path ) {
if ( $template_name === 'advanced-search/template/header-cover.php' ) {
$located = __DIR__ . '/template/header-cover.php';
}
return $located;
}, 100, 5 );
add_action( 'wp_footer', function () {
$header_break_point = dgwt_wcas_astra_header_break_point();
$search_box_type = dgwt_wcas_astra_search_box_type();
// Full Screen Search
if ( $search_box_type === 'full-screen' ) {
echo '<div id="wcas-search-instance" style="display: block;"><div class="search-form"><input class="search-field" type="text" style="display:none;">' . do_shortcode( '[fibosearch layout="classic" mobile_overlay="1" mobile_breakpoint="' . $header_break_point . '" ]' ) . '</div></div>';
}
?>
<script>
(function ($) {
<?php if ( $search_box_type === 'full-screen' ) { ?>
// Replace search form (Full Screen Search)
$(window).on('load', function () {
var wcasSearch = $('#wcas-search-instance > div');
var themeSearchFull = $('.ast-search-box.full-screen .ast-container');
if (themeSearchFull.eq(0)) {
themeSearchFull.find('.search-form').remove();
themeSearchFull.append(wcasSearch)
}
$('#wcas-search-instance').remove();
});
<?php } ?>
// Autofocus
$(document).on('click', '.astra-search-icon', function (event) {
if ($(window).width() > <?php echo $header_break_point ?>) {
setTimeout(function () {
// Slide Search, Search Box
$input = $(event.target).closest('.ast-search-menu-icon').find('.dgwt-wcas-search-input');
if ($input.length > 0) {
$input.trigger('focus');
}
// Header Cover Search
var $inputHeaderCover = $('.ast-search-box.header-cover .dgwt-wcas-search-input');
if ($inputHeaderCover.length > 0) {
$inputHeaderCover.trigger('focus');
}
// Full Screen Search
var $inputFullScreen = $('.ast-search-box.full-screen .dgwt-wcas-search-input');
if ($inputFullScreen.length > 0) {
$inputFullScreen.trigger('focus');
}
}, 100);
} else {
// Slide Search, Search Box
var $mobile = $('.ast-search-menu-icon .js-dgwt-wcas-enable-mobile-form');
if ($mobile.length > 0) {
$mobile[0].click();
}
// Header Cover Search / Full Screen Search
var $mobile2 = $('.ast-search-box.header-cover .js-dgwt-wcas-enable-mobile-form, .ast-search-box.full-screen .js-dgwt-wcas-enable-mobile-form');
if ($mobile2.length > 0) {
$mobile2[0].click();
}
}
});
// Header Cover / Full Screen Search - close cover when in mobile mode
$(document).on('click', '.js-dgwt-wcas-om-return', function (e) {
$('.ast-search-box.header-cover #close, .ast-search-box.full-screen #close').trigger('click');
});
}(jQuery));
</script>
<?php
} );
add_filter( 'wp_head', function () {
?>
<style>
/* Slide Search */
.ast-dropdown-active .search-form {
padding-left: 0 !important;
}
.ast-dropdown-active .ast-search-icon {
visibility: hidden;
}
.ast-search-menu-icon .search-form {
padding: 0;
}
.ast-search-menu-icon .search-field {
display: none;
}
.ast-search-menu-icon .search-form {
background-color: transparent !important;
border: 0;
}
/* Search Box */
.site-header .ast-inline-search.ast-search-menu-icon .search-form {
padding-right: 0;
}
/* Full Screen Search */
.ast-search-box.full-screen .ast-search-wrapper {
top: 25%;
transform: translate(-50%, -25%);
}
/* Header Cover */
.ast-search-box.header-cover .search-text-wrap {
width: 50%;
vertical-align: middle;
margin-left: calc(25% - 10px);
}
.ast-search-box.header-cover .close {
margin-top: -5px;
}
/* Autosuggestion results */
.dgwt-wcas-suggestion {
transition: none;
}
/* Details panel */
.dgwt-wcas-details-wrapp .woocommerce a.added_to_cart {
display: block;
}
</style>
<?php
} );