__('A widget that shows WooCommerce category in multiple tabs', 'sparklestore') )); } private function widget_fields() { $taxonomy = 'product_cat'; $empty = 1; $orderby = 'name'; $show_count = 0; // 1 for yes, 0 for no $pad_counts = 0; // 1 for yes, 0 for no $hierarchical = 1; // 1 for yes, 0 for no $title = ''; $empty = 0; $args = array( 'taxonomy' => $taxonomy, 'orderby' => $orderby, 'show_count' => $show_count, 'pad_counts' => $pad_counts, 'hierarchical' => $hierarchical, 'title_li' => $title, 'hide_empty' => $empty ); $woocommerce_categories = array(); $woocommerce_categories_obj = get_categories($args); foreach ($woocommerce_categories_obj as $category) { $woocommerce_categories[$category->term_id] = $category->name; } $fields = array( 'sparklestore_select_category' => array( 'sparklestore_widgets_name' => 'sparklestore_select_category', 'sparklestore_mulicheckbox_title' => __('Select Category Tabs', 'sparklestore'), 'sparklestore_widgets_field_type' => 'multicheckboxes', 'sparklestore_widgets_field_options' => $woocommerce_categories ), 'sparklestore_pro_number_products' => array( 'sparklestore_widgets_name' => 'sparklestore_pro_number_products', 'sparklestore_widgets_title' => __('Enter the Number Products Display', 'sparklestore'), 'sparklestore_widgets_field_type' => 'number', ) ); return $fields; } public function widget($args, $instance) { extract($args); extract($instance); /** * wp query for first block */ $sparklestore_cat_id = $instance['sparklestore_select_category']; if(!empty( $sparklestore_cat_id )) { $first_cat_id = key( $sparklestore_cat_id ); } $product_number = intval( $instance['sparklestore_pro_number_products'] ); echo $before_widget; ?>
    'product', 'tax_query' => array( array( 'taxonomy' => 'product_cat', 'field' => 'term_id', 'terms' => $first_cat_id )), 'posts_per_page' => $product_number ); $query = new WP_Query($product_args); if($query->have_posts()) { while($query->have_posts()) { $query->the_post(); ?>
widget_fields(); foreach ($widget_fields as $widget_field) { extract($widget_field); $instance[$sparklestore_widgets_name] = sparklestore_widgets_updated_field_value($widget_field, $new_instance[$sparklestore_widgets_name]); } return $instance; } public function form($instance) { $widget_fields = $this->widget_fields(); foreach ($widget_fields as $widget_field) { extract($widget_field); $sparklestore_widgets_field_value = !empty($instance[$sparklestore_widgets_name]) ? $instance[$sparklestore_widgets_name] : ''; sparklestore_widgets_show_widget_field($this, $widget_field, $sparklestore_widgets_field_value); } } }