70 lines
1.7 KiB
PHP
70 lines
1.7 KiB
PHP
<?php
|
|
|
|
use DgoraWcas\Helpers;
|
|
|
|
// Exit if accessed directly.
|
|
if ( ! defined( 'DGWT_WCAS_FILE' ) ) {
|
|
exit;
|
|
}
|
|
|
|
global $dgwtWcasBricksStyles;
|
|
|
|
$dgwtWcasBricksStyles = '';
|
|
|
|
/**
|
|
* Support for Bricks custom pagination parameter.
|
|
*/
|
|
add_action( 'pre_get_posts', function ($query) {
|
|
if ( ! Helpers::isSearchQuery( $query ) ) {
|
|
return;
|
|
}
|
|
|
|
if ( ! empty( $_GET['product-page'] ) && intval($_GET['product-page']) > 0 ) {
|
|
$query->set('paged', intval($_GET['product-page']));
|
|
}
|
|
} , 900000 );
|
|
|
|
/**
|
|
* This filter should return true or false depending on whether the Element is to be displayed,
|
|
* but we use it to override the search Element. This is not entirely the correct way to use a filter,
|
|
* but we have no other way to override the Element's rendering function.
|
|
*/
|
|
add_filter( 'bricks/element/render', function ( $render_element, $element ) {
|
|
global $dgwtWcasBricksStyles;
|
|
|
|
if ( ! $render_element ) {
|
|
return $render_element;
|
|
}
|
|
if ( ! isset( $element->block ) || $element->block !== 'core/search' ) {
|
|
return $render_element;
|
|
}
|
|
|
|
if ( isset( $element->settings['searchType'] ) && $element->settings['searchType'] === 'overlay' ) {
|
|
echo do_shortcode( '[fibosearch layout="icon"]' );
|
|
|
|
if ( ! empty( $element->settings['iconTypography']['color']['hex'] ) ) {
|
|
ob_start();
|
|
?>
|
|
<style>
|
|
.dgwt-wcas-ico-magnifier, .dgwt-wcas-ico-magnifier-handler {
|
|
fill: <?php echo esc_attr( $element->settings['iconTypography']['color']['hex'] ) ?>;
|
|
}
|
|
</style>
|
|
<?php
|
|
$dgwtWcasBricksStyles .= ob_get_clean();
|
|
}
|
|
} else {
|
|
echo do_shortcode( '[fibosearch]' );
|
|
}
|
|
|
|
return false;
|
|
}, 10, 2 );
|
|
|
|
add_action( 'wp_footer', function () {
|
|
global $dgwtWcasBricksStyles;
|
|
|
|
if ( ! empty( $dgwtWcasBricksStyles ) ) {
|
|
echo $dgwtWcasBricksStyles;
|
|
}
|
|
} );
|