| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- /**
- * Class for parameter-based Product querying
- *
- * Args and usage: https://github.com/woocommerce/woocommerce/wiki/wc_get_products-and-WC_Product_Query
- *
- * @package WooCommerce/Classes
- * @version 3.2.0
- * @since 3.2.0
- */
- defined( 'ABSPATH' ) || exit;
- /**
- * Product query class.
- */
- class WC_Product_Query extends WC_Object_Query {
- /**
- * Valid query vars for products.
- *
- * @return array
- */
- protected function get_default_query_vars() {
- return array_merge(
- parent::get_default_query_vars(),
- array(
- 'status' => array( 'draft', 'pending', 'private', 'publish' ),
- 'type' => array_merge( array_keys( wc_get_product_types() ) ),
- 'limit' => get_option( 'posts_per_page' ),
- 'include' => array(),
- 'date_created' => '',
- 'date_modified' => '',
- 'featured' => '',
- 'visibility' => '',
- 'sku' => '',
- 'price' => '',
- 'regular_price' => '',
- 'sale_price' => '',
- 'date_on_sale_from' => '',
- 'date_on_sale_to' => '',
- 'total_sales' => '',
- 'tax_status' => '',
- 'tax_class' => '',
- 'manage_stock' => '',
- 'stock_quantity' => '',
- 'stock_status' => '',
- 'backorders' => '',
- 'sold_individually' => '',
- 'weight' => '',
- 'length' => '',
- 'width' => '',
- 'height' => '',
- 'reviews_allowed' => '',
- 'virtual' => '',
- 'downloadable' => '',
- 'category' => array(),
- 'tag' => array(),
- 'shipping_class' => array(),
- 'download_limit' => '',
- 'download_expiry' => '',
- 'average_rating' => '',
- 'review_count' => '',
- )
- );
- }
- /**
- * Get products matching the current query vars.
- *
- * @return array|object of WC_Product objects
- */
- public function get_products() {
- $args = apply_filters( 'woocommerce_product_object_query_args', $this->get_query_vars() );
- $results = WC_Data_Store::load( 'product' )->query( $args );
- return apply_filters( 'woocommerce_product_object_query', $results, $args );
- }
- }
|