payload-plugin-newsletter 0.23.0 → 0.25.0

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.
@@ -2972,6 +2972,17 @@ var createSubscribersCollection = (pluginConfig) => {
2972
2972
  admin: {
2973
2973
  description: "Where the subscriber signed up from"
2974
2974
  }
2975
+ },
2976
+ // Import tracking
2977
+ {
2978
+ name: "importedFromProvider",
2979
+ type: "checkbox",
2980
+ defaultValue: false,
2981
+ admin: {
2982
+ description: "Indicates this subscriber was imported from an external provider via webhook",
2983
+ position: "sidebar",
2984
+ readOnly: true
2985
+ }
2975
2986
  }
2976
2987
  ];
2977
2988
  if (pluginConfig.features?.utmTracking?.enabled) {
@@ -3082,7 +3093,7 @@ var createSubscribersCollection = (pluginConfig) => {
3082
3093
  } else {
3083
3094
  console.warn("[Newsletter Plugin] No email service configured for subscriber creation");
3084
3095
  }
3085
- if (doc.subscriptionStatus === "active" && emailService) {
3096
+ if (doc.subscriptionStatus === "active" && emailService && !doc.importedFromProvider) {
3086
3097
  try {
3087
3098
  const settings = await req.payload.findGlobal({
3088
3099
  slug: pluginConfig.settingsSlug || "newsletter-settings"
@@ -3128,6 +3139,30 @@ var createSubscribersCollection = (pluginConfig) => {
3128
3139
  console.warn("[Newsletter Plugin] No email service configured");
3129
3140
  }
3130
3141
  }
3142
+ if (doc.subscriptionStatus === "active" && previousDoc.subscriptionStatus === "unsubscribed" && !doc.importedFromProvider && emailService) {
3143
+ try {
3144
+ const settings = await req.payload.findGlobal({
3145
+ slug: pluginConfig.settingsSlug || "newsletter-settings"
3146
+ });
3147
+ const serverURL = req.payload.config.serverURL || process.env.PAYLOAD_PUBLIC_SERVER_URL || "";
3148
+ const html = await renderEmail("welcome", {
3149
+ email: doc.email,
3150
+ siteName: settings?.brandSettings?.siteName || "Newsletter",
3151
+ preferencesUrl: `${serverURL}/account/preferences`
3152
+ }, pluginConfig);
3153
+ await emailService.send({
3154
+ to: doc.email,
3155
+ subject: settings?.brandSettings?.siteName ? `Welcome back to ${settings.brandSettings.siteName}!` : "Welcome back!",
3156
+ html
3157
+ });
3158
+ console.warn(`Welcome email sent to resubscribed user: ${doc.email}`);
3159
+ } catch (error) {
3160
+ console.error("Failed to send resubscription welcome email:", error);
3161
+ }
3162
+ if (pluginConfig.hooks?.afterSubscribe) {
3163
+ await pluginConfig.hooks.afterSubscribe({ doc, req });
3164
+ }
3165
+ }
3131
3166
  if (doc.subscriptionStatus === "unsubscribed" && previousDoc.subscriptionStatus !== "unsubscribed") {
3132
3167
  doc.unsubscribedAt = (/* @__PURE__ */ new Date()).toISOString();
3133
3168
  if (pluginConfig.hooks?.afterUnsubscribe) {