Cómo hacer obligatorios u opcionales los campos al finalizar compra en WooCommerce

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.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(3 votos, promedio: 5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
  • Responsable: Fernando Tellado ([email protected])
  • Fin del tratamiento: Moderación de comentarios para evitar spam
  • Legitimación: Tu consentimiento
  • Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
  • Derechos: Acceso, rectificación, portabilidad, olvido

 

Ir arriba Ir al contenido