0 0
Read Time:53 Second

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');
}
}
}
Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %