82 lines
1.6 KiB
PHP
82 lines
1.6 KiB
PHP
<?php
|
|
/**
|
|
* Discount Query Class.
|
|
*
|
|
* @package EDD
|
|
* @subpackage Database\Queries
|
|
* @copyright Copyright (c) 2018, Easy Digital Downloads, LLC
|
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
|
* @since 3.0
|
|
*/
|
|
namespace EDD\Compat;
|
|
|
|
use EDD\Database\Queries as Queries;
|
|
|
|
// Exit if accessed directly
|
|
defined( 'ABSPATH' ) || exit;
|
|
|
|
/**
|
|
* Class used for querying discounts.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @see \EDD\Database\Queries\Adjustment::__construct() for accepted arguments.
|
|
*/
|
|
class Discount_Query extends Queries\Adjustment {
|
|
|
|
/**
|
|
* Callback function for turning IDs into objects
|
|
*
|
|
* @since 3.0
|
|
* @access protected
|
|
* @var mixed
|
|
*/
|
|
protected $item_shape = 'EDD_Discount';
|
|
|
|
/**
|
|
* Swap out types in a query.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param array $query Array of query arguments
|
|
* @return array
|
|
*/
|
|
public function query( $query = array() ) {
|
|
return parent::query( $this->swap_types( $query ) );
|
|
}
|
|
|
|
/**
|
|
* Swap out types in an item.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param array $item Array of item arguments
|
|
* @return array
|
|
*/
|
|
public function filter_item( $item = array() ) {
|
|
return parent::filter_item( $this->swap_types( $item ) );
|
|
}
|
|
|
|
/**
|
|
* Swap out the type arguments.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param array $args
|
|
* @return array
|
|
*/
|
|
private function swap_types( $args = array() ) {
|
|
|
|
// Switch `type` to `amount_type`
|
|
if ( empty( $args['amount_type'] ) && ! empty( $args['type'] ) ) {
|
|
$args['amount_type'] = $args['type'];
|
|
}
|
|
|
|
// Force `type` to `discount`
|
|
$args['type'] = 'discount';
|
|
|
|
// Return swapped arguments
|
|
return $args;
|
|
}
|
|
}
|