WooCommerce: sincronizar el nombre de facturación y el nombre de usuario de WP

Cuando alguien realiza un pedido a través del pago de WooCommerce, hay una función ( process_customer ) que guarda el nombre y apellido del pago en la dirección de facturación del cliente (WooCommerce). La misma función también sobrescribe el mismo nombre y apellido del usuario de WP (WordPress).

Lo mismo sucede cuando alguien actualiza la dirección de facturación a través de la pestaña de dirección de edición de Mi cuenta. Hay una función de WooCommerce ( save_address ) que copia el nombre y apellido de facturación al nombre y apellido del usuario de WP.

Uno pensaría que eso fue suficiente para mantener sincronizados los nombres de facturación y los nombres de usuario de WP, bueno, no. También puede actualizar el nombre y apellido de facturación desde la página de edición de perfil del usuario (panel de WP) . En tal caso, el nombre y apellido del usuario de WP NO se actualizan, y la facturación y los nombres de usuario no están sincronizados.

Hoy, estudiaremos algo de código para que eso suceda, para que nunca más tengas que preocuparte por las inconsistencias. ¡Disfrutar!

Supongamos que mi nombre es Lawrence Melogli. El usuario de WP y el usuario de facturación están sincronizados. Pero si edito la dirección de facturación a través de mi página de perfil de usuario de WP e ingreso "Rodolfo" como primer nombre, el usuario de WP permanece sin cambios. En este artículo, lo arreglaremos.

Fragmento de código de PHP: sincronizar el nombre y apellido de facturación con el nombre y apellido del usuario @ WP Editar perfil de usuario

/**
 * @snippet       Copy Billing to User @ WP User Edit Page
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @testedwith    WooCommerce 6
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */
 
add_filter( 'pre_user_first_name', 'bbloomer_sync_user_edit_profile_edit_billing_first_name' );
 
function bbloomer_sync_user_edit_profile_edit_billing_first_name( $first_name ) {
    if ( isset( $_POST['billing_first_name'] ) ) {
        $first_name = $_POST['billing_first_name'];
    }
    return $first_name;
}
 
add_filter( 'pre_user_last_name', 'bbloomer_sync_user_edit_profile_edit_billing_last_name' );
 
function bbloomer_sync_user_edit_profile_edit_billing_last_name( $last_name ) {
    if ( isset( $_POST['billing_last_name'] ) ) {
        $last_name = $_POST['billing_last_name'];
    }
    return $last_name;
}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir