query_vars['adscaleLastOrder'] = sanitize_key( wp_unslash( $_GET['adscaleLastOrder'] ) ); } // make sure endpoint request if ( ! isset( $wp->query_vars['adscaleLastOrder'] ) ) { return; } try { ob_start(); Helper::nocache_headers(); // Check Request (Guards) self::checkRequest(); ob_end_clean(); // Handle Request self::handleRequest(); // Default error Helper::send_response_json_error( self::makeErrorBody() ); } catch ( ServiceApiException $ex ) { Helper::send_response_json_error( self::makeErrorBody( $ex->getApiErrorCode(), $ex->getMessage(), $ex->getApiErrorDetails() ) ); } catch ( \Exception $ex ) { Helper::send_response_json_error( self::makeErrorBody( $ex->getCode(), $ex->getMessage() ) ); } } /** * The set of checks * * @throws ServiceApiException */ public static function checkRequest() { // Wrong HTTP Method guard if ( ! self::checkHTTPMethod() ) { Helper::send_response_formatted_error( self::makeErrorBody('S001','Unsupported method', Helper::get_current_http_method() ) ); } } public static function handleRequest() { $response = self::getLastOrderSimplified(); Helper::send_response_json_success( $response ); } public static function getLastOrderSimplified() { $order_id = self::getLastOrderIdFromCookie(); $order_value = Helper::get_order_value( $order_id ); $order = function_exists( 'wc_get_order' ) ? wc_get_order( $order_id ) : false; $order_currency = is_object( $order ) ? $order->get_currency() : null; return [ 'order_id' => $order_id ? $order_id : '', 'order_value' => is_numeric( $order_value ) ? $order_value : '', 'order_currency' => $order_currency ? $order_currency : '', ]; } public static function getLastOrderIdFromCookie() { return Helper::get_cookie('adscale__last_order_id', '', 'sanitize_text_field'); } }