Automattic\WooCommerce\Internal\ReceiptRendering
ReceiptRenderingRestController::create_order_receipt
Handle the POST /orders/id/receipt:
Return the data for a receipt if it exists, or create a new receipt and return its data otherwise.
Optional query string arguments:
expiration_date: formatted as yyyy-mm-dd. expiration_days: a number, 0 is today, 1 is tomorrow, etc. force_new: defaults to false, if true, create a new receipt even if one already exists for the order.
If neither expiration_date nor expiration_days are supplied, the default is expiration_days = 1.
Method of the class: ReceiptRenderingRestController{}
No Hooks.
Returns
Array|WP_Error. Request response or an error.
Usage
$ReceiptRenderingRestController = new ReceiptRenderingRestController(); $ReceiptRenderingRestController->create_order_receipt( $request );
- $request(WP_REST_Request) (required)
- The received request.
ReceiptRenderingRestController::create_order_receipt() ReceiptRenderingRestController::create order receipt code WC 10.4.3
public function create_order_receipt( WP_REST_Request $request ) {
$expiration_date =
$request->get_param( 'expiration_date' ) ??
gmdate( 'Y-m-d', strtotime( "+{$request->get_param('expiration_days')} days" ) );
$order_id = $request->get_param( 'id' );
$filename = wc_get_container()->get( ReceiptRenderingEngine::class )->generate_receipt( $order_id, $expiration_date, $request->get_param( 'force_new' ) );
return is_null( $filename ) ?
new WP_Error( 'woocommerce_rest_not_found', __( 'Order not found', 'woocommerce' ), array( 'status' => 404 ) ) :
$this->get_response_for_file( $filename );
}