Comment utiliser d'autres shortcodes dans le formulaire de contact 7- formulaires? [fermé]

15

J'ai remarqué que tout shortcode qui ne fait pas partie du formulaire de contact 7 shortcodes intégrés ne fonctionne pas.

Par exemple: j'essaie d'utiliser un shortcode accordéon entre les éléments du formulaire dans le formulaire de contact 7. Mais le code ne fonctionne pas.

Comment résoudre ce problème sans modifier les fichiers principaux du formulaire de contact 7?

alhoseany
la source
Je ne suis pas sûr que vous puissiez le faire. Les shortcodes doivent être dans une page ou un article, n'est-ce pas. Je ne pense pas que vous puissiez mettre un shortcode entre les éléments du formulaire. Où les mettriez-vous? ... dans le formulaire de contact 7 paramètres? Vous ne pouvez pas le faire là-bas AFAIK (à moins que vous ne suiviez des instructions du formulaire de contact 7 dont je n'ai pas entendu parler).
byronyasgur

Réponses:

21

Il y a deux façons de faire ce que vous voulez. La première consiste à ajouter ce code à functions.php du 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;
}

Cela vous permet de déposer des shortcodes directement dans CF7. La seconde consiste à ajouter l'accordéon manuellement avec du HTML dans le formulaire de contact, comme ceci:

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

    <!-- First tab's panel -->
    <h3 class="wp-tab-title">Tab 1</h3>
    <!-- First tab's contents -->
    <div class="wp-tab-content">
          All the contents of first tab goes here....
    </div><!-- end first tab -->

      <!-- Like so, Second panel -->
      <h3 class="wp-tab-title">Tab 2</h3>
      <div class="wp-tab-content">
            Contents of the second tab
       </div>

</div><!-- end class wp-accordion -->

Je pense que la deuxième méthode est préférable, car il n'y a pas de modification des fichiers du plugin principal. J'espère que ça aide!

SickHippie
la source
4
En fait - vous pouvez ajouter le code de filtre dans les fonctions de votre thème.php et les shortcodes fonctionneront correctement dans un formulaire CF7. Je ne peux pas confirmer si le spécifique (pour l'accordéon) fonctionnera ou non - j'ai seulement testé avec un shortcode qui ne contient aucun shortcode CF7, mais en gros tout dépend de la façon dont le shortcode en question est géré .
Nikola Ivanov Nikolov
10
en effet, un simple add_filter( 'wpcf7_form_elements', 'do_shortcode' );fait l'affaire de functions.php de mon thème enfant.
Evan Mattson
1
Si vous souhaitez utiliser le même contenu dans plus d'un emplacement sur votre site, il vaut mieux créer un shortcode (localisable si nécessaire), que de couper et coller le même HTML partout.
Craig