PluginProbe
CartFlows – Funnel Builder & Checkout Plugin for WooCommerce / 1.0.4
CartFlows – Funnel Builder & Checkout Plugin for WooCommerce v1.0.4
3.3.0 3.2.1 3.2.0 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 3.0.1 trunk 1.0.4 1.1.0 1.1.0.1 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 All 162 releases
cartflows / modules / checkout / classes / class-cartflows-checkout-meta.php

class-cartflows-checkout-meta.php in CartFlows – Funnel Builder & Checkout Plugin for WooCommerce 1.0.4, at modules/checkout/classes/class-cartflows-checkout-meta.php

758 lines 19.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Checkout post meta
4 *
5 * @package CartFlows
6 */
7
8 /**
9 * Meta Boxes setup
10 */
11 class Cartflows_Checkout_Meta extends Cartflows_Meta {
12
13 /**
14 * Instance
15 *
16 * @var $instance
17 */
18 private static $instance;
19
20 /**
21 * Meta Option
22 *
23 * @var $meta_option
24 */
25 private static $meta_option = null;
26
27 /**
28 * Initiator
29 */
30 public static function get_instance() {
31 if ( ! isset( self::$instance ) ) {
32 self::$instance = new self;
33 }
34
35 return self::$instance;
36 }
37
38 /**
39 * Constructor
40 */
41 public function __construct() {
42
43 /* Init Metabox */
44 add_action( 'load-post.php', array( $this, 'init_metabox' ) );
45 add_action( 'load-post-new.php', array( $this, 'init_metabox' ) );
46 }
47
48 /**
49 * Init Metabox
50 */
51 public function init_metabox() {
52
53 add_action( 'add_meta_boxes', array( $this, 'setup_meta_box' ) );
54 add_action( 'save_post', array( $this, 'save_meta_box' ) );
55 }
56
57 /**
58 * Setup Metabox
59 */
60 function setup_meta_box() {
61
62 // Get all posts.
63 $post_types = get_post_types();
64
65 if ( _is_wcf_checkout_type() ) {
66 add_meta_box(
67 'wcf-checkout-settings', // Id.
68 __( 'Checkout Layout', 'cartflows' ), // Title.
69 array( $this, 'markup_meta_box' ), // Callback.
70 wcf()->utils->get_step_post_type(), // Post_type.
71 'normal', // Context.
72 'high' // Priority.
73 );
74 }
75 }
76
77 /**
78 * Metabox Markup
79 *
80 * @param object $post Post object.
81 * @return void
82 */
83 function markup_meta_box( $post ) {
84
85 wp_nonce_field( 'save-nonce-checkout-step-meta', 'nonce-checkout-step-meta' );
86
87 $stored = get_post_meta( $post->ID );
88
89 $checkout_meta = self::get_meta_option( $post->ID );
90
91 // Set stored and override defaults.
92 foreach ( $stored as $key => $value ) {
93 if ( array_key_exists( $key, $checkout_meta ) ) {
94 self::$meta_option[ $key ]['default'] = ( isset( $stored[ $key ][0] ) ) ? maybe_unserialize( $stored[ $key ][0] ) : '';
95 } else {
96 self::$meta_option[ $key ]['default'] = ( isset( $stored[ $key ][0] ) ) ? $stored[ $key ][0] : '';
97 }
98 }
99
100 // Get defaults.
101 $meta = self::get_meta_option( $post->ID );
102 $checkout_data = array();
103
104 foreach ( $meta as $key => $value ) {
105
106 $checkout_data[ $key ] = $meta[ $key ]['default'];
107 }
108
109 /*
110 $billing_fields = Cartflows_Helper::get_checkout_fields( 'billing', $post->ID );
111
112 foreach ( $billing_fields as $key => $value ) {
113
114 $checkout_data[ 'wcf-' . $key ] = $meta[ 'wcf-' . $key ]['default'];
115 }
116
117 $shipping_fields = Cartflows_Helper::get_checkout_fields( 'shipping', $post->ID );
118
119 foreach ( $shipping_fields as $key => $value ) {
120
121 $checkout_data[ 'wcf-' . $key ] = $meta[ 'wcf-' . $key ]['default'];
122 }
123
124 $additional_fields = Cartflows_Helper::get_checkout_fields( 'additional', $post->ID );
125
126 foreach ( $additional_fields as $key => $value ) {
127
128 $checkout_data[ 'wcf-' . $key ] = $meta[ 'wcf-' . $key ]['default'];
129 }
130 */
131
132 do_action( 'wcf_checkout_settings_markup_before' );
133 $this->tabs_markup( $checkout_data, $post->ID );
134 do_action( 'wcf_checkout_settings_markup_after' );
135 }
136
137 /**
138 * Page Header Tabs
139 *
140 * @param array $options options.
141 * @param int $post_id post ID.
142 */
143 function tabs_markup( $options, $post_id ) {
144
145 $active_tab = get_post_meta( $post_id, 'wcf-active-tab', true );
146
147 if ( empty( $active_tab ) ) {
148 $active_tab = 'wcf-checkout-shortcodes';
149 }
150
151 $tabs = array(
152 array(
153 'title' => __( 'Shortcodes', 'cartflows' ),
154 'id' => 'wcf-checkout-shortcodes',
155 'class' => 'wcf-checkout-shortcodes' === $active_tab ? 'wcf-tab wp-ui-text-highlight active' : 'wcf-tab',
156 'icon' => 'dashicons-editor-code',
157 'help_text' => 'Help Helpppp...',
158 ),
159 array(
160 'title' => __( 'Select Product', 'cartflows' ),
161 'id' => 'wcf-checkout-general',
162 'class' => 'wcf-checkout-general' === $active_tab ? 'wcf-tab wp-ui-text-highlight active' : 'wcf-tab',
163 'icon' => 'dashicons-info',
164 ),
165 array(
166 'title' => __( 'Order Bump', 'cartflows' ),
167 'id' => 'wcf-product-order-bump',
168 'class' => 'wcf-product-order-bump' === $active_tab ? 'wcf-tab wp-ui-text-highlight active' : 'wcf-tab',
169 'icon' => 'dashicons-cart',
170 ),
171 array(
172 'title' => __( 'Checkout Design', 'cartflows' ),
173 'id' => 'wcf-checkout-style',
174 'class' => 'wcf-checkout-style' === $active_tab ? 'wcf-tab wp-ui-text-highlight active' : 'wcf-tab',
175 'icon' => 'dashicons-admin-customizer',
176 ),
177 array(
178 'title' => __( 'Checkout Fields', 'cartflows' ),
179 'id' => 'wcf-checkout-custom-fields',
180 'class' => 'wcf-checkout-custom-fields' === $active_tab ? 'wcf-tab wp-ui-text-highlight active' : 'wcf-tab',
181 'icon' => 'dashicons-welcome-widgets-menus',
182 ),
183 array(
184 'title' => __( 'Logo ( Optional )', 'cartflows' ),
185 'id' => 'wcf-checkout-header',
186 'class' => 'wcf-checkout-header' === $active_tab ? 'wcf-tab wp-ui-text-highlight active' : 'wcf-tab',
187 'icon' => 'dashicons-format-image',
188 ),
189 );
190
191 ?>
192 <div class="wcf-checkout-table wcf-metabox-wrap widefat">
193 <div class="wcf-table-container">
194 <div class="wcf-column-left">
195 <div class="wcf-tab-wrapper">
196
197 <?php foreach ( $tabs as $key => $tab ) { ?>
198 <div class="<?php echo esc_attr( $tab['class'] ); ?>" data-tab="<?php echo esc_attr( $tab['id'] ); ?>">
199 <span class="dashicons <?php echo esc_attr( $tab['icon'] ); ?>"></span>
200 <span class="wcf-tab-title"><?php echo esc_html( $tab['title'] ); ?></span>
201 </div>
202 <?php } ?>
203
204 <input type="hidden" id="wcf-active-tab" name="wcf-active-tab" value="<?php echo esc_attr( $active_tab ); ?>" />
205 </div>
206 </div>
207 <div class="wcf-column-right">
208 <?php $this->tab_shortcodes( $options, $post_id ); ?>
209 <?php $this->tab_general( $options, $post_id ); ?>
210 <?php $this->tab_style( $options, $post_id ); ?>
211 <?php $this->tab_product_bump( $options, $post_id ); ?>
212 <?php $this->tab_custom_fields( $options, $post_id ); ?>
213 <?php $this->tab_header_content( $options, $post_id ); ?>
214 <?php $this->right_column_footer( $options, $post_id ); ?>
215 </div>
216 </div>
217 </div>
218
219 <?php
220 }
221
222 /**
223 * Shortcodes tab
224 *
225 * @param array $options options.
226 * @param int $post_id post ID.
227 */
228 function tab_shortcodes( $options, $post_id ) {
229 ?>
230 <div class="wcf-checkout-shortcodes wcf-tab-content widefat">
231
232 <?php
233
234 echo wcf()->meta->get_shortcode_field(
235 array(
236 'label' => 'Checkout Page',
237 'name' => 'wcf-checkout-shortcode',
238 'content' => '[cartflows_checkout]',
239 'help' => __( 'Add this shortcode to your checkout page', 'cartflows' ),
240 )
241 );
242 ?>
243 </div>
244 <?php
245 }
246
247
248 /**
249 * General tab
250 *
251 * @param array $options options.
252 * @param int $post_id post ID.
253 */
254 function tab_general( $options, $post_id ) {
255 ?>
256 <div class="wcf-checkout-general wcf-tab-content widefat">
257
258 <?php
259
260 echo wcf()->meta->get_product_selection_repeater(
261 array(
262 'name' => 'wcf-checkout-products',
263 'value' => $options['wcf-checkout-products'],
264 'allow_clear' => true,
265 )
266 );
267
268 do_action( 'cartflows_checkout_general_tab_content', $options, $post_id );
269
270 ?>
271 </div>
272 <?php
273 }
274
275 /**
276 * Product bump tab
277 *
278 * @param array $options options.
279 * @param int $post_id post ID.
280 */
281 function tab_product_bump( $options, $post_id ) {
282 ?>
283 <div class="wcf-product-order-bump wcf-tab-content widefat">
284 <?php
285 if ( ! _is_cartflows_pro() ) {
286
287 echo wcf()->meta->get_description_field(
288 array(
289 'name' => 'wcf-upgrade-to-pro',
290 'content' => '<i>' . __( 'Upgrade to <a href="#">CartFlows Pro</a> for Order Bump feature', 'cartflows' ) . '</i>',
291 )
292 );
293 }
294 ?>
295
296 <?php do_action( 'cartflows_order_bump_tab_content', $options, $post_id ); ?>
297 </div>
298 <?php
299 }
300 /**
301 * Tab custom fields
302 *
303 * @param array $options options.
304 * @param int $post_id post ID.
305 */
306 function tab_custom_fields( $options, $post_id ) {
307 ?>
308 <div class="wcf-checkout-custom-fields wcf-tab-content widefat">
309 <?php
310 /* Custom Checkout Fields Section */
311
312 if ( ! _is_cartflows_pro() ) {
313
314 echo wcf()->meta->get_description_field(
315 array(
316 'name' => 'wcf-upgrade-to-pro',
317 'content' => '<i>' . __( 'Upgrade to <a href="#">CartFlows Pro</a> for Custom Fields feature', 'cartflows' ) . '</i>',
318 )
319 );
320 }
321 ?>
322 <?php do_action( 'cartflows_custom_fields_tab_content', $options, $post_id ); ?>
323 </div>
324 <?php
325 }
326
327 /**
328 * Tab style
329 *
330 * @param array $options options.
331 * @param int $post_id post ID.
332 */
333 function tab_style( $options, $post_id ) {
334 ?>
335
336 <div class="wcf-checkout-style wcf-tab-content widefat">
337 <div class="wcf-cs-fields">
338 <div class="wcf-cs-checkbox-field">
339 <?php
340
341 $layout_pro_option = array();
342
343 if ( ! _is_cartflows_pro() ) {
344 $layout_pro_option = array(
345 'one-column' => __( 'One Column (Available in CartFlows Pro) ', 'cartflows' ),
346 );
347 }
348
349 echo wcf()->meta->get_select_field(
350 array(
351 'label' => __( 'Checkout Skin', 'cartflows' ),
352 'name' => 'wcf-checkout-layout',
353 'value' => $options['wcf-checkout-layout'],
354 'options' => array(
355 'one-column' => __( 'One Column', 'cartflows' ),
356 'two-column' => __( 'Two Column', 'cartflows' ),
357 ),
358 'pro-options' => $layout_pro_option,
359
360 )
361 );
362
363 echo wcf()->meta->get_color_picker_field(
364 array(
365 'label' => __( 'Primary Color', 'cartflows' ),
366 'name' => 'wcf-primary-color',
367 'value' => $options['wcf-primary-color'],
368 )
369 );
370
371 echo wcf()->meta->get_font_family_field(
372 array(
373 'for' => 'wcf-base',
374 'label' => __( 'Font Family', 'cartflows' ),
375 'name' => 'wcf-base-font-family',
376 'value' => $options['wcf-base-font-family'],
377 )
378 );
379
380 echo wcf()->meta->get_checkbox_field(
381 array(
382 'label' => __( 'Advance Options', 'cartflows' ),
383 'name' => 'wcf-advance-options-fields',
384 'value' => $options['wcf-advance-options-fields'],
385 'after' => 'Enable',
386 )
387 );
388 ?>
389 </div>
390 <div class="wcf-cs-fields-options">
391 <?php
392 echo wcf()->meta->get_section(
393 array(
394 'label' => __( 'Heading', 'cartflows' ),
395 )
396 );
397
398 echo wcf()->meta->get_color_picker_field(
399 array(
400 'label' => __( 'Heading Color', 'cartflows' ),
401 'name' => 'wcf-heading-color',
402 'value' => $options['wcf-heading-color'],
403 )
404 );
405
406 echo wcf()->meta->get_font_family_field(
407 array(
408 'for' => 'wcf-heading',
409 'label' => __( 'Font Family', 'cartflows' ),
410 'name' => 'wcf-heading-font-family',
411 'value' => $options['wcf-heading-font-family'],
412 )
413 );
414
415 echo wcf()->meta->get_font_weight_field(
416 array(
417 'for' => 'wcf-heading',
418 'label' => __( 'Font Weight', 'cartflows' ),
419 'name' => 'wcf-heading-font-weight',
420 'value' => $options['wcf-heading-font-weight'],
421 )
422 );
423
424 echo wcf()->meta->get_section(
425 array(
426 'label' => __( 'Input Fields', 'cartflows' ),
427 )
428 );
429
430 $fields_skin_pro_option = array();
431
432 if ( ! _is_cartflows_pro() ) {
433 $fields_skin_pro_option = array(
434 'skin-one' => __( 'Style 1 (Available in CartFlows Pro)', 'cartflows' ),
435 );
436 }
437
438 echo wcf()->meta->get_select_field(
439 array(
440 'label' => __( 'Style', 'cartflows' ),
441 'name' => 'wcf-fields-skins',
442 'value' => $options['wcf-fields-skins'],
443 'options' => array(
444 'default' => __( 'Default', 'cartflows' ),
445 'style-one' => __( 'Style 1', 'cartflows' ),
446 ),
447 'pro-options' => $fields_skin_pro_option,
448
449 )
450 );
451
452 echo wcf()->meta->get_font_family_field(
453 array(
454 'for' => 'wcf-input',
455 'label' => __( 'Font Family', 'cartflows' ),
456 'name' => 'wcf-input-font-family',
457 'value' => $options['wcf-input-font-family'],
458 )
459 );
460
461 echo wcf()->meta->get_font_weight_field(
462 array(
463 'for' => 'wcf-input',
464 'label' => __( 'Font Weight', 'cartflows' ),
465 'name' => 'wcf-input-font-weight',
466 'value' => $options['wcf-input-font-weight'],
467 )
468 );
469
470 echo wcf()->meta->get_select_field(
471 array(
472 'label' => __( 'Size', 'cartflows' ),
473 'name' => 'wcf-input-field-size',
474 'value' => $options['wcf-input-field-size'],
475 'options' => array(
476 '33px' => __( 'Extra Small', 'cartflows' ),
477 '38px' => __( 'Small', 'cartflows' ),
478 '44px' => __( 'Medium', 'cartflows' ),
479 '58px' => __( 'Large', 'cartflows' ),
480 '68px' => __( 'Extra Large', 'cartflows' ),
481 'custom' => __( 'Custom', 'cartflows' ),
482 ),
483 )
484 );
485
486 echo wcf()->meta->get_number_field(
487 array(
488 'label' => __( 'Top Bottom Spacing', 'cartflows' ),
489 'name' => 'wcf-field-tb-padding',
490 'value' => $options['wcf-field-tb-padding'],
491 )
492 );
493
494 echo wcf()->meta->get_number_field(
495 array(
496 'label' => __( 'Left Right Spacing', 'cartflows' ),
497 'name' => 'wcf-field-lr-padding',
498 'value' => $options['wcf-field-lr-padding'],
499 )
500 );
501
502 echo wcf()->meta->get_color_picker_field(
503 array(
504 'label' => __( 'Text / Placeholder Color', 'cartflows' ),
505 'name' => 'wcf-field-color',
506 'value' => $options['wcf-field-color'],
507 )
508 );
509
510 echo wcf()->meta->get_color_picker_field(
511 array(
512 'label' => __( 'Background Color', 'cartflows' ),
513 'name' => 'wcf-field-bg-color',
514 'value' => $options['wcf-field-bg-color'],
515 )
516 );
517
518 echo wcf()->meta->get_color_picker_field(
519 array(
520 'label' => __( 'Border Color', 'cartflows' ),
521 'name' => 'wcf-field-border-color',
522 'value' => $options['wcf-field-border-color'],
523 )
524 );
525 echo wcf()->meta->get_color_picker_field(
526 array(
527 'label' => __( 'Label Color', 'cartflows' ),
528 'name' => 'wcf-field-label-color',
529 'value' => $options['wcf-field-label-color'],
530 )
531 );
532
533 ?>
534 </div>
535 <div class="wcf-cs-button-options">
536 <?php
537
538 echo wcf()->meta->get_section(
539 array(
540 'label' => __( 'Buttons', 'cartflows' ),
541 )
542 );
543
544 echo wcf()->meta->get_font_family_field(
545 array(
546 'for' => 'wcf-button',
547 'label' => __( 'Font Family', 'cartflows' ),
548 'name' => 'wcf-button-font-family',
549 'value' => $options['wcf-button-font-family'],
550 )
551 );
552
553 echo wcf()->meta->get_font_weight_field(
554 array(
555 'for' => 'wcf-button',
556 'label' => __( 'Font Weight', 'cartflows' ),
557 'name' => 'wcf-button-font-weight',
558 'value' => $options['wcf-button-font-weight'],
559 )
560 );
561
562 echo wcf()->meta->get_select_field(
563 array(
564 'label' => __( 'Size', 'cartflows' ),
565 'name' => 'wcf-input-button-size',
566 'value' => $options['wcf-input-button-size'],
567 'options' => array(
568 '33px' => __( 'Extra Small', 'cartflows' ),
569 '38px' => __( 'Small', 'cartflows' ),
570 '44px' => __( 'Medium', 'cartflows' ),
571 '58px' => __( 'Large', 'cartflows' ),
572 '68px' => __( 'Extra Large', 'cartflows' ),
573 'custom' => __( 'Custom', 'cartflows' ),
574 ),
575 )
576 );
577
578 echo wcf()->meta->get_number_field(
579 array(
580 'label' => __( 'Top Bottom Spacing', 'cartflows' ),
581 'name' => 'wcf-submit-tb-padding',
582 'value' => $options['wcf-submit-tb-padding'],
583 )
584 );
585
586 echo wcf()->meta->get_number_field(
587 array(
588 'label' => __( 'Left Right Spacing', 'cartflows' ),
589 'name' => 'wcf-submit-lr-padding',
590 'value' => $options['wcf-submit-lr-padding'],
591 )
592 );
593
594 echo wcf()->meta->get_color_picker_field(
595 array(
596 'label' => __( 'Text Color', 'cartflows' ),
597 'name' => 'wcf-submit-color',
598 'value' => $options['wcf-submit-color'],
599 )
600 );
601
602 echo wcf()->meta->get_color_picker_field(
603 array(
604 'label' => __( 'Text Hover Color', 'cartflows' ),
605 'name' => 'wcf-submit-hover-color',
606 'value' => $options['wcf-submit-hover-color'],
607 )
608 );
609
610 echo wcf()->meta->get_color_picker_field(
611 array(
612 'label' => __( 'Background Color', 'cartflows' ),
613 'name' => 'wcf-submit-bg-color',
614 'value' => $options['wcf-submit-bg-color'],
615 )
616 );
617
618 echo wcf()->meta->get_color_picker_field(
619 array(
620 'label' => __( 'Background Hover Color', 'cartflows' ),
621 'name' => 'wcf-submit-bg-hover-color',
622 'value' => $options['wcf-submit-bg-hover-color'],
623 )
624 );
625
626 echo wcf()->meta->get_color_picker_field(
627 array(
628 'label' => __( 'Border Color', 'cartflows' ),
629 'name' => 'wcf-submit-border-color',
630 'value' => $options['wcf-submit-border-color'],
631 )
632 );
633
634 echo wcf()->meta->get_color_picker_field(
635 array(
636 'label' => __( 'Border Hover Color', 'cartflows' ),
637 'name' => 'wcf-submit-border-hover-color',
638 'value' => $options['wcf-submit-border-hover-color'],
639 )
640 );
641
642 ?>
643 </div>
644 <div class="wcf-cs-section-options">
645 <?php
646
647 echo wcf()->meta->get_section(
648 array(
649 'label' => __( 'Sections', 'cartflows' ),
650 )
651 );
652
653 echo wcf()->meta->get_color_picker_field(
654 array(
655 'label' => __( 'Highlight Area Background Color', 'cartflows' ),
656 'name' => 'wcf-hl-bg-color',
657 'value' => $options['wcf-hl-bg-color'],
658 )
659 );
660
661 echo wcf()->meta->get_hidden_field(
662 array(
663 'name' => 'wcf-field-google-font-url',
664 'value' => $options['wcf-field-google-font-url'],
665 )
666 );
667 ?>
668 </div>
669 <?php do_action( 'cartflows_checkout_style_tab_content', $options, $post_id ); ?>
670 </div>
671 </div>
672 <?php
673 }
674
675
676 /**
677 * Tab Header (Used for add logo into header)
678 *
679 * @param array $options options.
680 * @param int $post_id post ID.
681 */
682 function tab_header_content( $options, $post_id ) {
683 ?>
684
685 <div class="wcf-checkout-header wcf-tab-content widefat">
686 <?php
687
688 $layout_pro_option = array();
689
690 echo wcf()->meta->get_image_field(
691 array(
692 'name' => 'wcf-header-logo-image',
693 'value' => $options['wcf-header-logo-image'],
694 'label' => __( 'Header Logo', 'cartflows' ),
695 )
696 );
697
698 echo wcf()->meta->get_number_field(
699 array(
700 'name' => 'wcf-header-logo-width',
701 'value' => $options['wcf-header-logo-width'],
702 'label' => __( 'Logo Width (In px)', 'cartflows' ),
703 )
704 );
705 ?>
706 <?php do_action( 'cartflows_checkout_style_tab_content', $options, $post_id ); ?>
707 </div>
708 <?php
709 }
710 /**
711 * Get metabox options
712 *
713 * @param int $post_id post ID.
714 */
715 public static function get_meta_option( $post_id ) {
716
717 if ( null === self::$meta_option ) {
718
719 /**
720 * Set metabox options
721 *
722 * @see http://php.net/manual/en/filter.filters.sanitize.php
723 */
724 self::$meta_option = wcf()->options->get_checkout_fields( $post_id );
725 }
726
727 return self::$meta_option;
728 }
729
730 /**
731 * Metabox Save
732 *
733 * @param number $post_id Post ID.
734 * @return void
735 */
736 function save_meta_box( $post_id ) {
737
738 // Checks save status.
739 $is_autosave = wp_is_post_autosave( $post_id );
740 $is_revision = wp_is_post_revision( $post_id );
741
742 $is_valid_nonce = ( isset( $_POST['nonce-checkout-step-meta'] ) && wp_verify_nonce( $_POST['nonce-checkout-step-meta'], 'save-nonce-checkout-step-meta' ) ) ? true : false;
743
744 // Exits script depending on save status.
745 if ( $is_autosave || $is_revision || ! $is_valid_nonce ) {
746 return;
747 }
748
749 wcf()->options->save_checkout_fields( $post_id );
750 }
751
752 }
753
754 /**
755 * Kicking this off by calling 'get_instance()' method
756 */
757 Cartflows_Checkout_Meta::get_instance();
758