PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.9.0
GiveWP – Donation Plugin and Fundraising Platform v2.9.0
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
Template 6 years ago LoadTemplate.php 6 years ago Template.php 6 years ago Templates.php 6 years ago
Template.php
314 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 * @return string
115 * @since 2.7.0
116 *
117 */
118 public function getLoadingView() {
119 return GIVE_PLUGIN_DIR . 'src/Views/Form/defaultLoadingView.php';
120 }
121
122 /**
123 * Get form view filepath
124 *
125 * @return string
126 * @since 2.7.0
127 *
128 */
129 public function getFormView() {
130 return GIVE_PLUGIN_DIR . 'src/Views/Form/defaultFormTemplate.php';
131 }
132
133 /**
134 * Get receipt view filepath
135 *
136 * @return string
137 * @since 2.7.0
138 *
139 */
140 public function getReceiptView() {
141 return GIVE_PLUGIN_DIR . 'src/Views/Form/defaultFormReceiptTemplate.php';
142 }
143
144 /**
145 * return form template ID.
146 *
147 * @return string
148 * @since 2.7.0
149 */
150 abstract public function getID();
151
152 /**
153 * Get form template name.
154 *
155 * @return string
156 * @since 2.7.0
157 */
158 abstract public function getName();
159
160 /**
161 * Get form template image.
162 *
163 * @return string
164 * @since 2.7.0
165 */
166 abstract public function getImage();
167
168 /**
169 * Get options config
170 *
171 * @return array
172 * @since 2.7.0
173 */
174 abstract public function getOptionsConfig();
175
176 /**
177 * Get form template options
178 *
179 * @return Options
180 */
181 public function getOptions() {
182 return Options::fromArray( $this->getOptionsConfig() );
183 }
184
185 /**
186 * Get failed/cancelled donation message.
187 *
188 * @return string
189 * @since 2.7.0
190 */
191 public function getFailedDonationMessage() {
192 return esc_html__(
193 'We\'re sorry, your donation failed to process. Please try again or contact site support.',
194 'give'
195 );
196 }
197
198
199 /**
200 * Get failed donation page URL.
201 *
202 * @param int $formId
203 *
204 * @return mixed
205 * @since 2.7.0
206 */
207 public function getFailedPageURL( $formId ) {
208 return FormUtils::createFailedPageURL( Give()->routeForm->getURL( get_post_field( 'post_name', $formId ) ) );
209 }
210
211 /**
212 * Get donate now button label text.
213 *
214 * @return string
215 * @since 2.7.0
216 */
217 public function getDonateNowButtonLabel() {
218 return __( 'Donate Now', 'give' );
219 }
220
221 /**
222 * Get continue to donation form button label text.
223 *
224 * @return string
225 * @since 2.7.0
226 */
227 public function getContinueToDonationFormLabel() {
228 return __( 'Donate Now', 'give' );
229 }
230
231 /**
232 * Get donation introduction text.
233 *
234 * @return string|null
235 * @since 2.7.0
236 */
237 public function getDonationIntroductionContent() {
238 return null;
239 }
240
241 /**
242 * Return content position on donation form.
243 *
244 * Note: Even you are free to add introduction content at any place on donation form
245 * But still this depends upon form template style and configuration on which places you are allowed to show display introduction content.
246 *
247 * @return string|null
248 * @since 2.7.0
249 */
250 public function getDonationIntroductionContentPosition() {
251 return null;
252 }
253
254 /**
255 * Get receipt details.
256 *
257 * @param int $donationId
258 *
259 * @return DonationReceipt
260 * @since 2.7.0
261 */
262 public function getReceiptDetails( $donationId ) {
263 $receipt = new DonationReceipt( $donationId );
264
265 /**
266 * Fire the action for receipt object.
267 *
268 * @since 2.7.0
269 */
270 do_action( 'give_new_receipt', $receipt );
271
272 return $receipt;
273 }
274
275 /**
276 * Get form heading
277 *
278 * @param int $formId
279 *
280 * @return string
281 * @since 2.7.0
282 *
283 */
284 public function getFormHeading( $formId ) {
285 return get_the_title( $formId );
286 }
287
288 /**
289 * Get form image
290 *
291 * @param int $formId
292 *
293 * @return string
294 * @since 2.7.0
295 *
296 */
297 public function getFormFeaturedImage( $formId ) {
298 return get_the_post_thumbnail_url( $formId, 'full' );
299 }
300
301 /**
302 * Get form excerpt
303 *
304 * @param int|null $formId
305 *
306 * @return string
307 * @since 2.7.0
308 *
309 */
310 public function getFormExcerpt( $formId ) {
311 return get_the_excerpt( $formId );
312 }
313 }
314