WordPress : Ajouter un shortcode MailChimp dans le thème avec PHP
J’ai le site suivant : https://www.ajagrawal.com
Actuellement sur mon site Web, j’essaie de modifier la section héros et de remplacer les champs de nom, d’e-mail et de bouton par un formulaire wordpress personnalisé créé avec le plugin. À l’heure actuelle, les e-mails sont stockés dans WordPress, mais je les veux dans Mailchimp.
Je sais à quel code de mon thème ce formulaire se rapporte et qui est le suivant :
if(function_exists('newsletter_form')):
$output .= '<div class="row">';
$output .= '<div class="col-sm-6 col-sm-offset-6 col-md-4 col-md-offset-6">';
$output .= '<form method="post" action="'.home_url('/').'?na=s" onsubmit="return newsletter_check(this)">';
$output .= '<div class="c-input-3-wrapper">';
$output .= '<input class="c-input type-3" type="text" name="nn" required="" placeholder="'.esc_html($name_placehodler).'">';
$output .= '<div class="c-input-3-icon"><span class="lnr lnr-user"></span></div>';
$output .= '</div>';
$output .= '<div class="c-input-3-wrapper">';
$output .= '<input class="c-input type-3" type="email" name="ne" required="" placeholder="'.esc_html($email_placeholder).'">';
$output .= '<div class="c-input-3-icon"><span class="lnr lnr-envelope"></span></div>';
$output .= '</div>';
$output .= '<input class="newsletter-submit c-btn type-1 size-4 full" type="submit" value="'.esc_html($btn_text).'">';
$output .= '</form>';
$output .= '</div>';
$output .= '</div>';
endif;
Voici mon shortcode mailchimp qui représente le formulaire.
[mc4wp_form id="2198"]
J’ai essayé de modifier le code et de l’insérer de plusieurs façons et j’ai même fini par planter le site et toujours pas de chance. Compte tenu de mon objectif, est-ce la bonne approche (mettre le shortcode dans le code PHP) ?
Si cela est le cas, comment cela peut-il être fait?
Solution n°1 trouvée
Vous pouvez utiliser la do_shortcode
fonction.
Exemples dans la documentation :
// Use shortcode in a PHP file (outside the post editor).
echo do_shortcode( '' );
// In case there is opening and closing shortcode.
echo do_shortcode( '[iscorrect]' . $text_to_be_wrapped_in_shortcode . '[/iscorrect]' );
// Enable the use of shortcodes in text widgets.
add_filter( 'widget_text', 'do_shortcode' );
// Use shortcodes in form like Landing Page Template.
echo do_shortcode( 'Erreur : Formulaire de contact non trouvé !
' );
// Store the short code in a variable.
$var = do_shortcode( '' );
echo $var;
Donc, dans votre cas, quelque chose comme:
echo do_shortcode( '[mc4wp_form id="2198"]' );
devrait faire l’affaire.
EDIT : Quelque chose comme ceci devrait fonctionner :
$output .= '<div class="row">';
$output .= '<div class="col-sm-6 col-sm-offset-6 col-md-4 col-md-offset-6">';
$output .= do_shortcode( '[mc4wp_form id="2198"]' );
$output .= '</div>';
$output .= '</div>';
Ensuite, faites ce que vous voulez avec la sortie – vous devrez probablement l’écho …
0 commentaire