124 lines
2.9 KiB
PHP
124 lines
2.9 KiB
PHP
<?php
|
|
|
|
// Exit if accessed directly
|
|
if ( ! defined( 'DGWT_WCAS_FILE' ) ) {
|
|
exit;
|
|
}
|
|
|
|
add_action( 'wp_head', function () { ?>
|
|
<style>
|
|
.w-search.layout_modern .w-search-close {
|
|
|
|
}
|
|
|
|
.w-search.layout_modern .w-search-close {
|
|
color: rgba(0, 0, 0, 0.5) !important;
|
|
}
|
|
|
|
.w-search.layout_modern .dgwt-wcas-close {
|
|
display: none;
|
|
}
|
|
|
|
.w-search.layout_modern .dgwt-wcas-preloader {
|
|
right: 20px;
|
|
}
|
|
|
|
.w-search.layout_fullscreen .w-form-row-field {
|
|
top: 48px;
|
|
}
|
|
</style>
|
|
<?php
|
|
} );
|
|
|
|
add_action( 'wp_footer', function () { ?>
|
|
<script>
|
|
(function ($) {
|
|
function dgwtWcasImprezaGetActiveInstance() {
|
|
var $el = $('.dgwt-wcas-search-wrapp.dgwt-wcas-active'),
|
|
instance;
|
|
if ($el.length > 0) {
|
|
$el.each(function () {
|
|
var $input = $(this).find('.dgwt-wcas-search-input');
|
|
if (typeof $input.data('autocomplete') == 'object') {
|
|
instance = $input.data('autocomplete');
|
|
return false;
|
|
}
|
|
});
|
|
}
|
|
|
|
return instance;
|
|
}
|
|
|
|
$(document).ready(function () {
|
|
$('.w-search.layout_modern .w-search-close').on('click', function () {
|
|
var instance = dgwtWcasImprezaGetActiveInstance();
|
|
|
|
if (typeof instance == 'object') {
|
|
instance.suggestions = [];
|
|
instance.hide();
|
|
instance.el.val('');
|
|
}
|
|
});
|
|
|
|
$('.w-search-open').on('click', function (e) {
|
|
if ($(window).width() < 900) {
|
|
e.preventDefault();
|
|
|
|
var $mobileHandler = $(e.target).closest('.w-search').find('.js-dgwt-wcas-enable-mobile-form');
|
|
|
|
if ($mobileHandler.length) {
|
|
$mobileHandler[0].click();
|
|
}
|
|
|
|
setTimeout(function () {
|
|
$('.w-search').removeClass('active');
|
|
}, 500);
|
|
}
|
|
});
|
|
});
|
|
})(jQuery);
|
|
</script>
|
|
<?php
|
|
}, 1000 );
|
|
|
|
/**
|
|
* Activate the search engine during AJAX loading of subsequent pages when the Grid
|
|
* element's pagination is set to "Load items on page scroll"
|
|
*/
|
|
add_filter( 'dgwt/wcas/helpers/is_search_query', function ( $enabled, $query ) {
|
|
if (
|
|
did_action( 'us_grid_before_custom_query' ) &&
|
|
$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
|
|
) {
|
|
$enabled = true;
|
|
}
|
|
|
|
return $enabled;
|
|
}, 10, 2 );
|
|
|
|
/**
|
|
* Force orderby (if empty) during AJAX loading of subsequent pages when the Grid
|
|
* element's pagination is set to "Load items on page scroll"
|
|
*/
|
|
add_filter( 'woocommerce_get_catalog_ordering_args', function ( $args ) {
|
|
if ( function_exists( 'us_maybe_get_post_json' ) ) {
|
|
$template_vars = us_maybe_get_post_json();
|
|
if (
|
|
! empty( $template_vars ) &&
|
|
isset( $template_vars['query_args']['post_type'] ) &&
|
|
$template_vars['query_args']['post_type'] === 'product' &&
|
|
! empty( $template_vars['query_args']['s'] ) &&
|
|
empty( $template_vars['query_args']['orderby'] )
|
|
) {
|
|
$args['orderby'] = 'relevance';
|
|
$args['order'] = 'DESC';
|
|
}
|
|
}
|
|
|
|
return $args;
|
|
}, 999, 1 );
|