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

Laravel-Newsletter v5.1无subscribePending方法,求实现或替代方案

解决Laravel Newsletter v5.1中实现待确认订阅的问题

方案一:手动实现待确认订阅逻辑

Laravel Newsletter v5.1本身没有subscribePending()方法,但可以通过调用底层Mailchimp API的参数来实现待确认订阅(即双重验证订阅)。

原有的subscribe()方法支持传入第三个参数作为选项,其中double_optin设为true时,Mailchimp会向用户发送确认邮件,用户点击链接后才会完成订阅(此时用户处于待确认状态)。直接修改现有代码即可:

use Newsletter;

Newsletter::subscribe(
    $email,
    ['FNAME' => $fname, 'LNAME' => $lname],
    ['double_optin' => true]
);

如果希望保留subscribePending()的调用方式,可以通过宏定义扩展Newsletter门面:
在App\Providers\AppServiceProvider的boot()方法中添加以下代码:

use Spatie\Newsletter\NewsletterFacade as Newsletter;

public function boot()
{
    Newsletter::macro('subscribePending', function ($email, $mergeFields = []) {
        return $this->subscribe($email, $mergeFields, ['double_optin' => true]);
    });
}

之后就可以像预期那样调用:

Newsletter::subscribePending($email, ['FNAME' => $fname, 'LNAME' => $lname]);

方案二:使用替代包

如果不想手动扩展,可以选择直接使用Mailchimp官方的PHP SDK,自行封装订阅和待确认订阅的逻辑;或者使用支持双重验证订阅的Laravel集成包,比如laravel-mailchimp,这类包通常原生支持类似subscribe()和subscribePending()的语义化方法,同时兼容Laravel的配置方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 07:46:05