File "class-rest-orders-controller.php"

Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/kliken-marketing-for-google/classes/class-rest-orders-controller.php
File size: 1.54 KB
MIME-type: text/x-php
Charset: utf-8

<?php
/**
 * REST controller for getting orders, extending of what WooCommerce
 * does not provide at the moment.
 *
 * @package Kliken Marketing for Google
 */

namespace Kliken\WcPlugin;

defined( 'ABSPATH' ) || exit;

/**
 * REST API Orders controller class.
 *
 * @extends \WC_REST_Orders_Controller
 */
class REST_Orders_Controller extends \WC_REST_Orders_Controller {
	/**
	 * Endpoint namespace.
	 *
	 * @var string
	 */
	protected $namespace = 'wc-kliken/v1';

	/**
	 * Register the routes for products.
	 */
	public function register_routes() {
		register_rest_route(
			$this->namespace,
			'/orders/modified',
			[
				[
					'methods'             => \WP_REST_Server::READABLE,
					'callback'            => [ $this, 'get_items' ],
					'permission_callback' => [ $this, 'get_items_permissions_check' ],
					'args'                => $this->get_collection_params(),
				],
			]
		);
	}

	/**
	 * Prepare objects query to get modified orders.
	 *
	 * @since  3.0.0
	 * @param  \WP_REST_Request $request Full details about the request.
	 * @return array
	 */
	protected function prepare_objects_query( $request ) {
		$args = parent::prepare_objects_query( $request );

		// Reset the date query to look up post_modified column instead.
		if ( ! empty( $args['date_query'] ) ) {
			foreach ( $args['date_query'] as $key => $query ) {
				if ( ! isset( $args['date_query'][ $key ]['column'] ) ) {
					continue;
				}

				$args['date_query'][ $key ]['column'] = $request['dates_are_gmt']
					? 'post_modified_gmt'
					: 'post_modified';
			}
		}

		return $args;
	}
}