/** * @param $query \WP_Query */ public function setTypeFilter($query) { if (isset($_GET['product_type']) && in_array($_GET['product_type'], array_keys($this->type->getEnabledTypes()))) { $meta = $query->meta_query; $meta[] = array('key' => 'type', 'value' => $_GET['product_type']); $query->set('meta_query', $meta); } }
/** * Displays the product data box, tabbed, with several panels covering price, stock etc * * @since 1.0 */ public function box() { $post = $this->wp->getGlobalPost(); /** @var \Jigoshop\Entity\Product $product */ $product = $this->productService->findForPost($post); $types = array(); foreach ($this->type->getEnabledTypes() as $type) { /** @var $type Types\Product\Type */ $types[$type->getId()] = $type->getName(); } $taxClasses = array(); foreach ($this->options->get('tax.classes') as $class) { $taxClasses[$class['class']] = $class['label']; } $attributes = array('' => array('label' => ''), '-1' => array('label' => __('Custom attribute', 'jigoshop'))); foreach ($this->productService->findAllAttributes() as $attribute) { /** @var $attribute Attribute */ $attributes[$attribute->getId()] = array('label' => $attribute->getLabel(), 'disabled' => $product->hasAttribute($attribute->getId())); } $tabs = $this->wp->applyFilters('jigoshop\\admin\\product\\tabs', array('general' => array('product' => $product), 'advanced' => array('product' => $product, 'taxClasses' => $taxClasses), 'attributes' => array('product' => $product, 'availableAttributes' => $attributes, 'attributes' => $product->getAttributes()), 'stock' => array('product' => $product), 'sales' => array('product' => $product)), $product); Render::output('admin/product/box', array('product' => $product, 'types' => $types, 'menu' => $this->menu, 'tabs' => $tabs, 'current_tab' => 'general')); }