payload-plugin-newsletter 0.24.0 → 0.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/server.js CHANGED
@@ -575,7 +575,7 @@ var createSubscribersCollection = (pluginConfig) => {
575
575
  } else {
576
576
  console.warn("[Newsletter Plugin] No email service configured for subscriber creation");
577
577
  }
578
- if (doc.subscriptionStatus === "active" && emailService) {
578
+ if (doc.subscriptionStatus === "active" && emailService && !doc.importedFromProvider) {
579
579
  try {
580
580
  const settings = await req.payload.findGlobal({
581
581
  slug: pluginConfig.settingsSlug || "newsletter-settings"
@@ -621,6 +621,30 @@ var createSubscribersCollection = (pluginConfig) => {
621
621
  console.warn("[Newsletter Plugin] No email service configured");
622
622
  }
623
623
  }
624
+ if (doc.subscriptionStatus === "active" && previousDoc.subscriptionStatus === "unsubscribed" && !doc.importedFromProvider && emailService) {
625
+ try {
626
+ const settings = await req.payload.findGlobal({
627
+ slug: pluginConfig.settingsSlug || "newsletter-settings"
628
+ });
629
+ const serverURL = req.payload.config.serverURL || process.env.PAYLOAD_PUBLIC_SERVER_URL || "";
630
+ const html = await renderEmail("welcome", {
631
+ email: doc.email,
632
+ siteName: settings?.brandSettings?.siteName || "Newsletter",
633
+ preferencesUrl: `${serverURL}/account/preferences`
634
+ }, pluginConfig);
635
+ await emailService.send({
636
+ to: doc.email,
637
+ subject: settings?.brandSettings?.siteName ? `Welcome back to ${settings.brandSettings.siteName}!` : "Welcome back!",
638
+ html
639
+ });
640
+ console.warn(`Welcome email sent to resubscribed user: ${doc.email}`);
641
+ } catch (error) {
642
+ console.error("Failed to send resubscription welcome email:", error);
643
+ }
644
+ if (pluginConfig.hooks?.afterSubscribe) {
645
+ await pluginConfig.hooks.afterSubscribe({ doc, req });
646
+ }
647
+ }
624
648
  if (doc.subscriptionStatus === "unsubscribed" && previousDoc.subscriptionStatus !== "unsubscribed") {
625
649
  doc.unsubscribedAt = (/* @__PURE__ */ new Date()).toISOString();
626
650
  if (pluginConfig.hooks?.afterUnsubscribe) {
@@ -2613,8 +2637,8 @@ async function handleSubscriberCreated(event, payload, subscribersSlug) {
2613
2637
  data: {
2614
2638
  email: data.email,
2615
2639
  name: data.name,
2616
- subscriptionStatus: "pending",
2617
- // New subscribers start as pending
2640
+ subscriptionStatus: "active",
2641
+ // Match Broadcast's active status
2618
2642
  externalId: data.id,
2619
2643
  source: data.source,
2620
2644
  importedFromProvider: true,
@@ -2883,16 +2907,6 @@ var createBroadcastWebhookEndpoint = (config) => {
2883
2907
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
2884
2908
  });
2885
2909
  await routeWebhookEvent(data, req, config);
2886
- await req.payload.updateGlobal({
2887
- slug: config.settingsSlug || "newsletter-settings",
2888
- data: {
2889
- broadcastSettings: {
2890
- ...settings?.broadcastSettings || {},
2891
- lastWebhookReceived: (/* @__PURE__ */ new Date()).toISOString(),
2892
- webhookStatus: "verified"
2893
- }
2894
- }
2895
- });
2896
2910
  return Response.json({ success: true }, { status: 200 });
2897
2911
  } catch (error) {
2898
2912
  console.error("[Broadcast Webhook] Error processing webhook:", error);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload-plugin-newsletter",
3
- "version": "0.24.0",
3
+ "version": "0.25.1",
4
4
  "description": "Complete newsletter management plugin for Payload CMS with subscriber management, magic link authentication, and email service integration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",