PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.34.2
MailPoet – Newsletters, Email Marketing, and Automation v5.34.2
5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / lib / WooCommerce / Emails / MarketingConfirmation.php
mailpoet / lib / WooCommerce / Emails Last commit date
Templates 3 months ago MarketingConfirmation.php 2 months ago index.php 9 months ago
MarketingConfirmation.php
195 lines
1 <?php declare(strict_types = 1);
2
3 namespace MailPoet\WooCommerce\Emails;
4
5 if (!defined('ABSPATH')) exit;
6
7
8 use MailPoet\WP\Functions as WPFunctions;
9 use MailPoet\WPCOM\DotcomHelperFunctions;
10
11 if (!defined('ABSPATH')) exit;
12
13 // phpcs:disable Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps -- WC_Email properties use snake case.
14 // phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- WC_Email methods use snake case.
15
16 /**
17 * Marketing Confirmation Email
18 *
19 * This email is sent to confirm marketing subscriptions.
20 * Only available in Garden environment.
21 */
22 class MarketingConfirmation extends \WC_Email {
23 /**
24 * Email group slug.
25 *
26 * @var string
27 */
28 public $email_group;
29
30 public function __construct() {
31 $this->id = 'mailpoet_marketing_confirmation';
32 $this->title = __('MailPoet Marketing Confirmation', 'mailpoet');
33 $this->description = __('Send an email for customers to confirm their subscription to marketing emails.', 'mailpoet');
34 $this->customer_email = true;
35 $this->email_group = 'marketing';
36 $this->heading = $this->get_default_heading();
37 $this->subject = $this->get_default_subject();
38 $this->template_base = $this->get_template_base_path();
39 $this->template_html = 'emails/marketing-confirmation.php';
40 $this->template_plain = 'emails/plain/marketing-confirmation.php';
41 $this->placeholders = [
42 '{site_title}' => $this->get_blogname(),
43 '{activation_link}' => '',
44 '{subscriber_firstname}' => '',
45 ];
46
47 // Call parent constructor
48 parent::__construct();
49 }
50
51 /**
52 * Get template base path.
53 */
54 public function get_template_base_path() {
55 return __DIR__ . '/Templates/';
56 }
57
58 /**
59 * Get email subject.
60 */
61 public function get_default_subject() {
62 return __('Confirm your subscription to {site_title}', 'mailpoet');
63 }
64
65 /**
66 * Get email heading.
67 */
68 public function get_default_heading() {
69 return __('Confirm your subscription to {site_title}', 'mailpoet');
70 }
71
72 /**
73 * Trigger the sending of this email.
74 *
75 * @param string $to Email address to send to.
76 * @param string $activation_link Activation link for the subscriber.
77 * @param string $subscriber_firstname First name of the subscriber.
78 * @return bool True if the email was sent, false otherwise.
79 */
80 public function trigger($to, $activation_link = '', $subscriber_firstname = '') {
81 $this->setup_locale();
82 $sent = false;
83
84 if ($this->is_enabled() && $to) {
85 $this->recipient = $to;
86 $this->placeholders['{activation_link}'] = $activation_link;
87 $this->placeholders['{subscriber_firstname}'] = $subscriber_firstname;
88
89 $sent = $this->send($to, $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments());
90 }
91
92 $this->restore_locale();
93 return (bool)$sent;
94 }
95
96 /**
97 * Get content html.
98 */
99 public function get_content_html() {
100 return wc_get_template_html(
101 $this->template_html,
102 [
103 'email_heading' => $this->get_heading(),
104 'additional_content' => $this->get_additional_content(),
105 'email' => $this,
106 'activation_link' => $this->placeholders['{activation_link}'],
107 'subscriber_firstname' => $this->placeholders['{subscriber_firstname}'],
108 ],
109 '',
110 $this->template_base
111 );
112 }
113
114 /**
115 * Get content plain.
116 */
117 public function get_content_plain() {
118 return wc_get_template_html(
119 $this->template_plain,
120 [
121 'email_heading' => $this->get_heading(),
122 'additional_content' => $this->get_additional_content(),
123 'email' => $this,
124 'activation_link' => $this->placeholders['{activation_link}'],
125 'subscriber_firstname' => $this->placeholders['{subscriber_firstname}'],
126 ],
127 '',
128 $this->template_base
129 );
130 }
131
132 /**
133 * Initialize settings form fields.
134 */
135 public function init_form_fields() {
136 $this->form_fields = [
137 'enabled' => [
138 'title' => __('Enable/Disable', 'mailpoet'),
139 'type' => 'checkbox',
140 'label' => __('Enable this email notification', 'mailpoet'),
141 'default' => 'yes',
142 ],
143 'subject' => [
144 'title' => __('Subject', 'mailpoet'),
145 'type' => 'text',
146 'desc_tip' => true,
147 'description' => sprintf(
148 // translators: %s is a list of available placeholders
149 __('Available placeholders: %s', 'mailpoet'),
150 '<code>{site_title}, {activation_link}, {subscriber_firstname}</code>'
151 ),
152 'placeholder' => $this->get_default_subject(),
153 'default' => '',
154 ],
155 'heading' => [
156 'title' => __('Email heading', 'mailpoet'),
157 'type' => 'text',
158 'desc_tip' => true,
159 'description' => sprintf(
160 // translators: %s is a list of available placeholders
161 __('Available placeholders: %s', 'mailpoet'),
162 '<code>{site_title}, {activation_link}, {subscriber_firstname}</code>'
163 ),
164 'placeholder' => $this->get_default_heading(),
165 'default' => '',
166 ],
167 'additional_content' => [
168 'title' => __('Additional content', 'mailpoet'),
169 'description' => __('Text to appear below the main email content.', 'mailpoet'),
170 'type' => 'textarea',
171 'default' => '',
172 'desc_tip' => true,
173 ],
174 'email_type' => [
175 'title' => __('Email type', 'mailpoet'),
176 'type' => 'select',
177 'description' => __('Choose which format of email to send.', 'mailpoet'),
178 'default' => 'html',
179 'class' => 'email_type wc-enhanced-select',
180 'options' => $this->get_email_type_options(),
181 'desc_tip' => true,
182 ],
183 ];
184 }
185
186 /**
187 * Check if this email should be available.
188 */
189 public static function is_available() {
190 $dotcomHelperFunctions = new DotcomHelperFunctions(WPFunctions::get());
191 // Only available in Garden environment.
192 return $dotcomHelperFunctions->isGarden();
193 }
194 }
195