Un utente ha chiesto
Categoria: Advanced Custom Fields: Extended di WordPress
Domanda: reCaptcha v3
Ciao e grazie per il plugin.
Sto implementando reCaptcha v3 e il test fallisce. Sembra che reCaptcha venga ignorato e tutte le email vengano inviate. Per testare, ho cambiato l’agente utente in Chrome in Googlebot / 2.1 e ho usato il mio modulo basato su una soluzione di StackOverflow che include anche un collegamento per assicurarmi che la soluzione funzioni:
https://www.google.com/recaptcha/api2/demo?invisible=true
Utilizzando la stessa soluzione, il mio modulo con reCaptcha invia semplicemente l’e-mail.
Idee o benchmark?
-
Autore del plugin
(@ hwk-fr)
Buongiorno,
Grazie per i commenti. Non sono del tutto sicuro di aver compreso appieno la tua richiesta. Puoi fornire maggiori informazioni, al fine di aiutarti:
- Stai cercando di utilizzare il campo ACF Extended: reCaptcha?
- In tal caso, il campo viene visualizzato nel back-end o nel front-end?
- Stai utilizzando ACF Form o ACF Extended: Dynamic Forms?
Sembra che ci sia un problema nel tuo argomento stackoverflow, poiché il collegamento che hai fornito porta a una demo dell’API reCpatcha V2, non V3.
Saluti.
(@scooterlord)
Anche, pure,
c’è un modo per isolare e utilizzare solo il modulo di campo recaptcha? Ho trovato una guida per rimuovere la maggior parte dei moduli, ma vedo molti stili e script extra caricati per cose che non uso affatto…
Autore del plugin
(@ hwk-fr)
Buongiorno,
Bene, sembra che tu abbia creato una nuova risposta subito dopo di me 🙂 Controlla la mia prima risposta poiché ho bisogno di maggiori informazioni per capire il tuo problema.
Per quanto riguarda la tua domanda sull’isolamento del campo reCaptcha, questo non è possibile perché ACF Extended è progettato come una soluzione bundle all-in-one. Alcuni moduli specifici possono essere disabilitati, ma non i campi.
Saluti.
(@scooterlord)
È stata una coincidenza! Abbiamo postato esattamente nello stesso momento! ??
Quindi, per rispondere alle tue domande:
– Sto usando il campo ACF Extended: reCaptcha
– A monte
– Sto usando il normale acf_formIn realtà hai ragione, in realtà è la v2 del plugin che ho notato dopo aver postato questa domanda. La demo v3 funziona in modo un po’ diverso assegnando un punteggio calcolato in base ad alcune “circostanze” che ancora non ho trovato.
https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php
Quindi la domanda rimane, c’è un modo per assicurarsi che recaptcha sia effettivamente configurato correttamente? L’unico indicatore che ho è che appare il logo recaptcha e non vedo errori nella console. Qualsiasi ulteriore aiuto sarebbe il benvenuto.
Come ulteriore nota e come ho richiesto sopra, c’è un modo per isolare e utilizzare solo il campo recaptcha anziché utilizzare l’intero pacchetto ACF Extended? Per le versioni future, sarebbe utile avere un interruttore per i moduli. Non vedo alcun guadagno nel caricamento di stili / script nel front-end, come la modalità o gli elementi relativi al ripetitore che non vengono utilizzati affatto.
(@scooterlord)
Grazie per la risposta sull’isolamento del modulo/campo. sarebbe bello averlo. Vedo i vantaggi di un bundle in diversi scenari, ma per questo particolare progetto ci sto lavorando è eccessivo perché sto usando solo il campo recaptcha.
C’è almeno un modo per annullare la registrazione di script/stili su richiesta? Esiste un elenco di script/stili in coda?
Grazie ancora per il supporto!
Autore del plugin
(@ hwk-fr)
Buongiorno,
Okay vedo. Quindi devi prima assicurarti che il campo reCaptcha sia obbligatorio nel tuo gruppo di campi, altrimenti non convaliderà la richiesta con l’API di Google e non genererà alcun punteggio.
Google reCaptcha V3 non è molto facile da eseguire il debug in quanto non c’è alcun segnale visivo che ti dica che tutto va bene (questo è il punto di essere invisibile). Se vuoi eseguire il debug della partitura, puoi modificare il file
/includes/fields/field-recaptcha.php
line:262
e aggiungi il seguente codice:acf_log('reCaptcha V3: Response', $response);
Quindi invia il modulo e verifica il tuo
debug.log
(è necessario abilitare la funzionalità di debug di WP. Vedere la documentazione).Otterrai un registro simile a questo:
reCaptcha V3: Response stdClass Object( [success] => 1 [challenge_ts] => 2020-09-16T13:23:06Z [hostname] => www.acf.dev [score] => 0.9 [action] => homepage )
Per ulteriori informazioni sul punteggio di reCaptcha, fare riferimento a Documentazione di Google.
Per quanto riguarda la tua domanda sull’isolamento dei campi e sull’accodamento dei file, ACF non fornisce alcun modo per accodare file specifici per campi specifici. Ecco perché quando usi
acf_form()
(eacf_form_head()
), ACF metterà in coda l’intero framework CSS/JS (acf.js
,acf-input.js
etc…), predisponendo il form front-end/back-end per visualizzare tutti i campi possibili. Per questo non è possibile disattivare/cancellare un campo specifico, perché ACF Extended utilizza la filosofia ACF.Tuttavia, poiché ACF e ACF Extended utilizzano il nativo
wp_enqueue_script()
ewp_enqueue_style()
, sei libero di rimuovere tutti i file dalla coda utilizzando gli hook disponibili, come:wp_enqueue_scripts
(Vedi documentazione). Tuttavia, non consiglierei di farlo a meno che tu non sappia davvero cosa stai facendo, poiché potresti rompere JS e modellare il rendering.L’altra soluzione sarebbe estrarre il campo reCaptcha dal codebase ACF esteso e usarlo da solo. Per fare ciò, avrai bisogno di alcune conoscenze di codifica, ma non è impossibile. Il codice del campo può essere trovato in
/acf-extended/includes/fields/field-recaptcha.php
e/acf-extended/assets/acf-extended-fields.js
File. Ti preghiamo di comprendere che non posso fornire ulteriore assistenza per tale procedura poiché sono già sopraffatto da richieste di funzionalità e domande di supporto. Devo rimanere concentrato sul plugin stesso.Spero questo sia di aiuto!
Saluti.
(@scooterlord)
Grazie mille per le tue spiegazioni dettagliate. Più o meno sono arrivato alla stessa conclusione per quanto riguarda recaptcha v3 – che non puoi testare è molto semplice – poiché non sono riuscito a trovare un modo per ottenere un punteggio più basso simulandolo usando un agente utente diverso, schede di navigazione in incognito, ecc. . .
Capisco la logica dietro l’accodamento di tutti gli script/stili in acf_form_head, ma non sono totalmente d’accordo con la sua logica. L’acf_form_head potrebbe essere caricato con un diverso gestore per modulo (o anche campi), quindi sa quali campi sono richiesti – forse ci sono modi più efficienti per farlo, ma è quello che sto per suggerire. Ma è totalmente inefficiente caricare tutto quel codice extra per niente.
Ancora una volta grazie per aver fornito i file in cui si trova il plugin recaptcha. Lo proverò sicuramente. Mi hai già aiutato abbastanza!
Continua così!
Autore del plugin
(@ hwk-fr)
Buongiorno,
Sono d’accordo, potrebbe essere migliorato. Ho già dato un’occhiata a questo miglioramento specifico e ho cercato di trovare una soluzione alternativa. Ma la base di codice di ACF è complessa e anche la parte JS del plugin è complicata.
Questa correzione non può essere implementata così facilmente, poiché richiederebbe la modifica della logica ACF di base (che è sempre complicata) e richiederebbe test approfonditi e correzioni di bug. La soluzione migliore sarebbe che lo sviluppatore ACF lo fornisse immediatamente. Potrei tornare su questo in futuro, se avrò tempo.
Ad ogni modo, stiamo parlando di 20kb di file css / js una volta minimizzati + gzippati, non sono così grandi. E avere 10 file in coda non è sempre meglio che averne uno più grande (in termini di cache/prestazioni).
Buona giornata.
Saluti.
Autore del plugin
(@ hwk-fr)
Nota: chiudo il ticket se per te va bene. Non esitare a inviare un nuovo argomento se hai bisogno di aiuto.
Saluti.
Hai risolto il tuo problema?
0 / 0