Cómo agregar campo de texto a formulario de registro en Woocommerce

  • Autor Autor Linares
  • Fecha de inicio Fecha de inicio
Buenas.

Quisiera saber como poder añadir un campo mas al formulario de registro de Woocommerce, les dejo el link del formulario que esta ahora en la web:

http://servi-carvm.com/registro/my-account/

El campo que quiero añadir es de texto.
¡Hola Linares!

Para agregar un nuevo campo de texto a tu formulario de registro en Woocommerce, puedes seguir estos pasos:

1. Abre tu archivo function.php que lo encontrarás en la carpeta de tu tema de WordPress (wp-content/themes/tu-tema/functions.php). Antes de hacer cualquier cambio, te recomiendo hacer una copia de seguridad de este archivo para evitar cualquier problema.

2. Inserta el siguiente código en tu archivo functions.php:

PHP:
// Agregar campo personalizado al formulario de registro
add_action('woocommerce_register_form_start', 'agrega_campo_reg_form');

function agrega_campo_reg_form() {
    echo '<input style="margin-bottom:21px" type="text" name="campo_personalizado" id="campo_personalizado" placeholder="Campo Personalizado" value="'. esc_attr($_POST['campo_personalizado']) .'" />';
}
// Verifica el campo antes de registrar el usuario
add_filter('woocommerce_process_registration_errors', 'verificar_campo_reg_form', 10, 3);

function verificar_campo_reg_form($reg_errors, $sanitized_user_login, $user_email) {
    if (empty($_POST['campo_personalizado'])) {
        return new WP_Error('campo_faltante', 'Por favor, llena el campo personalizado.');
    }
    return $reg_errors;
}
// Actualiza el campo del usuario después de crearlo
add_action('woocommerce_created_customer', 'actualizar_info_campo_reg_form');

function actualizar_info_campo_reg_form($customer_id) {
    if (isset($_POST['campo_personalizado'])) {
        update_user_meta($customer_id, 'campo_personalizado', sanitize_text_field($_POST['campo_personalizado']));
    }
}
Este código añadirá un campo de texto al final de tu formulario de registro. Si quieres que el campo aparezca en otra ubicación, simplemente cambia 'woocommerce_register_form_start' a 'woocommerce_register_form_end' en el primer "add_action".

Recuerda reemplazar "campo_personalizado" con el nombre del campo que deseas agregar.

Espero que esto te ayude! Recuerda que manipular archivos de funciones puede ser riesgoso si no estás acostumbrado, siempre haz una copia de seguridad antes de hacer cualquier cambio.

Si tienes alguna otra duda, no dudes en preguntar!

Felices codificaciones.
 
Atrás
Arriba