Giorgiotave.it

Condividiamo idee e conoscenza dal 2003...
...dopo 17 anni una Nuova Storia sta per nascere
Scopri di più
+ Rispondi alla Discussione
Risultati da 1 a 3 di 3

Contact Form 7 con verifica invio

Ultimo Messaggio di Ultima il:
  1. #1
    User
    Data Registrazione
    Aug 2019
    Località
    Milano
    Messaggi
    22

    Contact Form 7 con verifica invio

    Ciao a tutti.
    Vorrei salvare tutti i dati inviati tramite form CF7 in un database SQL e per questo ho visto che c'è il plugin Flamingo di CF7.
    Ho la necessità di impedire l'invio del form se viene inserito in un campo (testo) una stringa che è già presente nel database.

    In pratica gli utenti possono inserire nel form il valore ABC e questo verrà salvato in una colonna del mio DB SQL tramite Flamingo.
    Se arriva un altro utente non deve poter inserire ABC come valore perchè è già stato utilizzato da un altro utente in precedenza.

    Ho visto che con la seguente stringa posso andare ad agire sulla tipologia di campo di CF7:
    Codice PHP:
    add_filter'wpcf7_validate_email''custom_email_validation'10); 
    Io vorrei agire invece solo su un campo text preciso del mio form.

    Ho sempre utilizzato questo codice per fare il controllo del nome:

    Codice PHP:
    add_filter'wpcf7_validate_text*''custom_name_validation'10);
    function 
    custom_name_validation$result$tag ) {$type $tag['type']; $name $tag['name'];
     if(
    $type == 'text*' && $_POST[$name] != ''){   if(!preg_match('/^[A-Za-z. ]+$/'$_POST[$name])){  $result->invalidate$name'Il nome inserito non è valido. Controlla.' );    } } return $result;} 
    Come potrei adattarlo per agire sul campo singolo e non sulla tipologia text ed inoltre come potrei cambiare il controllo della funzione preg_match con un controllo nel database SQL sulla tabella di Flamingo (che devo ancora individuare).

    Grazie mille

  2. #2
    Moderatore L'avatar di Sermatica
    Data Registrazione
    Sep 2016
    Località
    Maleo
    Messaggi
    5,035
    Aggiungi Sermatica su Facebook
    Ciao
    io per salvare i messaggi di "Contact Form 7" uso "Contact Form CFDB7" di Di Arshid, fammi sapere se risolve il tuo problema. La seconda parte del tuo post non l'ho capita.
    MODHelp Center: consigli per il tuo progettoMODE-Commerce
    Consulente con P.IVA: SEO / SEM / Google Business / Amazon - Sermatica.it


  3. #3
    Moderatore L'avatar di Ultima
    Data Registrazione
    Jan 2013
    Località
    Senigallia
    Messaggi
    773
    Aggiungi Ultima su Facebook
    Ciao igorredaelli,
    quello che stai chiedendo di sicuro non è impossibile, ma neanche così semplice.
    Per prima cosa dovresti escludere ulteriori plugin oltre a CF7 che personalmente non utilizzerei neanche per ciò che devi fare. Bypassando cosa farei io, l'approccio alla tua soluzione è la seguente:
    - Intercetti il submit di CF7 tramite apposito codice js (lo trovi nella guida sul rispettivo sito)
    - Dal js, prima mandarlo in completa esecuzione esegui il tuo controllo:
    * Il contenuto ABC esiste?
    - Fermo l'esecuzione e scrivo un alert per l'utente
    * Non esiste?
    - Scrivo nel database
    Come realizzare tale processo? Purtroppo devi scrivere parecchio codice e fare diversi test. Devi crearti due funzioni in PHP:
    - La funzione di check
    - La funzione di scrittura
    Le funzioni devono essere richiamate tramite POST HttpRequest via Ajax.
    Ti lascio tutte le guide del caso, poi inizi a realizzare il tutto e se qualcosa non ti torna, vieni qui e chiedi che vediamo che si può fare


    Wordpress Ajax in plugins https://codex.wordpress.org/AJAX_in_Plugins
    Riferimento alla variabile globale $wpdb per le connessioni al database: https://codex.wordpress.org/it:Riferimento_classi/wpdb
    Riferimento al redirect after sent di CF7 che puoi rielaborare a piacere: https://contactform7.com/redirecting...r-submissions/


    Fammi sapere
    MODWordpress
    Senior Web Developer to http://www.canenero.com - https://www.stefanopascazi.com
    Magento Specialist - WP Addicted (e Netflix dipendente XD )

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.