'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__('AE - 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, ), 'right_number_of_rows' => array( 'name' => 'right_number_of_rows', 'title' => esc_html__('Number of rows for Right Slider', 'agency-ecommerce'), 'type' => 'select', 'default' => 'two', 'options' => array( 'one' => esc_html__('One', 'agency-ecommerce'), 'two' => esc_html__('Two', 'agency-ecommerce'), 'three' => esc_html__('Three', 'agency-ecommerce') ) ), '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'), ), 'flip_slider' => array( 'name' => 'flip_slider', 'title' => esc_html__('Flip right slider to left and left to right', 'agency-ecommerce'), 'type' => 'checkbox', ), 'hide_right_slider' => array( 'name' => 'hide_right_slider', 'title' => esc_html__('Hide right slider', 'agency-ecommerce'), 'type' => 'checkbox', ), 'disable_slider_mode' => array( 'name' => 'disable_slider_mode', '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']; $right_number_of_rows = $valid_widget_instance['right_number_of_rows']; $hide_right_slider = $valid_widget_instance['hide_right_slider']; $flip_slider = $valid_widget_instance['flip_slider']; $right_rows = 2; switch ($right_number_of_rows) { case "one": $right_rows = 1; break; case "two": $right_rows = 2; break; case "three": $right_rows = 3; break; } $disable_slider_mode = $valid_widget_instance['disable_slider_mode']; $feature_slider_wrap_class = 'feature-slider-wrap'; if ($hide_right_slider) { $feature_slider_wrap_class .= ' hide-right-slider'; } if ($flip_slider) { $feature_slider_wrap_class .= ' flipped'; } 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(' . (esc_url($image_url)) . ');background-repeat:no-repeat;background-size:cover;background-position:center;'; ?>