Prerequisiti
La funzionalità di controllo tra il campo “email” e “conferma email” è ancora mancante nell’ultima versione stabile di Elementor (Elementor Pro.)
Qual è il problema?
I moduli Elementor vengono forniti con un tipo di campo “Email” ma non esiste la funzionalità relativa al controllo di “Conferma email”. Il nuovo tipo di campo dovrebbe verificare se i due campi sono identici quando si fa click sul pulsante Invia. Se non sono uguali, dovrebbe essere visualizzato un errore.
Soluzione
Creare la funzionalità di controllo tra i due campi inseriti e mostrare un messaggio di errore tramite le API di validazione messe a disposizione da Elementor.
Documentazione: https://developers.elementor.com/forms-api/
All’interno del file function.php inserire la seguente implementazione:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
// Validate confirmation email add_action( 'elementor_pro/forms/validation', function ( $record, $ajax_handler ) { $form_name = $record->get_form_settings( 'form_name' ); // Replace MY_FORM_NAME with the name you gave your form if ( 'MY_FORM_NAME' !== $form_name ) { return; } //Replace MY_FIELD_ID_1 to match the field's Advanced > Field ID $first_email_field = $record->get_field( [ 'id' => 'MY_FIELD_ID_1' ] ); //Replace MY_FIELD_ID_2 to match the field's Advanced > Field ID $second_email_field = $record->get_field( [ 'id' => 'MY_FIELD_ID_2' ] ); //Make sure your field ID's are set to match these in each field's Advanced > Field ID if ( $first_email_field['MY_FIELD_ID_1']['value'] !== $second_email_field['MY_FIELD_ID_2']['value'] ) { $ajax_handler->add_error( $second_email_field['MY_FIELD_ID_2']['id'], 'Confirmation Email must match the Email field' ); } }, 10, 2 ); |