在自定义的支付形式完成我添加两个用户角色,徽章,和两个朋友。所有的这些变化工作得很好,并填充到用户对象和相应的数据库表。当我使用下面的代码(复制和Kentico CMS改变安装),我得到IsSubscribed ==真,但用户从来没有出现被认购。任何想法?

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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top