邮寄诗人在海关登记表上注册将不起作用

时间:2018-07-04 作者:Philipp K

几个小时来,我一直试图自己解决这个问题,但我不知道我到底出了什么错。

我的网站上有一个自定义注册表,我想添加一个复选框,供用户注册新闻稿。

我通过了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();
   }
}
任何帮助都将不胜感激!!

2 个回复
SO网友:Jacob Peattie

在此行:

$list = \\MailPoet\\API\\API::MP(\'v1\')->getLists()[0][id];
你缺少引号id, 所以$list 未设置为ID。您需要添加引号:

$list = \\MailPoet\\API\\API::MP(\'v1\')->getLists()[0][\'id\'];

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);

结束

相关推荐

定制器JS API:动态添加设置不起作用

我正在使用JS&;下面显示的PHP代码用于动态添加自定义设置。我知道保存设置很有效,因为当我echo get_theme_mod(\'mySetting\') 在主题模板文件中,将返回保存的值。但是,在自定义程序中刷新浏览器后,输入不会显示保存的值,而是显示实例化设置时使用的值(JS Default Value?). 我做错了什么?Note: 请阅读第一条评论。// JS enqueued via action hook: customize_controls_enqueue_scripts