¿Cómo usar otros shortcodes dentro de formularios de Contact Form 7?

12 mar 2012, 13:42:59
Vistas: 64.1K
Votos: 19

He notado que cualquier shortcode que no sea parte de los shortcodes incorporados en Contact Form 7 no funciona.

Por ejemplo: Estoy tratando de usar un shortcode de acordeón entre los elementos del formulario en Contact Form 7. Pero el código no funciona.

¿Cómo resolver esto sin editar los archivos del núcleo de Contact Form 7?

1
Comentarios

No estoy seguro de que puedas hacer esto. Los shortcodes deben estar en una página o publicación, ¿no es así? No creo que puedas poner un shortcode entre elementos de formulario. ¿Dónde los pondrías? ... ¿en la configuración de Contact Form 7? No puedes hacer eso allí que yo sepa (a menos que estés siguiendo alguna instrucción de Contact Form 7 que no conozca).

byronyasgur byronyasgur
12 mar 2012 14:59:42
Todas las respuestas a la pregunta 1
4
25

Hay dos formas de hacer lo que deseas. La primera es agregar este código al archivo 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;
}

Esto te permitirá insertar shortcodes directamente en CF7. La segunda opción es agregar el Acordeón manualmente con HTML en el formulario de contacto, así:

<!-- comienza la clase .wp-accordion -->
<div class="wp-accordion wpui-light">

    <!-- Panel de la primera pestaña -->
    <h3 class="wp-tab-title">Pestaña 1</h3>
    <!-- Contenido de la primera pestaña -->
    <div class="wp-tab-content">
          Todo el contenido de la primera pestaña va aquí...
    </div><!-- fin de la primera pestaña -->

      <!-- Segundo panel -->
      <h3 class="wp-tab-title">Pestaña 2</h3>
      <div class="wp-tab-content">
            Contenido de la segunda pestaña
       </div>

</div><!-- fin de la clase wp-accordion -->

Creo que el segundo método es preferible, ya que no implica modificar archivos principales del plugin. ¡Espero que esto te ayude!

12 mar 2012 19:03:01
Comentarios

De hecho - puedes agregar el código del filtro en el functions.php de tu tema y los shortcodes funcionarán correctamente dentro de un formulario CF7. No puedo confirmar si el específico (para el acordeón) funcionará o no - solo he probado con un shortcode que no contiene ningún shortcode de CF7, pero básicamente todo depende de cómo se maneje el shortcode en cuestión.

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

efectivamente, un simple add_filter( 'wpcf7_form_elements', 'do_shortcode' ); hace el truco desde el functions.php de mi tema hijo.

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

Si deseas usar el mismo contenido en más de una ubicación en tu sitio, es mejor crear un shortcode (localizable si es necesario), que copiar y pegar el mismo HTML por todas partes.

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

He utilizado este código pero no está funcionando, ¿podrías ayudarme por favor? 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