В Kentico CMS, как вы программно подписываете пользователей на информационные бюллетени?

StackOverflow https://stackoverflow.com/questions/1293687

Вопрос

По завершении индивидуальной формы оплаты я добавляю две роли пользователя, значок и двух друзей. Все эти изменения работают хорошо и заполняются пользовательским объектом и соответствующими таблицами базы данных. Когда я использую приведенный ниже код (скопированный и измененный из установки Kentico CMS), я получаю IssubScribled == 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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top