No Kentico CMS, como você assina programaticamente os usuários em boletins informativos?
-
18-09-2019 - |
Pergunta
Após a conclusão de um formulário de pagamento personalizado, adiciono duas funções de usuário, um crachá e dois amigos. Todas essas mudanças funcionam bem e preenchem o objeto do usuário e as tabelas de banco de dados correspondentes. Quando uso o código abaixo (copiado e alterado da instalação do Kentico CMS), sou issubScried == true, mas o usuário nunca parece ser subscrito. Alguma ideia?
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!";
Solução
Entendi! Depois de construir o assinante, você deve adicioná -los ao boletim. Você tem que usar:
SubscriberNewsletterInfoProvider.AddSubscriberToNewsletter(sb.SubscriberID, newsletterId, DateTime.Now);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow