PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.10.3
GiveWP – Donation Plugin and Fundraising Platform v2.10.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 / Template.php
give / src / Form Last commit date
LegacyConsumer 5 years ago Template 6 years ago LoadTemplate.php 5 years ago Template.php 5 years ago Templates.php 6 years ago
Template.php
327 lines
1 <?php
2
3 /**
4 * Handle basic setup of form template
5 *
6 * @package Give
7 * @since 2.7.0
8 */
9
10 namespace Give\Form;
11
12 use Give\Form\Template\Options;
13 use Give\Helpers\Form\Template as FormTemplateUtils;
14 use Give\Helpers\Form\Utils as FormUtils;
15 use Give\Receipt\DonationReceipt;
16
17 defined( 'ABSPATH' ) || exit;
18
19 /**
20 * Template class.
21 *
22 * @since 2.7.0
23 */
24 abstract class Template {
25 /**
26 * Flag to check whether or not open success page in iframe.
27 *
28 * @var bool $openSuccessPageInIframe If set to false then success page will open in window instead of iframe.
29 */
30 public $openSuccessPageInIframe = true;
31
32 /**
33 * Flag to check whether or not open failed page in iframe.
34 *
35 * @var bool $openFailedPageInIframe If set to false then failed page will open in window instead of iframe.
36 */
37 public $openFailedPageInIframe = true;
38
39 /**
40 * Determines how the form is rendered to the page.
41 *
42 * Acceptable values:
43 * - button (show a button that displays the form when clicked)
44 * - onpage (render the form right on the page)
45 *
46 * @var string
47 */
48 public $donationFormStyle = 'button';
49
50 /**
51 * Determines how the form amount choices are rendered to the page.
52 *
53 * Acceptable values:
54 * - buttons (render donation amount choices as button )
55 * - radio (render donation amount choices as radio )
56 * - dropdown (render donation amount choices in dropdown (select) )
57 *
58 * @var string
59 */
60 public $donationFormLevelsStyle = 'buttons';
61
62 /**
63 * Determines how the form field labels render on the page.
64 *
65 * Acceptable values:
66 * - true (render with floating label style)
67 * - false (render as is)
68 *
69 * @var bool
70 */
71 public $floatingLabelsStyle = false;
72
73 /**
74 * Determines whether or not render form content on page.
75 *
76 * Acceptable values:
77 * - true (render form content on page )
78 * - false (do not render form content on page)
79 *
80 * @var bool
81 */
82 public $showDonationIntroductionContent = false;
83
84 /**
85 * Get starting form height
86 *
87 * Returns starting height for iframe (in pixels), this is used to predict iframe height before the iframe loads
88 * Implemented in includes/shortcodes.php:
89 *
90 * @param int $formId Form ID
91 *
92 * @return int
93 **/
94 public function getFormStartingHeight( $formId ) {
95 return 600;
96 }
97
98 /**
99 * Get form receipt height
100 *
101 * Returns receipt height for iframe (in pixels), this is used to predict iframe height before the iframe loads
102 * Implemented in includes/shortcodes.php:
103 * Implemented in form donation processing view
104 *
105 * @return int
106 **/
107 public function getFormReceiptHeight() {
108 return 977;
109 }
110
111 /**
112 * Get loading view filepath
113 *
114 * @since 2.7.0
115 *
116 * @return string
117 */
118 public function getLoadingView() {
119 return GIVE_PLUGIN_DIR . 'src/Views/Form/defaultLoadingView.php';
120 }
121
122 /**
123 * Renders the loading view
124 *
125 * @since 2.9.2
126 *
127 * @param int $formId
128 */
129 public function renderLoadingView( $formId = null ) {
130 include $this->getLoadingView();
131 }
132
133 /**
134 * Get form view filepath
135 *
136 * @since 2.7.0
137 *
138 * @return string
139 */
140 public function getFormView() {
141 return GIVE_PLUGIN_DIR . 'src/Views/Form/defaultFormTemplate.php';
142 }
143
144 /**
145 * Get receipt view filepath
146 *
147 * @since 2.7.0
148 *
149 * @return string
150 */
151 public function getReceiptView() {
152 return GIVE_PLUGIN_DIR . 'src/Views/Form/defaultFormReceiptTemplate.php';
153 }
154
155 /**
156 * return form template ID.
157 *
158 * @since 2.7.0
159 * @return string
160 */
161 abstract public function getID();
162
163 /**
164 * Get form template name.
165 *
166 * @since 2.7.0
167 * @return string
168 */
169 abstract public function getName();
170
171 /**
172 * Get form template image.
173 *
174 * @since 2.7.0
175 * @return string
176 */
177 abstract public function getImage();
178
179 /**
180 * Get options config
181 *
182 * @since 2.7.0
183 * @return array
184 */
185 abstract public function getOptionsConfig();
186
187 /**
188 * Get form template options
189 *
190 * @return Options
191 */
192 public function getOptions() {
193 return Options::fromArray( $this->getOptionsConfig() );
194 }
195
196 /**
197 * Get failed/cancelled donation message.
198 *
199 * @since 2.7.0
200 * @return string
201 */
202 public function getFailedDonationMessage() {
203 return esc_html__(
204 'We\'re sorry, your donation failed to process. Please try again or contact site support.',
205 'give'
206 );
207 }
208
209
210 /**
211 * Get failed donation page URL.
212 *
213 * @since 2.7.0
214 *
215 * @param int $formId
216 *
217 * @return mixed
218 */
219 public function getFailedPageURL( $formId ) {
220 return FormUtils::createFailedPageURL( Give()->routeForm->getURL( get_post_field( 'post_name', $formId ) ) );
221 }
222
223 /**
224 * Get donate now button label text.
225 *
226 * @since 2.7.0
227 * @return string
228 */
229 public function getDonateNowButtonLabel() {
230 return __( 'Donate Now', 'give' );
231 }
232
233 /**
234 * Get continue to donation form button label text.
235 *
236 * @since 2.7.0
237 * @return string
238 */
239 public function getContinueToDonationFormLabel() {
240 return __( 'Donate Now', 'give' );
241 }
242
243 /**
244 * Get donation introduction text.
245 *
246 * @since 2.7.0
247 * @return string|null
248 */
249 public function getDonationIntroductionContent() {
250 return null;
251 }
252
253 /**
254 * Return content position on donation form.
255 *
256 * Note: Even you are free to add introduction content at any place on donation form
257 * But still this depends upon form template style and configuration on which places you are allowed to show display introduction content.
258 *
259 * @since 2.7.0
260 * @return string|null
261 */
262 public function getDonationIntroductionContentPosition() {
263 return null;
264 }
265
266 /**
267 * Get receipt details.
268 *
269 * @since 2.7.0
270 *
271 * @param int $donationId
272 *
273 * @return DonationReceipt
274 */
275 public function getReceiptDetails( $donationId ) {
276 $receipt = new DonationReceipt( $donationId );
277
278 /**
279 * Fire the action for receipt object.
280 *
281 * @since 2.7.0
282 */
283 do_action( 'give_new_receipt', $receipt );
284
285 return $receipt;
286 }
287
288 /**
289 * Get form heading
290 *
291 * @since 2.7.0
292 *
293 * @param int $formId
294 *
295 * @return string
296 */
297 public function getFormHeading( $formId ) {
298 return get_the_title( $formId );
299 }
300
301 /**
302 * Get form image
303 *
304 * @since 2.7.0
305 *
306 * @param int $formId
307 *
308 * @return string
309 */
310 public function getFormFeaturedImage( $formId ) {
311 return get_the_post_thumbnail_url( $formId, 'full' );
312 }
313
314 /**
315 * Get form excerpt
316 *
317 * @since 2.7.0
318 *
319 * @param int|null $formId
320 *
321 * @return string
322 */
323 public function getFormExcerpt( $formId ) {
324 return get_the_excerpt( $formId );
325 }
326 }
327