WooCommerce: Cómo desactivar o hacer de solo lectura campos de la página de editar cuenta

Si quieres quitar, desactivar o hacer que ciertos campos de la página de WooCommerce de editar cuenta sean de solo lectura aquí te explico cómo hacerlo fácilmente.

Cómo hacer de solo lectura campos de la página de editar cuenta

Si quieres que aparezcan ciertos campos pero que no se puedan modificar después de que el cliente añadió sus datos inicialmente, o solo quieres poder modificarlos tú en la administración, sea por el motivo que sea, puedes hacerlo con un código como este:

//Campos solo lectura en editar cuenta
add_filter( 'woocommerce_billing_fields', 'readonly_billing_account_fields', 25, 1 );
function readonly_billing_account_fields ( $billing_fields ) {
    // Solo la dirección de facturación para usuarios conectados
    if( is_user_logged_in() && is_account_page() ){

        $readonly = ['readonly' => 'readonly'];

        $billing_fields['billing_first_name']['custom_attributes'] = $readonly;
        $billing_fields['billing_last_name']['custom_attributes'] = $readonly;
        $billing_fields['billing_email']['custom_attributes'] = $readonly;
    }
    return $billing_fields;
}

En este ejemplo hemos hecho de solo lectura los campos de nombre, apellidos y correo electrónico.

El código lo puedes añadir al archivo functions.php del tema activo o a tu plugin para personalizaciones.

Cómo ocultar campos de la página de editar cuenta

Si directamente prefieres que no se muestren esos campos, los mismos que en el ejemplo anterior, el código sería de este otro modo:

//Ocultar campos de editar cuenta
add_filter( 'woocommerce_billing_fields', 'remove_billing_account_fields', 25, 1 );
function remove_billing_account_fields ( $billing_fields ) {
    // Solo la dirección de facturación para usuarios conectados
    if( is_user_logged_in() && is_account_page() ){
        unset($billing_fields['billing_first_name']);
        unset($billing_fields['billing_last_name']);
        unset($billing_fields['billing_email']);
    }
    return $billing_fields;
}

Otro posible código para conseguir lo mismo, algo más sencillo, sería este:

//Ocultar campos de editar cuenta
function my_remove_checkout_fields($fields) {
    unset( $fields ['billing'] ['billing_first_name'] );
    unset( $fields ['billing'] ['billing_last_name'] );
    unset( $fields ['billing'] ['billing_email'] );

    // Any other fields you want to unset...

    return $fields;
}

add_filter( 'woocommerce_checkout_fields', 'my_remove_checkout_fields' );

Fuente y más documentación y ejemplos aquí.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(2 votos, promedio: 4.5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

1 comentario en “WooCommerce: Cómo desactivar o hacer de solo lectura campos de la página de editar cuenta”

  1. Javier Millar

    Me gustaria tener un campo checkbox o radio que active la visualizacion de otros campos en el ckeckout de woocommerce…

Deja un comentario

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

 

Ir arriba Ir al contenido