query_vars['adscaleOrdersCount'] = sanitize_key( wp_unslash( $_GET['adscaleOrdersCount'] ) ); } // make sure endpoint request if ( ! isset( $wp->query_vars['adscaleOrdersCount'] ) ) { return; } try { ob_start(); // Error handler self::setErrorHandler(); Helper::nocache_headers(); // Check Request (Guards) self::checkRequest(); ob_end_clean(); // Handle Request self::handleRequest(); // Default error Helper::send_response_formatted_error( self::makeErrorBody() ); } catch ( PluginApiException $ex ) { Helper::send_response_formatted_error( self::makeErrorBody( $ex->getApiErrorCode(), $ex->getMessage(), $ex->getApiErrorDetails() ) ); } catch ( \Exception $ex ) { Helper::send_response_formatted_error( self::makeErrorBody( $ex->getCode(), $ex->getMessage() ) ); } } public static function checkRequest() { parent::checkRequest(); self::initParams(); // Start date if ( self::checkIfRequestParamExists( 'start' ) && ! self::checkParamStartFormatValid() ) { Helper::send_response_formatted_error( self::makeErrorBody('F001','Wrong format', 'start, expected DDMMYYYY' ) ); } // End date if ( self::checkIfRequestParamExists( 'end' ) && ! self::checkParamEndFormatValid() ) { Helper::send_response_formatted_error( self::makeErrorBody('F001','Wrong format', 'end, expected DDMMYYYY' ) ); } } public static function initParams() { self::$requestParams['start'] = Helper::get_post_body_data_value( 'start' ); self::$requestParams['end'] = Helper::get_post_body_data_value( 'end' ); } /** * Check date param 'start' * * @return bool */ public static function checkParamStartFormatValid() { return ! empty( self::$requestParams['start'] ) && Helper::validate_date( self::$requestParams['start'], 'dmY' ); } /** * Check date param 'end' * * @return bool is valid */ public static function checkParamEndFormatValid() { return ! empty( self::$requestParams['end'] ) && Helper::validate_date( self::$requestParams['end'], 'dmY' ); } /** * Handle API request * */ public static function handleRequest() { $args = [ 'limit' => - 1, 'return' => 'ids', ]; $start = self::$requestParams['start'] ? Helper::reformat_date( self::$requestParams['start'], 'dmY', 'Y-m-d' ) : ''; $end = self::$requestParams['end'] ? Helper::reformat_date( self::$requestParams['end'], 'dmY', 'Y-m-d' ) : ''; if ( $start && ! $end ) { $args['date_created'] = ">={$start}"; } if ( $end && ! $start ) { $args['date_created'] = "<={$end}"; } if ( $start && $end ) { $args['date_created'] = "{$start}...{$end}"; } $orders_ids = wc_get_orders( $args ); if ( ! is_array( $orders_ids ) ) { Helper::send_response_formatted_error( self::makeErrorBody('S000','Unknown error', 'Orders count error' ) ); } Helper::send_response_formatted_success( [ 'count' => count( $orders_ids ), ] ); } }