AI
1 year ago
AIContent
1 year ago
Assets
1 week ago
BlockTypes
1 week ago
Domain
1 week ago
Images
1 year ago
Integrations
2 years ago
Patterns
1 week ago
Payments
6 months ago
Registry
2 years ago
SharedStores
2 months ago
Shipping
1 week ago
Templates
1 week ago
Utils
1 week ago
Assets.php
2 years ago
AssetsController.php
1 week ago
BlockPatterns.php
1 week ago
BlockTemplatesController.php
7 months ago
BlockTemplatesRegistry.php
10 months ago
BlockTypesController.php
1 month ago
DependencyDetection.php
1 week ago
InboxNotifications.php
2 years ago
Installer.php
2 months ago
Library.php
2 years ago
Options.php
2 years ago
Package.php
1 year ago
QueryFilters.php
1 week ago
TemplateOptions.php
1 year ago
QueryFilters.php
151 lines
| 1 | <?php |
| 2 | declare( strict_types = 1 ); |
| 3 | |
| 4 | namespace Automattic\WooCommerce\Blocks; |
| 5 | |
| 6 | use Automattic\WooCommerce\Internal\ProductFilters\FilterDataProvider; |
| 7 | use Automattic\WooCommerce\Internal\ProductFilters\QueryClauses; |
| 8 | |
| 9 | /** |
| 10 | * Process the query data for filtering purposes. |
| 11 | * |
| 12 | * Do not delete this file until https://github.com/woocommerce/woocommerce/issues/52311 is resolved. |
| 13 | * The upgrade flow can still load stale autoloader manifests that point to this file. |
| 14 | * |
| 15 | * @deprecated 11.0.0 Use QueryClauses and FilterDataProvider instead. This class will be removed in WooCommerce 12.0. |
| 16 | */ |
| 17 | final class QueryFilters { |
| 18 | /** |
| 19 | * Constructor. |
| 20 | * |
| 21 | * @deprecated 11.0.0 Use QueryClauses and FilterDataProvider instead. This class will be removed in WooCommerce 12.0. |
| 22 | */ |
| 23 | public function __construct() { |
| 24 | wc_deprecated_function( |
| 25 | __CLASS__, |
| 26 | '11.0.0', |
| 27 | QueryClauses::class . ' and ' . FilterDataProvider::class . '. This class will be removed in WooCommerce 12.0' |
| 28 | ); |
| 29 | } |
| 30 | |
| 31 | /** |
| 32 | * Initialization method. |
| 33 | * |
| 34 | * @internal |
| 35 | */ |
| 36 | public function init() { |
| 37 | wc_deprecated_function( |
| 38 | __METHOD__, |
| 39 | '11.0.0', |
| 40 | QueryClauses::class . ' and ' . FilterDataProvider::class . '. This class will be removed in WooCommerce 12.0' |
| 41 | ); |
| 42 | } |
| 43 | |
| 44 | /** |
| 45 | * Filter the posts clauses of the main query to support global filters. |
| 46 | * |
| 47 | * @param array $args Query args. |
| 48 | * @param \WP_Query $wp_query WP_Query object. |
| 49 | * @return array |
| 50 | */ |
| 51 | public function main_query_filter( $args, $wp_query ) { |
| 52 | wc_deprecated_function( |
| 53 | __METHOD__, |
| 54 | '11.0.0', |
| 55 | QueryClauses::class . '::add_query_clauses_for_main_query. This class will be removed in WooCommerce 12.0' |
| 56 | ); |
| 57 | |
| 58 | return wc_get_container()->get( QueryClauses::class )->add_query_clauses_for_main_query( $args, $wp_query ); |
| 59 | } |
| 60 | |
| 61 | /** |
| 62 | * Add conditional query clauses based on the filter params in query vars. |
| 63 | * |
| 64 | * @param array $args Query args. |
| 65 | * @param \WP_Query $wp_query WP_Query object. |
| 66 | * @return array |
| 67 | */ |
| 68 | public function add_query_clauses( $args, $wp_query ) { |
| 69 | wc_deprecated_function( |
| 70 | __METHOD__, |
| 71 | '11.0.0', |
| 72 | QueryClauses::class . '::add_query_clauses. This class will be removed in WooCommerce 12.0' |
| 73 | ); |
| 74 | |
| 75 | return wc_get_container()->get( QueryClauses::class )->add_query_clauses( $args, $wp_query ); |
| 76 | } |
| 77 | |
| 78 | /** |
| 79 | * Get price data for current products. |
| 80 | * |
| 81 | * @param array $query_vars The WP_Query arguments. |
| 82 | * @return object |
| 83 | */ |
| 84 | public function get_filtered_price( $query_vars ) { |
| 85 | wc_deprecated_function( |
| 86 | __METHOD__, |
| 87 | '11.0.0', |
| 88 | FilterDataProvider::class . '::with( ' . QueryClauses::class . ' )->get_filtered_price. This class will be removed in WooCommerce 12.0' |
| 89 | ); |
| 90 | |
| 91 | $container = wc_get_container(); |
| 92 | |
| 93 | return (object) $container->get( FilterDataProvider::class )->with( $container->get( QueryClauses::class ) )->get_filtered_price( $query_vars ); |
| 94 | } |
| 95 | |
| 96 | /** |
| 97 | * Get stock status counts for the current products. |
| 98 | * |
| 99 | * @param array $query_vars The WP_Query arguments. |
| 100 | * @return array status=>count pairs. |
| 101 | */ |
| 102 | public function get_stock_status_counts( $query_vars ) { |
| 103 | wc_deprecated_function( |
| 104 | __METHOD__, |
| 105 | '11.0.0', |
| 106 | FilterDataProvider::class . '::with( ' . QueryClauses::class . ' )->get_stock_status_counts. This class will be removed in WooCommerce 12.0' |
| 107 | ); |
| 108 | |
| 109 | $container = wc_get_container(); |
| 110 | |
| 111 | return $container->get( FilterDataProvider::class )->with( $container->get( QueryClauses::class ) )->get_stock_status_counts( $query_vars, array_keys( wc_get_product_stock_status_options() ) ); |
| 112 | } |
| 113 | |
| 114 | /** |
| 115 | * Get rating counts for the current products. |
| 116 | * |
| 117 | * @param array $query_vars The WP_Query arguments. |
| 118 | * @return array rating=>count pairs. |
| 119 | */ |
| 120 | public function get_rating_counts( $query_vars ) { |
| 121 | wc_deprecated_function( |
| 122 | __METHOD__, |
| 123 | '11.0.0', |
| 124 | FilterDataProvider::class . '::with( ' . QueryClauses::class . ' )->get_rating_counts. This class will be removed in WooCommerce 12.0' |
| 125 | ); |
| 126 | |
| 127 | $container = wc_get_container(); |
| 128 | |
| 129 | return $container->get( FilterDataProvider::class )->with( $container->get( QueryClauses::class ) )->get_rating_counts( $query_vars ); |
| 130 | } |
| 131 | |
| 132 | /** |
| 133 | * Get attribute counts for the current products. |
| 134 | * |
| 135 | * @param array $query_vars The WP_Query arguments. |
| 136 | * @param string $attribute_to_count Attribute taxonomy name. |
| 137 | * @return array termId=>count pairs. |
| 138 | */ |
| 139 | public function get_attribute_counts( $query_vars, $attribute_to_count ) { |
| 140 | wc_deprecated_function( |
| 141 | __METHOD__, |
| 142 | '11.0.0', |
| 143 | FilterDataProvider::class . '::with( ' . QueryClauses::class . ' )->get_attribute_counts. This class will be removed in WooCommerce 12.0' |
| 144 | ); |
| 145 | |
| 146 | $container = wc_get_container(); |
| 147 | |
| 148 | return $container->get( FilterDataProvider::class )->with( $container->get( QueryClauses::class ) )->get_attribute_counts( $query_vars, $attribute_to_count ); |
| 149 | } |
| 150 | } |
| 151 |