Índice de contenidos
WooCommerce, eliminar campos formulario no necesarios para la venta
OBJETIVO: WooCommerce, eliminar campos formulario de envío y facturación en tiendas WooCommerce cuya venta es de productos virtuales.
En el desarrollo de tiendas online que sólo venden productos de descarga, modificar el formulario de envío y facturación que tiene que rellenar el cliente y quitar todos los campos que no son necesarios para la venta del artículo, aporta ventajas para el cliente:
1- el proceso de compra es más rápido
2- el proceso de compra es más sencillo
3- ahorro de almacenamiento de campos innecesarios que no 4- me aportan ninguna información.
5- políticas de datos más sencilla
Pasos para eliminar campos del formulario de envío en WooCommerce
Vamos a trabajar con el archivo functions.php, como siempre te recomiendo que trabajes con un tema hijo para evitar que la función que vamos a crear se borre al actualizar el tema, si necesitas ayuda con los temas hijos puedes consultar el siguiente artículo para crear un tema hijo con plugin o el siguiente en el que se crea el tema hijo con estructura de archivos.
Paso 1 – abrir archivo functions.php
1. Localizamos la carpeta themes en el árbol de archivos wordpress;
/tuweb/wp-content/themes/child_theme o
/tuweb/wp-content/themes/your_theme
2. Abrimos el archivo functions.php
Paso 2 – copia y pega el siguiente código
Copia el siguiente código dentro del archivo
// quitar campos del formulario de dirección de envío add_filter( 'woocommerce_default_address_fields' , 'custom_override_default_address_fields' ); function custom_override_default_address_fields( $address_fields ) { unset( $address_fields['postcode'] ); unset( $address_fields['company'] ); unset( $address_fields['address_1'] ); unset( $address_fields['address_2'] ); unset( $address_fields['city'] ); unset( $address_fields['country'] ); unset( $address_fields['state'] ); return $address_fields; }
Paso 3 – guardar cambios
Guarda el archivo functions.php
Explicación del código «WooCommerce eliminar campos formulario»
add_filter( 'woocommerce_default_address_fields' , 'custom_override_default_address_fields' );
En esta línea estamos creado un filtro, es decir modificando la función de woocommerce_default_address_fields con la nueva función que hemos llamado custom_override_default_address_fields.
Definimos la nueva función:
function custom_override_default_address_fields( $address_fields ) {
Hacemos uso de la función de php unset (borrar); y borramos el código postal, nombre empresa, dirección…
unset( $address_fields[‘postcode’] );
OJO: al crear el filtro para woocommerce_default_address_fields estamos accediendo a campos del formulario de dirección de envío y facturación, es decir estamos borrando los distintos campos en ambos formularios.
Si necesitas más información, puedes revisar los documentos de Woocommerce, donde desarrollan este tipo de funciones para borrar, modificar y añadir campos en los formularios de envío y facturación.
Te puede interesar:
WooCommerce – Cómo cambiar automáticamente el estado de un pedido a Completado
Hola Nerea, buen post, va al grano y es muy práctico. Saludos!
Muchas gracias Gustavo, feliz día y hasta la próxima!
Hola Nerea, buen post.
Pero que pasa si vendo productos físicos y virtuales?
Cómo hacer que cuando suba un producto y elijo el check en «virtual* se elimine dichos campos? pero si subo un producto físico, no se elimine lo de dirección, CP, país, etc.
Saludos
Hola Andrés, dentro de la función puedes poner un if que si el tipo producto es virtual, entonces elimine los campos.
Saludos,
Como podría quitar todo el campo del pedido, no quiero que me aparezca en la factura, es que ahora sale como una cajita, con el producto, precio unitario, cantidad, etc…
Muchas gracias!!!
Buenos días Leonarda, necesito más información para poder ayudarte:
1.- ¿Cómo emites las facturas? utilizas algún plugin o te refieres a las facturas que envía mediante email WooCommerce.
2.- Comprueba la normativa de tu país referente a los campos obligatorios de una factura, por ejemplo en España los campos de producto y precio son obligatorios.
Ya me cuentas…