使用PHP在Theme中添加MailChimp Shortcode

时间:2017-08-24 06:54:00

标签: php wordpress wordpress-theming mailchimp

我有以下网站:https://www.ajagrawal.com

目前在我的网站上,我正在尝试编辑英雄部分,并使用插件制作的自定义wordpress表单替换名称,电子邮件和按钮字段。现在电子邮件存储在Wordpress中,但我希望它们在Mailchimp中。

我知道我的主题中哪些代码与以下内容相关:

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;

这是我的mailchimp短代码,代表了表单。

[mc4wp_form id="2198"]

我尝试过编辑代码并以多种方式插入代码,甚至最终导致网站崩溃,但仍然没有运气。考虑到我的目标,这是正确的方法(将短代码放在PHP代码中)吗?

如果是这样,怎么办呢?

1 个答案:

答案 0 :(得分:1)

您可以使用do_shortcode功能。

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( '[contact-form-7 id="91" title="quote"]' );

// Store the short code in a variable.
$var = do_shortcode( '' );
echo $var;

所以在你的情况下如下:

echo do_shortcode( '[mc4wp_form id="2198"]' );

应该这样做。

编辑: 这样的事情应该有效:

          $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>';

然后用输出做你想做的事 - 可能必须回应它......