Question

À la fin d'un formulaire de paiement personnalisé ajouter deux rôles d'utilisateur, un badge, et deux amis. Tous ces changements fonctionnent bien et remplir à l'objet utilisateur et les tables de base de données correspondants. Lorsque j'utilise le code ci-dessous (copié et modifié de Kentico CMS installer) Je reçois IsSubscribed == vrai, mais l'utilisateur ne semble jamais être abonné. Toutes les idées?

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!";
Était-ce utile?

La solution

Je l'ai! Après avoir créé l'abonné vous devez les ajouter à la Newsletter. Vous devez utiliser:

SubscriberNewsletterInfoProvider.AddSubscriberToNewsletter(sb.SubscriberID, newsletterId, DateTime.Now);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top