Merged in feature/plugins-update (pull request #9)

wp plugin updates from pantheon

* wp plugin updates from pantheon
This commit is contained in:
Tony Volpe
2023-12-15 18:08:21 +00:00
parent 28c21bf9b1
commit 779393381f
577 changed files with 154305 additions and 0 deletions

View File

@@ -0,0 +1,89 @@
<?php
class FacetWP_Facet_Search extends FacetWP_Facet
{
function __construct() {
$this->label = __( 'Search', 'fwp' );
$this->fields = [ 'search_engine', 'placeholder', 'auto_refresh' ];
}
/**
* Generate the facet HTML
*/
function render( $params ) {
$output = '';
$facet = $params['facet'];
$value = (array) $params['selected_values'];
$value = empty( $value ) ? '' : stripslashes( $value[0] );
$placeholder = empty( $facet['placeholder'] ) ? __( 'Enter keywords', 'fwp-front' ) : $facet['placeholder'];
$placeholder = facetwp_i18n( $placeholder );
$output .= '<span class="facetwp-input-wrap">';
$output .= '<i class="facetwp-icon"></i>';
$output .= '<input type="text" class="facetwp-search" value="' . esc_attr( $value ) . '" placeholder="' . esc_attr( $placeholder ) . '" autocomplete="off" />';
$output .= '</span>';
return $output;
}
/**
* Filter the query based on selected values
*/
function filter_posts( $params ) {
$facet = $params['facet'];
$selected_values = $params['selected_values'];
$selected_values = is_array( $selected_values ) ? $selected_values[0] : $selected_values;
if ( empty( $selected_values ) ) {
return 'continue';
}
// Default WP search
$search_args = [
's' => $selected_values,
'posts_per_page' => 200,
'fields' => 'ids',
];
$search_args = apply_filters( 'facetwp_search_query_args', $search_args, $params );
$query = new WP_Query( $search_args );
return (array) $query->posts;
}
function register_fields() {
$engines = apply_filters( 'facetwp_facet_search_engines', [] );
$choices = [ '' => __( 'WP Default', 'fwp' ) ];
foreach ( $engines as $key => $label ) {
$choices[ $key ] = $label;
}
return [
'search_engine' => [
'type' => 'select',
'label' => __( 'Search engine', 'fwp' ),
'choices' => $choices
],
'auto_refresh' => [
'type' => 'toggle',
'label' => __( 'Auto refresh', 'fwp' ),
'notes' => 'Automatically refresh the results while typing?'
]
];
}
/**
* (Front-end) Attach settings to the AJAX response
*/
function settings_js( $params ) {
$auto_refresh = empty( $params['facet']['auto_refresh'] ) ? 'no' : $params['facet']['auto_refresh'];
return [ 'auto_refresh' => $auto_refresh ];
}
}