【问题标题】:WooCommerce - Check Mailchimp subscribers before allowing couponWooCommerce - 在允许优惠券之前检查 Mailchimp 订阅者
【发布时间】:2018-01-24 11:43:20
【问题描述】:

我希望解决有关 MailChimp 和 WooCommerce 集成的难题,我们的情况是,我们使用 MailChimp 发送静态优惠券,由于我们内部的 CRM,它们是静态的。一旦发送了静态优惠券,人们就可以在我们的网站上使用它,但是,没有任何地方可以防止与尚未注册的人共享此代码,因此我们希望在您使用特定的优惠券,它会根据 Mailchimp 检查您在网站上使用的电子邮件地址,如果您在列表中,则优惠券适用,否则不适用,我只是想看看这是否可能,如果可以,如何?

我们在这个问题上迷路了,所以可以在这里使用社区的帮助,我们觉得这个线程将来也可能对其他人有用,感谢它是具体的,但以后可能会用于安全性。

提前非常感谢!

【问题讨论】:

  • 嗨,它值得检查一下drawm的MailChimp API包装器,已经在许多WP项目中使用它:github.com/drewm/mailchimp-api您可以从登录的用户数据中获取用户电子邮件,然后使用api包装器检查'如果存在'在 MC 中
  • 嗨 Rich,唯一的问题是我想定位未登录的用户......
  • 嗨,Daniel,如果用户没有登录,那么除了检查 cookie 数据之外,我看不到其他解决方法,但是如果用户不在他们经常用于您网站的机器上,请尝试并使用优惠券它仍然不起作用。另一个想法可能是将优惠券设置为一次性使用,这样可以防止分享/利润损失问题。
  • 嗨 Rich,我想将作为访客签出时使用的电子邮件地址与 Mailchimp 订阅者列表相匹配,因此计算机、IP 等无关紧要,它也会拒绝共享优惠券,除非与之共享的人也已注册。

标签: php wordpress woocommerce mailchimp coupon


【解决方案1】:

使用Drewms Mailchimp wrapper 或类似名称,您可以执行以下操作,不要忘记包含您的 MailChimp API 密钥和列表 ID。

include 'Mailchimp.php';
use \DrewM\MailChimp\MailChimp;
$MailChimp = new MailChimp('your**api***key');

function emailExistsMc($subscriberMail, $list_id){
    global $MailChimp;
    $subscriber_hash = $MailChimp->subscriberHash($subscriberMail);
    $result = $MailChimp->get("lists/$list_id/members/$subscriber_hash");
    if($result['status'] == 'subscribed') {
     return true;
    } else {
     return false;
    }

}    

add_action('woocommerce_checkout_process', 'my_themes_guest_email_checker');

    function my_themes_guest_email_checker() {
        global $woocommerce;

        $list_id = <list id here>;

        // Check checkout email address against MC list, if exists proceed
        if ( emailExistsMc($_POST['billing_email'], $list_id) ) {

        } else {
          $woocommerce->add_error( __('This coupon is not valid') );
        }

    }

【讨论】:

  • 嗨 Rich,非常感谢,此代码也显示“致命错误:找不到 Class 'DrewM\MailChimp\MailChimp'”,我可以预先定义一张优惠券供它检查吗?只需要它检查一个针对 Mailchimp 的优惠券代码...
  • 嗨,Daniel,您是否在主题或插件中包含 Drewm 包装器并确保包含链接是正确的路径?
  • 当然做到了 :-) 你给我的第一行代码包括我放在主题目录中的文件
  • 如果您遇到该错误,则肯定是路径或文件名问题,请确保它们完全匹配
猜你喜欢
  • 2017-09-24
  • 2021-02-18
  • 2021-01-21
  • 1970-01-01
  • 2019-04-30
  • 2016-11-10
  • 2017-02-06
  • 2022-01-19
  • 1970-01-01
相关资源
最近更新 更多