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!







AVISO: Esta publicación hace 3 años o más que no se actualiza. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado. ¡Ah! ¿te sirvió?, pues entonces nada :-)
bueno la verdad a mi no me ha servido brother, tengo semanas buscando como cambiar la palabra opcional del campo de telefono en el checkout de mi pagina de wordpress y la verdad me estoy volviendo loco he leido muchos foros y nincuno dice nada a ciertas , y sin envargo he chequeado ya en personalizar he puesto la opcion obligatorio pero sigue saliendo campo opcional a la hora del checkout y tambien si trato de procesar algo y no pongo el cell pasa sin problemas o sea que no cumple con que ese campo es obligatorio , si me pudieras decir o tienes idea como puedo hacer que el telefono sea obligatorio y que se quitara la palabra opcinal no sabeis lo agradecido que estaria contigo un saludo mi email es [email protected]