Automattic\WooCommerce\Internal\Orders
OrderActionsRestController::send_order_details
Handle the POST /orders/{id}/actions/send_order_details.
Method of the class: OrderActionsRestController{}
Hooks from the method
Returns
Array|WP_Error. Request response or an error.
Usage
// protected - for code of main (parent) or child class $result = $this->send_order_details( $request );
- $request(WP_REST_Request) (required)
- The received request.
OrderActionsRestController::send_order_details() OrderActionsRestController::send order details code WC 10.4.3
protected function send_order_details( WP_REST_Request $request ) {
$order = wc_get_order( $request->get_param( 'id' ) );
$email = $request->get_param( 'email' );
$force = wp_validate_boolean( $request->get_param( 'force_email_update' ) );
$messages = array();
if ( $email ) {
$message = $this->maybe_update_billing_email( $order, $email, $force );
if ( is_wp_error( $message ) ) {
return $message;
}
$messages[] = $message;
}
if ( ! is_email( $order->get_billing_email() ) ) {
return new WP_Error(
'woocommerce_rest_missing_email',
__( 'Order does not have an email address.', 'woocommerce' ),
array( 'status' => 400 )
);
}
// phpcs:disable WooCommerce.Commenting.CommentHooks.MissingSinceComment
/** This action is documented in includes/admin/meta-boxes/class-wc-meta-box-order-actions.php */
do_action( 'woocommerce_before_resend_order_emails', $order, 'customer_invoice' );
WC()->payment_gateways();
WC()->shipping();
WC()->mailer()->customer_invoice( $order );
$user_agent = esc_html( $request->get_header( 'User-Agent' ) );
$messages[] = sprintf(
// translators: %s is an email address.
esc_html__( 'Order details sent to %s.', 'woocommerce' ),
esc_html( $order->get_billing_email() )
);
$messages = array_filter( $messages );
foreach ( $messages as $message ) {
$order->add_order_note(
$message,
false,
true,
array(
'user_agent' => $user_agent ? $user_agent : 'REST API',
'note_title' => __( 'Order confirmation email', 'woocommerce' ),
'note_group' => OrderNoteGroup::EMAIL_NOTIFICATION,
)
);
}
// phpcs:disable WooCommerce.Commenting.CommentHooks.MissingSinceComment
/** This action is documented in includes/admin/meta-boxes/class-wc-meta-box-order-actions.php */
do_action( 'woocommerce_after_resend_order_email', $order, 'customer_invoice' );
return array(
'message' => implode( ' ', $messages ),
);
}