PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.12.1
GiveWP – Donation Plugin and Fundraising Platform v2.12.1
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 6 years ago LoadTemplate.php 5 years ago Template.php 5 years ago Templates.php 6 years ago
Templates.php
115 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\Views\Form\Templates\Legacy\Legacy;
13 use Give\Views\Form\Templates\Sequoia\Sequoia;
14 use Give\Helpers\Form\Template as FormTemplateUtils;
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 * Templates
28 *
29 * @var array
30 */
31 private $templates = [];
32
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 * Filter list of form template
49 *
50 * @param Template[]
51 *
52 * @since 2.7.0
53 */
54 $this->templates = apply_filters(
55 'give_register_form_template',
56 [
57 'sequoia' => Sequoia::class,
58 'legacy' => Legacy::class,
59 ]
60 );
61 }
62
63 /**
64 * Get Registered templates
65 *
66 * @return Template[]
67 * @since 2.7.0
68 */
69 public function getTemplates() {
70 // Check if all templates have there object or not.
71 $remainingObjs = array_diff( array_keys( $this->templates ), array_keys( $this->templateObjs ) );
72
73 // Get object if any remaining
74 if ( $remainingObjs ) {
75 foreach ( $remainingObjs as $templateId ) {
76 $this->templateObjs[ $templateId ] = $this->getTemplateObject( $templateId );
77 }
78 }
79
80 return $this->templateObjs;
81 }
82
83 /**
84 * Get Registered form template
85 *
86 * @param string $templateId Template Id. Default to active form template.
87 *
88 * @return Template
89 * @since 2.7.0
90 */
91 public function getTemplate( $templateId = null ) {
92 $templateId = $templateId ?: FormTemplateUtils::getActiveID();
93
94 if ( isset( $this->templateObjs[ $templateId ] ) ) {
95 return $this->templateObjs[ $templateId ];
96 }
97
98 $this->templateObjs[ $templateId ] = $this->getTemplateObject( $templateId );
99
100 return $this->getTemplateObject( $templateId );
101 }
102
103 /**
104 * Get class object.
105 *
106 * @param string $templateId
107 *
108 * @return Template
109 * @since 2.7.0
110 */
111 private function getTemplateObject( $templateId ) {
112 return new $this->templates[ $templateId ]();
113 }
114 }
115