// Funzione per la verifica del campo codice fiscale partita iva
function isCodiceFiscale($valore) {
$espressione = "^[a-z]{6}[0-9]{2}[a-z][0-9]{2}[a-z][0-9]{3}[a-z]$";
if (eregi ( $espressione, $valore )) {
return true;
}
return false;
}
//funzione per il controllo della partita iva
function is_partitaiva($valore){
$espressione = "^[0-9]{11}$";
if (eregi ( $espressione, $valore )) {
return true;
}
return false;
}
// aggiunge i campi al form di registrazione
function aggiungi_campi() {
$piva = (! empty ( $_POST ['piva'] )) ? trim ( $_POST ['piva'] ) : '';
$cf = (! empty ( $_POST ['cf'] )) ? trim ( $_POST ['cf'] ) : '';
//stampo nel form
echo"
<p>
<label for='piva_cf'>Partita Iva<br /> <input
type='text' name='piva' id='cf' class='input'
value= '$piva' />
</label>
</p>
<p>
<label for='piva_cf'>Codice Fiscale<br /> <input
type='text' name='cf' id='cf' class='input'
value='$cf' />
</label>
</p>
";
}
add_action ( 'register_form', 'aggiungi_campi' );
// Verifica i valori inseriti nei campi
function verifica_campi($errors, $sanitized_user_login, $user_email) {
$piva = $_POST ["piva"];
$cf = $_POST ["cf"];
if (empty ( $piva ) AND empty ($cf)) {
$errors->add ( 'piva_cf_errore', '<strong>ERRORE</strong>: Almeno un campo "Partita Iva/Codice fiscale" è obbligatorio' );
} else {
if(!empty($piva)){
$valid_piva = is_partitaiva ( $_POST ['piva_cf'] );
}
if(!empty($cf)){
$valid_codice_fiscale = isCodiceFiscale ( $_POST ['cf'] );
}
if ((! $valid_codice_fiscale) && (! $valid_piva)) {
$errors->add ( 'piva_cf_errore', '<strong>ERRORE</strong>: I dati inseriti nel campo "Partita Iva/Codice fiscale" non sono validi' );
}
}
return $errors;
}
add_filter ( 'registration_errors', 'verifica_campi', 10, 3 );
// Salva i dati del form di registrazione
function salva_dati($user_id) {
if (! empty ( $_POST ['cf'] ) OR ! empty ( $_POST ['piva'] ) ) {
if(! empty ( $_POST ['cf'] )){
update_usermeta ( $user_id, 'c_f', trim ( $_POST ['cf'] ) );
}
if(! empty ( $_POST ['piva'] )){
update_usermeta( $user_id, 'p_iva', trim ( $_POST ['piva'] ) );
}
}
}
add_action ( 'user_register', 'salva_dati' );