Saltar al contenido

Validar campos en Checkout Woocommerce

woocommerce

En esta entrada vamos a poner el código que podemos utilizar para validar campos en Woocommerce.

En este caso vamos a validar que los campos nombre y apellidos del checkout tengan solo letras, ya que no deben de tener números, y que además estén rellenos , que no estén vacios.

add_action( 'woocommerce_after_checkout_validation', 'validate_campos_varios', 10, 2);
 
function validate_campos_varios( $fields, $errors ){
 
if ( preg_match( '/\\d/', $fields[ 'billing_first_name' ] ) || preg_match( '/\\d/', $fields[ 'billing_last_name' ] )  ){
	$errors->add( 'validation', 'Debe contener solo letras' );
			}
if ($fields[ 'billing_first_name' ]==''  ||  $fields[ 'billing_last_name' ]==''  ){
	$errors->add( 'validation', 'Nombre y Apellidos son campos obligatorio' );
			}
 
}

También se puede pedir que sean campos obligatorios para que no los tengas que validar y les obligues a rellenar los campos.

Sería así:

 
add_filter( 'woocommerce_checkout_fields' , 'mig_override_billing_fields1' ,999);
 
function mig_override_billing_fields1( $fields ) {  
 
  $fields['billing_first_name']['required'] = true;
  $fields['billing_last_name']['required'] = true;
  $fields['billing_phone']['required'] = true;   
  $fields['billing']['billing_company']['required'] = true;
  $fields['billing']['billing_address_1']['required'] = true;
  $fields['billing']['billing_address_2']['required'] = true;   
 
  return $fields;
}