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(); } }