PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.3.2
GiveWP – Donation Plugin and Fundraising Platform v4.3.2
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Form / Templates.php
give / src / Form Last commit date
LegacyConsumer 1 year ago Template 3 years ago LoadTemplate.php 4 years ago Template.php 1 year ago Templates.php 3 years ago
Templates.php
123 lines
1 <?php
2
3 /**
4 * Handle Form Templates
5 *
6 * @package Give
7 * @since 2.7.0
8 */
9
10 namespace Give\Form;
11
12 use Give\Helpers\Form\Template as FormTemplateUtils;
13 use Give\Views\Form\Templates\Classic\Classic;
14 use Give\Views\Form\Templates\Legacy\Legacy;
15 use Give\Views\Form\Templates\Sequoia\Sequoia;
16
17 defined('ABSPATH') || exit;
18
19 /**
20 * Class Templates
21 *
22 * @package Give\Form
23 *
24 * @since 2.7.0
25 */
26 class Templates
27 {
28 /**
29 * Templates
30 *
31 * @var array
32 */
33 private $templates = [];
34
35 /**
36 * Template Objects
37 *
38 * @var Template[]
39 */
40 private $templateObjs = [];
41
42 /**
43 * Load templates
44 *
45 * @since 2.7.0
46 */
47 public function load()
48 {
49 /**
50 * Filter list of form template
51 *
52 * @since 2.7.0
53 *
54 * @param array $templates
55 */
56 $this->templates = apply_filters(
57 'give_register_form_template',
58 [
59 'sequoia' => Sequoia::class,
60 'classic' => Classic::class,
61 'legacy' => Legacy::class,
62 ]
63 );
64 }
65
66 /**
67 * Get Registered templates
68 *
69 * @since 2.7.0
70 * @return Template[]
71 */
72 public function getTemplates()
73 {
74 // Check if all templates have there object or not.
75 $remainingObjs = array_diff(array_keys($this->templates), array_keys($this->templateObjs));
76
77 // Get object if any remaining
78 if ($remainingObjs) {
79 foreach ($remainingObjs as $templateId) {
80 $this->templateObjs[$templateId] = $this->getTemplateObject($templateId);
81 }
82 }
83
84 return $this->templateObjs;
85 }
86
87 /**
88 * Get Registered form template
89 *
90 * @since 2.7.0
91 *
92 * @param string $templateId Template Id. Default to active form template.
93 *
94 * @return Template
95 */
96 public function getTemplate($templateId = null)
97 {
98 $templateId = $templateId ?: FormTemplateUtils::getActiveID();
99
100 if (isset($this->templateObjs[$templateId])) {
101 return $this->templateObjs[$templateId];
102 }
103
104 $this->templateObjs[$templateId] = $this->getTemplateObject($templateId);
105
106 return $this->getTemplateObject($templateId);
107 }
108
109 /**
110 * Get class object.
111 *
112 * @since 2.7.0
113 *
114 * @param string $templateId
115 *
116 * @return Template
117 */
118 private function getTemplateObject($templateId)
119 {
120 return new $this->templates[$templateId]();
121 }
122 }
123