'agency_ecommerce_featured_slider_widget', 'description' => esc_html__('This widget will show slider on your website and it is compatible with Slider Widget Area', 'agency-ecommerce'), ); parent::__construct('agency-ecommerce-featured-slider', esc_html__(' Featured Slider', 'agency-ecommerce'), $opts); } function widget_fields() { $product_type_choices = array( 'latest' => esc_html__('Latest', 'agency-ecommerce'), 'featured' => esc_html__('Featured', 'agency-ecommerce'), ); $fields = array( 'left_product_category' => array( 'name' => 'left_product_category', 'title' => esc_html__('Product Category for Left Slider', 'agency-ecommerce'), 'type' => 'dropdown_categories', 'args' => array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'orderby' => 'name', 'multiple' => true ), ), 'left_number_of_products' => array( 'name' => 'left_number_of_products', 'title' => esc_html__('Number of products for Left Slider', 'agency-ecommerce'), 'type' => 'number', 'default' => 6, ), 'right_product_category' => array( 'name' => 'right_product_category', 'title' => esc_html__('Product Category for Right Slider', 'agency-ecommerce'), 'type' => 'dropdown_categories', 'args' => array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'orderby' => 'name', 'multiple' => true ), ), 'right_number_of_products' => array( 'name' => 'right_number_of_products', 'title' => esc_html__('Number of products for Right Slider', 'agency-ecommerce'), 'type' => 'number', 'default' => 6, ), 'shop_now_text' => array( 'name' => 'shop_now_text', 'title' => esc_html__('Shop Now Text', 'agency-ecommerce'), 'type' => 'text', 'default' => esc_html__('Shop Now', 'agency-ecommerce'), ), 'disable_slider' => array( 'name' => 'disable_slider', 'title' => esc_html__('Disable Slider Mode', 'agency-ecommerce'), 'type' => 'checkbox', ) ); return $fields; } function widget($args, $instance) { $valid_widget_instance = Agency_Ecommerce_Widget_Validation::instance()->validate($instance, $this->widget_fields()); $title = apply_filters('widget_title', empty($valid_widget_instance['title']) ? '' : $valid_widget_instance['title'], $valid_widget_instance, $this->id_base); $left_product_category = $valid_widget_instance['left_product_category']; $left_number_of_products = $valid_widget_instance['left_number_of_products']; $disable_slider = $valid_widget_instance['disable_slider']; echo $args['before_widget']; ?>
get_query_args($valid_widget_instance, 'left_product'); $left_slider_query = new WP_Query($left_query_args); if ($left_slider_query->have_posts()): while ($left_slider_query->have_posts()): $left_slider_query->the_post(); $this->slider_item($valid_widget_instance); endwhile; else: $this->default_slider_item($valid_widget_instance); $this->default_slider_item($valid_widget_instance); endif; wp_reset_postdata(); ?>
get_query_args($valid_widget_instance, 'right_product'); $right_slider_query = new WP_Query($right_query_args); if ($right_slider_query->have_posts()): while ($right_slider_query->have_posts()): $right_slider_query->the_post(); $this->slider_item($valid_widget_instance); endwhile; else: $this->default_slider_item($valid_widget_instance); $this->default_slider_item($valid_widget_instance); $this->default_slider_item($valid_widget_instance); endif; wp_reset_postdata(); ?>
'publish', 'post_type' => 'product', 'no_found_rows' => 1, 'meta_query' => array(), 'tax_query' => array( 'relation' => 'AND', ) ); switch ($type) { case "left_product": $query_args['posts_per_page'] = $valid_widget_instance['left_number_of_products']; if (0 < count($valid_widget_instance['left_product_category'])) { $query_args['tax_query'][] = array( 'taxonomy' => 'product_cat', 'field' => 'term_id', 'terms' => $valid_widget_instance['left_product_category'], ); } break; case "right_product": $query_args['posts_per_page'] = $valid_widget_instance['right_number_of_products']; if (0 < count($valid_widget_instance['right_product_category'])) { $query_args['tax_query'][] = array( 'taxonomy' => 'product_cat', 'field' => 'term_id', 'terms' => $valid_widget_instance['right_product_category'], ); } break; } return $query_args; } public function slider_item($valid_widget_instance) { $image_url = ''; if (has_post_thumbnail()) { $image_url_array = wp_get_attachment_image_src(get_post_thumbnail_id(), 'full'); $image_url = isset($image_url_array[0]) ? $image_url_array[0] : ''; } $image_url = empty($image_url) ? get_template_directory_uri() . '/assets/images/placeholder/agency-ecommerce-1400-653.jpg' : $image_url; $bg_image_style = 'background-image:url(' . ($image_url) . ');background-repeat:no-repeat;background-size:cover;background-position:center;'; ?>