PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.7.0
GiveWP – Donation Plugin and Fundraising Platform v2.7.0
4.16.4 4.16.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 / Views / Form / Templates / Sequoia / Sequoia.php
give / src / Views / Form / Templates / Sequoia Last commit date
assets 6 years ago sections 6 years ago views 6 years ago Actions.php 6 years ago Sequoia.php 6 years ago optionConfig.php 6 years ago
Sequoia.php
361 lines
1 <?php
2 namespace Give\Views\Form\Templates\Sequoia;
3
4 use Give\Form\Template;
5 use Give\Form\Template\Hookable;
6 use Give\Form\Template\Scriptable;
7 use Give\Receipt\DonationReceipt;
8 use Give\Helpers\Utils;
9 use Give\Helpers\Form\Template as FormTemplateUtils;
10 use \Give_Donate_Form as DonationForm;
11 use Give_Scripts;
12 use function give_do_email_tags as formatContent;
13 use function give_is_setting_enabled;
14
15
16 /**
17 * Class Sequoia
18 *
19 * @package Give\Views\Form\Templates
20 */
21 class Sequoia extends Template implements Hookable, Scriptable {
22 /**
23 * @inheritDoc
24 */
25 public function getFormStartingHeight( $formId ) {
26 $form = new DonationForm( $formId );
27 $templateOptions = FormTemplateUtils::getOptions( $formId );
28 if ( $templateOptions['introduction']['enabled'] === 'disabled' ) {
29 return 645;
30 }
31 $goalHeight = ! $form->has_goal() ? 0 : 123;
32 $imageHeight = empty( $templateOptions['introduction']['image'] ) && empty( get_post_thumbnail_id( $formId ) ) ? 0 : 175;
33 return 423 + $goalHeight + $imageHeight;
34 }
35
36 /**
37 * @inheritDoc
38 */
39 public function getLoadingView() {
40 return GIVE_PLUGIN_DIR . 'src/Views/Form/Templates/Sequoia/views/loading.php';
41 }
42
43 /**
44 * @inheritDoc
45 */
46 public function getReceiptView() {
47 return wp_doing_ajax() ? GIVE_PLUGIN_DIR . 'src/Views/Form/Templates/Sequoia/views/receipt.php' : parent::getReceiptView();
48 }
49
50 /**
51 * @inheritDoc
52 */
53 public function loadHooks() {
54 $actions = new Actions();
55 $actions->init();
56 }
57
58 /**
59 * @inheritDoc
60 */
61 public function loadScripts() {
62
63 // Localize Template options
64 $templateOptions = FormTemplateUtils::getOptions();
65
66 // Set defaults
67 $templateOptions['introduction']['donate_label'] = ! empty( $templateOptions['introduction']['donate_label'] ) ? $templateOptions['introduction']['donate_label'] : __( 'Donate Now', 'give' );
68 $templateOptions['introduction']['primary_color'] = ! empty( $templateOptions['introduction']['primary_color'] ) ? $templateOptions['introduction']['primary_color'] : '#28C77B';
69 $templateOptions['payment_amount']['next_label'] = ! empty( $templateOptions['payment_amount']['next_label'] ) ? $templateOptions['payment_amount']['next_label'] : __( 'Continue', 'give' );
70 $templateOptions['payment_amount']['header_label'] = ! empty( $templateOptions['payment_amount']['header_label'] ) ? $templateOptions['payment_amount']['header_label'] : __( 'Choose Amount', 'give' );
71 $templateOptions['payment_information']['header_label'] = ! empty( $templateOptions['payment_information']['header_label'] ) ? $templateOptions['payment_information']['header_label'] : __( 'Add Your Information', 'give' );
72 $templateOptions['payment_information']['checkout_label'] = ! empty( $templateOptions['payment_information']['checkout_label'] ) ? $templateOptions['payment_information']['checkout_label'] : __( 'Process Donation', 'give' );
73
74 wp_enqueue_style( 'give-google-font-montserrat', 'https://fonts.googleapis.com/css?family=Montserrat:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i&display=swap', [], GIVE_VERSION );
75
76 // If default Give styles are disabled globally, enqueue Give default styles here
77 if ( ! give_is_setting_enabled( give_get_option( 'css' ) ) ) {
78 wp_enqueue_style( 'give-styles', ( new Give_Scripts )->get_frontend_stylesheet_uri(), [], GIVE_VERSION, 'all' );
79 }
80
81 // Enqueue Sequoia template styles
82 wp_enqueue_style( 'give-sequoia-template-css', GIVE_PLUGIN_URL . 'assets/dist/css/give-sequoia-template.css', [ 'give-styles' ], GIVE_VERSION );
83
84 $primaryColor = $templateOptions['introduction']['primary_color'];
85 $dynamicCss = sprintf(
86 '
87 .seperator {
88 background: %1$s !important;
89 }
90 .give-btn {
91 border: 2px solid %1$s !important;
92 background: %1$s !important;
93 }
94 .give-btn:hover {
95 background: %1$s !important;
96 }
97 .give-btn:focus {
98 box-shadow: 0 0 8px %1$s;
99 }
100 .payment .give-gateway-option-selected:focus-within .give-gateway-option::before,
101 .choose-amount .give-total-wrap .give-donation-amount:focus-within {
102 border-color: %1$s !important;
103 }
104 .give-donation-level-btn {
105 border: 2px solid %1$s !important;
106 }
107 .give-donation-level-btn.give-default-level {
108 color: %1$s !important;
109 background: #fff !important;
110 transition: background 0.2s ease, color 0.2s ease;
111 }
112 .give-donation-level-btn.give-default-level:hover {
113 color: %1$s !important; background: #fff !important;
114 }
115 .give-input:focus, .give-select:focus {
116 border: 1px solid %1$s !important;
117 }
118 .checkmark {
119 border-color: %1$s !important;
120 color: %1$s !important;
121 }
122 input[type=\'radio\'] + label::after {
123 background: %1$s !important;
124 }
125 input[type=\'radio\']:focus + label::before {
126 border-color: %1$s;
127 }
128 a {
129 color: %1$s;
130 }
131 .give-square-cc-fields:focus,
132 .give-stripe-cc-field:focus,
133 .give-stripe-single-cc-field-wrap:focus,
134 form[id*="give-form"] .form-row textarea:focus,
135 form[id*="give-form"] .form-row textarea.required:focus,
136 form[id*="give-form"] .form-row input:focus,
137 form[id*="give-form"] .form-row input.required:focus,
138 #give-recurring-form .form-row textarea:focus,
139 #give-recurring-form .form-row textarea.required:focus,
140 #give-recurring-form .form-row input:focus,
141 #give-recurring-form .form-row input.required:focus,
142 form.give-form .form-row textarea:focus,
143 form.give-form .form-row textarea.required:focus,
144 form.give-form .form-row input:focus,
145 form.give-form .form-row input.required:focus,
146 .form-row select, #give-recurring-form .form-row select:focus,
147 form.give-form .form-row select:focus,
148 .form-row select.required:focus,
149 #give-recurring-form .form-row select.required:focus,
150 form.give-form .form-row select.required:focus, .give-select:focus {
151 border-color: %1$s !important;
152 }
153 ',
154 $primaryColor
155 );
156
157 $rawColor = trim( $primaryColor, '#' );
158 $dynamicCss .= "
159 .payment [id*='give-create-account-wrap-'] label::after {
160 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\");
161 }
162 #give_terms_agreement:hover,
163 #give_terms_agreement:focus-within,
164 #give_terms_agreement.active {
165 border: 1px solid {$primaryColor} !important;
166 }
167 #give_terms_agreement input[type='checkbox']:focus + label::before {
168 border-color: {$primaryColor};
169 }
170 #give_terms_agreement input[type='checkbox'] + label::after {
171 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;
172 }
173 ";
174
175 if ( Utils::isPluginActive( 'give-recurring/give-recurring.php' ) ) {
176 $dynamicCss .= "
177 .give-recurring-donors-choice:hover,
178 .give-recurring-donors-choice:focus-within,
179 .give-recurring-donors-choice.active {
180 border: 1px solid {$primaryColor};
181 }
182 .give-recurring-donors-choice .give-recurring-donors-choice-period:focus,
183 .give-recurring-donors-choice input[type='checkbox']:focus + label::before {
184 border-color: {$primaryColor};
185 }
186 .give-recurring-donors-choice input[type='checkbox'] + label::after {
187 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\");
188 }
189 ";
190 }
191
192 if ( Utils::isPluginActive( 'give-fee-recovery/give-fee-recovery.php' ) ) {
193 $dynamicCss .= "
194 .give-fee-recovery-donors-choice.give-fee-message:hover,
195 .give-fee-recovery-donors-choice.give-fee-message:focus-within,
196 .give-fee-recovery-donors-choice.give-fee-message.active {
197 border: 1px solid {$primaryColor};
198 }
199 .give-fee-message-label input[type='checkbox']:focus + span::before {
200 border-color: {$primaryColor};
201 }
202 .give-fee-recovery-donors-choice.give-fee-message input[type='checkbox'] + .give-fee-message-label-text::after {
203 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\");
204 }
205 ";
206 }
207
208 if ( Utils::isPluginActive( 'give-mailchimp/give-mailchimp.php' ) ) {
209 $dynamicCss .= "
210 .give-mailchimp-fieldset:hover,
211 .give-mailchimp-fieldset:focus-within,
212 .give-mailchimp-fieldset.active {
213 border: 1px solid {$primaryColor} !important;
214 }
215 .give-mailchimp-fieldset input[type='checkbox']:focus + span::before {
216 border-color: {$primaryColor};
217 }
218 .give-mailchimp-fieldset input[type='checkbox'] + span::after {
219 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;
220 }
221 ";
222 }
223
224 if ( Utils::isPluginActive( 'give-constant-contact/give-constant-contact.php' ) ) {
225 $dynamicCss .= "
226 .give-constant-contact-fieldset:hover,
227 .give-constant-contact-fieldset:focus-within,
228 .give-constant-contact-fieldset.active {
229 border: 1px solid {$primaryColor} !important;
230 }
231 .give-constant-contact-fieldset input[type='checkbox']:focus + span::before {
232 border-color: {$primaryColor};
233 }
234 .give-constant-contact-fieldset input[type='checkbox'] + span::after {
235 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;
236 }
237 ";
238 }
239
240 if ( Utils::isPluginActive( 'give-form-field-manager/give-ffm.php' ) ) {
241 $dynamicCss .= "
242 .ffm-checkbox-field label.checked::after {
243 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\");
244 }
245 .ffm-radio-field label::after {
246 background: {$primaryColor};
247 }
248 .ffm-attachment-upload-filelist:focus-within,
249 .ffm-checkbox-field label:focus-within::before,
250 .ffm-radio-field label:focus-within::before {
251 border-color: {$primaryColor};
252 }
253 ";
254 }
255
256 wp_add_inline_style( 'give-sequoia-template-css', $dynamicCss );
257
258 wp_enqueue_script( 'give-sequoia-template-js', GIVE_PLUGIN_URL . 'assets/dist/js/give-sequoia-template.js', [ 'give' ], GIVE_VERSION, true );
259 wp_localize_script( 'give-sequoia-template-js', 'sequoiaTemplateOptions', $templateOptions );
260 }
261
262 /**
263 * @inheritDoc
264 */
265 public function getID() {
266 return 'sequoia';
267 }
268
269 /**
270 * @inheritDoc
271 */
272 public function getName() {
273 return __( 'Multi-Step Donation Form', 'give' );
274 }
275
276 /**
277 * @inheritDoc
278 */
279 public function getImage() {
280 return GIVE_PLUGIN_URL . 'assets/dist/images/admin/SequoiaForm.jpg';
281 }
282
283 /**
284 * @inheritDoc
285 */
286 public function getOptionsConfig() {
287 return require 'optionConfig.php';
288 }
289
290 /**
291 * @inheritDoc
292 */
293 public function getReceiptDetails( $donationId ) {
294 $receipt = new DonationReceipt( $donationId );
295 $options = FormTemplateUtils::getOptions();
296
297 $receipt->heading = esc_html( $options['thank-you']['headline'] );
298 $receipt->message = esc_html( formatContent( $options['thank-you']['description'], [ 'payment_id' => $donationId ] ) );
299
300 /**
301 * Fire the action for receipt object.
302 *
303 * @since 2.7.0
304 */
305 do_action( 'give_new_receipt', $receipt );
306
307 return $receipt;
308 }
309
310 /**
311 * Get form heading
312 *
313 * @param int $formId
314 *
315 * @return string
316 * @since 2.7.0
317 *
318 */
319 public function getFormHeading( $formId ) {
320 $templateOptions = FormTemplateUtils::getOptions( $formId );
321
322 return ! empty( $templateOptions['introduction']['headline'] ) ?
323 $templateOptions['introduction']['headline'] :
324 get_the_title( $formId );
325 }
326
327 /**
328 * Get form image
329 *
330 * @param int $formId
331 *
332 * @return string
333 * @since 2.7.0
334 *
335 */
336 public function getFormFeaturedImage( $formId ) {
337 $templateOptions = FormTemplateUtils::getOptions( $formId );
338
339 return ! empty( $templateOptions['introduction']['image'] ) ?
340 $templateOptions['introduction']['image'] :
341 get_the_post_thumbnail_url( $formId, 'full' );
342 }
343
344 /**
345 * Get form excerpt
346 *
347 * @param int|null $formId
348 *
349 * @return string
350 * @since 2.7.0
351 *
352 */
353 public function getFormExcerpt( $formId ) {
354 $templateOptions = FormTemplateUtils::getOptions( $formId );
355
356 return ! empty( $templateOptions['introduction']['description'] ) ?
357 $templateOptions['introduction']['description'] :
358 get_the_excerpt( $formId );
359 }
360 }
361