Resolvi o problema com essa action:
add_action( ‘woocommerce_after_checkout_validation’, ‘validation_checkout’, 9999, 2);
function validation_checkout( $fields, $errors ){
if( !empty( $errors->get_error_codes() ) ) {
foreach( $errors->get_error_codes() as $code ) {
$errors->remove( $code );
}
$errors->add( ‘validation’, ‘Preencha todos os campos obrigatórios para fazer o pedido!’ );
} else if ( empty( $_POST[‘billing_first_name’] ) ) {
$errors->add( ‘woocommerce_password_error’, __( ‘Nome é um campo obrigatório’ ) );
} else if ( empty( $_POST[‘billing_last_name’] ) ) {
$errors->add( ‘woocommerce_password_error’, __( ‘Sobrenome é um campo obrigatório’ ) );
} else if ( empty( $_POST[‘billing_address_1’] ) ) {
$errors->add( ‘woocommerce_password_error’, __( ‘Endere?o é um campo obrigatório’ ) );
} else if ( empty( $_POST[‘billing_city’] ) ) {
$errors->add( ‘woocommerce_password_error’, __( ‘Cidade é um campo obrigatório’ ) );
} else if ( empty( $_POST[‘billing_state’] ) ) {
$errors->add( ‘woocommerce_password_error’, __( ‘Estado é um campo obrigatório’ ) );
} else if ( empty( $_POST[‘billing_postcode’] ) ) {
$errors->add( ‘woocommerce_password_error’, __(‘CEP é um campo obrigatório’ ) );
} else if ( empty( $_POST[‘billing_phone’] ) || strlen($_POST[‘billing_phone’]) < 15 ) {
$errors->add( ‘woocommerce_password_error’, __( strlen($_POST[‘billing_phone’]) ) );
$errors->add( ‘woocommerce_password_error’, __( ‘Telefone é um campo obrigatório e tem que possuir pelo menos 15 dígitos’ ) );
}
}