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.
- package/CHANGELOG.md +23 -0
- package/dist/client.d.ts +1 -0
- package/dist/collections.cjs +36 -1
- package/dist/collections.cjs.map +1 -1
- package/dist/collections.js +36 -1
- package/dist/collections.js.map +1 -1
- package/dist/server.d.ts +1 -0
- package/dist/server.js +38 -1
- package/dist/types.d.cts +1 -0
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
package/dist/server.d.ts
CHANGED
package/dist/server.js
CHANGED
|
@@ -454,6 +454,17 @@ var createSubscribersCollection = (pluginConfig) => {
|
|
|
454
454
|
admin: {
|
|
455
455
|
description: "Where the subscriber signed up from"
|
|
456
456
|
}
|
|
457
|
+
},
|
|
458
|
+
// Import tracking
|
|
459
|
+
{
|
|
460
|
+
name: "importedFromProvider",
|
|
461
|
+
type: "checkbox",
|
|
462
|
+
defaultValue: false,
|
|
463
|
+
admin: {
|
|
464
|
+
description: "Indicates this subscriber was imported from an external provider via webhook",
|
|
465
|
+
position: "sidebar",
|
|
466
|
+
readOnly: true
|
|
467
|
+
}
|
|
457
468
|
}
|
|
458
469
|
];
|
|
459
470
|
if (pluginConfig.features?.utmTracking?.enabled) {
|
|
@@ -564,7 +575,7 @@ var createSubscribersCollection = (pluginConfig) => {
|
|
|
564
575
|
} else {
|
|
565
576
|
console.warn("[Newsletter Plugin] No email service configured for subscriber creation");
|
|
566
577
|
}
|
|
567
|
-
if (doc.subscriptionStatus === "active" && emailService) {
|
|
578
|
+
if (doc.subscriptionStatus === "active" && emailService && !doc.importedFromProvider) {
|
|
568
579
|
try {
|
|
569
580
|
const settings = await req.payload.findGlobal({
|
|
570
581
|
slug: pluginConfig.settingsSlug || "newsletter-settings"
|
|
@@ -610,6 +621,30 @@ var createSubscribersCollection = (pluginConfig) => {
|
|
|
610
621
|
console.warn("[Newsletter Plugin] No email service configured");
|
|
611
622
|
}
|
|
612
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
|
+
}
|
|
613
648
|
if (doc.subscriptionStatus === "unsubscribed" && previousDoc.subscriptionStatus !== "unsubscribed") {
|
|
614
649
|
doc.unsubscribedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
615
650
|
if (pluginConfig.hooks?.afterUnsubscribe) {
|
|
@@ -2527,6 +2562,7 @@ async function handleSubscriberSubscribed(event, payload, subscribersSlug) {
|
|
|
2527
2562
|
subscriptionStatus: "active",
|
|
2528
2563
|
subscribedAt: data.subscribed_at,
|
|
2529
2564
|
externalId: data.id,
|
|
2565
|
+
importedFromProvider: true,
|
|
2530
2566
|
attributes: data.attributes || {}
|
|
2531
2567
|
}
|
|
2532
2568
|
});
|
|
@@ -2605,6 +2641,7 @@ async function handleSubscriberCreated(event, payload, subscribersSlug) {
|
|
|
2605
2641
|
// New subscribers start as pending
|
|
2606
2642
|
externalId: data.id,
|
|
2607
2643
|
source: data.source,
|
|
2644
|
+
importedFromProvider: true,
|
|
2608
2645
|
attributes: data.attributes || {}
|
|
2609
2646
|
}
|
|
2610
2647
|
});
|
package/dist/types.d.cts
CHANGED
package/dist/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "payload-plugin-newsletter",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
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",
|