¿Te has fijado que cuando un usuario registrado en tu sitio WordPress hace un pedido con un nombre diferente o cambia sus datos aparecen distintos nombres en varias partes de la web?
Seguro que te ha pasado también incluso a ti, haciendo pruebas, y empiezas a tener problemas de identidad 😀
Como bien explica Rodolfo, esto es debido a que cuando un usuario hace un pedido en una tienda online creada con WooCommerce, hay una función (process_customer
) que guarda el nombre y apellidos usados en la dirección de facturación del cliente al pagar, y esta función sobrescribe el nombre y apellidos del usuario de WordPress.
Pasa lo mismo cuando el usuario actualiza la dirección de facturación a través de la pestaña de dirección en la página de «Mi cuenta». En este caso es la función de WooCommerce save_address
la que copia el nombre y apellidos de facturación al nombre y apellido del usuario de WordPress.
Pero ahí no acaba la cosa, porque si cambia el nombre y apellidos en la página de su perfil de WordPress, resulta que no se actualizan, siguiendo sin sincronizar sus datos de usuario de WordPress con los de facturación de WooCommerce.
Vaya lío ¿no?
Menos mal que tiene fácil arreglo, con un poquito de código, que acabará con esta locura, forzando la sincronización del nombre y apellidos de los usuarios, en WordPress y WooCommerce, este:
/* Sincronizar nombre y apellidos usuarios WP y Woo */ add_filter( 'pre_user_first_name', 'ayudawp_sincronizar_nombre_usuario_wp_woo' ); function ayudawp_sincronizar_nombre_usuario_wp_woo( $first_name ) { if ( isset( $_POST['billing_first_name'] ) ) { $first_name = $_POST['billing_first_name']; } return $first_name; } add_filter( 'pre_user_last_name', 'ayudawp_sincronizar_apellidos_usuario_wp_woo' ); function ayudawp_sincronizar_apellidos_usuario_wp_woo( $last_name ) { if ( isset( $_POST['billing_last_name'] ) ) { $last_name = $_POST['billing_last_name']; } return $last_name; }
Guarda los cambios y ahora ya se sincronizarán el nombre y apellidos de usuario de WordPress y WooCommerce.
¿Dónde y cómo añado el código?
Si no sabes cómo o dónde añadir este código revisa esta sencilla guía:
Cómo y dónde pegar en WordPress códigos PHP, JS, CSS y funciones que encuentres por ahí
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Muchas gracias Fernando por el excelente contenido y explicación que es de gran ayuda. Solo tengo una consulta, sabrás si hay alguna forma en el caso que quiera configurar woocommerce para una academia online con learndash donde sean empresas que compran los cursos para los trabajadores? es decir, que haya un campo para el email de facturación del curso (que seria de la empresa) y otro campo distinto al email del alumno al que si se le abriría la cuenta en wordpress y learndash para que obtenga su certificado final de dicho curso. Cómo configurar esa separación? Muchas gracias!
Eso es ajeno a Learndash o cualquier otra cosa, deberías personalizar entonces los campos de finalizar compra para incluir los campos deseados y que se apliquen a lo que tú quieras, eligiendo que el usuario y contraseña sea el del usuario y no el del que paga.
Excelente mil gracias Fernando!!
Me salvaste la vida… de nuevo.
Gracias Fernando