Validar un campo como RUT en woocommerce checkout Validar un campo como RUT en woocommerce checkout

Validar un campo como RUT en woocommerce checkout

Solo debes considerar cambiar el nombre de tu field, en el post data.

// Validar Rut chileno en el check out de WooCommerce
add_action('woocommerce_after_checkout_validation', 'validar_rut_chileno');

function validar_rut_chileno($posted_data) {
$rut = sanitize_text_field($posted_data['billing_rut']);

// Eliminar puntos y guiones del Rut
$rut = str_replace(array('.', '-'), '', $rut);

// Validar el formato del Rut
if (!preg_match('/^[0-9]{7,8}[0-9kK]$/', $rut)) {
wc_add_notice('Por favor, ingresa un Rut chileno válido.', 'error');
} else {
// Separar el número y el dígito verificador
$numero = substr($rut, 0, -1);
$dv = strtoupper(substr($rut, -1));

// Calcular el dígito verificador esperado
$suma = 0;
$factor = 2;
for ($i = strlen($numero) - 1; $i >= 0; $i--) {
$suma += $factor * $numero[$i];
$factor = $factor % 7 == 0 ? 2 : $factor + 1;
}
$dv_esperado = 11 - ($suma % 11);
$dv_esperado = $dv_esperado == 10 ? 'K' : ($dv_esperado == 11 ? '0' : $dv_esperado);

// Comparar el dígito verificador ingresado con el esperado
if ($dv != $dv_esperado) {
wc_add_notice('El Rut ingresado no es válido.', 'error');
}
}
}