几个小时来,我一直试图自己解决这个问题,但我不知道我到底出了什么错。
我的网站上有一个自定义注册表,我想添加一个复选框,供用户注册新闻稿。
我通过了Mailpoet Docs 尝试了他们描述的一切,但有些东西对我不起作用。
用户已成功注册,但从未添加到我的维护列表中。这是我的密码
function newsletterSignUp(){
$subscriber_data = array(
\'email\' => sanitize_text_field($_POST[\'email\']),
\'first_name\' => sanitize_text_field($_POST[\'first_name\']),
\'last_name\' => sanitize_text_field($_POST[\'last_name\'])
);
$list = \\MailPoet\\API\\API::MP(\'v1\')->getLists()[0][id];
//Returns the ID of the list that I want to assign subscribers to
try {
$subscriber = \\MailPoet\\API\\API::MP(\'v1\')->addSubscriber($subscriber_data, $list, $options);
} catch(Exception $exception) {
// return $exception->getMessage();
}
}
我这样调用此函数:
if(isset($_POST[\'submit\'])){
// Some other code to sign up the user
if(isset($_POST[\'subscribe\'])){ //The name of my checkbox input
newsletterSignUp();
}
}
任何帮助都将不胜感激!!
SO网友:P. D. Bowman
这是一个老问题,但由于我今天一直在处理相同的一般问题,并且在解决问题的过程中发现了这个问题,我认为值得进行一次观察,以帮助其他人继续进行。
除了Jacob Peattie指出的引号被省略之外,我还发现中的第二个(可选)参数存在问题addSubscriber(). 第二个参数必须是数组-请参见Mailpoet’s documentation 关于这个。即使只将用户添加到单个列表中,参数也应该是一个数组(在本例中是一个单元素数组)。
因此
$list = \\MailPoet\\API\\API::MP(\'v1\')->getLists()[0][\'id\'];
以及
$subscriber = \\MailPoet\\API\\API::MP(\'v1\')->addSubscriber($subscriber_data, $list, $options);
应该是这样的
$list = \\MailPoet\\API\\API::MP(\'v1\')->getLists()[0][\'id\'];
$list_ids = array( $list );
使用
$subscriber = \\MailPoet\\API\\API::MP(\'v1\')->addSubscriber($subscriber_data, $list_ids, $options);