| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- /**
- * Query abstraction layer functionality.
- *
- * @package WooCommerce/Abstracts
- */
- if ( ! defined( 'ABSPATH' ) ) {
- exit;
- }
- /**
- * Abstract WC Object Query Class
- *
- * Extended by classes to provide a query abstraction layer for safe object searching.
- *
- * @version 3.1.0
- * @package WooCommerce/Abstracts
- */
- abstract class WC_Object_Query {
- /**
- * Stores query data.
- *
- * @var array
- */
- protected $query_vars = array();
- /**
- * Create a new query.
- *
- * @param array $args Criteria to query on in a format similar to WP_Query.
- */
- public function __construct( $args = array() ) {
- $this->query_vars = wp_parse_args( $args, $this->get_default_query_vars() );
- }
- /**
- * Get the current query vars.
- *
- * @return array
- */
- public function get_query_vars() {
- return $this->query_vars;
- }
- /**
- * Get the value of a query variable.
- *
- * @param string $query_var Query variable to get value for.
- * @param mixed $default Default value if query variable is not set.
- * @return mixed Query variable value if set, otherwise default.
- */
- public function get( $query_var, $default = '' ) {
- if ( isset( $this->query_vars[ $query_var ] ) ) {
- return $this->query_vars[ $query_var ];
- }
- return $default;
- }
- /**
- * Set a query variable.
- *
- * @param string $query_var Query variable to set.
- * @param mixed $value Value to set for query variable.
- */
- public function set( $query_var, $value ) {
- $this->query_vars[ $query_var ] = $value;
- }
- /**
- * Get the default allowed query vars.
- *
- * @return array
- */
- protected function get_default_query_vars() {
- return array(
- 'name' => '',
- 'parent' => '',
- 'parent_exclude' => '',
- 'exclude' => '',
- 'limit' => get_option( 'posts_per_page' ),
- 'page' => 1,
- 'offset' => '',
- 'paginate' => false,
- 'order' => 'DESC',
- 'orderby' => 'date',
- 'return' => 'objects',
- );
- }
- }
|