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