Por diversos motivos, a veces no es posible hacer fácilmente que todos o algunos campos de finalizar compra sean obligatorios u opcionales en WooCommerce.
Bien porque el tema bloquea esta personalización, o porque algún plugin ha interferido con esta característica por defecto de WooCommerce, la realidad es que hay ocasiones en que no puedes obligar a que sean obligatorios u opcionales alguno o todos los campos al finalizar compra tus clientes.
La solución pasa por forzar a que estos campos sean obligatorios u opcionales mediante un gancho con el nivel máximo de prioridad, por si el motivo fuese un plugin que ya la usase previamente y ese fuese el culpable.
El código es así:
/** Cambiar estado obligatorio-opcional campos de facturación * true = obligatorio * false = opcional */ add_filter('woocommerce_billing_fields', 'force_billing_fields', 1000, 1); function force_billing_fields($fields) { $fields['billing_first_name']['required'] = false; //Nombre $fields['billing_last_name']['required'] = false; //Apellidos $fields['billing_email']['required'] = false; //Email $fields['billing_phone']['required'] = false; //Teléfono return $fields; } /** Otros campos de facturación * true = obligatorio * false = opcional */ add_filter( 'woocommerce_default_address_fields', 'personalizar_campos_extra', 1000, 1 ); function personalizar_campos_extra( $address_fields ) { $address_fields['company']['required'] = false; //Empresa $address_fields['address_1']['required'] = false; //Dirección $address_fields['country']['required'] = false; //País $address_fields['city']['required'] = false; //Ciudad $address_fields['state']['required'] = false; //Provincia $address_fields['postcode']['required'] = false; //Código postal return $address_fields; }
En el código de ejemplo he optado por hacer todos los campos opcionales (false
) pero puedes cambiar fácilmente simplemente cambiando a true
el que quieras que sea obligatorio.
Debes añadir estos códigos al final del archivo functions.php
del tema (hijo a ser posible) activo o a tu plugin de personalizaciones.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!