Aprende en este tutorial cómo ocultar cualquier campo de la página de finalizar compra en WooCommerce para una categoría de producto específica con un sencillo snippet de código.
En un tutorial anterior te expliqué cómo puedes ocultar cualquier campo de la página para finalizar la compra en WooCommerce para un producto específico. Esto va muy bien para productos puntuales, pero si quieres que se aplique a varios puede ser más interesante ocultarlos para una (o varias) categoría(s) de producto.
Gracias al filtro woocommerce_checkout_fields
de WooCommerce puedes conseguirlo de forma sencilla.
Aquí tienes cómo hacerlo:
Snippet para ocultar un campo del checkout de WooCommerce en una categoría de producto concreta
Añade el siguiente snippet al fichero functions.php o a tu plugin de funcionalidades:
Para ver este código y los otros 2063 snippets de esta web,
identifícate o suscríbete aquí.
En este caso utilizas el filtro woocommerce_checkout_fields
junto a un condicional donde le indicas que cuando la categoría del producto sea «libros» elimine el campo de la segunda línea de la dirección (billing_user_type
).
Este campo no es uno nativo de WooCommerce sino que lo añade el plugin de Autónomos, que permite elegir entre particular o profesional para aplicar el IRPF o no. Para que veas que si conoces el nombre del campo puedes aplicarlo a cualquiera.
Te dejo el listado de campos por defecto de WooCommerce y cómo eliminarlos para que puedas personalizar el snippet de arriba a tu gusto:
// Campos de facturación
unset( $fields['billing']['billing_company'] );
unset( $fields['billing']['billing_email'] );
unset( $fields['billing']['billing_phone'] );
unset( $fields['billing']['billing_state'] );
unset( $fields['billing']['billing_first_name'] );
unset( $fields['billing']['billing_last_name'] );
unset( $fields['billing']['billing_address_1'] );
unset( $fields['billing']['billing_address_2'] );
unset( $fields['billing']['billing_city'] );
unset( $fields['billing']['billing_postcode'] );
// Campos de envío
unset( $fields['shipping']['shipping_company'] );
unset( $fields['shipping']['shipping_phone'] );
unset( $fields['shipping']['shipping_state'] );
unset( $fields['shipping']['shipping_first_name'] );
unset( $fields['shipping']['shipping_last_name'] );
unset( $fields['shipping']['shipping_address_1'] );
unset( $fields['shipping']['shipping_address_2'] );
unset( $fields['shipping']['shipping_city'] );
unset( $fields['shipping']['shipping_postcode'] );
// Otro
unset( $fields['order']['order_comments'] );
Obviamente también puedes cambiar la categoría del producto, incluso añadir varias separándolas con una coma.
Conclusión
Como ves, con unas pocas líneas de código puedes ocultar el campo que desees en la página para finalizar la compra de WooCommerce solo para una categoría de producto concreta (o varias si lo prefieres).
¿Alguna duda? Te leo en los comentarios.
Y si quieres darme una sugerencia para próximos tutoriales, déjamela en el formulario de contacto. Ventajas de ser suscriptor. 😉