Hola, me gustaría que una vez una persona realiza una compra, le llegara un correo de confirmación de que se ha creado su cuenta, con su nombre de usuario y contraseña.
He configurado todo en woocomerce, cuentas y privacidad para que esto sea así, pero no le llega el correo.
He visto en esta página: https://www.webempresa.com/blog/solo-usuarios-registrados-puedan-finalizar-la-compra-en-woocommerce.html otra forma de hacerlo para que tengan que registrarse al pagar.
Me gustaría más la primera opción pero si no es posible, la segunda.
¿Cómo puedo hacerlo?
Muchas gracias.
Contenido solo visible a usuarios registrados
Hola Rebeca
Con las opciones que te indique antes cuando haga el pago se creara una cuenta
También puedes forzar a que el usuario tenga que añadir un usuario y una contraseña a la hora de hacer el pedido y esos serán los datos de acceso del usuario
.- Desmarca la Opción Al crear una cuenta, generar automáticamente un nombre de usuario para el cliente basado en su nombre, apellido o correo electrónico
Un Saludo
Pero no les llega el correo cuando les crea esa cuenta, cómo puedo hacer para que les llegue? es lo que me faltaría 🙂
Hola Rebeca.
Si que llega el Correo, lo estoy comprobando y recibo el correo de nueva cuenta con un enlace para restablecer la contraseña:
Un saludo
@pepesoler no sé cómo haces para que te llegue ese correo, yo hago un pedido de prueba y sólo llega "¡Hemos recibido tu pedido" pero no esa captura que me dices, que es lo que me gustaría que recibieran además del otro email.
Hola Rebeca.
El usuario se registra desde Mi cuenta.
Si quieres que se cree un usuario cuando hagan el pedido tienes que seleccionar Permitir a los clientes crear una cuenta al finalizar compra y Permitir a los clientes crear una cuenta en la página «Mi cuenta».
Un Saludo
esa opción la tengo marcada, las dos, pero no les llega el email al hacceer la compra 🙁
Hola Rebeca,
Envíanos un producto que podamos comprar en 0 para revisar los correos que llegan cuando el cliente procesa su compra, de esta forma podemos revisar que información se muestra.
Un Saludo
Hola Rebeca,
Veo que si se están creando las cuentas, ten en cuenta que el email tarda un poco en llegar, pero si llega de forma correcta al usuario
En este caso veo que todo funciona de forma correcta.
Un Saludo
¡Muchísimas gracias! podéis comprobarlo aquí en un producto de suscripción?
https://gadietista.com/producto/prueba/
Si aquí funciona genial, no sé por qué no consigo que me lleguen.
¡Gracias!
Hola Rebeca,
Es posible que sea el correo o algo adicional, revisa si no lo tienes en spam. En este caso no vemos nada adicional ya que en el sitio web todo funciona de forma correcta.
Un Saludo
¿os ha llegado de nuevo entonces el correo de "reestablecer contraseña de la cuenta" al hacer un pedido de suscripción?
No me ha llegado en spam a mi
Gracias!!
Hola Rebeca,
Es correcto llego el correo de forma correcta, por lo que veo todo bien.
Un Saludo
No entiendo el motivo pero lo acabo de intentar de nuevo y sigue (después de media hora) sin llegarme el email de crear una cuenta.
Además, en el producto de suscripción variable no me llega el correo ni para crear una cuenta, ni el de "pago de suscripción realizado"
Hola Rebeca.
Ok, prueba lo siguiente:
.- Accede a WooCommerce -> Ajustes -> Cuentas y privacidad
.- Desactiva la opción Permitir a los clientes crear una cuenta al finalizar compra.
.- Activa Al crear una cuenta, generar automáticamente una contraseña de cuenta
.- Añade lo siguiente en el archivo functions.php que encontrarás en wp-content -> themes -> tu_plantilla o si utilizas algún plugin para añadir código como puede ser Code Snippets
function action_woocommerce_thankyou( $order_id ) {
// Determines whether the current visitor is a logged in user.
if ( is_user_logged_in() ) return;
// Get $order object
$order = wc_get_order( $order_id );
// Get the user email from the order
$order_email = $order->get_billing_email();
// Check if there are any users with the billing email as user or email
$email = email_exists( $order_email );
$user = username_exists( $order_email );
// If the UID is null, then it's a guest checkout (new user)
if ( $user == false && $email == false ) {
// Random password with 12 chars
$random_password = wp_generate_password();
// Firstname
$first_name = $order->get_billing_first_name();
// Lastname
$last_name = $order->get_billing_last_name();
// Role
$role = 'customer';
// Create new user with email as username, newly created password and userrole
$user_id = wp_insert_user(
array(
'user_email' => $order_email,
'user_login' => $order_email,
'user_pass' => $random_password,
'first_name' => $first_name,
'last_name' => $last_name,
'role' => $role,
)
);
// Get all WooCommerce emails Objects from WC_Emails Object instance
$emails = WC()->mailer()->get_emails();
// Send WooCommerce "Customer New Account" email notification with the password
$emails['WC_Email_Customer_New_Account']->trigger( $user_id, $random_password, true );
// (Optional) WC guest customer identification
//update_user_meta( $user_id, 'guest', 'yes' );
// User's billing data
update_user_meta( $user_id, 'billing_address_1', $order->get_billing_address_1() );
update_user_meta( $user_id, 'billing_address_2', $order->get_billing_address_2() );
update_user_meta( $user_id, 'billing_city', $order->get_billing_city() );
update_user_meta( $user_id, 'billing_company', $order->get_billing_company() );
update_user_meta( $user_id, 'billing_country', $order->get_billing_country() );
update_user_meta( $user_id, 'billing_email', $order_email );
update_user_meta( $user_id, 'billing_first_name', $order->get_billing_first_name() );
update_user_meta( $user_id, 'billing_last_name', $order->get_billing_last_name() );
update_user_meta( $user_id, 'billing_phone', $order->get_billing_phone() );
update_user_meta( $user_id, 'billing_postcode', $order->get_billing_postcode() );
update_user_meta( $user_id, 'billing_state', $order->get_billing_state() );
// User's shipping data
update_user_meta( $user_id, 'shipping_address_1', $order->get_shipping_address_1() );
update_user_meta( $user_id, 'shipping_address_2', $order->get_shipping_address_2() );
update_user_meta( $user_id, 'shipping_city', $order->get_shipping_city() );
update_user_meta( $user_id, 'shipping_company', $order->get_shipping_company() );
update_user_meta( $user_id, 'shipping_country', $order->get_shipping_country() );
update_user_meta( $user_id, 'shipping_first_name', $order->get_shipping_first_name() );
update_user_meta( $user_id, 'shipping_last_name', $order->get_shipping_last_name() );
update_user_meta( $user_id, 'shipping_method', $order->get_shipping_method() );
update_user_meta( $user_id, 'shipping_postcode', $order->get_shipping_postcode() );
update_user_meta( $user_id, 'shipping_state', $order->get_shipping_state() );
// Link past orders to this newly created customer
wc_update_new_customer_past_orders( $user_id );
// Auto login
wp_set_current_user( $user_id );
wp_set_auth_cookie( $user_id );
}
}
add_action( 'woocommerce_thankyou', 'action_woocommerce_thankyou', 10, 1 );
function filter_woocommerce_thankyou_order_received_text( $str, $order ) {
// Determines whether the current visitor is a logged in user.
if ( is_user_logged_in() ) return $str;
// Get the user email from the order
$order_email = $order->get_billing_email();
// Check if there are any users with the billing email as user or email
$email = email_exists( $order_email );
$user = username_exists( $order_email );
// If the UID is null, then it's a guest checkout (new user)
if ( $user == false && $email == false ) {
// Link
$link = get_permalink( get_option( 'woocommerce_myaccount_page_id' ) );
// Format
$format_link = '<a href="' . $link . '">logged in</a>';
// Append to orginal string
$str .= sprintf( __( ' An account has been automatically created for you and you are now %s. You will receive an email about this.', 'woocommerce' ), $format_link );
}
return $str;
}
add_filter( 'woocommerce_thankyou_order_received_text', 'filter_woocommerce_thankyou_order_received_text', 10, 2 );
Revisa si con eso se soluciona y nos comentas
Un saludo