text_fields = array('storecommerce-tabbed-product-title', 'storecommerce-tabbed-product-subtitle', 'storecommerce-tabbed-product-title-note', 'storecommerce-number-of-items'); $this->select_fields = array('storecommerce-select-category-1', 'storecommerce-select-category-2', 'storecommerce-select-category-3'); $widget_ops = array( 'classname' => 'storecommerce_tabbed_products_carousel_widget grid-layout', 'description' => __('Displays products tabbed carousel from selected categories.', 'storecommerce'), 'customize_selective_refresh' => true, ); parent::__construct('storecommerce_posts_carousel', __('AFTSC Tabbed Products Carousel', 'storecommerce'), $widget_ops); } /** * Front-end display of widget. * * @see WP_Widget::widget() * * @param array $args Widget arguments. * @param array $instance Saved values from database. */ public function widget($args, $instance) { $instance = parent::storecommerce_sanitize_data($instance, $instance); /** This filter is documented in wp-includes/default-widgets.php */ $tab_id = 'tabbed-' . $this->number; $title = apply_filters('widget_title', $instance['storecommerce-tabbed-product-title'], $instance, $this->id_base); $subtitle = isset($instance['storecommerce-tabbed-product-subtitle']) ? $instance['storecommerce-tabbed-product-subtitle'] : 'Tabbed Products Carousel Subtitle'; $category_1 = isset($instance['storecommerce-select-category-1']) ? $instance['storecommerce-select-category-1'] : 0; $category_2 = isset($instance['storecommerce-select-category-2']) ? $instance['storecommerce-select-category-2'] : 0; $category_3 = isset($instance['storecommerce-select-category-3']) ? $instance['storecommerce-select-category-3'] : 0; $categories = array(); if (absint($category_1) > 0) { $categories[] = $category_1; } if (absint($category_2) > 0) { $categories[] = $category_2; } if (absint($category_3) > 0) { $categories[] = $category_3; } // open the widget container echo $args['before_widget']; ?>

form_instance = $instance; $categories = storecommerce_get_terms('product_cat'); if (isset($categories) && !empty($categories)) { // generate the text input for the title of the widget. Note that the first parameter matches text_fields array entry echo parent::storecommerce_generate_text_input('storecommerce-tabbed-product-title', 'Title', 'Tabbed Products Carousel'); echo parent::storecommerce_generate_text_input('storecommerce-tabbed-product-subtitle', 'Subtitle', 'Tabbed Products Carousel Subtitle'); echo parent::storecommerce_generate_select_options('storecommerce-select-category-1', __('Select category 1', 'storecommerce'), $categories); echo parent::storecommerce_generate_select_options('storecommerce-select-category-2', __('Select category 2', 'storecommerce'), $categories); echo parent::storecommerce_generate_select_options('storecommerce-select-category-3', __('Select category 3', 'storecommerce'), $categories); } } } endif;