Wordpress Mailchimp-将兴趣组作为注册表单上的必填字段

Wordpress Mailchimp-将兴趣组作为注册表单上的必填字段,wordpress,forms,mailchimp,Wordpress,Forms,Mailchimp,我正在将邮件列表导入MailChimp,在正确实现兴趣组方面遇到了问题。以下是我的情况:订阅者选择了接收一个或多个地理区域纽约、波士顿等的更新。绝大多数用户只属于一个组,但允许用户注册多个组很重要。MailChimp组可以很好地实现这一点,除了组不能成为必填字段这一事实……除了使用高级表单设计模式 根据: 组字段不能设置为注册表单的必需字段。我们的数据库中的逻辑是这样的>,即不需要组,因为它们被认为是用于细分的选项列表或>兴趣,并且对于没有兴趣的人来说是有效的。如果您是>?>高级用户或有开发人员

我正在将邮件列表导入MailChimp,在正确实现兴趣组方面遇到了问题。以下是我的情况:订阅者选择了接收一个或多个地理区域纽约、波士顿等的更新。绝大多数用户只属于一个组,但允许用户注册多个组很重要。MailChimp组可以很好地实现这一点,除了组不能成为必填字段这一事实……除了使用高级表单设计模式

根据:

组字段不能设置为注册表单的必需字段。我们的数据库中的逻辑是这样的>,即不需要组,因为它们被认为是用于细分的选项列表或>兴趣,并且对于没有兴趣的人来说是有效的。如果您是>?>高级用户或有开发人员可以提供帮助,则可以使用“高级表单”选项对“必填组”字段进行自定义>编码,该选项仅适用于您帐户中的付费帐户

我已经做了大量的搜索,甚至找到了通过高级表单模式解决这个问题的第一步,但到目前为止都是空的。我不是HTML/Javascript/PHP方面的专家,但我知道的足够多,可以通过尝试和错误来修补和完成事情。此外,表单最好放在WordPress页面上。

您是否尝试过将class=required添加到高级编辑器中的每个组字段中?当我查看我的必填字段时,它们是用这个类声明的,除了email,它似乎有一个特殊的email必填类:

<div class="mc-field-group"><label for="mce-FNAME">First Name <span class="asterisk">*</span>  
</label>  
<input class="required" id="mce-FNAME" type="text" name="FNAME" value="" /></div>  
<div class="mc-field-group"><label for="mce-LNAME">Last Name </label>  
<input id="mce-LNAME" type="text" name="LNAME" value="" /></div>  

在本例中,从WP页面上托管的我的一个表单中获取,FNAME是必需的,但LNAME不是。

我遇到过与您相同的问题。 我所做的是在Mailchimp嵌入代码中添加了javascript验证。 这是代码的示例。我用的是单选按钮。 出于个人原因,我将删除表单操作按钮

  <!-- Begin MailChimp Signup Form -->
<link href="//cdn-images.mailchimp.com/embedcode/classic-081711.css" rel="stylesheet" type="text/css">
<style type="text/css">
    #mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; width:650px;margin:auto;}
.mc-field-group{width:50% !important;margin:auto;}
.mc-field-group.input-group{width:96%  !important;margin:auto;}
#mc-embedded-subscribe{
margin: auto;
width: 150px !important;
height: 30px !important;
font-size: 15px !important;
background: #eb593c !important;
position: relative !important;
color: #fff !important;
margin-left: 38% !important;
}

    /* Add your own MailChimp form style overrides in your site stylesheet or in this style block.
       We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
</style>
<div id="mc_embed_signup">
<form action="" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
<div class="indicates-required"><span class="asterisk">*</span> indicates required</div>
<div class="mc-field-group">
    <label for="mce-EMAIL">Email Address  <span class="asterisk">*</span>
</label>
    <input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL">
</div>
<div class="mc-field-group">
    <label for="mce-FNAME">First Name </label>
    <input type="text" value="" name="FNAME" class="" id="mce-FNAME">
</div>
<div class="mc-field-group input-group">
    <strong>How Often Would You Like to Hear From Us: <span class="asterisk">*</span></strong>
    <ul><li><input type="radio" value="4" name="group[10709]" id="mce-group[10709]-10709-0"><label for="mce-group[10709]-10709-0">Somewhat Weekly: THRIVING IS THE NEW YOU Blog Posts sent via Email</label></li>
<li><input type="radio" value="8" name="group[10709]" id="mce-group[10709]-10709-1"><label for="mce-group[10709]-10709-1">Monthly Vibrancy Roundup: It's like a E-Newsletter but way groovier.</label></li>
</ul>
</div>
    <div id="mce-responses" class="clear">
        <div class="response" id="mce-error-response" style="display:none"></div>
        <div class="response" id="mce-success-response" style="display:none"></div>
    </div>    <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
    <div style="position: absolute; left: -5000px;"><input type="text" name="b_ef38bee7ba91bb0815db87917_22d8d62dc8" tabindex="-1" value=""></div>
    <input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button">
</form>
<script type="text/javascript">
var forms = document.getElementById('mc-embedded-subscribe-form');
try {
    forms.addEventListener("submit", function(event)
        {
            var off_payment_method = document.getElementsByName('group[10709]'); //this is the name of the radio buttons
            var email = document.getElementById('mce-EMAIL');//email field
            var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

            if (!filter.test(email.value)) {
                alert('Please provide a valid email address');
                event.preventDefault();
                return false;
            }

            var ischecked_method = false;
            for ( var i = 0; i < off_payment_method.length; i++) {
                if(off_payment_method[i].checked) {
                    ischecked_method = true;
                }
            }
            if(!ischecked_method){
                alert("Please choose from How Often Would You Like to Hear From Us:");
                event.preventDefault();
                return false;
            }else{
                return true;
            }
        }, false);
} catch(e) {
    forms.attachEvent("onsubmit", function(event)
    {
        var off_payment_method = document.getElementsByName('group[10709]'); //this is the name of the radio buttons
        var email = document.getElementById('mce-EMAIL');//email field
        var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

        if (!filter.test(email.value)) {
            alert('Please provide a valid email address');
            event.preventDefault();
            return false;
        }

        var ischecked_method = false;
        for ( var i = 0; i < off_payment_method.length; i++) {
            if(off_payment_method[i].checked) {
                ischecked_method = true;
            }
        }
        if(!ischecked_method){
            alert("Please choose from How Often Would You Like to Hear From Us:");
            event.preventDefault();
            return false;
        }else{
            return true;
        }
    }); //Internet Explorer 8-
}
</script>
</div>
<!--End mc_embed_signup-->

这似乎不起作用。我现在已经把它放在冰上,并设置了一个止损措施,即手动将红色星号放在复选框标题旁边。@goesto!你曾经做到过吗?我也面临着同样的问题,我无法获得足够的信息来推进高级表单。