Come utilizzare altri shortcode all'interno dei moduli Contact Form 7?

12 mar 2012, 13:42:59
Visualizzazioni: 64.1K
Voti: 19

Ho notato che gli shortcode che non fanno parte degli shortcode integrati di Contact Form 7 non funzionano.

Per esempio: Sto cercando di utilizzare uno shortcode per accordion tra gli elementi del form in Contact Form 7. Ma il codice non funziona.

Come risolvere questo problema senza modificare i file core di Contact Form 7?

1
Commenti

Non sono sicuro che tu possa farlo. Gli shortcode devono essere in una pagina o in un articolo, giusto? Non penso che tu possa inserire uno shortcode tra gli elementi di un form. Dove li metteresti? ... nelle impostazioni di Contact Form 7? Non puoi farlo lì, per quanto ne so (a meno che tu non stia seguendo alcune istruzioni di Contact Form 7 che non conosco).

byronyasgur byronyasgur
12 mar 2012 14:59:42
Tutte le risposte alla domanda 1
4
25

Ci sono due modi per ottenere ciò che desideri. Il primo modo è aggiungere questo codice al file functions.php del plugin Contact Form 7:

add_filter( 'wpcf7_form_elements', 'mycustom_wpcf7_form_elements' );

function mycustom_wpcf7_form_elements( $form ) {
$form = do_shortcode( $form );

return $form;
}

Questo ti permette di inserire shortcode direttamente in CF7. Il secondo metodo è aggiungere manualmente l'Accordion con HTML nel modulo di contatto, in questo modo:

<!-- inizio classe .wp-accordion -->
<div class="wp-accordion wpui-light">

    <!-- Pannello della prima scheda -->
    <h3 class="wp-tab-title">Scheda 1</h3>
    <!-- Contenuti della prima scheda -->
    <div class="wp-tab-content">
          Tutti i contenuti della prima scheda vanno qui....
    </div><!-- fine prima scheda -->

      <!-- Secondo pannello -->
      <h3 class="wp-tab-title">Scheda 2</h3>
      <div class="wp-tab-content">
            Contenuti della seconda scheda
       </div>

</div><!-- fine classe wp-accordion -->

Penso che il secondo metodo sia preferibile, poiché non richiede la modifica dei file principali del plugin. Spero che questo ti sia utile!

12 mar 2012 19:03:01
Commenti

In realtà - puoi aggiungere il codice del filtro nel functions.php del tuo tema e gli shortcode funzioneranno correttamente all'interno di un modulo CF7. Non posso confermare se quello specifico (per l'accordion) funzionerà o meno - ho testato solo con uno shortcode che non contiene alcun shortcode CF7, ma fondamentalmente tutto dipende da come viene gestito lo shortcode in questione.

Nikola Ivanov Nikolov Nikola Ivanov Nikolov
20 mar 2013 14:35:50

infatti, un semplice add_filter( 'wpcf7_form_elements', 'do_shortcode' ); fa il trucco dal functions.php del mio child theme.

Evan Mattson Evan Mattson
30 set 2013 06:21:01

Se vuoi utilizzare lo stesso contenuto in più di una posizione del tuo sito, è meglio creare uno shortcode (localizzabile se necessario), piuttosto che tagliare e incollare lo stesso HTML ovunque.

Craig Tullis Craig Tullis
12 set 2014 03:02:48

Ho utilizzato questo codice ma non funziona, potreste aiutarmi per favore? https://wordpress.stackexchange.com/questions/359534/my-shortcode-is-not-working-in-contact-form-7-message-body

Rahul Kumar Rahul Kumar
26 feb 2020 16:58:16