PluginProbe
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More / 0.0.1
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More v0.0.1
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-betterpayment-handler.php

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

529 lines 26.5 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 BetterPayment_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() . '?betterpayment_paypal_status=success&betterpayment_widget_id=' . $widget_id );
9 $cancel_url = add_query_arg( $wp->query_vars, get_the_permalink() . '?betterpayment_error_status=error&betterpayment_widget_id=' . $widget_id );
10 ob_start();
11 $error_info = [
12 'business_email' => !empty($settings['betterpayment_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( 'betterpayment-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 betterpayment-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 betterpayment-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}betterpayment";
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[ 'betterpayment_error_status' ] ) ) {
46 self::failed_message_template( $settings );
47 return $status;
48 }
49
50 if ( !empty( $_REQUEST[ 'betterpayment_paypal_status' ] ) && $_REQUEST[ 'betterpayment_paypal_status' ] == 'success' ) {
51 $status = self::paypal_payment_success( $settings );
52 } elseif ( !empty( $_REQUEST[ 'betterpayment_stripe_status' ] ) && $_REQUEST[ 'betterpayment_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}betterpayment";
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[ 'betterpayment_form_email_enable' ]) && $settings[ 'betterpayment_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['betterpayment_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[ 'betterpayment_stripe_id' ] ) ) {
107 global $wpdb;
108 $table = "{$wpdb->prefix}betterpayment";
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[ 'betterpayment_stripe_id' ] ) )
111 );
112 if ( !empty( $results->obj_id ) ) {
113
114 $header = array(
115 'Authorization' => 'Basic ' . base64_encode( 'sk_test_w3EkC2jHywBiypu6a3jYutgZ:' ),
116 'Stripe-Version' => '2019-05-16',
117 );
118
119 $request = [
120 'expand' => [
121 'subscription.latest_invoice.payment_intent',
122 'payment_intent'
123 ]
124 ];
125
126 $response = wp_safe_remote_post(
127 'https://api.stripe.com/v1/checkout/sessions/' . $results->obj_id,
128 array(
129 'method' => 'GET',
130 'headers' => $header,
131 'timeout' => 70,
132 'body' => $request
133 )
134 );
135
136 if ( is_wp_error( $response ) || empty( $response[ 'body' ] ) ) {
137 return new WP_Error( 'stripe_error', __( 'There was a problem connecting to the Stripe API endpoint.', 'better-payment' ) );
138 }
139
140 $response = json_decode( $response[ 'body' ] );
141
142 $updated = $wpdb->update(
143 $table,
144 array(
145 'status' => sanitize_text_field( $response->payment_status ),
146 'email' => sanitize_email( current( $response->payment_intent->charges->data )->billing_details->email ),
147 'customer_info' => maybe_serialize( $response ),
148 ),
149 array( 'ID' => $results->id )
150 );
151
152 if ( false !== $updated ) {
153 //Send email notification
154 $better_customer_email = sanitize_email( current( $response->payment_intent->charges->data )->billing_details->email );
155 if (
156 (isset($settings[ 'betterpayment_form_email_enable' ]) && $settings[ 'betterpayment_form_email_enable' ] == 'yes' )
157 || ( $results->referer === 'elementor-form' )
158 ) {
159 self::better_email_notification($results->transaction_id, $better_customer_email, $settings, 'Stripe', $results->form_fields_info);
160 }
161
162 return $results->transaction_id;
163 }
164 }
165 }
166 return false;
167 }
168
169 public static function get_currency_symbols( $currency = 'USD' ) {
170 $list = [
171 'AUD' => "$",
172 'CAD' => "$",
173 'CZK' => "Kč",
174 'DKK' => "kr",
175 'EUR' => "€",
176 'HKD' => "$",
177 'HUF' => "ft",
178 'ILS' => "₪",
179 'JPY' => "¥",
180 'MXN' => "$",
181 'NOK' => "kr",
182 'NZD' => "$",
183 'PHP' => "₱",
184 'PLN' => "zł",
185 'GBP' => "£",
186 'RUB' => "₽",
187 'SGD' => "$",
188 'SEK' => "kr",
189 'CHF' => "CHF",
190 'TWD' => "$",
191 'THB' => "฿",
192 'TRY' => "₺",
193 'USD' => "$",
194 ];
195 return !empty( $list[ $currency ] ) ? $list[ $currency ] : '$';
196 }
197
198 public static function success_message_template( $settings = [], $tr_id = '' ) {
199 if ( empty( $tr_id ) ) {
200 return false;
201 }
202 $image_url = WPBP_PLUGIN_URL . 'asset/img/success.svg';
203 $show_icon = 0;
204
205 if ( !empty( $settings[ 'betterpayment_form_success_message_icon' ][ 'library' ] ) ) {
206 if ( $settings[ 'betterpayment_form_success_message_icon' ][ 'library' ] == 'svg' ) {
207 $image_url = $settings[ 'betterpayment_form_success_message_icon' ][ 'value' ][ 'url' ];
208 } else {
209 $show_icon = 1;
210 $image_url = $settings[ 'betterpayment_form_success_message_icon' ][ 'value' ];
211 }
212 }
213 ?>
214 <div class="pt140 pb140 background__grey2">
215 <div class="betterpayment-payment__report betterpayment-success-report">
216 <div class="report__thumb">
217 <?php if($show_icon) : ?>
218 <i class="<?php echo esc_attr($image_url); ?>"></i>
219 <?php else : ?>
220 <img src="<?php echo esc_url($image_url); ?>" alt="">
221 <?php endif; ?>
222 </div>
223 <div class="report__content">
224 <h3 class="transaction__success"><?php echo ( isset( $settings[ 'betterpayment_form_success_message_heading' ] ) ) ? esc_html( $settings[ 'betterpayment_form_success_message_heading' ] ) : __( 'Payment Complete', 'better-payment' ); ?> </h3>
225 <p class="transaction__number"><?php printf( "%s : %s", ( isset( $settings[ 'betterpayment_form_success_message_transaction' ] ) ) ? esc_html( $settings[ 'betterpayment_form_success_message_transaction' ] ) : __( 'Transaction Number', 'better-payment' ), $tr_id );; ?></p>
226 <p class="payment__greeting"><?php echo ( isset( $settings[ 'betterpayment_form_success_message_thanks' ] ) ) ? esc_html( $settings[ 'betterpayment_form_success_message_thanks' ] ) : __( 'Thank you for donation.', 'better-payment' ); ?></p>
227 </div>
228 </div>
229 </div>
230 <?php
231 }
232
233
234 public static function failed_message_template( $settings = [] ) {
235
236 $image_url = WPBP_PLUGIN_URL . 'asset/img/fail.svg';
237 $show_icon = 0;
238
239 if ( !empty( $settings[ 'betterpayment_form_error_message_icon' ][ 'library' ] ) ) {
240 if ( $settings[ 'betterpayment_form_error_message_icon' ][ 'library' ] == 'svg' ) {
241 $image_url = $settings[ 'betterpayment_form_error_message_icon' ][ 'value' ][ 'url' ];
242 } else {
243 $show_icon = 1;
244 $image_url = $settings[ 'betterpayment_form_error_message_icon' ][ 'value' ];
245 }
246 }
247 ?>
248 <div class="pb140 background__grey2">
249 <div class="betterpayment-payment__report betterpayment-error-report">
250 <div class="report__thumb">
251 <?php if($show_icon) : ?>
252 <i class="<?php echo esc_attr($image_url); ?>"></i>
253 <?php else : ?>
254 <img src="<?php echo esc_url($image_url); ?>" alt="">
255 <?php endif; ?>
256 </div>
257 <div class="report__content">
258 <h3 class="transaction__failed"><?php echo ( isset( $settings[ 'betterpayment_form_error_message_heading' ] ) ) ? esc_html( $settings[ 'betterpayment_form_error_message_heading' ] ) : __( 'Payment Failed', 'better-payment' ); ?></h3>
259 </div>
260 </div>
261 </div>
262 <?php
263 }
264
265 public static function remove_arg() {
266 ?>
267 <script>
268
269 const params = new URLSearchParams(location.search);
270 if (params.has('betterpayment_paypal_status') || params.has('betterpayment_stripe_status')) {
271 params.delete('betterpayment_paypal_status');
272 params.delete('betterpayment_stripe_status');
273 params.delete('betterpayment_widget_id');
274 params.delete('betterpayment_stripe_id');
275 window.history.replaceState({}, '', `${location.pathname}?${params}`);
276 }
277 </script>
278 <?php
279 }
280
281 public static function better_email_notification($transaction_id, $customer_email, $settings, $referrer='Stripe', $form_fields_info=''){
282 //Send Email: customer and admin
283 $better_txn_id = sanitize_text_field( $transaction_id );
284 $better_cus_email = sanitize_email( $customer_email );
285 $betterpayment_global_settings = BetterPayment_DB::get_settings();
286
287 $betterpayment_email_to = !empty($betterpayment_global_settings['betterpayment_settings_general_email_to']) ? $betterpayment_global_settings['betterpayment_settings_general_email_to'] : get_option( 'admin_email' );
288 $betterpayment_email_subject = !empty($betterpayment_global_settings['betterpayment_settings_general_email_subject']) ? $betterpayment_global_settings['betterpayment_settings_general_email_subject'] : __('BetterPayment Transaction', 'better-payment');
289 $betterpayment_email_content = !empty($betterpayment_global_settings['betterpayment_settings_general_email_message_admin']) ? $betterpayment_global_settings['betterpayment_settings_general_email_message_admin'] : '';
290 $betterpayment_email_from = !empty($betterpayment_global_settings['betterpayment_settings_general_email_from_email']) ? $betterpayment_global_settings['betterpayment_settings_general_email_from_email'] : '';
291 $betterpayment_email_from_name = !empty($betterpayment_global_settings['betterpayment_settings_general_email_from_name']) ? $betterpayment_global_settings['betterpayment_settings_general_email_from_name'] : '';
292 $betterpayment_email_reply_to = !empty($betterpayment_global_settings['betterpayment_settings_general_email_reply_to']) ? $betterpayment_global_settings['betterpayment_settings_general_email_reply_to'] : '';
293 $betterpayment_email_cc = !empty($betterpayment_global_settings['betterpayment_settings_general_email_cc']) ? $betterpayment_global_settings['betterpayment_settings_general_email_cc'] : '';
294 $betterpayment_email_bcc = !empty($betterpayment_global_settings['betterpayment_settings_general_email_bcc']) ? $betterpayment_global_settings['betterpayment_settings_general_email_bcc'] : '';
295 $betterpayment_email_content_type = !empty($betterpayment_global_settings['betterpayment_settings_general_email_send_as']) ? $betterpayment_global_settings['betterpayment_settings_general_email_send_as'] : 'html';
296
297 $betterpayment_email_subject_customer = !empty($betterpayment_global_settings['betterpayment_settings_general_email_subject_customer']) ? $betterpayment_global_settings['betterpayment_settings_general_email_subject_customer'] : __('BetterPayment Transaction', 'better-payment');
298 $betterpayment_email_content_customer = !empty($betterpayment_global_settings['betterpayment_settings_general_email_message_customer']) ? $betterpayment_global_settings['betterpayment_settings_general_email_message_customer'] : '';
299 $betterpayment_email_from_customer = !empty($betterpayment_global_settings['betterpayment_settings_general_email_from_email_customer']) ? $betterpayment_global_settings['betterpayment_settings_general_email_from_email_customer'] : '';
300 $betterpayment_email_from_name_customer = !empty($betterpayment_global_settings['betterpayment_settings_general_email_from_name_customer']) ? $betterpayment_global_settings['betterpayment_settings_general_email_from_name_customer'] : '';
301 $betterpayment_email_reply_to_customer = !empty($betterpayment_global_settings['betterpayment_settings_general_email_reply_to_customer']) ? $betterpayment_global_settings['betterpayment_settings_general_email_reply_to_customer'] : '';
302 $betterpayment_email_cc_customer = !empty($betterpayment_global_settings['betterpayment_settings_general_email_cc_customer']) ? $betterpayment_global_settings['betterpayment_settings_general_email_cc_customer'] : '';
303 $betterpayment_email_bcc_customer = !empty($betterpayment_global_settings['betterpayment_settings_general_email_bcc_customer']) ? $betterpayment_global_settings['betterpayment_settings_general_email_bcc_customer'] : '';
304 $betterpayment_email_content_type_customer = !empty($betterpayment_global_settings['betterpayment_settings_general_email_send_as_customer']) ? $betterpayment_global_settings['betterpayment_settings_general_email_send_as_customer'] : 'html';
305
306 if(isset($settings['betterpayment_email_to'])){
307 $betterpayment_email_to = sanitize_email($settings['betterpayment_email_to']);
308 }
309
310 if(isset($settings['betterpayment_email_subject'])){
311 $betterpayment_email_subject = sanitize_text_field($settings['betterpayment_email_subject']);
312 }
313
314 if(isset($settings['betterpayment_email_subject_customer'])){
315 $betterpayment_email_subject_customer = sanitize_text_field($settings['betterpayment_email_subject_customer']);
316 }
317
318 if(isset($settings['betterpayment_email_content_type'])){
319 $betterpayment_email_content_type = sanitize_text_field($settings['betterpayment_email_content_type']);
320 }
321
322 if(isset($settings['betterpayment_email_content_type_customer'])){
323 $betterpayment_email_content_type_customer = sanitize_text_field($settings['betterpayment_email_content_type_customer']);
324 }
325
326 $line_break = $betterpayment_email_content_type == 'html' ? '<br>' : "\n";
327 $line_break_customer = $betterpayment_email_content_type_customer == 'html' ? '<br>' : "\n";
328
329 if(isset($settings['betterpayment_email_content'])){
330 $betterpayment_email_content = sanitize_text_field($settings['betterpayment_email_content']);
331 $betterpayment_email_content = self::better_render_email_body( $betterpayment_email_content, $form_fields_info, $line_break );
332 } else if ( !empty($betterpayment_email_content) ){
333 $betterpayment_email_content = self::better_render_email_body( $betterpayment_email_content, $form_fields_info, $line_break );
334 }
335
336 if(isset($settings['betterpayment_email_content_customer'])){
337 $betterpayment_email_content_customer = sanitize_text_field($settings['betterpayment_email_content_customer']);
338 $betterpayment_email_content_customer = self::better_render_email_body( $betterpayment_email_content_customer, $form_fields_info, $line_break_customer, 'customer' );
339 } else if ( !empty($betterpayment_email_content_customer) ){
340 $betterpayment_email_content_customer = self::better_render_email_body( $betterpayment_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.
341 }
342
343 if(isset($settings['betterpayment_email_from'])){
344 $betterpayment_email_from = sanitize_email($settings['betterpayment_email_from']);
345 }
346
347 if(isset($settings['betterpayment_email_from_name'])){
348 $betterpayment_email_from_name = sanitize_text_field($settings['betterpayment_email_from_name']);
349 }
350
351 if(isset($settings['betterpayment_email_reply_to'])){
352 $betterpayment_email_reply_to = sanitize_email($settings['betterpayment_email_reply_to']);
353 }
354
355 if(isset($settings['betterpayment_email_cc'])){
356 $betterpayment_email_cc = sanitize_email($settings['betterpayment_email_cc']);
357 }
358
359 if(isset($settings['betterpayment_email_bcc'])){
360 $betterpayment_email_bcc = sanitize_email($settings['betterpayment_email_bcc']);
361 }
362
363 //Customer Email
364 if(isset($settings['betterpayment_email_from_customer'])){
365 $betterpayment_email_from_customer = sanitize_email($settings['betterpayment_email_from_customer']);
366 }
367
368 if(isset($settings['betterpayment_email_from_name_customer'])){
369 $betterpayment_email_from_name_customer = sanitize_text_field($settings['betterpayment_email_from_name_customer']);
370 }
371
372 if(isset($settings['betterpayment_email_reply_to_customer'])){
373 $betterpayment_email_reply_to_customer = sanitize_email($settings['betterpayment_email_reply_to_customer']);
374 }
375
376 if(isset($settings['betterpayment_email_cc_customer'])){
377 $betterpayment_email_cc_customer = sanitize_email($settings['betterpayment_email_cc_customer']);
378 }
379
380 if(isset($settings['betterpayment_email_bcc_customer'])){
381 $betterpayment_email_bcc_customer = sanitize_email($settings['betterpayment_email_bcc_customer']);
382 }
383
384 if($betterpayment_email_content == ''){
385 $betterpayment_email_content = __('New betterpayment transaction! ', 'better-payment');
386 }
387
388 if($betterpayment_email_content_customer == ''){
389 $betterpayment_email_content_customer = __('New betterpayment transaction! ', 'better-payment');
390 }
391
392 $betterpayment_email_headers = [];
393 $betterpayment_email_headers_customer = [];
394
395 if($betterpayment_email_content_type == 'html'){
396 $betterpayment_email_headers[] = 'Content-Type: text/html; charset=UTF-8';
397 $betterpayment_email_headers_customer[] = 'Content-Type: text/html; charset=UTF-8';
398 }
399
400 if($betterpayment_email_from != ''){
401 $betterpayment_email_headers[] = "From: $betterpayment_email_from_name <$betterpayment_email_from>";
402 }
403
404 if($betterpayment_email_cc != ''){
405 $betterpayment_email_headers[] = "Cc: <$betterpayment_email_cc>";
406 }
407
408 if($betterpayment_email_bcc != ''){
409 $betterpayment_email_headers[] = "BCc: $betterpayment_email_bcc";
410 }
411
412 if($betterpayment_email_reply_to != ''){
413 $betterpayment_email_headers[] = "Reply-To: $betterpayment_email_reply_to";
414 }
415
416 //Customer Email
417 if($betterpayment_email_from_customer != ''){
418 $betterpayment_email_headers_customer[] = "From: $betterpayment_email_from_name_customer <$betterpayment_email_from_customer>";
419 }
420
421 if($betterpayment_email_cc_customer != ''){
422 $betterpayment_email_headers_customer[] = "Cc: <$betterpayment_email_cc_customer>";
423 }
424
425 if($betterpayment_email_bcc_customer != ''){
426 $betterpayment_email_headers_customer[] = "BCc: $betterpayment_email_bcc_customer";
427 }
428
429 if($betterpayment_email_reply_to_customer != ''){
430 $betterpayment_email_headers_customer[] = "Reply-To: $betterpayment_email_reply_to_customer";
431 }
432
433 self::send_better_email($better_cus_email, $betterpayment_email_subject_customer, $betterpayment_email_content_customer, $betterpayment_email_headers_customer); //customer mail
434 self::send_better_email($betterpayment_email_to, $betterpayment_email_subject, $betterpayment_email_content, $betterpayment_email_headers); //admin mail
435 }
436
437 /**
438 * Sends an HTML email.
439 *
440 * @since 1.0.0
441 *
442 * @param string $to
443 * @param string $subject
444 * @param array $message
445 *
446 * @return bool false indicates mail sending failed while true doesn't gurantee that mail sent.
447 * true just indicate script processed successfully without any errors.
448 * Ref: https://developer.wordpress.org/reference/functions/wp_mail/
449 */
450 public static function send_better_email( $to, $subject, $message, $headers=[]) {
451 $response = false;
452
453 $mailValidated = filter_var($to, FILTER_VALIDATE_EMAIL);
454
455 if ($mailValidated) {
456 $response = wp_mail( $to, $subject, $message, $headers );
457 }
458
459 return $response;
460 }
461
462 public static function better_render_email_body( $email_body, $form_fields_info, $line_break, $type = 'admin' ) {
463 $is_empty_email_body = empty($email_body);
464
465 $email_body = do_shortcode( $email_body );
466 $bp_form_fields_html_content = $email_body;
467
468 $bp_all_fields_shortcode = 'bp-all-fields';
469 $referer_content_page_link = '#';
470
471 $field_text = __('Field', 'better-payment');
472 $value_text = __('Field', 'better-payment');
473
474 $bp_form_fields_html_header = '<table style="margin-bottom: 20px; font-size: 14px; border-collapse: collapse; width: 100%;">
475 <tr style="background-color: #6E58F7; color: #fff;">
476 <td style="padding: 10px; border-left: 1px solid #6E58F7; border-right: 1px solid rgba(161, 161, 161, 0.5);">
477 '.$field_text.'
478 </th>
479 <td style="padding: 10px; border-left: 1px solid rgba(161, 161, 161, 0.5); border-right: 1px solid #6E58F7;">
480 '.$value_text.'
481 </th>
482 </tr>';
483
484 $bp_form_fields_html_footer = "</table>";
485
486 if ( false !== strpos( $email_body, $bp_all_fields_shortcode ) ) {
487 $content = ''. $line_break;
488 $form_fields_info_arr = maybe_unserialize($form_fields_info);
489
490 foreach ( $form_fields_info_arr as $key => $field ) {
491 //Hide few fields
492 if($key === 'referer_page_id' || $key === 'referer_widget_id' || $key === 'source' || $key === 'el_form_fields') {
493 if($key === 'referer_page_id'){
494 $referer_content_page_link = !empty($field) ? get_permalink( $field ) : $referer_content_page_link;
495 }
496
497 continue;
498 }
499
500 $key_formatted = self::better_title_case($key);
501 $content .= "<tr>
502 <td style='padding: 7px; border: 1px solid rgba(161, 161, 161, 0.1);'> $key_formatted </td>
503 <td style='padding: 7px; border: 1px solid rgba(0, 0, 0, .1);'> $field </td>
504 </tr>";
505 }
506
507 $bp_form_fields_html_body = $content;
508 $bp_form_fields_html_content = $bp_form_fields_html_header . $bp_form_fields_html_body . $bp_form_fields_html_footer ;
509
510 //Replace shortcode with form fields info
511 $email_body = str_replace( "[$bp_all_fields_shortcode]", $bp_form_fields_html_content, $email_body );
512 }
513
514 ob_start();
515 include WPBP_ADMIN_VIEW_PATH . "template-email-notification.php";
516 $email_body = ob_get_contents();
517 ob_end_clean();
518
519 return $email_body;
520 }
521
522 public static function better_title_case($string){
523 $string = str_replace('_',' ', $string);
524 $string = ucwords($string);
525 return $string;
526 }
527
528 }
529