PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.17.3
GiveWP – Donation Plugin and Fundraising Platform v2.17.3
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 4 years ago Template 4 years ago LoadTemplate.php 4 years ago Template.php 4 years ago Templates.php 4 years ago
Templates.php
122 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\Legacy\Legacy;
14 use Give\Views\Form\Templates\Sequoia\Sequoia;
15
16 defined('ABSPATH') || exit;
17
18 /**
19 * Class Templates
20 *
21 * @package Give\Form
22 *
23 * @since 2.7.0
24 */
25 class Templates
26 {
27 /**
28 * Templates
29 *
30 * @var array
31 */
32 private $templates = [];
33
34 /**
35 * Template Objects
36 *
37 * @var Template[]
38 */
39 private $templateObjs = [];
40
41 /**
42 * Load templates
43 *
44 * @since 2.7.0
45 */
46 public function load()
47 {
48 /**
49 * Filter list of form template
50 *
51 * @since 2.7.0
52 *
53 * @param Template[]
54 *
55 */
56 $this->templates = apply_filters(
57 'give_register_form_template',
58 [
59 'sequoia' => Sequoia::class,
60 'legacy' => Legacy::class,
61 ]
62 );
63 }
64
65 /**
66 * Get Registered templates
67 *
68 * @since 2.7.0
69 * @return Template[]
70 */
71 public function getTemplates()
72 {
73 // Check if all templates have there object or not.
74 $remainingObjs = array_diff(array_keys($this->templates), array_keys($this->templateObjs));
75
76 // Get object if any remaining
77 if ($remainingObjs) {
78 foreach ($remainingObjs as $templateId) {
79 $this->templateObjs[$templateId] = $this->getTemplateObject($templateId);
80 }
81 }
82
83 return $this->templateObjs;
84 }
85
86 /**
87 * Get Registered form template
88 *
89 * @since 2.7.0
90 *
91 * @param string $templateId Template Id. Default to active form template.
92 *
93 * @return Template
94 */
95 public function getTemplate($templateId = null)
96 {
97 $templateId = $templateId ?: FormTemplateUtils::getActiveID();
98
99 if (isset($this->templateObjs[$templateId])) {
100 return $this->templateObjs[$templateId];
101 }
102
103 $this->templateObjs[$templateId] = $this->getTemplateObject($templateId);
104
105 return $this->getTemplateObject($templateId);
106 }
107
108 /**
109 * Get class object.
110 *
111 * @since 2.7.0
112 *
113 * @param string $templateId
114 *
115 * @return Template
116 */
117 private function getTemplateObject($templateId)
118 {
119 return new $this->templates[$templateId]();
120 }
121 }
122