You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WooCommerce调用Mailchimp API查询订阅成员出现404错误求助

问题原因

  • 当查询的邮箱不在Mailchimp列表中时,接口返回404状态,底层GuzzleHTTP会直接抛出GuzzleHttp\Exception\ClientException异常,不会返回响应对象,你代码中的$response->status == 404判断逻辑永远无法执行。
  • 你原有代码的catch块仅捕获MailchimpMarketing\ApiException类型的异常,没有覆盖Guzzle抛出的客户端异常,因此异常未被处理直接触发PHP致命错误。
  • 补充说明:请求成功时返回的$response->status是订阅者的订阅状态(如subscribed/unsubscribed),不是HTTP状态码,原有逻辑中的状态判断完全错误。

修正后的代码

function getMemberInfo($email)
{
    $mailchimp = new \MailchimpMarketing\ApiClient();

    $mailchimp->setConfig([
        'apiKey' => $GLOBALS['mailchimpAPI'],
        'server' => $GLOBALS['mailchimpServer']
    ]);

    $list_id = $GLOBALS['mailchimpListID'];
    $subscriberHash = md5(strtolower($email));

    try {
        $response = $mailchimp->lists->getListMember($list_id, $subscriberHash);
        // 请求成功说明用户存在,直接返回1
        return 1;
    } catch (\MailchimpMarketing\ApiException $e) {
        echo $e->getMessage();
        return 0;
    } catch (\GuzzleHttp\Exception\ClientException $e) {
        // 判断是否是404错误,是则说明用户不存在
        if ($e->getResponse()->getStatusCode() == 404) {
            return 0;
        }
        // 其他客户端错误正常输出
        echo $e->getMessage();
        return 0;
    }
}

更优实现方案

你可以直接使用Mailchimp提供的批量写入方法,无需提前查询用户是否存在,接口会自动判断:用户不存在则新增,存在则更新对应信息,减少一次API请求,示例逻辑如下:

function addOrUpdateMember($email,$fname,$lname)
{
    $mailchimp = new \MailchimpMarketing\ApiClient();

    $mailchimp->setConfig([
        'apiKey' => $GLOBALS['mailchimpAPI'],
        'server' => $GLOBALS['mailchimpServer']
    ]);

    $list_id = $GLOBALS['mailchimpListID'];
    $subscriberHash = md5(strtolower($email));

    try {
        $response = $mailchimp->lists->setListMember($list_id, $subscriberHash, [
            "email_address" => $email,
            "status_if_new" => "subscribed",
            "merge_fields" => [
                "FNAME" => $fname,
                "LNAME" => $lname
            ]
        ]);
    } catch (\Exception $e) {
        echo $e->getMessage();
    }
}

内容的提问来源于stack exchange,提问作者Siddharth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:06:00