Content management system 在Kentico CMS中,如何以编程方式向用户订阅时事通讯?

Content management system 在Kentico CMS中,如何以编程方式向用户订阅时事通讯?,content-management-system,newsletter,subscribe,kentico,Content Management System,Newsletter,Subscribe,Kentico,完成自定义付款表单后,我添加了两个用户角色、一个徽章和两个朋友。所有这些更改都很有效,并填充到用户对象和相应的数据库表中。当我使用下面的代码(从Kentico CMS安装中复制和修改)时,我得到IsSubscribed==true,但用户似乎从未订阅过。有什么想法吗 int newsletterId = 3; Subscriber sb = SubscriberProvider.GetSubscriber("cms.user", currentUser.UserID); if (sb =

完成自定义付款表单后,我添加了两个用户角色、一个徽章和两个朋友。所有这些更改都很有效,并填充到用户对象和相应的数据库表中。当我使用下面的代码(从Kentico CMS安装中复制和修改)时,我得到IsSubscribed==true,但用户似乎从未订阅过。有什么想法吗

int newsletterId = 3;
Subscriber sb = SubscriberProvider.GetSubscriber("cms.user", currentUser.UserID);
    if (sb == null)
     {
            // Create new subscriber
            sb = SaveSubscriber(); // CreateSubscriber(value[0], itemId);
      }
      // If subscriber exists and is not subscribed, subscribe him
      if ((sb != null) && (!SubscriberProvider.IsSubscribed(sb.SubscriberID, newsletterId)))
      {
         try
         {
             SubscriberProvider.Subscribe(sb.SubscriberID, newsletterId, DateTime.Now, false);
             lblTroubledUser.Text = "shoulda been subscribed to newsletter";
         }
         catch
         {
              lblTroubledUser.Text = "problem subscribing to newsletter";
         }
      }
      else
            lblTroubledUser.Text = (!SubscriberProvider.IsSubscribed(sb.SubscriberID, newsletterId)) ? "sb is null" : "already subscribed to newsletter!";

明白了!建立订阅服务器后,必须将其添加到新闻稿中。您必须使用:

SubscriberNewsletterInfoProvider.AddSubscriberToNewsletter(sb.SubscriberID, newsletterId, DateTime.Now);