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 / Form / Templates / TemplateRepository.php
mailpoet / lib / Form / Templates Last commit date
Templates 3 years ago FormTemplate.php 2 years ago TemplateRepository.php 3 years ago index.php 3 years ago
TemplateRepository.php
183 lines
1 <?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing
2
3 namespace MailPoet\Form\Templates;
4
5 if (!defined('ABSPATH')) exit;
6
7
8 use MailPoet\Form\Templates\Templates\InitialForm;
9 use MailPoet\Form\Templates\Templates\Template10BelowPages;
10 use MailPoet\Form\Templates\Templates\Template10FixedBar;
11 use MailPoet\Form\Templates\Templates\Template10Popup;
12 use MailPoet\Form\Templates\Templates\Template10SlideIn;
13 use MailPoet\Form\Templates\Templates\Template10Widget;
14 use MailPoet\Form\Templates\Templates\Template11BelowPages;
15 use MailPoet\Form\Templates\Templates\Template11FixedBar;
16 use MailPoet\Form\Templates\Templates\Template11Popup;
17 use MailPoet\Form\Templates\Templates\Template11SlideIn;
18 use MailPoet\Form\Templates\Templates\Template11Widget;
19 use MailPoet\Form\Templates\Templates\Template12BelowPages;
20 use MailPoet\Form\Templates\Templates\Template12FixedBar;
21 use MailPoet\Form\Templates\Templates\Template12Popup;
22 use MailPoet\Form\Templates\Templates\Template12SlideIn;
23 use MailPoet\Form\Templates\Templates\Template12Widget;
24 use MailPoet\Form\Templates\Templates\Template13BelowPages;
25 use MailPoet\Form\Templates\Templates\Template13FixedBar;
26 use MailPoet\Form\Templates\Templates\Template13Popup;
27 use MailPoet\Form\Templates\Templates\Template13SlideIn;
28 use MailPoet\Form\Templates\Templates\Template13Widget;
29 use MailPoet\Form\Templates\Templates\Template14BelowPages;
30 use MailPoet\Form\Templates\Templates\Template14FixedBar;
31 use MailPoet\Form\Templates\Templates\Template14Popup;
32 use MailPoet\Form\Templates\Templates\Template14SlideIn;
33 use MailPoet\Form\Templates\Templates\Template14Widget;
34 use MailPoet\Form\Templates\Templates\Template17BelowPages;
35 use MailPoet\Form\Templates\Templates\Template17FixedBar;
36 use MailPoet\Form\Templates\Templates\Template17Popup;
37 use MailPoet\Form\Templates\Templates\Template17SlideIn;
38 use MailPoet\Form\Templates\Templates\Template17Widget;
39 use MailPoet\Form\Templates\Templates\Template18BelowPages;
40 use MailPoet\Form\Templates\Templates\Template18FixedBar;
41 use MailPoet\Form\Templates\Templates\Template18Popup;
42 use MailPoet\Form\Templates\Templates\Template18SlideIn;
43 use MailPoet\Form\Templates\Templates\Template18Widget;
44 use MailPoet\Form\Templates\Templates\Template1BelowPages;
45 use MailPoet\Form\Templates\Templates\Template1FixedBar;
46 use MailPoet\Form\Templates\Templates\Template1Popup;
47 use MailPoet\Form\Templates\Templates\Template1SlideIn;
48 use MailPoet\Form\Templates\Templates\Template1Widget;
49 use MailPoet\Form\Templates\Templates\Template3BelowPages;
50 use MailPoet\Form\Templates\Templates\Template3FixedBar;
51 use MailPoet\Form\Templates\Templates\Template3Popup;
52 use MailPoet\Form\Templates\Templates\Template3SlideIn;
53 use MailPoet\Form\Templates\Templates\Template3Widget;
54 use MailPoet\Form\Templates\Templates\Template4BelowPages;
55 use MailPoet\Form\Templates\Templates\Template4FixedBar;
56 use MailPoet\Form\Templates\Templates\Template4Popup;
57 use MailPoet\Form\Templates\Templates\Template4SlideIn;
58 use MailPoet\Form\Templates\Templates\Template4Widget;
59 use MailPoet\Form\Templates\Templates\Template6BelowPages;
60 use MailPoet\Form\Templates\Templates\Template6FixedBar;
61 use MailPoet\Form\Templates\Templates\Template6Popup;
62 use MailPoet\Form\Templates\Templates\Template6SlideIn;
63 use MailPoet\Form\Templates\Templates\Template6Widget;
64 use MailPoet\Form\Templates\Templates\Template7BelowPages;
65 use MailPoet\Form\Templates\Templates\Template7FixedBar;
66 use MailPoet\Form\Templates\Templates\Template7Popup;
67 use MailPoet\Form\Templates\Templates\Template7SlideIn;
68 use MailPoet\Form\Templates\Templates\Template7Widget;
69 use MailPoet\Settings\SettingsController;
70 use MailPoet\UnexpectedValueException;
71 use MailPoet\Util\CdnAssetUrl;
72 use MailPoet\WP\Functions as WPFunctions;
73
74 class TemplateRepository {
75 const INITIAL_FORM_TEMPLATE = InitialForm::ID;
76
77 /** @var CdnAssetUrl */
78 private $cdnAssetUrl;
79
80 /** @var WPFunctions */
81 private $wp;
82
83 /** @var SettingsController */
84 private $settings;
85
86
87 private $templates = [
88 InitialForm::ID => InitialForm::class,
89 Template1BelowPages::ID => Template1BelowPages::class,
90 Template1FixedBar::ID => Template1FixedBar::class,
91 Template1Popup::ID => Template1Popup::class,
92 Template1SlideIn::ID => Template1SlideIn::class,
93 Template1Widget::ID => Template1Widget::class,
94 Template3BelowPages::ID => Template3BelowPages::class,
95 Template3FixedBar::ID => Template3FixedBar::class,
96 Template3Popup::ID => Template3Popup::class,
97 Template3SlideIn::ID => Template3SlideIn::class,
98 Template3Widget::ID => Template3Widget::class,
99 Template4BelowPages::ID => Template4BelowPages::class,
100 Template4FixedBar::ID => Template4FixedBar::class,
101 Template4Popup::ID => Template4Popup::class,
102 Template4SlideIn::ID => Template4SlideIn::class,
103 Template4Widget::ID => Template4Widget::class,
104 Template6BelowPages::ID => Template6BelowPages::class,
105 Template6FixedBar::ID => Template6FixedBar::class,
106 Template6Popup::ID => Template6Popup::class,
107 Template6SlideIn::ID => Template6SlideIn::class,
108 Template6Widget::ID => Template6Widget::class,
109 Template7BelowPages::ID => Template7BelowPages::class,
110 Template7FixedBar::ID => Template7FixedBar::class,
111 Template7Popup::ID => Template7Popup::class,
112 Template7SlideIn::ID => Template7SlideIn::class,
113 Template7Widget::ID => Template7Widget::class,
114 Template10BelowPages::ID => Template10BelowPages::class,
115 Template10FixedBar::ID => Template10FixedBar::class,
116 Template10Popup::ID => Template10Popup::class,
117 Template10SlideIn::ID => Template10SlideIn::class,
118 Template10Widget::ID => Template10Widget::class,
119 Template11BelowPages::ID => Template11BelowPages::class,
120 Template11FixedBar::ID => Template11FixedBar::class,
121 Template11Popup::ID => Template11Popup::class,
122 Template11SlideIn::ID => Template11SlideIn::class,
123 Template11Widget::ID => Template11Widget::class,
124 Template12BelowPages::ID => Template12BelowPages::class,
125 Template12FixedBar::ID => Template12FixedBar::class,
126 Template12Popup::ID => Template12Popup::class,
127 Template12SlideIn::ID => Template12SlideIn::class,
128 Template12Widget::ID => Template12Widget::class,
129 Template13BelowPages::ID => Template13BelowPages::class,
130 Template13FixedBar::ID => Template13FixedBar::class,
131 Template13Popup::ID => Template13Popup::class,
132 Template13SlideIn::ID => Template13SlideIn::class,
133 Template13Widget::ID => Template13Widget::class,
134 Template14BelowPages::ID => Template14BelowPages::class,
135 Template14FixedBar::ID => Template14FixedBar::class,
136 Template14Popup::ID => Template14Popup::class,
137 Template14SlideIn::ID => Template14SlideIn::class,
138 Template14Widget::ID => Template14Widget::class,
139 Template17BelowPages::ID => Template17BelowPages::class,
140 Template17FixedBar::ID => Template17FixedBar::class,
141 Template17Popup::ID => Template17Popup::class,
142 Template17SlideIn::ID => Template17SlideIn::class,
143 Template17Widget::ID => Template17Widget::class,
144 Template18BelowPages::ID => Template18BelowPages::class,
145 Template18FixedBar::ID => Template18FixedBar::class,
146 Template18Popup::ID => Template18Popup::class,
147 Template18SlideIn::ID => Template18SlideIn::class,
148 Template18Widget::ID => Template18Widget::class,
149 ];
150
151 public function __construct(
152 CdnAssetUrl $cdnAssetUrl,
153 SettingsController $settings,
154 WPFunctions $wp
155 ) {
156 $this->cdnAssetUrl = $cdnAssetUrl;
157 $this->wp = $wp;
158 $this->settings = $settings;
159 }
160
161 public function getFormTemplate(string $templateId): FormTemplate {
162 if (!isset($this->templates[$templateId])) {
163 throw UnexpectedValueException::create()
164 ->withErrors(["Template with id $templateId doesn't exist."]);
165 }
166 /** @var FormTemplate $template */
167 $template = new $this->templates[$templateId]($this->cdnAssetUrl, $this->settings, $this->wp);
168 return $template;
169 }
170
171 /**
172 * @param string[] $templateIds
173 * @return FormTemplate[] associative array with template ids as keys
174 */
175 public function getFormTemplates(array $templateIds): array {
176 $result = [];
177 foreach ($templateIds as $templateId) {
178 $result[$templateId] = $this->getFormTemplate($templateId);
179 }
180 return $result;
181 }
182 }
183