Riassunto AI
Descrizione
L'azione wpforms_process_validate_number-slider esegue la validazione sul campo Number Slider quando il modulo viene inviato, prima che qualsiasi valore del campo venga sanificato.
| parametro | tipo | descrizione |
|---|---|---|
$field_id | string|int | ID del campo come stringa numerica. |
$field_submit | mixed | Valore del campo inviato (dati grezzi). Il valore dello slider così come inviato, prima che il campo lo converta in un float. |
$form_data | array | Dati del modulo. |
Maggiori Informazioni
L'azione viene eseguita all'interno di WPForms_Process::process(). Dopo l'esecuzione degli hook wpforms_process_before, il metodo scorre ogni campo in $form_data['fields'] ed esegue questa azione una volta per campo con il valore grezzo da $_POST. Il file si trova in includes/, quindi l'hook viene eseguito sia in Lite che in Pro. Anche la classe del campo Number Slider è inclusa in entrambi (includes/fields/class-number-slider.php).
Questo hook è un'istanza di do_action( "wpforms_process_validate_{$field_type}", $field_id, $field_submit, $form_data ). Il nome dell'hook mantiene il trattino dal tipo di campo. La stessa chiamata esegue wpforms_process_validate_email per il campo Email e wpforms_process_validate_name per il campo Name.
La validazione del campo viene eseguita sulla stessa azione. WPForms_Field::__construct() aggiunge il metodo validate() di ciascun campo alla priorità 10 con tre argomenti. Per il Number Slider, tale metodo converte il valore in float, applica l'impostazione Required (un valore di 0 conta come compilato) e imposta il messaggio wpforms_valid_number_label quando il valore non è numerico.
Per rifiutare un invio, scrivi un messaggio in wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ]. Qualsiasi errore impostato durante questo ciclo interrompe l'elaborazione prima che la voce venga salvata. Questo viene eseguito solo sull'invio finale. Su un modulo multipagina non impedisce all'utente di passare da una pagina all'altra.
Origine
wpforms/includes/class-process.php
Esempio
Rifiuta un invio del Number Slider quando il valore selezionato è 0, in modo che l'utente debba spostare lo slider prima che il modulo venga elaborato.
/**
* Require a Number Slider value other than 0.
*
* @link https://wpforms.com/developers/wpforms_process_validate_number-slider/
*
* @param string|int $field_id Field ID as a numeric string.
* @param mixed $field_submit Submitted field value (raw data).
* @param array $form_data Form data.
*/
function wpf_dev_validate_number_slider( $field_id, $field_submit, $form_data ) {
// Only run on the form with ID 143 and the Number Slider field with ID 1. Remember to change both IDs to match your form.
if ( absint( $form_data['id'] ) !== 143 || absint( $field_id ) !== 1 ) {
return;
}
if ( (float) $field_submit === 0.0 ) {
wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = esc_html__( 'Please select a number that is not 0.', 'wpforms' );
}
}
add_action( 'wpforms_process_validate_number-slider', 'wpf_dev_validate_number_slider', 10, 3 );




