Un utente ha chiesto informazioni su Contact Form 7 - Conditional Fields di Wordpress

I campi WPML condizionali non funzionano sulle traduzioni

Un utente ha chiesto 👇

Ciao,

Sto usando Contact Form 7 (e Conditional Fields) con WPML e se traduco il modulo di contatto, WPML non crea un secondo modulo in un’altra lingua ma con il plugin / estensione WPML Contact Form 7 Multilingual la logica condizionale non funziona più.

Esempio:
Originale (DE): aprendo il 3 ° campo dall’alto (Nome) si apre il drop drop.
Traduzione (EN): / contact-us / compila il 3 ° campo dall’alto (Nome) non fa nulla.

Sto mostrando l’errore JS nella mia console per sviluppatori che penso sia correlato a questo: TypeError: conditions.filter is not a function.

Di
Jay

Questo argomento è stato modificato un anno fa da. Questo argomento è stato modificato un anno fa da.

Autore del plugin

(@ jules-colle)

1 anno fa

Credo che questo sia anche correlato a questo bug: https://wordpress.org/support/topic/javascript-issue-14/

Proveremo a risolverlo entro la fine della settimana.

(@jayhybrid)

1 anno fa

Ciao Jules

Ho appena aggiornato alla versione 1.7.9 e aggiornato la mia traduzione sul modulo di contatto e il problema sembra continuare.

C’è qualcosa che posso fare per aiutarti con questo problema?

Grazie
Jay

Autore del plugin

(@ jules-colle)

1 anno fa

Se potessi impostare un’installazione wp minima per indicare il malfunzionamento del plugin, potrebbe essere d’aiuto. Quindi puoi dirmi i passaggi e io posso riprodurlo.

(@jayhybrid)

1 anno fa

Ok, ho impostato una nuova installazione WP qui (http://debug.hybridsupply.de) e installato

Modulo di contatto 7 Modulo di contatto 7 Campi condizionali Modulo di contatto 7 WPML multilingue CMS multilingue Stringa di traduzione WPML WPML Translation Management

C’è un modulo di contatto per un campo nella prima pagina (che funziona, come dovrebbe): se viene inserito qualcosa nel campo, si attiva una condizione e viene visualizzato il secondo campo.

Utilizzando WPML e Contact Form 7 Multilingual (estensione WPML) ho tradotto il modulo, in modo WPML e può essere visto nella versione tedesca della pagina, ma la logica condizionale non funziona.

Autore del plugin

(@ jules-colle)

1 anno fa

Ho provato a riprodurlo ma tutto funziona correttamente quando ho impostato wpml.

Vedo che le condizioni sono una stringa vuota, anche se dovrebbe esserci un array vuoto. Penso che il tuo problema verrà risolto se vai al tuo modulo tedesco nel fine settimana, apri la scheda dei campi condizionali, assicurati che le condizioni siano presenti e fai clic su Salva. Potresti provarci?

Autore del plugin

(@ jules-colle)

1 anno fa

O meglio ancora, potresti verificare rapidamente se funziona?

Vai a plugins / cf7-conditional-fields / cf7cf.php e cambia la funzione alla riga 345 finora:

    public static function getConditions($form_id) {
        $options = get_post_meta($form_id,'wpcf7cf_options',true);
        return is_array($options) ? $options : array();
    }

Fammi sapere, se funziona, e includerò la modifica nel prossimo aggiornamento.

(@jayhybrid)

1 anno fa

Sfortunatamente, non sono stato in grado di notare un cambiamento dopo aver sostituito il codice.

Non sono affatto uno sviluppatore, ma mi è sembrato un problema relativo a JS, dal momento che ricevo l’errore sopra riportato al caricamento della pagina della pagina tradotta (in tedesco).
TypeError: conditions.filter is not a function scripts.js:678:44

/cf7-conditional-fields/js/scripts.js?ver=1.7.9

(@jayhybrid)

1 anno fa

Ho appena aggiornato il Modulo di contatto multilingue 7 alla 1.0.2 e ho controllato i campi condizionali per la versione tedesca del mio modulo di contatto e sono completamente mancanti.

Non ci sono più errori JS.

Autore del plugin

(@ jules-colle)

1 anno fa

Un po ‘tecnico, ma nel caso lo sapessi: hai ragione che JS ha commesso un errore. Ma l’errore è stato causato perché legge una stringa JSON che genera PHP. La stringa JSON dovrebbe contenere un insieme delle tue condizioni, ma non è così. Quindi l’errore JS è stato effettivamente causato perché PHP non si è assicurato che fosse modificato prima che la stringa JSON fosse generata.

Quindi, a questo punto, penso che il problema sia risolto. Tutto quello che devi fare è assicurarti di allegare le tue condizioni al modulo tedesco separato.

(@jayhybrid)

1 anno fa

Ah capisco, il trasferimento del modulo non copia le condizioni? Questa dovrebbe essere una richiesta di funzionalità piuttosto che una segnalazione di bug?

Autore del plugin

(@ jules-colle)

1 anno fa

Potresti chiedere a WPML se vogliono implementarlo. Non posso farci niente adesso. Puoi dire loro che possono contattarmi se c’è qualcosa che posso fare per rendere CF più compatibile con WPML

(@grupocreacion)

7 mesi, 3 settimane fa

Prova questo:

1. Vai a WPML -> Impostazioni -> Configurazione XML personalizzata (scheda).

2. Aggiungi questo codice e salva.


<wpml-config>
    <custom-fields>
        <custom-field action="copy">wpcf7cf_options</custom-field>
    </custom-fields>
</wpml-config>

Ora il problema dovrebbe essere risolto.

Questa risposta è stata modificata 7 mesi, 3 settimane fa da. Autore del plugin

(@ jules-colle)

7 mesi, 3 settimane fa

Sembra molto utile. Grazie per la condivisione! <3

Was this helpful?

0 / 0

Lascia un commento 0

Your email address will not be published. Required fields are marked *