PluginProbe
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More / 0.0.2
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More v0.0.2
2.4.1 2.4.0 2.3.4 2.3.3 2.3.2 2.3.1 2.3.0 2.2.2 2.2.1 2.2.0 2.1.2 2.1.1 trunk 0.0.1 0.0.2 0.0.3 0.0.4 0.0.5 0.0.6 0.0.7 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 All 68 releases
better-payment / includes / class-better-payment-handler.php

class-better-payment-handler.php in Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More 0.0.2, at includes/class-better-payment-handler.php

535 lines 27.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 defined( 'ABSPATH' ) || exit();
3
4 class Better_Payment_Handler {
5
6 public static function paypal_button( $widget_id = '' , $settings = [] ) {
7 global $wp;
8 $return_url = add_query_arg( $wp->query_vars, get_the_permalink() . '?better_payment_paypal_status=success&better_payment_widget_id=' . $widget_id );
9 $cancel_url = add_query_arg( $wp->query_vars, get_the_permalink() . '?better_payment_error_status=error&better_payment_widget_id=' . $widget_id );
10 ob_start();
11 $error_info = [
12 'business_email' => !empty($settings['better_payment_paypal_business_email'])
13 ];
14
15 ?>
16 <input type="hidden" name="return" value="<?php echo esc_url( $return_url ); ?>">
17 <input type="hidden" name="action" value="paypal_form_handle">
18 <input type="hidden" name="security" value="<?php echo wp_create_nonce( 'better-payment-paypal' ); ?>">
19 <input type="hidden" name="cancel_return" value="<?php echo esc_url( $cancel_url ); ?>">
20 <button data-paypal-info = <?php echo esc_attr(json_encode( $error_info) ) ; ?> class="button1 better-payment-paypal-bt"><?php _e( 'PayPal', 'better-payment' ); ?></button>
21 <?php
22 echo ob_get_clean();
23 }
24
25 public static function stripe_button() {
26 ?>
27 <button class="button1 better-payment-stripe-bt"><?php _e( 'Stripe', 'better-payment' ); ?></button>
28 <?php
29 }
30
31 public static function payment_create( $data ) {
32 global $wpdb;
33 $table = "{$wpdb->prefix}better_payment";
34 $wpdb->insert( $table, $data );
35 if ( $wpdb->insert_id ) {
36 return $wpdb->insert_id;
37 } else {
38 return false;
39 }
40 }
41
42 public static function manage_response( $settings = [] ) {
43 $status = false;
44
45 if ( !empty( $_REQUEST[ 'better_payment_error_status' ] ) ) {
46 self::failed_message_template( $settings );
47 return $status;
48 }
49
50 if ( !empty( $_REQUEST[ 'better_payment_paypal_status' ] ) && $_REQUEST[ 'better_payment_paypal_status' ] == 'success' ) {
51 $status = self::paypal_payment_success( $settings );
52 } elseif ( !empty( $_REQUEST[ 'better_payment_stripe_status' ] ) && $_REQUEST[ 'better_payment_stripe_status' ] == 'success' ) {
53 $status = self::stripe_payment_success( $settings );
54 }
55
56 if ( $status ) {
57 self::success_message_template( $settings, $status );
58 }
59 self::remove_arg();
60
61 return $status;
62 }
63
64 public static function paypal_payment_success( $settings = [] ) {
65 $data = $_REQUEST;
66
67 if ( !empty( $data[ 'payment_status' ] ) && !empty( $data[ 'payer_id' ] ) && !empty( $data[ 'payer_status' ] ) ) {
68 global $wpdb;
69 $table = "{$wpdb->prefix}better_payment";
70 $results = $wpdb->get_row(
71 $wpdb->prepare( "SELECT id,form_fields_info,referer FROM $table WHERE order_id=%s and status is NULL limit 1", sanitize_text_field( $_REQUEST[ 'item_number' ] ) )
72 );
73 if ( !empty( $results->id ) ) {
74 $updated = $wpdb->update(
75 $table,
76 array(
77 'transaction_id' => sanitize_text_field( $data[ 'txn_id' ] ),
78 'status' => sanitize_text_field( $data[ 'payment_status' ] ),
79 'email' => sanitize_email( $data[ 'payer_email' ] ),
80 'customer_info' => maybe_serialize( $data ),
81 ),
82 array( 'ID' => $results->id )
83 );
84 if ( false !== $updated ) {
85 //Send email notification
86 if (
87 ( isset($settings[ 'better_payment_form_email_enable' ]) && $settings[ 'better_payment_form_email_enable' ] == 'yes' )
88 || ( $results->referer === 'elementor-form' )
89 ) {
90 self::better_email_notification(sanitize_text_field( $data[ 'txn_id' ] ), sanitize_email( $data[ 'payer_email' ] ), $settings, 'PayPal', $results->form_fields_info);
91 }
92
93 return sanitize_text_field( $data[ 'txn_id' ] );
94 }
95 }
96 }else if($data['better_payment_paypal_status'] === 'success'){
97 return ( isset($data[ 'txn_id' ]) && !empty( sanitize_text_field( $data[ 'txn_id' ] ) ) ) ? sanitize_text_field( $data[ 'txn_id' ] ) : __('Payment under processing!', 'better-payment');
98 }
99 return false;
100 }
101
102 public static function stripe_payment_success( $settings = [] ) {
103
104 $data = $_REQUEST;
105
106 if ( !empty( $data[ 'better_payment_stripe_id' ] ) ) {
107 global $wpdb;
108 $table = "{$wpdb->prefix}better_payment";
109 $results = $wpdb->get_row(
110 $wpdb->prepare( "SELECT id,obj_id,transaction_id,form_fields_info,referer FROM $table WHERE order_id=%s and status = 'unpaid' limit 1", sanitize_text_field( $data[ 'better_payment_stripe_id' ] ) )
111 );
112
113 if ( !empty( $results->obj_id ) ) {
114
115 $header = array(
116 'Authorization' => 'Basic ' . base64_encode( 'sk_test_w3EkC2jHywBiypu6a3jYutgZ:' ),
117 'Stripe-Version' => '2019-05-16',
118 );
119
120 $request = [
121 'expand' => [
122 'subscription.latest_invoice.payment_intent',
123 'payment_intent'
124 ]
125 ];
126
127 $response = wp_safe_remote_post(
128 'https://api.stripe.com/v1/checkout/sessions/' . $results->obj_id,
129 array(
130 'method' => 'GET',
131 'headers' => $header,
132 'timeout' => 70,
133 'body' => $request
134 )
135 );
136
137 if ( is_wp_error( $response ) || empty( $response[ 'body' ] ) ) {
138 return new WP_Error( 'stripe_error', __( 'There was a problem connecting to the Stripe API endpoint.', 'better-payment' ) );
139 }
140
141 $response = json_decode( $response[ 'body' ] );
142
143 if ( isset( $response->error->message ) ) {
144 return new WP_Error( 'stripe_error', __( 'There was a problem connecting to the Stripe API endpoint.', 'better-payment' ) );
145 }
146
147 $updated = $wpdb->update(
148 $table,
149 array(
150 'status' => sanitize_text_field( $response->payment_status ),
151 'email' => sanitize_email( current( $response->payment_intent->charges->data )->billing_details->email ),
152 'customer_info' => maybe_serialize( $response ),
153 ),
154 array( 'ID' => $results->id )
155 );
156
157 if ( false !== $updated ) {
158 //Send email notification
159 $better_customer_email = sanitize_email( current( $response->payment_intent->charges->data )->billing_details->email );
160 if (
161 (isset($settings[ 'better_payment_form_email_enable' ]) && $settings[ 'better_payment_form_email_enable' ] == 'yes' )
162 || ( $results->referer === 'elementor-form' )
163 ) {
164 self::better_email_notification($results->transaction_id, $better_customer_email, $settings, 'Stripe', $results->form_fields_info);
165 }
166
167 return $results->transaction_id;
168 }
169 }
170 }
171 return false;
172 }
173
174 public static function get_currency_symbols( $currency = 'USD' ) {
175 $list = [
176 'AUD' => "$",
177 'CAD' => "$",
178 'CZK' => "Kč",
179 'DKK' => "kr",
180 'EUR' => "€",
181 'HKD' => "$",
182 'HUF' => "ft",
183 'ILS' => "₪",
184 'JPY' => "¥",
185 'MXN' => "$",
186 'NOK' => "kr",
187 'NZD' => "$",
188 'PHP' => "₱",
189 'PLN' => "zł",
190 'GBP' => "£",
191 'RUB' => "₽",
192 'SGD' => "$",
193 'SEK' => "kr",
194 'CHF' => "CHF",
195 'TWD' => "$",
196 'THB' => "฿",
197 'TRY' => "₺",
198 'USD' => "$",
199 ];
200 return !empty( $list[ $currency ] ) ? $list[ $currency ] : '$';
201 }
202
203 public static function success_message_template( $settings = [], $tr_id = '' ) {
204 if ( empty( $tr_id ) || is_wp_error($tr_id)) {
205 return false;
206 }
207
208 $image_url = BETTER_PAYMENT_URL . 'asset/img/success.svg';
209 $show_icon = 0;
210
211 if ( !empty( $settings[ 'better_payment_form_success_message_icon' ][ 'library' ] ) ) {
212 if ( $settings[ 'better_payment_form_success_message_icon' ][ 'library' ] == 'svg' ) {
213 $image_url = $settings[ 'better_payment_form_success_message_icon' ][ 'value' ][ 'url' ];
214 } else {
215 $show_icon = 1;
216 $image_url = $settings[ 'better_payment_form_success_message_icon' ][ 'value' ];
217 }
218 }
219 ?>
220 <div class="pt140 pb140 background__grey2">
221 <div class="better-payment-payment__report better-payment-success-report">
222 <div class="report__thumb">
223 <?php if($show_icon) : ?>
224 <i class="<?php echo esc_attr($image_url); ?>"></i>
225 <?php else : ?>
226 <img src="<?php echo esc_url($image_url); ?>" alt="">
227 <?php endif; ?>
228 </div>
229 <div class="report__content">
230 <h3 class="transaction__success"><?php echo ( isset( $settings[ 'better_payment_form_success_message_heading' ] ) ) ? esc_html( $settings[ 'better_payment_form_success_message_heading' ] ) : __( 'Payment Complete', 'better-payment' ); ?> </h3>
231 <p class="transaction__number"><?php printf( "%s : %s", ( isset( $settings[ 'better_payment_form_success_message_transaction' ] ) ) ? esc_html( $settings[ 'better_payment_form_success_message_transaction' ] ) : __( 'Transaction Number', 'better-payment' ), $tr_id );; ?></p>
232 <p class="payment__greeting"><?php echo ( isset( $settings[ 'better_payment_form_success_message_thanks' ] ) ) ? esc_html( $settings[ 'better_payment_form_success_message_thanks' ] ) : __( 'Thank you for donation.', 'better-payment' ); ?></p>
233 </div>
234 </div>
235 </div>
236 <?php
237 }
238
239
240 public static function failed_message_template( $settings = [] ) {
241
242 $image_url = BETTER_PAYMENT_URL . 'asset/img/fail.svg';
243 $show_icon = 0;
244
245 if ( !empty( $settings[ 'better_payment_form_error_message_icon' ][ 'library' ] ) ) {
246 if ( $settings[ 'better_payment_form_error_message_icon' ][ 'library' ] == 'svg' ) {
247 $image_url = $settings[ 'better_payment_form_error_message_icon' ][ 'value' ][ 'url' ];
248 } else {
249 $show_icon = 1;
250 $image_url = $settings[ 'better_payment_form_error_message_icon' ][ 'value' ];
251 }
252 }
253 ?>
254 <div class="pb140 background__grey2">
255 <div class="better-payment-payment__report better-payment-error-report">
256 <div class="report__thumb">
257 <?php if($show_icon) : ?>
258 <i class="<?php echo esc_attr($image_url); ?>"></i>
259 <?php else : ?>
260 <img src="<?php echo esc_url($image_url); ?>" alt="">
261 <?php endif; ?>
262 </div>
263 <div class="report__content">
264 <h3 class="transaction__failed"><?php echo ( isset( $settings[ 'better_payment_form_error_message_heading' ] ) ) ? esc_html( $settings[ 'better_payment_form_error_message_heading' ] ) : __( 'Payment Failed', 'better-payment' ); ?></h3>
265 </div>
266 </div>
267 </div>
268 <?php
269 }
270
271 public static function remove_arg() {
272 ?>
273 <script>
274
275 const params = new URLSearchParams(location.search);
276 if (params.has('better_payment_paypal_status') || params.has('better_payment_stripe_status')) {
277 params.delete('better_payment_paypal_status');
278 params.delete('better_payment_stripe_status');
279 params.delete('better_payment_widget_id');
280 params.delete('better_payment_stripe_id');
281 window.history.replaceState({}, '', `${location.pathname}?${params}`);
282 }
283 </script>
284 <?php
285 }
286
287 public static function better_email_notification($transaction_id, $customer_email, $settings, $referrer='Stripe', $form_fields_info=''){
288 //Send Email: customer and admin
289 $better_txn_id = sanitize_text_field( $transaction_id );
290 $better_cus_email = sanitize_email( $customer_email );
291 $better_payment_global_settings = Better_Payment_DB::get_settings();
292
293 $better_payment_email_to = !empty($better_payment_global_settings['better_payment_settings_general_email_to']) ? $better_payment_global_settings['better_payment_settings_general_email_to'] : get_option( 'admin_email' );
294 $better_payment_email_subject = !empty($better_payment_global_settings['better_payment_settings_general_email_subject']) ? $better_payment_global_settings['better_payment_settings_general_email_subject'] : __('Better Payment Transaction', 'better-payment');
295 $better_payment_email_content = !empty($better_payment_global_settings['better_payment_settings_general_email_message_admin']) ? $better_payment_global_settings['better_payment_settings_general_email_message_admin'] : '';
296 $better_payment_email_from = !empty($better_payment_global_settings['better_payment_settings_general_email_from_email']) ? $better_payment_global_settings['better_payment_settings_general_email_from_email'] : '';
297 $better_payment_email_from_name = !empty($better_payment_global_settings['better_payment_settings_general_email_from_name']) ? $better_payment_global_settings['better_payment_settings_general_email_from_name'] : '';
298 $better_payment_email_reply_to = !empty($better_payment_global_settings['better_payment_settings_general_email_reply_to']) ? $better_payment_global_settings['better_payment_settings_general_email_reply_to'] : '';
299 $better_payment_email_cc = !empty($better_payment_global_settings['better_payment_settings_general_email_cc']) ? $better_payment_global_settings['better_payment_settings_general_email_cc'] : '';
300 $better_payment_email_bcc = !empty($better_payment_global_settings['better_payment_settings_general_email_bcc']) ? $better_payment_global_settings['better_payment_settings_general_email_bcc'] : '';
301 $better_payment_email_content_type = !empty($better_payment_global_settings['better_payment_settings_general_email_send_as']) ? $better_payment_global_settings['better_payment_settings_general_email_send_as'] : 'html';
302
303 $better_payment_email_subject_customer = !empty($better_payment_global_settings['better_payment_settings_general_email_subject_customer']) ? $better_payment_global_settings['better_payment_settings_general_email_subject_customer'] : __('Better Payment Transaction', 'better-payment');
304 $better_payment_email_content_customer = !empty($better_payment_global_settings['better_payment_settings_general_email_message_customer']) ? $better_payment_global_settings['better_payment_settings_general_email_message_customer'] : '';
305 $better_payment_email_from_customer = !empty($better_payment_global_settings['better_payment_settings_general_email_from_email_customer']) ? $better_payment_global_settings['better_payment_settings_general_email_from_email_customer'] : '';
306 $better_payment_email_from_name_customer = !empty($better_payment_global_settings['better_payment_settings_general_email_from_name_customer']) ? $better_payment_global_settings['better_payment_settings_general_email_from_name_customer'] : '';
307 $better_payment_email_reply_to_customer = !empty($better_payment_global_settings['better_payment_settings_general_email_reply_to_customer']) ? $better_payment_global_settings['better_payment_settings_general_email_reply_to_customer'] : '';
308 $better_payment_email_cc_customer = !empty($better_payment_global_settings['better_payment_settings_general_email_cc_customer']) ? $better_payment_global_settings['better_payment_settings_general_email_cc_customer'] : '';
309 $better_payment_email_bcc_customer = !empty($better_payment_global_settings['better_payment_settings_general_email_bcc_customer']) ? $better_payment_global_settings['better_payment_settings_general_email_bcc_customer'] : '';
310 $better_payment_email_content_type_customer = !empty($better_payment_global_settings['better_payment_settings_general_email_send_as_customer']) ? $better_payment_global_settings['better_payment_settings_general_email_send_as_customer'] : 'html';
311
312 if(isset($settings['better_payment_email_to'])){
313 $better_payment_email_to = sanitize_email($settings['better_payment_email_to']);
314 }
315
316 if(isset($settings['better_payment_email_subject'])){
317 $better_payment_email_subject = sanitize_text_field($settings['better_payment_email_subject']);
318 }
319
320 if(isset($settings['better_payment_email_subject_customer'])){
321 $better_payment_email_subject_customer = sanitize_text_field($settings['better_payment_email_subject_customer']);
322 }
323
324 if(isset($settings['better_payment_email_content_type'])){
325 $better_payment_email_content_type = sanitize_text_field($settings['better_payment_email_content_type']);
326 }
327
328 if(isset($settings['better_payment_email_content_type_customer'])){
329 $better_payment_email_content_type_customer = sanitize_text_field($settings['better_payment_email_content_type_customer']);
330 }
331
332 $line_break = $better_payment_email_content_type == 'html' ? '<br>' : "\n";
333 $line_break_customer = $better_payment_email_content_type_customer == 'html' ? '<br>' : "\n";
334
335 if(isset($settings['better_payment_email_content'])){
336 $better_payment_email_content = sanitize_text_field($settings['better_payment_email_content']);
337 $better_payment_email_content = self::better_render_email_body( $better_payment_email_content, $form_fields_info, $line_break );
338 } else if ( !empty($better_payment_email_content) ){
339 $better_payment_email_content = self::better_render_email_body( $better_payment_email_content, $form_fields_info, $line_break );
340 }
341
342 if(isset($settings['better_payment_email_content_customer'])){
343 $better_payment_email_content_customer = sanitize_text_field($settings['better_payment_email_content_customer']);
344 $better_payment_email_content_customer = self::better_render_email_body( $better_payment_email_content_customer, $form_fields_info, $line_break_customer, 'customer' );
345 } else if ( !empty($better_payment_email_content_customer) ){
346 $better_payment_email_content_customer = self::better_render_email_body( $better_payment_email_content_customer, $form_fields_info, $line_break, 'customer' ); //$line_break_customer not used : need to check type on parent method and add headers accordingly.
347 }
348
349 if(isset($settings['better_payment_email_from'])){
350 $better_payment_email_from = sanitize_email($settings['better_payment_email_from']);
351 }
352
353 if(isset($settings['better_payment_email_from_name'])){
354 $better_payment_email_from_name = sanitize_text_field($settings['better_payment_email_from_name']);
355 }
356
357 if(isset($settings['better_payment_email_reply_to'])){
358 $better_payment_email_reply_to = sanitize_email($settings['better_payment_email_reply_to']);
359 }
360
361 if(isset($settings['better_payment_email_cc'])){
362 $better_payment_email_cc = sanitize_email($settings['better_payment_email_cc']);
363 }
364
365 if(isset($settings['better_payment_email_bcc'])){
366 $better_payment_email_bcc = sanitize_email($settings['better_payment_email_bcc']);
367 }
368
369 //Customer Email
370 if(isset($settings['better_payment_email_from_customer'])){
371 $better_payment_email_from_customer = sanitize_email($settings['better_payment_email_from_customer']);
372 }
373
374 if(isset($settings['better_payment_email_from_name_customer'])){
375 $better_payment_email_from_name_customer = sanitize_text_field($settings['better_payment_email_from_name_customer']);
376 }
377
378 if(isset($settings['better_payment_email_reply_to_customer'])){
379 $better_payment_email_reply_to_customer = sanitize_email($settings['better_payment_email_reply_to_customer']);
380 }
381
382 if(isset($settings['better_payment_email_cc_customer'])){
383 $better_payment_email_cc_customer = sanitize_email($settings['better_payment_email_cc_customer']);
384 }
385
386 if(isset($settings['better_payment_email_bcc_customer'])){
387 $better_payment_email_bcc_customer = sanitize_email($settings['better_payment_email_bcc_customer']);
388 }
389
390 if($better_payment_email_content == ''){
391 $better_payment_email_content = __('New better payment transaction! ', 'better-payment');
392 }
393
394 if($better_payment_email_content_customer == ''){
395 $better_payment_email_content_customer = __('New better payment transaction! ', 'better-payment');
396 }
397
398 $better_payment_email_headers = [];
399 $better_payment_email_headers_customer = [];
400
401 if($better_payment_email_content_type == 'html'){
402 $better_payment_email_headers[] = 'Content-Type: text/html; charset=UTF-8';
403 $better_payment_email_headers_customer[] = 'Content-Type: text/html; charset=UTF-8';
404 }
405
406 if($better_payment_email_from != ''){
407 $better_payment_email_headers[] = "From: $better_payment_email_from_name <$better_payment_email_from>";
408 }
409
410 if($better_payment_email_cc != ''){
411 $better_payment_email_headers[] = "Cc: <$better_payment_email_cc>";
412 }
413
414 if($better_payment_email_bcc != ''){
415 $better_payment_email_headers[] = "BCc: $better_payment_email_bcc";
416 }
417
418 if($better_payment_email_reply_to != ''){
419 $better_payment_email_headers[] = "Reply-To: $better_payment_email_reply_to";
420 }
421
422 //Customer Email
423 if($better_payment_email_from_customer != ''){
424 $better_payment_email_headers_customer[] = "From: $better_payment_email_from_name_customer <$better_payment_email_from_customer>";
425 }
426
427 if($better_payment_email_cc_customer != ''){
428 $better_payment_email_headers_customer[] = "Cc: <$better_payment_email_cc_customer>";
429 }
430
431 if($better_payment_email_bcc_customer != ''){
432 $better_payment_email_headers_customer[] = "BCc: $better_payment_email_bcc_customer";
433 }
434
435 if($better_payment_email_reply_to_customer != ''){
436 $better_payment_email_headers_customer[] = "Reply-To: $better_payment_email_reply_to_customer";
437 }
438
439 self::send_better_email($better_cus_email, $better_payment_email_subject_customer, $better_payment_email_content_customer, $better_payment_email_headers_customer); //customer mail
440 self::send_better_email($better_payment_email_to, $better_payment_email_subject, $better_payment_email_content, $better_payment_email_headers); //admin mail
441 }
442
443 /**
444 * Sends an HTML email.
445 *
446 * @since 0.0.2
447 *
448 * @param string $to
449 * @param string $subject
450 * @param array $message
451 *
452 * @return bool false indicates mail sending failed while true doesn't gurantee that mail sent.
453 * true just indicate script processed successfully without any errors.
454 * Ref: https://developer.wordpress.org/reference/functions/wp_mail/
455 */
456 public static function send_better_email( $to, $subject, $message, $headers=[]) {
457 $response = false;
458
459 $mailValidated = filter_var($to, FILTER_VALIDATE_EMAIL);
460
461 if ($mailValidated) {
462 $response = wp_mail( $to, $subject, $message, $headers );
463 }
464
465 return $response;
466 }
467
468 public static function better_render_email_body( $email_body, $form_fields_info, $line_break, $type = 'admin' ) {
469 $is_empty_email_body = empty($email_body);
470
471 $email_body = do_shortcode( $email_body );
472 $bp_form_fields_html_content = $email_body;
473
474 $bp_all_fields_shortcode = 'bp-all-fields';
475 $referer_content_page_link = '#';
476
477 $field_text = __('Field', 'better-payment');
478 $value_text = __('Entry', 'better-payment');
479
480 $bp_form_fields_html_header = '<table style="margin-bottom: 20px; font-size: 14px; border-collapse: collapse; width: 100%;">
481 <tr style="background-color: #6E58F7; color: #fff;">
482 <td style="padding: 10px; border-left: 1px solid #6E58F7; border-right: 1px solid rgba(161, 161, 161, 0.5);">
483 '.$field_text.'
484 </th>
485 <td style="padding: 10px; border-left: 1px solid rgba(161, 161, 161, 0.5); border-right: 1px solid #6E58F7;">
486 '.$value_text.'
487 </th>
488 </tr>';
489
490 $bp_form_fields_html_footer = "</table>";
491
492 if ( false !== strpos( $email_body, $bp_all_fields_shortcode ) ) {
493 $content = ''. $line_break;
494 $form_fields_info_arr = maybe_unserialize($form_fields_info);
495
496 foreach ( $form_fields_info_arr as $key => $field ) {
497 //Hide few fields
498 if($key === 'referer_page_id' || $key === 'referer_widget_id' || $key === 'source' || $key === 'el_form_fields') {
499 if($key === 'referer_page_id'){
500 $referer_content_page_link = !empty($field) ? get_permalink( $field ) : $referer_content_page_link;
501 }
502
503 continue;
504 }
505
506 $key_formatted = self::better_title_case($key);
507 $content .= "<tr>
508 <td style='padding: 7px; border: 1px solid rgba(161, 161, 161, 0.1);'> $key_formatted </td>
509 <td style='padding: 7px; border: 1px solid rgba(0, 0, 0, .1);'> $field </td>
510 </tr>";
511 }
512
513 $bp_form_fields_html_body = $content;
514 $bp_form_fields_html_content = $bp_form_fields_html_header . $bp_form_fields_html_body . $bp_form_fields_html_footer ;
515
516 //Replace shortcode with form fields info
517 $email_body = str_replace( "[$bp_all_fields_shortcode]", $bp_form_fields_html_content, $email_body );
518 }
519
520 ob_start();
521 include BETTER_PAYMENT_ADMIN_VIEW_PATH . "template-email-notification.php";
522 $email_body = ob_get_contents();
523 ob_end_clean();
524
525 return $email_body;
526 }
527
528 public static function better_title_case($string){
529 $string = str_replace('_',' ', $string);
530 $string = ucwords($string);
531 return $string;
532 }
533
534 }
535