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/CHANGELOG.md +28 -0
- package/dist/collections.cjs +25 -1
- package/dist/collections.cjs.map +1 -1
- package/dist/collections.js +25 -1
- package/dist/collections.js.map +1 -1
- package/dist/server.js +27 -13
- package/package.json +1 -1
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: "
|
|
2617
|
-
//
|
|
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.
|
|
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",
|