WC_Shortcode_Checkout::order_received()
Show the thanks page.
Method of the class: WC_Shortcode_Checkout{}
Hooks from the method
Return
null
. Nothing (null).
Usage
$result = WC_Shortcode_Checkout::order_received( $order_id );
- $order_id(int)
- Order ID.
WC_Shortcode_Checkout::order_received() WC Shortcode Checkout::order received code WC 9.4.2
private static function order_received( $order_id = 0 ) { $order = false; // Get the order. $order_id = apply_filters( 'woocommerce_thankyou_order_id', absint( $order_id ) ); $order_key = apply_filters( 'woocommerce_thankyou_order_key', empty( $_GET['key'] ) ? '' : wc_clean( wp_unslash( $_GET['key'] ) ) ); // WPCS: input var ok, CSRF ok. if ( $order_id > 0 ) { $order = wc_get_order( $order_id ); if ( ( ! $order instanceof WC_Order ) || ! hash_equals( $order->get_order_key(), $order_key ) ) { $order = false; } } // Empty awaiting payment session. unset( WC()->session->order_awaiting_payment ); // In case order is created from admin, but paid by the actual customer, store the ip address of the payer // when they visit the payment confirmation page. if ( $order && $order->is_created_via( 'admin' ) ) { $order->set_customer_ip_address( WC_Geolocation::get_ip_address() ); $order->save(); } // Empty current cart. wc_empty_cart(); // If the specified order ID was invalid, we still render the default order received page (which will simply // state that the order was received, but will not output any other details: this makes it harder to probe for // valid order IDs than if we state that the order ID was not recognized). if ( ! $order ) { wc_get_template( 'checkout/thankyou.php', array( 'order' => false ) ); return; } /** * Indicates if known (non-guest) shoppers need to be logged in before we let * them access the order received page. * * @param bool $verify_known_shoppers If verification is required. * * @since 8.4.0 */ $verify_known_shoppers = apply_filters( 'woocommerce_order_received_verify_known_shoppers', true ); $order_customer_id = $order->get_customer_id(); // For non-guest orders, require the user to be logged in before showing this page. if ( $verify_known_shoppers && $order_customer_id && get_current_user_id() !== $order_customer_id ) { wc_get_template( 'checkout/order-received.php', array( 'order' => false ) ); wc_print_notice( esc_html__( 'Please log in to your account to view this order.', 'woocommerce' ), 'notice' ); woocommerce_login_form( array( 'redirect' => $order->get_checkout_order_received_url() ) ); return; } // For guest orders, request they verify their email address (unless we can identify them via the active user session). if ( self::guest_should_verify_email( $order, 'order-received' ) ) { wc_get_template( 'checkout/order-received.php', array( 'order' => false ) ); wc_get_template( 'checkout/form-verify-email.php', array( 'failed_submission' => ! empty( $_POST['email'] ), // phpcs:ignore WordPress.Security.NonceVerification.Missing 'verify_url' => $order->get_checkout_order_received_url(), ) ); return; } // Otherwise, display the thank you (order received) page. wc_get_template( 'checkout/thankyou.php', array( 'order' => $order ) ); }