删除Mailchimp Popup的cookie

时间:2017-10-28 22:04:28

标签: javascript jquery cookies popup mailchimp

我有一个wordpress网站,你点击一个div,弹出一个mailchimp弹出窗口。一个问题是,mailchimp存储一个cookie以确保弹出窗口只进行一次。但是,由于我现在正在点击一下,我想摆脱那个cookie。

这是我的代码:

       A         B         c
   <dbl>     <dbl>     <dbl>
 1   1.5 0.4877790 1.0121278
 2   1.5 0.6032474 0.8840735
 3   1.5 0.6042946 0.5996850
 4   1.5 0.5456424 0.6198039
 5   3.0 0.3849424 0.6276092
 6   4.0 0.3277343 0.4343907
 7   3.0 0.1246334 1.0760229
 8   4.0 0.2946009 0.8461718
 9   3.0 0.5120159 1.6121568
10   4.0 0.5050239 1.0999058
11   3.0 0.8679195 0.8981359
12   4.0 0.8297087 0.1667626

因此,在搜索互联网后,我发现每个人都使用此代码删除cookie。

var mailchimpConfig = {
        baseUrl: 'mc.us17.list-manage.com',
        uuid: '1356322e2......rest of my code',
        lid: '36776d...rest of my code'
    };

    // No edits below this line are required
    var chimpPopupLoader = document.createElement("script");
    chimpPopupLoader.src = '//s3.amazonaws.com/downloads.mailchimp.com/js/signup-forms/popup/embed.js';
    chimpPopupLoader.setAttribute('data-dojo-config', 'usePlainJson: true, isDebug: false');

    var chimpPopup = document.createElement("script");
    chimpPopup.appendChild(document.createTextNode('require(["mojo/signup-forms/Loader"], function (L) { L.start({"baseUrl": "' +  mailchimpConfig.baseUrl + '", "uuid": "' + mailchimpConfig.uuid + '", "lid": "' + mailchimpConfig.lid + '"})});'));

    jQuery(function ($) {
        document.body.appendChild(chimpPopupLoader);

        jQuery(".coming-soon").on("click", function () {
            alert("Hello");
            document.body.appendChild(chimpPopup);
            document.cookie = 'MCEvilPopupClosed=;path=/;expires=Thu, 01 Jan 1970 00:00:00 UTC;';
        });

    });

这个问题是,它不适合我。我在隐姓埋名中完成了所有测试,只能弹出一次。

2 个答案:

答案 0 :(得分:1)

Cookie的名称为MCPopupClosed而不是MCEvilPopupClosed。我不知道为什么,但MailChimp必定在某些时候改变了它。

还有另一个名为MCPopupSubscribed的cookie,如果用户订阅而不是使用“X”按钮关闭弹出窗口,则会设置该cookie。如果您希望即使用户已订阅也要显示弹出窗口,您也需要清除该cookie。

清除这两个cookie只会在页面加载后使其工作一次。我在查看问题时遇到了this code,如果您将require放在click函数而不是脚本标记中,它就可以正常工作。这样做还可以防止每次单击元素时都必须删除appendChild函数生成的脚本标记。

因此,您更新的代码如下所示:

var mailchimpConfig = {
        baseUrl: 'mc.us17.list-manage.com',
        uuid: '1356322e2......rest of my code',
        lid: '36776d...rest of my code'
    };

// No edits below this line are required
var chimpPopupLoader = document.createElement("script");
chimpPopupLoader.src = '//s3.amazonaws.com/downloads.mailchimp.com/js/signup-forms/popup/embed.js';
chimpPopupLoader.setAttribute('data-dojo-config', 'usePlainJson: true, isDebug: false');

jQuery(function ($) {
    document.body.appendChild(chimpPopupLoader);

    jQuery(".coming-soon").on("click", function () {
        require(["mojo/signup-forms/Loader"], function (L) { L.start({"baseUrl": mailchimpConfig.baseUrl, "uuid": mailchimpConfig.uuid, "lid": mailchimpConfig.lid})});
        document.cookie = 'MCPopupClosed=;path=/;expires=Thu, 01 Jan 1970 00:00:00 UTC;';
        document.cookie = 'MCPopupSubscribed=;path=/;expires=Thu, 01 Jan 1970 00:00:00 UTC;';
    });

});

答案 1 :(得分:0)

您错过了一个cookie:

document.cookie =“ MCEvilPopupClosed =; expires =星期四,1970年1月1日UTC时间”;

我已经纠正了完全相同的问题。

希望这会有所帮助,