WooCommerce: registro automático de pagos de invitados

Primero, un descargo de responsabilidad: asegúrese de que esto sea legal en su país y también de que los visitantes de su proceso de pago sepan que se convertirán en clientes registrados sin consentimiento explícito (es decir, sin marcar la casilla de verificación "crear una cuenta en este sitio").
Entonces, sí, hay una manera de convertir las compras de invitados en compras de clientes registrados. Además, hay una función ordenada de WooCommerce para agregar de forma masiva todos los pedidos de invitados anteriores a un nuevo cliente ( wc_update_new_customer_past_orders ).
Por supuesto, " Permitir que los clientes realicen pedidos sin una cuenta " debe estar habilitado en la configuración de WooCommerce; de lo contrario, no permitirá los pagos de invitados y el fragmento será irrelevante.
Entonces, aquí está la solución. ¡Disfrutar!

Fragmento de PHP: Registre automáticamente a los clientes invitados en el proceso de pago de WooCommerce (e inicie sesión mediante programación en la página de agradecimiento de WooCommerce)
/** * @snippet Register Guest Users @ WooCommerce Checkout * @how-to Get CustomizeWoo.com FREE * @author Rodolfo Melogli * @testedwith WooCommerce 6 * @donate $9 https://businessbloomer.com/bloomer-armada/ */ add_action( 'woocommerce_thankyou' , 'bbloomer_register_guests' , 9999 ); function bbloomer_register_guests( $order_id ) { $order = wc_get_order( $order_id ); $email = $order ->get_billing_email(); if ( ! email_exists( $email ) && ! username_exists( $email ) ) { $customer_id = wc_create_new_customer( $email , '' , '' , array ( 'first_name' => $order ->get_billing_first_name(), 'last_name' => $order ->get_billing_last_name(), )); if ( is_wp_error( $customer_id ) ) { throw new Exception( $customer_id ->get_error_message() ); } wc_update_new_customer_past_orders( $customer_id ); wc_set_customer_auth_cookie( $customer_id ); } else { $user = get_user_by( 'email' , $email ); wc_update_new_customer_past_orders( $user ->ID ); wc_set_customer_auth_cookie( $user ->ID ); } } |
Deja una respuesta