public function get($args = array()) { global $WPIMLoop; /** * Detect which view, and load the appropriate one */ $default = array('inventory_id' => NULL, 'category_id' => NULL, 'product_id' => NULL, 'category' => NULL, 'order' => 'inventory_number', 'inventory_search' => NULL, 'page' => 0, 'page_size' => self::$config->get('page_size', 20)); if (!is_array($args)) { parse_str($args, $args); } self::$args = wp_parse_args($args, $default); foreach (self::$args as $key => $value) { if (self::request($key)) { self::$args[$key] = self::request($key); } } if (!self::$args['category_id'] && self::$args['category']) { self::$args['category_id'] = self::$args['category']; unset(self::$args['category']); } if (self::$args['category_id'] && !(int) self::$args['category_id']) { $WPIMCategory = new WPIMCategory(); $category = $WPIMCategory->get_id_from_name(self::$args['category_id']); if ($category) { self::$args['category_id'] = $category; } } foreach (self::$filters as $filter => $field) { if (self::request($filter)) { self::$args[$field] = self::request($filter); } } if (self::$args['category_id'] && stripos(self::$args['category_id'], ',')) { self::$args['category_id'] = explode(',', self::$args['category_id']); } if (self::$args['product_id'] && stripos(self::$args['product_id'], ',')) { self::$args['product_id'] = explode(',', self::$args['product_id']); } if (self::$args['order'] && stripos(self::$args['order'], ',')) { self::$args['order'] = explode(',', self::$args['order']); } self::$loop = new WPIMLoop(self::$args); wpinventory_set_loop(self::$loop); self::store_page_state(self::$args['inventory_id']); if (self::$args['inventory_id']) { return self::display_detail(); } else { return self::display_listing(); } }
function widget($args, $instance) { extract($args); $page_id = !empty($instance['page_id']) ? $instance['page_id'] : NULL; echo $before_widget; if ($instance['title']) { echo $before_title . $instance['title'] . $after_title; } if (!$page_id) { echo '<!-- Page not set in widget. Defaulting to current page / post -->'; global $post; $page_id = $post->ID; } $number = (int) $instance['number']; $number = max(1, min(10, $number)); $args = array('category_id' => $instance['category_id'], 'page_size' => $number, 'order' => 'inventory_date_added DESC'); $custom_loop = new WPIMLoop(); $custom_loop->set_single(TRUE); $custom_loop->load_items($args); wpinventory_set_loop($custom_loop); wpinventory_get_template_part('widget-latest-items-loop'); echo $after_widget; }