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;
 | 
						|
	}
 | 
						|
}
 |