Wie zeichnen Sie in Kentico CMS den Benutzer programmgesteuert für Newsletter ab?
-
18-09-2019 - |
Frage
Nach Abschluss eines benutzerdefinierten Zahlungsformulars füge ich zwei Benutzerrollen, ein Abzeichen und zwei Freunde hinzu. All diese Änderungen funktionieren gut und füllen sich für das Benutzerobjekt und entsprechende Datenbanktabellen aus. Wenn ich den folgenden Code verwende (kopiert und von der Installation von Kentico CMS geändert) werde ich issuBcribed == true, aber der Benutzer scheint nie abonniert zu sein. Irgendwelche Ideen?
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!";
Lösung
Ich habs! Nachdem Sie den Abonnenten erstellt haben, müssen Sie sie dem Newsletter hinzufügen. Sie müssen verwenden:
SubscriberNewsletterInfoProvider.AddSubscriberToNewsletter(sb.SubscriberID, newsletterId, DateTime.Now);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow