Example #1
0
 /**
  * Displays the widget in the sidebar.
  *
  * @param array $args     Sidebar arguments.
  * @param array $instance The instance.
  *
  * @return bool|void
  */
 public function widget($args, $instance)
 {
     if (!Pages::isProductList()) {
         return;
     }
     // Set the widget title
     $title = apply_filters('widget_title', $instance['title'] ? $instance['title'] : __('Filter by Price', 'jigoshop'), $instance, $this->id_base);
     $fields = apply_filters('jigoshop\\get_fields', array());
     Render::output('widget/price_filter/widget', array_merge($args, array('title' => $title, 'max' => $this->max, 'fields' => $fields)));
 }
Example #2
0
 public function getPage(Container $container)
 {
     if (!Pages::isJigoshop() && !Pages::isAjax()) {
         return $container->get('jigoshop.page.dummy');
     }
     $this->wp->doAction('jigoshop\\page_resolver\\before');
     if (Pages::isCheckoutThankYou()) {
         return $container->get('jigoshop.page.checkout.thank_you');
     }
     if (Pages::isCheckoutPay()) {
         return $container->get('jigoshop.page.checkout.pay');
     }
     if (Pages::isCheckout()) {
         return $container->get('jigoshop.page.checkout');
     }
     if (Pages::isCart()) {
         return $container->get('jigoshop.page.cart');
     }
     if (Pages::isProductCategory()) {
         return $container->get('jigoshop.page.product_category_list');
     }
     if (Pages::isProductTag()) {
         return $container->get('jigoshop.page.product_tag_list');
     }
     if (Pages::isProductList()) {
         return $container->get('jigoshop.page.product_list');
     }
     if (Pages::isProduct()) {
         return $container->get('jigoshop.page.product');
     }
     if (Pages::isAccountOrders()) {
         return $container->get('jigoshop.page.account.orders');
     }
     if (Pages::isAccountEditAddress()) {
         return $container->get('jigoshop.page.account.edit_address');
     }
     if (Pages::isAccountChangePassword()) {
         return $container->get('jigoshop.page.account.change_password');
     }
     if (Pages::isAccount()) {
         return $container->get('jigoshop.page.account');
     }
 }
Example #3
0
 /**
  * Displays the widget in the sidebar.
  *
  * @param array $args     Sidebar arguments.
  * @param array $instance The instance.
  */
 public function widget($args, $instance)
 {
     // Hide widget if not product related
     if (!Pages::isProductList()) {
         return;
     }
     // Set the widget title
     $title = apply_filters('widget_title', $instance['title'] ? $instance['title'] : __('Filter by Attributes', 'jigoshop'), $instance, $this->id_base);
     $attribute = self::$productService->getAttribute($instance['attribute']);
     if ($attribute && $attribute->hasOptions()) {
         $selected = self::$parameters[$attribute->getId()];
         $productsPerOption = array();
         $products = array_filter($this->products, function ($product) use($attribute, $selected, &$productsPerOption) {
             /** @var $product Product */
             if (!$product->hasAttribute($attribute->getId())) {
                 return false;
             }
             $value = $product->getAttribute($attribute->getId())->getValue();
             if (is_array($value)) {
                 foreach ($value as $subValue) {
                     if (!isset($productsPerOption[$subValue])) {
                         $productsPerOption[$subValue] = 0;
                     }
                     $productsPerOption[$subValue]++;
                 }
                 return (bool) array_intersect($value, $selected);
             } else {
                 if (!isset($productsPerOption[$value])) {
                     $productsPerOption[$value] = 0;
                 }
                 $productsPerOption[$value]++;
                 return in_array($value, $selected);
             }
         });
         if (empty($selected) || !empty($products)) {
             $fields = apply_filters('jigoshop_get_hidden_fields', array());
             Render::output('widget/layered_nav/widget', array('title' => $title, 'attribute' => $attribute, 'selected' => $selected, 'productsPerOption' => $productsPerOption, 'baseUrl' => remove_query_arg('filter_' . $attribute->getSlug()), 'fields' => $fields));
         }
     }
 }