Kentico CMSでは、ユーザーをニュースレターにプログラム的にサブスクライブしますか?

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

質問

カスタム支払いフォームが完成すると、2つのユーザーロール、バッジ、2人の友人を追加します。これらの変更はすべてうまく機能し、ユーザーオブジェクトと対応するデータベーステーブルに入力されます。以下のコード(Kentico CMSインストールからコピーされ、変更された)を使用すると、Issubscribed == 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