PluginProbe ʕ •ᴥ•ʔ
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution with eCommerce Templates & Woo Widgets / 4.9.4
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution with eCommerce Templates & Woo Widgets v4.9.4
4.9.5 4.9.4 4.9.3 4.9.2 4.9.1 4.9.0 2.0.0 2.1.0 2.2.0 2.2.1 2.2.2 2.3.0 2.4.0 2.5.0 2.5.1 3.0.0 3.1.0 3.1.1 4.0.0 4.0.1 4.1.0 4.1.1 4.2.0 4.2.1 4.3.0 4.3.1 4.4.0 4.5.0 4.5.1 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.6.7 4.6.8 4.6.9 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 4.8.7 4.8.8 4.8.9 trunk 0.1.2-beta 0.1.3-beta 0.1.4-beta 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.2.1 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.5.0 1.5.1 1.6.0 1.6.1 1.7.0 1.8.0 1.8.1 1.9.0
shopengine / widgets / prod-short-code.php
shopengine / widgets Last commit date
add-to-cart 2 weeks ago additional-information 3 years ago advanced-search 2 weeks ago archive-description 3 years ago archive-products 2 weeks ago archive-result-count 2 years ago archive-title 2 weeks ago archive-view-mode 2 years ago breadcrumbs 2 weeks ago call-for-price 2 weeks ago cart-table 2 weeks ago cart-totals 2 weeks ago checkout-coupon-form 2 weeks ago checkout-form-additional 3 years ago checkout-form-billing 2 years ago checkout-form-login 3 years ago checkout-form-shipping 2 weeks ago checkout-payment 3 years ago checkout-review-order 2 years ago checkout-shipping-methods 2 years ago cross-sells 2 weeks ago deal-products 2 years ago empty-cart-message 2 years ago filter-orderby 2 years ago filter-products-per-page 3 years ago filterable-product-list 1 year ago init 2 weeks ago notice 2 years ago product-categories 3 years ago product-category-lists 2 weeks ago product-description 2 weeks ago product-excerpt 2 weeks ago product-image 1 year ago product-list 2 weeks ago product-meta 2 years ago product-price 3 years ago product-rating 2 weeks ago product-review 2 years ago product-share 2 years ago product-sku 3 years ago product-stock 11 months ago product-tabs 2 weeks ago product-tags 3 years ago product-title 2 years ago qr-code 11 months ago recently-viewed-products 2 weeks ago related 2 weeks ago return-to-shop 2 weeks ago up-sells 2 weeks ago view-single-product 2 weeks ago lazy-cache.php 3 years ago manifest.php 2 weeks ago prod-short-code.php 2 years ago products.php 3 years ago shop.php 3 years ago widget-helper.php 2 weeks ago
prod-short-code.php
65 lines
1 <?php
2
3 namespace ShopEngine\Widgets;
4 defined('ABSPATH') || exit;
5
6 class Prod_Short_Code extends \WC_Shortcode_Products {
7
8 public function __construct($settings = array(), $type = 'products') {
9
10 $this->settings = $settings;
11 $this->type = $type;
12
13 $this->attributes = $this->parse_attributes([
14 'columns' => $settings['shopengine_columns'],
15 'rows' => $settings['shopengine_rows'],
16 'paginate' => $settings['shopengine_paginate'],
17 'cache' => false,
18 ]);
19
20 $this->query_args = $this->parse_query_args();
21 }
22
23
24 protected function parse_query_args() {
25
26 $query_args = [
27 'post_type' => 'product',
28 'post_status' => 'publish',
29 'ignore_sticky_posts' => true,
30 'no_found_rows' => false === wc_string_to_bool($this->attributes['paginate']),
31 ];
32
33 $settings = $this->settings;
34
35 if($settings['shopengine_paginate'] === 'yes') {
36 //phpcs:ignore WordPress.Security.NonceVerification.Recommended -- It's a fronted user part, not possible to verify nonce here
37 $page = empty( $_GET['product-page'] ) ? 1 : absint($_GET['product-page']);
38
39 if ($page > 1) {
40 $query_args['paged'] = $page;
41 }
42
43 $ord_arg = WC()->query->get_catalog_ordering_args();
44
45 $query_args['orderby'] = $ord_arg['orderby'];
46 $query_args['order'] = $ord_arg['order'];
47 }
48
49
50 $query_args['fields'] = 'ids';
51 $query_args['post_type'] = 'product';
52 $query_args['posts_per_page'] = intval($settings['shopengine_columns'] * $settings['shopengine_rows']);
53
54
55 return $query_args;
56 }
57
58
59 protected function get_query_results() {
60
61 $results = parent::get_query_results();
62
63 return $results;
64 }
65 }