PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.14.2
GiveWP – Donation Plugin and Fundraising Platform v3.14.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 / Views / Form / Templates / Sequoia / Sequoia.php
give / src / Views / Form / Templates / Sequoia Last commit date
assets 3 years ago sections 1 year ago views 3 years ago Actions.php 4 years ago Sequoia.php 3 years ago optionConfig.php 4 years ago
Sequoia.php
476 lines
1 <?php
2
3 namespace Give\Views\Form\Templates\Sequoia;
4
5 use Give\Form\Template;
6 use Give\Form\Template\Hookable;
7 use Give\Form\Template\Scriptable;
8 use Give\Helpers\Form\Template as FormTemplateUtils;
9 use Give\Helpers\Utils;
10 use Give\Receipt\DonationReceipt;
11 use Give_Donate_Form as DonationForm;
12 use Give_Scripts;
13
14 use function give_do_email_tags as formatContent;
15 use function give_is_setting_enabled;
16
17 /**
18 * Class Sequoia
19 *
20 * @package Give\Views\Form\Templates
21 */
22 class Sequoia extends Template implements Hookable, Scriptable
23 {
24 /**
25 * Contains the options for the Sequoia form template.
26 * @since 2.27.0
27 * @var array
28 */
29 private $options;
30
31 public function __construct()
32 {
33 $this->options = FormTemplateUtils::getOptions();
34 }
35
36 /**
37 * @inheritDoc
38 */
39 public function getFormStartingHeight($formId)
40 {
41 $form = new DonationForm($formId);
42 $templateOptions = FormTemplateUtils::getOptions($formId);
43 if ($templateOptions['introduction']['enabled'] === 'disabled') {
44 return 645;
45 }
46 $goalHeight = ! $form->has_goal() ? 0 : 123;
47 $imageHeight = empty($templateOptions['introduction']['image']) && empty(
48 get_post_thumbnail_id(
49 $formId
50 )
51 ) ? 0 : 175;
52
53 return 423 + $goalHeight + $imageHeight;
54 }
55
56 /**
57 * @inheritDoc
58 */
59 public function getLoadingView()
60 {
61 return GIVE_PLUGIN_DIR . 'src/Views/Form/Templates/Sequoia/views/loading.php';
62 }
63
64 /**
65 * @inheritDoc
66 */
67 public function getReceiptView()
68 {
69 return wp_doing_ajax(
70 ) ? GIVE_PLUGIN_DIR . 'src/Views/Form/Templates/Sequoia/views/receipt.php' : parent::getReceiptView();
71 }
72
73 /**
74 * @inheritDoc
75 */
76 public function loadHooks()
77 {
78 $actions = new Actions();
79 $actions->init();
80 }
81
82 /**
83 * @inheritDoc
84 * @since 2.16.0 Load google fonts if "enabled".
85 */
86 public function loadScripts()
87 {
88 // Localize Template options
89 $templateOptions = FormTemplateUtils::getOptions();
90
91 // Set defaults
92 $templateOptions['visual_appearance']['google-fonts'] = ! empty($templateOptions['visual_appearance']['google-fonts']) ? $templateOptions['visual_appearance']['google-fonts'] : 'enabled';
93 $templateOptions['introduction']['donate_label'] = ! empty($templateOptions['introduction']['donate_label']) ? $templateOptions['introduction']['donate_label'] : __(
94 'Donate Now',
95 'give'
96 );
97 $templateOptions['visual_appearance']['primary_color'] = ! empty($templateOptions['visual_appearance']['primary_color']) ? $templateOptions['visual_appearance']['primary_color'] : '#28C77B';
98 $templateOptions['payment_amount']['next_label'] = ! empty($templateOptions['payment_amount']['next_label']) ? $templateOptions['payment_amount']['next_label'] : __(
99 'Continue',
100 'give'
101 );
102 $templateOptions['payment_amount']['header_label'] = ! empty($templateOptions['payment_amount']['header_label']) ? $templateOptions['payment_amount']['header_label'] : __(
103 'Choose Amount',
104 'give'
105 );
106 $templateOptions['payment_information']['header_label'] = ! empty($templateOptions['payment_information']['header_label']) ? $templateOptions['payment_information']['header_label'] : __(
107 'Add Your Information',
108 'give'
109 );
110 $templateOptions['payment_information']['checkout_label'] = ! empty($templateOptions['payment_information']['checkout_label']) ? $templateOptions['payment_information']['checkout_label'] : __(
111 'Process Donation',
112 'give'
113 );
114
115 $isGoogleFontEnabled = give_is_setting_enabled($templateOptions['visual_appearance']['google-fonts']);
116
117 if ($isGoogleFontEnabled) {
118 wp_enqueue_style(
119 'give-google-font-montserrat',
120 'https://fonts.googleapis.com/css?family=Montserrat:400,500,600,700&display=swap',
121 [],
122 GIVE_VERSION
123 );
124 }
125
126 // If default Give styles are disabled globally, enqueue Give default styles here
127 if (! give_is_setting_enabled(give_get_option('css'))) {
128 wp_enqueue_style('give-styles', (new Give_Scripts())->get_frontend_stylesheet_uri(), [], GIVE_VERSION, 'all');
129 }
130
131 // Enqueue Sequoia template styles
132 wp_enqueue_style(
133 'give-sequoia-template-css',
134 GIVE_PLUGIN_URL . 'assets/dist/css/give-sequoia-template.css',
135 ['give-styles'],
136 GIVE_VERSION
137 );
138
139 $primaryColor = $templateOptions['visual_appearance']['primary_color'];
140 $dynamicCss = sprintf(
141 '
142 .seperator {
143 background: %1$s !important;
144 }
145 .give-btn {
146 border: 2px solid %1$s !important;
147 background: %1$s !important;
148 }
149 .give-btn:hover {
150 background: %1$s !important;
151 }
152 .give-btn:focus {
153 box-shadow: 0 0 8px %1$s;
154 }
155 .payment .give-gateway-option-selected:focus-within .give-gateway-option::before,
156 .choose-amount .give-total-wrap .give-donation-amount:focus-within {
157 border-color: %1$s !important;
158 }
159 .give-donation-level-btn {
160 border: 2px solid %1$s !important;
161 }
162 .give-donation-level-btn.give-default-level {
163 color: %1$s !important;
164 background: #fff !important;
165 transition: background 0.2s ease, color 0.2s ease;
166 }
167 .give-donation-level-btn.give-default-level:hover {
168 color: %1$s !important; background: #fff !important;
169 }
170 .give-input:focus, .give-select:focus {
171 border: 1px solid %1$s !important;
172 }
173 .checkmark {
174 border-color: %1$s !important;
175 color: %1$s !important;
176 }
177 input[type=\'radio\'] + label::after,
178 [data-field-type=\'radio\'] label::after{
179 background: %1$s !important;
180 }
181 input[type=\'radio\']:focus + label::before{
182 border-color: %1$s;
183 }
184 a {
185 color: %1$s;
186 }
187 .give-square-cc-fields:focus,
188 .give-stripe-cc-field:focus,
189 .give-stripe-single-cc-field-wrap:focus,
190 form[id*="give-form"] .form-row textarea:focus,
191 form[id*="give-form"] .form-row textarea.required:focus,
192 form[id*="give-form"] .form-row input:focus,
193 form[id*="give-form"] .form-row input.required:focus,
194 #give-recurring-form .form-row textarea:focus,
195 #give-recurring-form .form-row textarea.required:focus,
196 #give-recurring-form .form-row input:focus,
197 #give-recurring-form .form-row input.required:focus,
198 form.give-form .form-row textarea:focus,
199 form.give-form .form-row textarea.required:focus,
200 form.give-form .form-row input:focus,
201 form.give-form .form-row input.required:focus,
202 .form-row select, #give-recurring-form .form-row select:focus,
203 form.give-form .form-row select:focus,
204 .form-row select.required:focus,
205 #give-recurring-form .form-row select.required:focus,
206 form.give-form .form-row select.required:focus,
207 .give-select:focus,
208 .give-input-field-wrapper.has-focus,
209 [data-field-type="checkbox"] label:focus-within::before,
210 [data-field-type="radio"] label:focus-within::before {
211 border-color: %1$s !important;
212 }
213 ',
214 $primaryColor
215 );
216
217 $rawColor = trim($primaryColor, '#');
218 $dynamicCss .= "
219 .payment [id*='give-create-account-wrap-'] label::after {
220 background-image: url(\"data:image/svg+xml,%3Csvg width='15' height='11' viewBox='0 0 15 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.73047 10.7812C6.00391 11.0547 6.46875 11.0547 6.74219 10.7812L14.7812 2.74219C15.0547 2.46875 15.0547 2.00391 14.7812 1.73047L13.7969 0.746094C13.5234 0.472656 13.0859 0.472656 12.8125 0.746094L6.25 7.30859L3.16016 4.24609C2.88672 3.97266 2.44922 3.97266 2.17578 4.24609L1.19141 5.23047C0.917969 5.50391 0.917969 5.96875 1.19141 6.24219L5.73047 10.7812Z' fill='%23{$rawColor}'/%3E%3C/svg%3E%0A\");
221 }
222 #give_terms_agreement:hover,
223 #give_terms_agreement:focus-within,
224 #give_terms_agreement.active {
225 border: 1px solid {$primaryColor} !important;
226 }
227 #give_terms_agreement input[type='checkbox']:focus + label::before {
228 border-color: {$primaryColor};
229 }
230 #give_terms_agreement input[type='checkbox'] + label::after,
231 #give-anonymous-donation-wrap label::after,
232 [data-field-type='checkbox'] label.active:after {
233 background-image: url(\"data:image/svg+xml,%3Csvg width='15' height='11' viewBox='0 0 15 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.73047 10.7812C6.00391 11.0547 6.46875 11.0547 6.74219 10.7812L14.7812 2.74219C15.0547 2.46875 15.0547 2.00391 14.7812 1.73047L13.7969 0.746094C13.5234 0.472656 13.0859 0.472656 12.8125 0.746094L6.25 7.30859L3.16016 4.24609C2.88672 3.97266 2.44922 3.97266 2.17578 4.24609L1.19141 5.23047C0.917969 5.50391 0.917969 5.96875 1.19141 6.24219L5.73047 10.7812Z' fill='%23{$rawColor}'/%3E%3C/svg%3E%0A\") !important;
234 }
235 #give-anonymous-donation-wrap label:focus-within::before {
236 border-color: {$primaryColor} !important;
237 }
238 ";
239
240 if (Utils::isPluginActive('give-recurring/give-recurring.php')) {
241 $dynamicCss .= "
242 .give-recurring-donors-choice:hover,
243 .give-recurring-donors-choice:focus-within,
244 .give-recurring-donors-choice.active {
245 border: 1px solid {$primaryColor};
246 }
247 .give-recurring-donors-choice .give-recurring-donors-choice-period:focus,
248 .give-recurring-donors-choice input[type='checkbox']:focus + label::before {
249 border-color: {$primaryColor};
250 }
251 .give-recurring-donors-choice input[type='checkbox'] + label::after {
252 background-image: url(\"data:image/svg+xml,%3Csvg width='15' height='11' viewBox='0 0 15 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.73047 10.7812C6.00391 11.0547 6.46875 11.0547 6.74219 10.7812L14.7812 2.74219C15.0547 2.46875 15.0547 2.00391 14.7812 1.73047L13.7969 0.746094C13.5234 0.472656 13.0859 0.472656 12.8125 0.746094L6.25 7.30859L3.16016 4.24609C2.88672 3.97266 2.44922 3.97266 2.17578 4.24609L1.19141 5.23047C0.917969 5.50391 0.917969 5.96875 1.19141 6.24219L5.73047 10.7812Z' fill='%23{$rawColor}'/%3E%3C/svg%3E%0A\");
253 }
254 ";
255 }
256
257 if (Utils::isPluginActive('give-fee-recovery/give-fee-recovery.php')) {
258 $dynamicCss .= "
259 .give-fee-recovery-donors-choice.give-fee-message:hover,
260 .give-fee-recovery-donors-choice.give-fee-message:focus-within,
261 .give-fee-recovery-donors-choice.give-fee-message.active {
262 border: 1px solid {$primaryColor};
263 }
264 .give-fee-message-label input[type='checkbox']:focus + span::before {
265 border-color: {$primaryColor};
266 }
267 .give-fee-recovery-donors-choice.give-fee-message input[type='checkbox'] + .give-fee-message-label-text::after {
268 background-image: url(\"data:image/svg+xml,%3Csvg width='15' height='11' viewBox='0 0 15 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.73047 10.7812C6.00391 11.0547 6.46875 11.0547 6.74219 10.7812L14.7812 2.74219C15.0547 2.46875 15.0547 2.00391 14.7812 1.73047L13.7969 0.746094C13.5234 0.472656 13.0859 0.472656 12.8125 0.746094L6.25 7.30859L3.16016 4.24609C2.88672 3.97266 2.44922 3.97266 2.17578 4.24609L1.19141 5.23047C0.917969 5.50391 0.917969 5.96875 1.19141 6.24219L5.73047 10.7812Z' fill='%23{$rawColor}'/%3E%3C/svg%3E%0A\");
269 }
270 ";
271 }
272
273 if (Utils::isPluginActive('give-activecampaign/give-activecampaign.php')) {
274 $dynamicCss .= "
275 .give-activecampaign-fieldset:hover,
276 .give-activecampaign-fieldset:focus-within,
277 .give-activecampaign-fieldset.active {
278 border: 1px solid {$primaryColor} !important;
279 }
280 .give-activecampaign-fieldset input[type='checkbox']:focus + span::before {
281 border-color: {$primaryColor};
282 }
283 .give-activecampaign-fieldset input[type='checkbox'] + span::after {
284 background-image: url(\"data:image/svg+xml,%3Csvg width='15' height='11' viewBox='0 0 15 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.73047 10.7812C6.00391 11.0547 6.46875 11.0547 6.74219 10.7812L14.7812 2.74219C15.0547 2.46875 15.0547 2.00391 14.7812 1.73047L13.7969 0.746094C13.5234 0.472656 13.0859 0.472656 12.8125 0.746094L6.25 7.30859L3.16016 4.24609C2.88672 3.97266 2.44922 3.97266 2.17578 4.24609L1.19141 5.23047C0.917969 5.50391 0.917969 5.96875 1.19141 6.24219L5.73047 10.7812Z' fill='%23{$rawColor}'/%3E%3C/svg%3E%0A\") !important;
285 }
286 ";
287 }
288
289 if (Utils::isPluginActive('give-mailchimp/give-mailchimp.php')) {
290 $dynamicCss .= "
291 .give-mailchimp-fieldset:hover,
292 .give-mailchimp-fieldset:focus-within,
293 .give-mailchimp-fieldset.active {
294 border: 1px solid {$primaryColor} !important;
295 }
296 .give-mailchimp-fieldset input[type='checkbox']:focus + span::before {
297 border-color: {$primaryColor};
298 }
299 .give-mailchimp-fieldset input[type='checkbox'] + span::after {
300 background-image: url(\"data:image/svg+xml,%3Csvg width='15' height='11' viewBox='0 0 15 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.73047 10.7812C6.00391 11.0547 6.46875 11.0547 6.74219 10.7812L14.7812 2.74219C15.0547 2.46875 15.0547 2.00391 14.7812 1.73047L13.7969 0.746094C13.5234 0.472656 13.0859 0.472656 12.8125 0.746094L6.25 7.30859L3.16016 4.24609C2.88672 3.97266 2.44922 3.97266 2.17578 4.24609L1.19141 5.23047C0.917969 5.50391 0.917969 5.96875 1.19141 6.24219L5.73047 10.7812Z' fill='%23{$rawColor}'/%3E%3C/svg%3E%0A\") !important;
301 }
302 ";
303 }
304
305 if (Utils::isPluginActive('give-constant-contact/give-constant-contact.php')) {
306 $dynamicCss .= "
307 .give-constant-contact-fieldset:hover,
308 .give-constant-contact-fieldset:focus-within,
309 .give-constant-contact-fieldset.active {
310 border: 1px solid {$primaryColor} !important;
311 }
312 .give-constant-contact-fieldset input[type='checkbox']:focus + span::before {
313 border-color: {$primaryColor};
314 }
315 .give-constant-contact-fieldset input[type='checkbox'] + span::after {
316 background-image: url(\"data:image/svg+xml,%3Csvg width='15' height='11' viewBox='0 0 15 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.73047 10.7812C6.00391 11.0547 6.46875 11.0547 6.74219 10.7812L14.7812 2.74219C15.0547 2.46875 15.0547 2.00391 14.7812 1.73047L13.7969 0.746094C13.5234 0.472656 13.0859 0.472656 12.8125 0.746094L6.25 7.30859L3.16016 4.24609C2.88672 3.97266 2.44922 3.97266 2.17578 4.24609L1.19141 5.23047C0.917969 5.50391 0.917969 5.96875 1.19141 6.24219L5.73047 10.7812Z' fill='%23{$rawColor}'/%3E%3C/svg%3E%0A\") !important;
317 }
318 ";
319 }
320
321 if (Utils::isPluginActive('give-form-field-manager/give-ffm.php')) {
322 $dynamicCss .= "
323 .ffm-checkbox-field label.checked::after {
324 background-image: url(\"data:image/svg+xml,%3Csvg width='15' height='11' viewBox='0 0 15 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.73047 10.7812C6.00391 11.0547 6.46875 11.0547 6.74219 10.7812L14.7812 2.74219C15.0547 2.46875 15.0547 2.00391 14.7812 1.73047L13.7969 0.746094C13.5234 0.472656 13.0859 0.472656 12.8125 0.746094L6.25 7.30859L3.16016 4.24609C2.88672 3.97266 2.44922 3.97266 2.17578 4.24609L1.19141 5.23047C0.917969 5.50391 0.917969 5.96875 1.19141 6.24219L5.73047 10.7812Z' fill='%23{$rawColor}'/%3E%3C/svg%3E%0A\");
325 }
326 .ffm-radio-field label::after {
327 background: {$primaryColor};
328 }
329 .ffm-attachment-upload-filelist:focus-within,
330 .ffm-checkbox-field label:focus-within::before,
331 .ffm-radio-field label:focus-within::before {
332 border-color: {$primaryColor};
333 }
334 ";
335 }
336
337 if (Utils::isPluginActive('give-tributes/give-tributes.php')) {
338 $dynamicCss .= "
339 .give-tributes-type-button-list input[type='radio']:checked + label.give-tribute-type-button {
340 color: {$primaryColor} !important;
341 }
342 ";
343 }
344
345 if ($isGoogleFontEnabled) {
346 $dynamicCss .= "body, button, input, select{font-family: 'Montserrat', sans-serif;}";
347 }
348
349 wp_add_inline_style('give-sequoia-template-css', $dynamicCss);
350
351 wp_enqueue_script(
352 'give-sequoia-template-js',
353 GIVE_PLUGIN_URL . 'assets/dist/js/give-sequoia-template.js',
354 ['give'],
355 GIVE_VERSION,
356 true
357 );
358 wp_localize_script('give-sequoia-template-js', 'sequoiaTemplateOptions', $templateOptions);
359 wp_localize_script(
360 'give-sequoia-template-js',
361 'sequoiaTemplateL10n',
362 [
363 'optionalLabel' => sprintf('&nbsp;(%s)', esc_html__('optional', 'give')),
364 ]
365 );
366 }
367
368 /**
369 * @inheritDoc
370 */
371 public function getID()
372 {
373 return 'sequoia';
374 }
375
376 /**
377 * @inheritDoc
378 */
379 public function getName()
380 {
381 return __('Multi-Step Form', 'give');
382 }
383
384 /**
385 * @inheritDoc
386 */
387 public function getImage()
388 {
389 return GIVE_PLUGIN_URL . 'assets/dist/images/admin/template-preview-multi-step.png';
390 }
391
392 /**
393 * @inheritDoc
394 */
395 public function getOptionsConfig()
396 {
397 return require 'optionConfig.php';
398 }
399
400 /**
401 * @inheritDoc
402 * @since 2.15.0 Allow HTML in thank you message.
403 */
404 public function getReceiptDetails($donationId)
405 {
406 $receipt = new DonationReceipt($donationId);
407 $options = FormTemplateUtils::getOptions();
408
409 $receipt->heading = esc_html($options['thank-you']['headline']);
410 $receipt->message = wp_kses_post(
411 formatContent($options['thank-you']['description'], ['payment_id' => $donationId])
412 );
413
414 /**
415 * Fire the action for receipt object.
416 *
417 * @since 2.7.0
418 */
419 do_action('give_new_receipt', $receipt);
420
421 return $receipt;
422 }
423
424 /**
425 * Get form heading
426 *
427 * @since 2.7.0
428 *
429 * @param int $formId
430 *
431 * @return string
432 */
433 public function getFormHeading($formId)
434 {
435 $templateOptions = FormTemplateUtils::getOptions($formId);
436
437 return ! empty($templateOptions['introduction']['headline']) ?
438 $templateOptions['introduction']['headline'] :
439 get_the_title($formId);
440 }
441
442 /**
443 * Get form image
444 *
445 * @since 2.7.0
446 *
447 * @param int $formId
448 *
449 * @return string
450 */
451 public function getFormFeaturedImage($formId)
452 {
453 $templateOptions = FormTemplateUtils::getOptions($formId);
454
455 return ! empty($templateOptions['introduction']['image']) ?
456 $templateOptions['introduction']['image'] :
457 get_the_post_thumbnail_url($formId, 'full');
458 }
459
460 /**
461 * Get form excerpt
462 *
463 * @since 2.27.0 Display only form description in Multi-Step donation form template.
464 * @since 2.19.6 Form excerpt has precedence over form description
465 * @since 2.7.0
466 *
467 * @param int|null $formId
468 *
469 * @return string|void
470 */
471 public function getFormExcerpt($formId)
472 {
473 return $this->options['introduction']['description'];
474 }
475 }
476