Desde los ajustes de Woocommerce tienes varias opciones para crear la cuenta de usuario a tus clientes una vez hacen un pedido.
¿Porque crear una cuenta de usuario a tu cliente?
Aunque no es algo obligatorio, si es muy recomendable tanto para ti que gestionas la tienda online como para tu cliente.
Ambos tendréis un registro de los pedidos o suscripciones, y un espacio donde mostrar las compras, las facturas, etc. Por ello es tan importante crear esa cuenta de cliente (por defecto con el rol de «Customer» o cliente).
Opciones que te da Woocommerce para crear la cuenta de cliente
Lo ideal siempre que el cliente va a hacer un pedido es minimizar las fricciones en la medida de lo posible, así que es preferible pedir sólo el correo electrónico que pedir el correo, crear una contraseña…
En ese caso, deberías escoger la opción «Enviar enlace de configuración de contraseña» en Woocommerce / Ajustes / Cuentas y privacidad para que se cree la cuenta y que el cliente pueda modificar en el futuro su contraseña desde un correo que recibe al crear su cuenta.
El problema es que, aunque facilitemos el proceso de creación de la cuenta, la próxima vez que nuestro cliente quiera acceder, se encontrará perdido porque realmente no conoce su contraseña ya que aún no se ha creado.
Cada Ecommerce es distinto
Aunque pedir la contraseña a tu cliente es un paso más en el proceso, también da la sensación de que el proceso es mas fiable, ya que el cliente lo decide todo… Tu escoges.
Si finalmente decides solicitar la contraseña a tu cliente directamente en el checkout, debes dejar desmarcada la opción «Enviar enlace de configuración de contraseña«
Pero esto genera un pequeño problema, tu cliente podría equivocarse al escribir la contraseña.
Solicitar dos veces la contraseña en el Checkout
En este caso, pedir dos veces la contraseña (y que coincidan) da un plus de confianza y seguridad, pero esa opción no la tiene por defecto Woocommerce, así que la vamos a implementar con un simple código:
/* Crea el campo de validación de contraseña en la página finalizar compra */
function wc_checkout_confirm_password_validation( $checkout ) {
if ( get_option( 'woocommerce_registration_generate_password' ) == 'no' ) {
$fields = $checkout->get_checkout_fields();
$fields['account']['account_confirm_password'] = array(
'type' => 'password',
'label' => __( 'Repite la contraseña', 'woocommerce' ),
'required' => true,
'placeholder' => _x( 'Contraseña', 'placeholder', 'woocommerce' )
);
$checkout->__set( 'checkout_fields', $fields );
}
}
add_action( 'woocommerce_checkout_init', 'wc_checkout_confirm_password_validation', 10, 1 );
/* Define el mensaje de error de validación y valida la contraseña en la página de finalización de compra */
function wc_checkout_password_validation( $posted ) {
$checkout = WC()->checkout;
if ( ! is_user_logged_in() && ( $checkout->must_create_account || ! empty( $posted['createaccount'] ) ) ) {
if ( strcmp( $posted['account_password'], $posted['account_confirm_password'] ) !== 0 ) {
wc_add_notice( __( 'Las contraseñas no coinciden.', 'woocommerce' ), 'error' );
}
}
}
add_action( 'woocommerce_after_checkout_validation', 'wc_checkout_password_validation', 10, 2 );
¿Cómo se muestra dos veces la contraseña en el Checkout?
Una vez insertado el código usando Code Snippets, tu checkout mostrará el campo de contraseña por duplicado tal como se muestra en la imágen: