2009-08-18 18 views
3

カスタム支払いフォームが完成したら、2つのユーザーロール、バッジ、2人の友人を追加します。これらの変更はすべて正常に機能し、Userオブジェクトと対応するデータベーステーブルに移入されます。以下のコード(Kentico CMSのインストールからコピーして変更)を使用すると、IsSubscribed == trueになりますが、ユーザーは決して購読していないようです。何か案は?Kentico CMSでは、ニュースレターにユーザーをプログラムで登録するにはどうすればよいですか?

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!"; 

答えて

5

これを取得しました!購読者を作成した後、ニュースレターに追加する必要があります。あなたは使用する必要があります:

SubscriberNewsletterInfoProvider.AddSubscriberToNewsletter(sb.SubscriberID, newsletterId, DateTime.Now); 
関連する問題