You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
3.1 KiB
117 lines
3.1 KiB
<?php if ( ! defined('WOODMART_THEME_DIR')) exit('No direct script access allowed');
|
|
|
|
/**
|
|
* AJAX search widget
|
|
*
|
|
*/
|
|
|
|
if( ! class_exists( 'WOODMART_Widget_Search' ) ) {
|
|
class WOODMART_Widget_Search extends WPH_Widget {
|
|
|
|
function __construct() {
|
|
if( ! woodmart_woocommerce_installed() ) return;
|
|
|
|
// Configure widget array
|
|
$args = array(
|
|
// Widget Backend label
|
|
'label' => esc_html__( 'WOODMART AJAX Search', 'woodmart' ),
|
|
// Widget Backend Description
|
|
'description' =>esc_html__( 'Search form by products with AJAX', 'woodmart' ),
|
|
'slug' => 'woodmart-ajax-search',
|
|
);
|
|
|
|
// Configure the widget fields
|
|
|
|
// fields array
|
|
$args['fields'] = array(
|
|
array(
|
|
'id' => 'title',
|
|
'type' => 'text',
|
|
'std' => esc_html__( 'Search products', 'woodmart' ),
|
|
'name' => esc_html__( 'Title', 'woodmart' )
|
|
),
|
|
array(
|
|
'id' => 'post_type',
|
|
'type' => 'dropdown',
|
|
'std' => 'product',
|
|
'name' => esc_html__( 'Search post type', 'woodmart' ),
|
|
'fields' => array(
|
|
esc_html__( 'Product', 'woodmart' ) => 'product',
|
|
esc_html__( 'Post', 'woodmart' ) => 'post',
|
|
esc_html__( 'Portfolio', 'woodmart' ) => 'portfolio'
|
|
)
|
|
),
|
|
array(
|
|
'id' => 'number',
|
|
'type' => 'number',
|
|
'std' => 4,
|
|
'name' => esc_html__( 'Number of products to show', 'woodmart' ),
|
|
),
|
|
array(
|
|
'id' => 'price',
|
|
'type' => 'checkbox',
|
|
'std' => 1,
|
|
'name' => esc_html__( 'Show price', 'woodmart' ),
|
|
),
|
|
array(
|
|
'id' => 'thumbnail',
|
|
'type' => 'checkbox',
|
|
'std' => 1,
|
|
'name' => esc_html__( 'Show thumbnail', 'woodmart' ),
|
|
),
|
|
array(
|
|
'id' => 'categories',
|
|
'type' => 'checkbox',
|
|
'std' => 1,
|
|
'name' => esc_html__( 'Show categories', 'woodmart' ),
|
|
),
|
|
);
|
|
|
|
// create widget
|
|
$this->create_widget( $args );
|
|
}
|
|
|
|
|
|
function widget( $args, $instance ) {
|
|
if ( $this->is_widget_preview() ) {
|
|
return;
|
|
}
|
|
|
|
extract($args);
|
|
|
|
echo wp_kses_post( $before_widget );
|
|
|
|
$number = empty( $instance['number'] ) ? 3 : absint( $instance['number'] );
|
|
$thumbnail = empty( $instance['thumbnail'] ) ? 0 : absint( $instance['thumbnail'] );
|
|
$price = empty( $instance['price'] ) ? 0 : absint( $instance['price'] );
|
|
$post_type = empty( $instance['post_type'] ) ? 'product' : $instance['post_type'];
|
|
|
|
$categories = true;
|
|
|
|
if ( isset( $instance['categories'] ) ) {
|
|
$categories = empty( $instance['categories'] ) ? 0 : absint( $instance['price'] );
|
|
}
|
|
|
|
if ( $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance ) ) {
|
|
echo wp_kses_post( $before_title ) . $title . wp_kses_post( $after_title );
|
|
}
|
|
|
|
woodmart_search_form( array(
|
|
'ajax' => true,
|
|
'count' => $number,
|
|
'thumbnail' => $thumbnail,
|
|
'show_categories' => $categories,
|
|
'post_type' => $post_type,
|
|
'price' => $price,
|
|
) );
|
|
|
|
|
|
echo wp_kses_post( $after_widget );
|
|
}
|
|
|
|
function form( $instance ) {
|
|
parent::form( $instance );
|
|
}
|
|
}
|
|
}
|
|
|
|
|