diff --git a/assets/js/src/announcements/free_plan_announcement.jsx b/assets/js/src/announcements/free_plan_announcement.jsx index 49d16d0069..b422e0269b 100644 --- a/assets/js/src/announcements/free_plan_announcement.jsx +++ b/assets/js/src/announcements/free_plan_announcement.jsx @@ -1,6 +1,5 @@ import React from 'react'; import MailPoet from 'mailpoet'; -import addReferralId from 'referral_url_decorator.jsx'; class FreePlanAnnouncement extends React.Component { constructor(props) { @@ -33,7 +32,7 @@ class FreePlanAnnouncement extends React.Component {
{MailPoet.I18n.t('freePlanDescription')}
diff --git a/assets/js/src/listing/notices.jsx b/assets/js/src/listing/notices.jsx index 81638e9fad..f6c0ddeec7 100644 --- a/assets/js/src/listing/notices.jsx +++ b/assets/js/src/listing/notices.jsx @@ -2,7 +2,6 @@ import React from 'react'; import MailPoet from 'mailpoet'; import PropTypes from 'prop-types'; import ReactStringReplace from 'react-string-replace'; -import addReferralId from 'referral_url_decorator.jsx'; const resumeMailerSending = () => { MailPoet.Ajax.post({ @@ -116,7 +115,7 @@ const PHPMailerCheckSettingsNotice = () => (
diff --git a/assets/js/src/mailpoet.js b/assets/js/src/mailpoet.js
index 17d9fc36fc..6a841a1d1d 100644
--- a/assets/js/src/mailpoet.js
+++ b/assets/js/src/mailpoet.js
@@ -1,8 +1,10 @@
import FeaturesController from 'features_controller';
+import MailPoetUrlFactory from 'mailpoet_url_factory';
// A placeholder for MailPoet object
var MailPoet = {
FeaturesController: FeaturesController(window.mailpoet_feature_flags),
+ MailPoetUrlFactory: MailPoetUrlFactory(window.mailpoet_referral_id),
};
// Expose MailPoet globally
diff --git a/assets/js/src/mailpoet_url_factory.js b/assets/js/src/mailpoet_url_factory.js
new file mode 100644
index 0000000000..63131ee28e
--- /dev/null
+++ b/assets/js/src/mailpoet_url_factory.js
@@ -0,0 +1,27 @@
+const addReferralId = (url, referralId) => {
+ if (!referralId) {
+ return url;
+ }
+ const refUrl = new URL(url);
+ refUrl.searchParams.set('ref', referralId);
+ return refUrl.toString();
+};
+
+const MailPoetUrlFactory = referralId => ({
+ getFreePlanUrl: (utmCampaign = null, utmMedium = null) => {
+ const url = new URL(addReferralId('https://www.mailpoet.com/free-plan/?utm_source=plugin', referralId));
+ if (utmCampaign) {
+ url.searchParams.set('utm_campaign', utmCampaign);
+ }
+ if (utmMedium) {
+ url.searchParams.set('utm_medium', utmMedium);
+ }
+ return url.toString();
+ },
+
+ getPricingPageUrl: subscribersCount => (
+ addReferralId(`https://www.mailpoet.com/pricing/?subscribers=${subscribersCount}`, referralId)
+ ),
+});
+
+export default MailPoetUrlFactory;
diff --git a/assets/js/src/newsletter_editor/components/sidebar.js b/assets/js/src/newsletter_editor/components/sidebar.js
index 55b97eea25..5d51db20e4 100644
--- a/assets/js/src/newsletter_editor/components/sidebar.js
+++ b/assets/js/src/newsletter_editor/components/sidebar.js
@@ -7,7 +7,6 @@ import Marionette from 'backbone.marionette';
import SuperModel from 'backbone.supermodel';
import _ from 'underscore';
import jQuery from 'jquery';
-import addReferralId from 'referral_url_decorator.jsx';
var Module = {};
var SidebarView;
@@ -352,7 +351,7 @@ Module.SidebarPreviewView = Marionette.View.extend({
${MailPoet.I18n.t('newsletterPreviewErrorUseSendingService')}
diff --git a/assets/js/src/newsletters/campaign_stats/premium_banner.jsx b/assets/js/src/newsletters/campaign_stats/premium_banner.jsx
index bef9aa22b0..0dc6295a4d 100644
--- a/assets/js/src/newsletters/campaign_stats/premium_banner.jsx
+++ b/assets/js/src/newsletters/campaign_stats/premium_banner.jsx
@@ -1,6 +1,5 @@
import React from 'react';
import MailPoet from 'mailpoet';
-import addReferralId from 'referral_url_decorator.jsx';
const PremiumBanner = () => {
if (window.mailpoet_premium_active) {
@@ -12,7 +11,7 @@ const PremiumBanner = () => {
ctaButton = (
@@ -23,7 +22,7 @@ const PremiumBanner = () => {
ctaButton = (
diff --git a/assets/js/src/referral_url_decorator.jsx b/assets/js/src/referral_url_decorator.jsx
deleted file mode 100644
index bebb86d2ee..0000000000
--- a/assets/js/src/referral_url_decorator.jsx
+++ /dev/null
@@ -1,10 +0,0 @@
-const addReferralId = (url) => {
- if (!window.mailpoet_referral_id) {
- return url;
- }
- const refUrl = new URL(url);
- refUrl.searchParams.set('ref', window.mailpoet_referral_id);
- return refUrl.toString();
-};
-
-export default addReferralId;