86 lines
2.3 KiB
PHP
86 lines
2.3 KiB
PHP
<?php
|
|
|
|
// Exit if accessed directly
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
|
|
if ( class_exists( 'WC_Widget' ) ) {
|
|
|
|
|
|
add_action( 'widgets_init', function () {
|
|
register_widget( 'DGWT_WCAS_Search_Widget' );
|
|
} );
|
|
|
|
class DGWT_WCAS_Search_Widget extends WC_Widget {
|
|
|
|
/**
|
|
* Constructor
|
|
*/
|
|
public function __construct() {
|
|
|
|
|
|
$this->widget_cssclass = 'woocommerce dgwt-wcas-widget';
|
|
$this->widget_description = __( 'AJAX (live) search form for WooCommerce', 'ajax-search-for-woocommerce' );
|
|
$this->widget_id = 'dgwt_wcas_ajax_search';
|
|
$this->widget_name = __( 'FiboSearch bar', 'ajax-search-for-woocommerce' );
|
|
$this->settings = array(
|
|
'title' => array(
|
|
'type' => 'text',
|
|
'std' => '',
|
|
'label' => __( 'Title', 'ajax-search-for-woocommerce' )
|
|
),
|
|
'layout' => array(
|
|
'type' => 'select',
|
|
'std' => 'default',
|
|
'options' => array(
|
|
'default' => __( 'Default', 'ajax-search-for-woocommerce' ),
|
|
'classic' => __( 'Search bar', 'ajax-search-for-woocommerce' ),
|
|
'icon' => __( 'Search icon', 'ajax-search-for-woocommerce' ),
|
|
'icon-flexible' => __( 'Icon on mobile, search bar on desktop', 'ajax-search-for-woocommerce' ),
|
|
'icon-flexible-inv' => __( 'Icon on desktop, search bar on mobile', 'ajax-search-for-woocommerce' ),
|
|
),
|
|
'label' => __( 'Layout', 'ajax-search-for-woocommerce' )
|
|
),
|
|
'mobile_overlay' => array(
|
|
'type' => 'checkbox',
|
|
'std' => '',
|
|
'label' => __( 'Overlay on mobile', 'ajax-search-for-woocommerce' )
|
|
)
|
|
);
|
|
|
|
parent::__construct();
|
|
}
|
|
|
|
|
|
/**
|
|
* Outputs the content of the widget
|
|
*
|
|
* @param array $args
|
|
* @param array $instance
|
|
*/
|
|
public function widget( $args, $instance ) {
|
|
|
|
$this->widget_start( $args, $instance );
|
|
$params = '';
|
|
|
|
// Layout
|
|
|
|
if ( ! empty( $instance['layout'] ) && in_array( $instance['layout'], array( 'classic', 'icon', 'icon-flexible', 'icon-flexible-inv' ) ) ) {
|
|
$params .= ' layout="' . $instance['layout'] . '"';
|
|
}
|
|
|
|
// Overlay on mobile
|
|
if ( ! empty( $instance['mobile_overlay'] ) && $instance['mobile_overlay'] === 'on') {
|
|
$params .= ' mobile_overlay="1"';
|
|
}
|
|
|
|
echo do_shortcode( '[fibosearch' . $params . ']' );
|
|
|
|
$this->widget_end( $args );
|
|
}
|
|
|
|
}
|
|
|
|
}
|