Passed
Push — master ( b23fa6...8cf7d7 )
by Brian
15:03
created
includes/class-wpinv-legacy-invoice.php 1 patch
Indentation   +19 added lines, -19 removed lines patch added patch discarded remove patch
@@ -775,10 +775,10 @@  discard block
 block discarded – undo
775 775
         $allowed_fee_keys = apply_filters(
776 776
             'wpinv_fee_keys',
777 777
             array(
778
-				'index',
779
-				'label',
780
-				'amount',
781
-				'type',
778
+                'index',
779
+                'label',
780
+                'amount',
781
+                'type',
782 782
             )
783 783
         );
784 784
 
@@ -850,19 +850,19 @@  discard block
 block discarded – undo
850 850
         $note_id = wp_insert_comment(
851 851
             wp_filter_comment(
852 852
                 array(
853
-					'comment_post_ID'      => $this->ID,
854
-					'comment_content'      => $note,
855
-					'comment_agent'        => 'WPInvoicing',
856
-					'user_id'              => is_admin() ? get_current_user_id() : 0,
857
-					'comment_date'         => current_time( 'mysql' ),
858
-					'comment_date_gmt'     => current_time( 'mysql', 1 ),
859
-					'comment_approved'     => 1,
860
-					'comment_parent'       => 0,
861
-					'comment_author'       => $comment_author,
862
-					'comment_author_IP'    => wpinv_get_ip(),
863
-					'comment_author_url'   => '',
864
-					'comment_author_email' => $comment_author_email,
865
-					'comment_type'         => 'wpinv_note',
853
+                    'comment_post_ID'      => $this->ID,
854
+                    'comment_content'      => $note,
855
+                    'comment_agent'        => 'WPInvoicing',
856
+                    'user_id'              => is_admin() ? get_current_user_id() : 0,
857
+                    'comment_date'         => current_time( 'mysql' ),
858
+                    'comment_date_gmt'     => current_time( 'mysql', 1 ),
859
+                    'comment_approved'     => 1,
860
+                    'comment_parent'       => 0,
861
+                    'comment_author'       => $comment_author,
862
+                    'comment_author_IP'    => wpinv_get_ip(),
863
+                    'comment_author_url'   => '',
864
+                    'comment_author_email' => $comment_author_email,
865
+                    'comment_type'         => 'wpinv_note',
866 866
                 )
867 867
             )
868 868
         );
@@ -875,8 +875,8 @@  discard block
 block discarded – undo
875 875
             do_action(
876 876
                 'wpinv_new_customer_note',
877 877
                 array(
878
-					'invoice_id' => $this->ID,
879
-					'user_note'  => $note,
878
+                    'invoice_id' => $this->ID,
879
+                    'user_note'  => $note,
880 880
                 )
881 881
             );
882 882
         }
Please login to merge, or discard this patch.
templates/subscriptions/subscriptions-table-row.php 1 patch
Indentation   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -13,42 +13,42 @@
 block discarded – undo
13 13
 
14 14
 foreach ( array_keys( $widget->get_subscriptions_table_columns() ) as $column ) :
15 15
 
16
-	$class = sanitize_html_class( $column );
17
-	echo "<td class='getpaid-subscriptions-table-column-" . esc_attr( $class ) . "'>";
16
+    $class = sanitize_html_class( $column );
17
+    echo "<td class='getpaid-subscriptions-table-column-" . esc_attr( $class ) . "'>";
18 18
 
19
-		do_action( "getpaid_subscriptions_before_frontend_subscription_table_$column", $subscription );
19
+        do_action( "getpaid_subscriptions_before_frontend_subscription_table_$column", $subscription );
20 20
 
21
-		switch ( $column ) :
21
+        switch ( $column ) :
22 22
 
23
-		case 'subscription':
24
-			$subscription_id = (int) $subscription->get_id();
25
-			$url             = esc_url( $subscription->get_view_url() );
26
-			$id_label        = sprintf(
27
-				esc_attr_x( '#%s', 'subscription id', 'invoicing' ),
28
-				(int) $subscription->get_id()
29
-			);
30
-			echo wp_kses_post( $widget->add_row_actions( "<a href='$url' class='font-weight-bold text-decoration-none'>$id_label</a>", $subscription ) );
31
-			break;
23
+        case 'subscription':
24
+            $subscription_id = (int) $subscription->get_id();
25
+            $url             = esc_url( $subscription->get_view_url() );
26
+            $id_label        = sprintf(
27
+                esc_attr_x( '#%s', 'subscription id', 'invoicing' ),
28
+                (int) $subscription->get_id()
29
+            );
30
+            echo wp_kses_post( $widget->add_row_actions( "<a href='$url' class='font-weight-bold text-decoration-none'>$id_label</a>", $subscription ) );
31
+            break;
32 32
 
33
-		case 'status':
34
-			echo esc_html( $subscription->get_status_label() );
35
-			break;
33
+        case 'status':
34
+            echo esc_html( $subscription->get_status_label() );
35
+            break;
36 36
 
37
-		case 'renewal-date':
38
-			$renewal = getpaid_format_date_value( $subscription->get_next_renewal_date() );
39
-			echo $subscription->is_active() ? esc_html( $renewal ) : '&mdash;';
40
-			break;
37
+        case 'renewal-date':
38
+            $renewal = getpaid_format_date_value( $subscription->get_next_renewal_date() );
39
+            echo $subscription->is_active() ? esc_html( $renewal ) : '&mdash;';
40
+            break;
41 41
 
42
-		case 'amount':
43
-			$frequency = getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' );
44
-			$amount    = wpinv_price( $subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency() );
45
-			echo wp_kses_post( "<span>$amount</span> / <span class='getpaid-item-recurring-period'>$frequency</span>" );
46
-			break;
42
+        case 'amount':
43
+            $frequency = getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' );
44
+            $amount    = wpinv_price( $subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency() );
45
+            echo wp_kses_post( "<span>$amount</span> / <span class='getpaid-item-recurring-period'>$frequency</span>" );
46
+            break;
47 47
 
48
-		endswitch;
48
+        endswitch;
49 49
 
50
-		do_action( "getpaid_subscriptions_frontend_subscription_table_$column", $subscription );
50
+        do_action( "getpaid_subscriptions_frontend_subscription_table_$column", $subscription );
51 51
 
52
-	echo '</td>';
52
+    echo '</td>';
53 53
 
54 54
 endforeach;
Please login to merge, or discard this patch.
templates/subscriptions/subscription-details.php 1 patch
Indentation   +46 added lines, -46 removed lines patch added patch discarded remove patch
@@ -46,62 +46,62 @@  discard block
 block discarded – undo
46 46
 				<td style="width: 65%">
47 47
 					<?php
48 48
 
49
-						switch ( $key ) {
49
+                        switch ( $key ) {
50 50
 
51
-						case 'status':
52
-							echo esc_html( $subscription->get_status_label() );
53
-							break;
51
+                        case 'status':
52
+                            echo esc_html( $subscription->get_status_label() );
53
+                            break;
54 54
 
55
-						case 'start_date':
56
-							echo esc_html( getpaid_format_date_value( $subscription->get_date_created() ) );
57
-							break;
55
+                        case 'start_date':
56
+                            echo esc_html( getpaid_format_date_value( $subscription->get_date_created() ) );
57
+                            break;
58 58
 
59
-						case 'expiry_date':
60
-							echo esc_html( getpaid_format_date_value( $subscription->get_next_renewal_date() ) );
61
-							break;
59
+                        case 'expiry_date':
60
+                            echo esc_html( getpaid_format_date_value( $subscription->get_next_renewal_date() ) );
61
+                            break;
62 62
 
63
-						case 'initial_amount':
64
-							echo wp_kses_post( wpinv_price( $subscription->get_initial_amount(), $subscription->get_parent_payment()->get_currency() ) );
63
+                        case 'initial_amount':
64
+                            echo wp_kses_post( wpinv_price( $subscription->get_initial_amount(), $subscription->get_parent_payment()->get_currency() ) );
65 65
 
66
-							if ( $subscription->has_trial_period() ) {
66
+                            if ( $subscription->has_trial_period() ) {
67 67
 
68
-								echo "<small class='text-muted'>&nbsp;";
69
-								printf(
70
-									esc_html_x( '( %1$s trial )', 'Subscription trial period. (e.g.: 1 month trial)', 'invoicing' ),
71
-									esc_html( $subscription->get_trial_period() )
72
-								);
73
-								echo '</small>';
68
+                                echo "<small class='text-muted'>&nbsp;";
69
+                                printf(
70
+                                    esc_html_x( '( %1$s trial )', 'Subscription trial period. (e.g.: 1 month trial)', 'invoicing' ),
71
+                                    esc_html( $subscription->get_trial_period() )
72
+                                );
73
+                                echo '</small>';
74 74
 
75
-							}
75
+                            }
76 76
 
77
-							break;
77
+                            break;
78 78
 
79
-						case 'recurring_amount':
80
-							$frequency = getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' );
81
-							$amount    = wpinv_price( $subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency() );
82
-							echo wp_kses_post( strtolower( "<strong style='font-weight: 500;'>$amount</strong> / <span class='getpaid-item-recurring-period'>$frequency</span>" ) );
83
-							break;
79
+                        case 'recurring_amount':
80
+                            $frequency = getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' );
81
+                            $amount    = wpinv_price( $subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency() );
82
+                            echo wp_kses_post( strtolower( "<strong style='font-weight: 500;'>$amount</strong> / <span class='getpaid-item-recurring-period'>$frequency</span>" ) );
83
+                            break;
84 84
 
85
-						case 'item':
86
-							if ( empty( $subscription_group ) ) {
87
-								echo wp_kses_post( WPInv_Subscriptions_List_Table::generate_item_markup( $subscription->get_product_id() ) );
88
-								} else {
89
-								$markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
90
-								echo wp_kses_post( implode( ' | ', $markup ) );
91
-								}
85
+                        case 'item':
86
+                            if ( empty( $subscription_group ) ) {
87
+                                echo wp_kses_post( WPInv_Subscriptions_List_Table::generate_item_markup( $subscription->get_product_id() ) );
88
+                                } else {
89
+                                $markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
90
+                                echo wp_kses_post( implode( ' | ', $markup ) );
91
+                                }
92 92
 
93
-							break;
93
+                            break;
94 94
 
95
-						case 'payments':
96
-							$max_activations = (int) $subscription->get_bill_times();
97
-							echo ( (int) $subscription->get_times_billed() ) . ' / ' . ( empty( $max_activations ) ? '&infin;' : (int) $max_activations );
95
+                        case 'payments':
96
+                            $max_activations = (int) $subscription->get_bill_times();
97
+                            echo ( (int) $subscription->get_times_billed() ) . ' / ' . ( empty( $max_activations ) ? '&infin;' : (int) $max_activations );
98 98
 
99
-							break;
99
+                            break;
100 100
 
101
-						}
102
-						do_action( "getpaid_render_single_subscription_column_$key", $subscription );
101
+                        }
102
+                        do_action( "getpaid_render_single_subscription_column_$key", $subscription );
103 103
 
104
-					?>
104
+                    ?>
105 105
 				</td>
106 106
 
107 107
 			</tr>
@@ -128,17 +128,17 @@  discard block
 block discarded – undo
128 128
 <span class="form-text">
129 129
 
130 130
 	<?php
131
-		if ( $subscription->can_cancel() ) {
132
-		printf(
131
+        if ( $subscription->can_cancel() ) {
132
+        printf(
133 133
             '<a href="%s" class="btn btn-danger btn-sm" onclick="return confirm(\'%s\')">%s</a>&nbsp;&nbsp;',
134 134
             esc_url( $subscription->get_cancel_url() ),
135 135
             esc_attr__( 'Are you sure you want to cancel this subscription?', 'invoicing' ),
136 136
             esc_html__( 'Cancel Subscription', 'invoicing' )
137 137
         );
138
-		}
138
+        }
139 139
 
140
-		do_action( 'getpaid-single-subscription-page-actions', $subscription );
141
-	?>
140
+        do_action( 'getpaid-single-subscription-page-actions', $subscription );
141
+    ?>
142 142
 
143 143
 	<a href="<?php echo esc_url( getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) ) ); ?>" class="btn btn-secondary btn-sm"><?php esc_html_e( 'Go Back', 'invoicing' ); ?></a>
144 144
 </span>
Please login to merge, or discard this patch.
templates/payment-forms/elements/address.php 1 patch
Indentation   +26 added lines, -26 removed lines patch added patch discarded remove patch
@@ -10,7 +10,7 @@  discard block
 block discarded – undo
10 10
 defined( 'ABSPATH' ) || exit;
11 11
 
12 12
 if ( empty( $fields ) ) {
13
-	return;
13
+    return;
14 14
 }
15 15
 
16 16
 // A prefix for all ids (so that a form can be included in the same page multiple times).
@@ -18,12 +18,12 @@  discard block
 block discarded – undo
18 18
 
19 19
 // Prepare the user's country.
20 20
 if ( ! empty( $form->invoice ) ) {
21
-	$country = $form->invoice->get_country();
21
+    $country = $form->invoice->get_country();
22 22
 }
23 23
 
24 24
 if ( empty( $country ) ) {
25
-	$country = empty( $country ) ? getpaid_get_ip_country() : $country;
26
-	$country = empty( $country ) ? wpinv_get_default_country() : $country;
25
+    $country = empty( $country ) ? getpaid_get_ip_country() : $country;
26
+    $country = empty( $country ) ? wpinv_get_default_country() : $country;
27 27
 }
28 28
 
29 29
 // A prefix for all ids (so that a form can be included in the same page multiple times).
@@ -55,10 +55,10 @@  discard block
 block discarded – undo
55 55
 	<!-- Start Billing Address -->
56 56
 	<div class="getpaid-billing-address-wrapper">
57 57
 		<?php
58
-			$field_type = 'billing';
59
-			include plugin_dir_path( __FILE__ ) . 'address-fields.php';
60
-			do_action( 'getpaid_after_payment_form_billing_fields', $form );
61
-		?>
58
+            $field_type = 'billing';
59
+            include plugin_dir_path( __FILE__ ) . 'address-fields.php';
60
+            do_action( 'getpaid_after_payment_form_billing_fields', $form );
61
+        ?>
62 62
 	</div>
63 63
 	<!-- End Billing Address -->
64 64
 
@@ -70,21 +70,21 @@  discard block
 block discarded – undo
70 70
 
71 71
 	<?php
72 72
 
73
-		aui()->input(
74
-		    array(
75
-			    'type'     => 'checkbox',
76
-			    'name'     => 'same-shipping-address',
77
-			    'id'       => "shipping-toggle$uniqid",
78
-			    'required' => false,
79
-			    'label'    => wp_kses_post( $shipping_address_toggle ),
80
-			    'value'    => 1,
81
-			    'checked'  => true,
82
-				'class'    => 'w-auto',
83
-		    ),
84
-			true
85
-		);
73
+        aui()->input(
74
+            array(
75
+                'type'     => 'checkbox',
76
+                'name'     => 'same-shipping-address',
77
+                'id'       => "shipping-toggle$uniqid",
78
+                'required' => false,
79
+                'label'    => wp_kses_post( $shipping_address_toggle ),
80
+                'value'    => 1,
81
+                'checked'  => true,
82
+                'class'    => 'w-auto',
83
+            ),
84
+            true
85
+        );
86 86
 
87
-	?>
87
+    ?>
88 88
 
89 89
 
90 90
 	<!-- Start Shipping Address Title -->
@@ -103,10 +103,10 @@  discard block
 block discarded – undo
103 103
 	<!-- Start Shipping Address -->
104 104
 	<div class="getpaid-shipping-address-wrapper">
105 105
 		<?php
106
-			$field_type = 'shipping';
107
-			include plugin_dir_path( __FILE__ ) . 'address-fields.php';
108
-			do_action( 'getpaid_after_payment_form_shipping_fields', $form );
109
-		?>
106
+            $field_type = 'shipping';
107
+            include plugin_dir_path( __FILE__ ) . 'address-fields.php';
108
+            do_action( 'getpaid_after_payment_form_shipping_fields', $form );
109
+        ?>
110 110
 	</div>
111 111
 	<!-- End Shipping Address -->
112 112
 
Please login to merge, or discard this patch.
templates/emails/wpinv-email-header.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -25,7 +25,7 @@
 block discarded – undo
25 25
                         <?php
26 26
                             $img = wpinv_get_option( 'email_header_image', '' );
27 27
                             if ( $img ) {
28
-							echo '<p style="margin-top:0;"><img style="max-width:100%" src="' . esc_url( $img ) . '" alt="' . esc_attr( wpinv_get_blogname() ) . '" /></p>';
28
+                            echo '<p style="margin-top:0;"><img style="max-width:100%" src="' . esc_url( $img ) . '" alt="' . esc_attr( wpinv_get_blogname() ) . '" /></p>';
29 29
                             }
30 30
                         ?>
31 31
                         </div>
Please login to merge, or discard this patch.
includes/admin/views/wizard-settings.php 1 patch
Indentation   +80 added lines, -80 removed lines patch added patch discarded remove patch
@@ -21,101 +21,101 @@
 block discarded – undo
21 21
                     global $wp_settings_fields;
22 22
 
23 23
                     if ( isset( $wp_settings_fields[ $page ][ $section ] ) ) {
24
-					$settings = $wp_settings_fields[ $page ][ $section ];
25
-
26
-					foreach ( $settings as $field ) {
27
-
28
-						$name      = esc_attr( $field['id'] );
29
-						$id        = sanitize_key( $name );
30
-						$class     = '';
31
-						$value     = isset( $field['args']['std'] ) ? $field['args']['std'] : '';
32
-						$value     = wpinv_clean( wpinv_get_option( $field['args']['id'], $value ) );
33
-						$help_text = isset( $field['args']['desc'] ) ? wp_kses_post( $field['args']['desc'] ) : '';
34
-						$type      = str_replace( 'wpinv_', '', str_replace( '_callback', '', $field['callback'] ) );
35
-						$label     = isset( $field['args']['name'] ) ? wp_kses_post( $field['args']['name'] ) : '';
36
-						$options   = isset( $field['args']['options'] ) ? $field['args']['options'] : array();
37
-
38
-						if ( false !== strpos( $name, 'logo' ) ) {
39
-							$type = 'hidden';
24
+                    $settings = $wp_settings_fields[ $page ][ $section ];
25
+
26
+                    foreach ( $settings as $field ) {
27
+
28
+                        $name      = esc_attr( $field['id'] );
29
+                        $id        = sanitize_key( $name );
30
+                        $class     = '';
31
+                        $value     = isset( $field['args']['std'] ) ? $field['args']['std'] : '';
32
+                        $value     = wpinv_clean( wpinv_get_option( $field['args']['id'], $value ) );
33
+                        $help_text = isset( $field['args']['desc'] ) ? wp_kses_post( $field['args']['desc'] ) : '';
34
+                        $type      = str_replace( 'wpinv_', '', str_replace( '_callback', '', $field['callback'] ) );
35
+                        $label     = isset( $field['args']['name'] ) ? wp_kses_post( $field['args']['name'] ) : '';
36
+                        $options   = isset( $field['args']['options'] ) ? $field['args']['options'] : array();
37
+
38
+                        if ( false !== strpos( $name, 'logo' ) ) {
39
+                            $type = 'hidden';
40 40
                             }
41 41
 
42
-						if ( 'country_states' == $type ) {
42
+                        if ( 'country_states' == $type ) {
43 43
 
44
-							if ( 0 == count( wpinv_get_country_states( wpinv_get_default_country() ) ) ) {
45
-								$type = 'text';
44
+                            if ( 0 == count( wpinv_get_country_states( wpinv_get_default_country() ) ) ) {
45
+                                $type = 'text';
46 46
                                 } else {
47
-								$type = 'select';
47
+                                $type = 'select';
48 48
                                 }
49 49
 
50
-							$class = 'getpaid_js_field-state';
50
+                            $class = 'getpaid_js_field-state';
51 51
                             }
52 52
 
53
-						if ( 'wpinv_settings[default_country]' == $name ) {
54
-							$class = 'getpaid_js_field-country';
53
+                        if ( 'wpinv_settings[default_country]' == $name ) {
54
+                            $class = 'getpaid_js_field-country';
55 55
                             }
56 56
 
57
-						switch ( $type ) {
57
+                        switch ( $type ) {
58 58
 
59
-							case 'hidden':
60
-								echo "<input type='hidden' id='" . esc_attr( $id ) . "' name='" . esc_attr( $name ) . "' value='" . esc_attr( $value ) . "' />";
61
-								break;
62
-							case 'text':
59
+                            case 'hidden':
60
+                                echo "<input type='hidden' id='" . esc_attr( $id ) . "' name='" . esc_attr( $name ) . "' value='" . esc_attr( $value ) . "' />";
61
+                                break;
62
+                            case 'text':
63 63
                             case 'number':
64
-								aui()->input(
64
+                                aui()->input(
65 65
                                     array(
66
-								'type'        => $type,
67
-								'id'          => $id,
68
-								'name'        => $name,
69
-								'value'       => is_scalar( $value ) ? esc_attr( $value ) : '',
70
-								'required'    => false,
71
-								'help_text'   => $help_text,
72
-								'label'       => $label,
73
-								'class'       => $class,
74
-								'label_type'  => 'floating',
75
-								'label_class' => 'settings-label',
66
+                                'type'        => $type,
67
+                                'id'          => $id,
68
+                                'name'        => $name,
69
+                                'value'       => is_scalar( $value ) ? esc_attr( $value ) : '',
70
+                                'required'    => false,
71
+                                'help_text'   => $help_text,
72
+                                'label'       => $label,
73
+                                'class'       => $class,
74
+                                'label_type'  => 'floating',
75
+                                'label_class' => 'settings-label',
76 76
                                     ),
77
-									true
77
+                                    true
78 78
                                 );
79
-								break;
80
-							case 'textarea':
81
-								aui()->textarea(
82
-									array(
83
-										'id'          => $id,
84
-										'name'        => $name,
85
-										'value'       => is_scalar( $value ) ? esc_textarea( $value ) : '',
86
-										'required'    => false,
87
-										'help_text'   => $help_text,
88
-										'label'       => $label,
89
-										'rows'        => '4',
90
-										'class'       => $class,
91
-										'label_type'  => 'floating',
92
-										'label_class' => 'settings-label',
93
-									),
94
-									true
95
-								);
96
-
97
-								break;
98
-							case 'select':
99
-								aui()->select(
100
-									array(
101
-										'id'          => $id,
102
-										'name'        => $name,
103
-										'placeholder' => '',
104
-										'value'       => is_scalar( $value ) ? esc_attr( $value ) : '',
105
-										'required'    => false,
106
-										'help_text'   => $help_text,
107
-										'label'       => $label,
108
-										'options'     => $options,
109
-										'label_type'  => 'floating',
110
-										'label_class' => 'settings-label',
111
-										'class'       => $class,
112
-									),
113
-									true
114
-								);
115
-								break;
116
-							default:
117
-								// Do something.
118
-								break;
79
+                                break;
80
+                            case 'textarea':
81
+                                aui()->textarea(
82
+                                    array(
83
+                                        'id'          => $id,
84
+                                        'name'        => $name,
85
+                                        'value'       => is_scalar( $value ) ? esc_textarea( $value ) : '',
86
+                                        'required'    => false,
87
+                                        'help_text'   => $help_text,
88
+                                        'label'       => $label,
89
+                                        'rows'        => '4',
90
+                                        'class'       => $class,
91
+                                        'label_type'  => 'floating',
92
+                                        'label_class' => 'settings-label',
93
+                                    ),
94
+                                    true
95
+                                );
96
+
97
+                                break;
98
+                            case 'select':
99
+                                aui()->select(
100
+                                    array(
101
+                                        'id'          => $id,
102
+                                        'name'        => $name,
103
+                                        'placeholder' => '',
104
+                                        'value'       => is_scalar( $value ) ? esc_attr( $value ) : '',
105
+                                        'required'    => false,
106
+                                        'help_text'   => $help_text,
107
+                                        'label'       => $label,
108
+                                        'options'     => $options,
109
+                                        'label_type'  => 'floating',
110
+                                        'label_class' => 'settings-label',
111
+                                        'class'       => $class,
112
+                                    ),
113
+                                    true
114
+                                );
115
+                                break;
116
+                            default:
117
+                                // Do something.
118
+                                break;
119 119
                             }
120 120
                         }
121 121
                     }
Please login to merge, or discard this patch.
includes/admin/class-getpaid-admin-setup-wizard.php 1 patch
Indentation   +381 added lines, -381 removed lines patch added patch discarded remove patch
@@ -17,395 +17,395 @@
 block discarded – undo
17 17
  */
18 18
 class GetPaid_Admin_Setup_Wizard {
19 19
 
20
-	/**
21
-	 * @var string Current Step
22
-	 */
23
-	protected $step = '';
24
-
25
-	/**
26
-	 * @var string|false Previous Step
27
-	 */
28
-	protected $previous_step = '';
29
-
30
-	/**
31
-	 * @var string|false Next Step
32
-	 */
33
-	protected $next_step = '';
34
-
35
-	/**
36
-	 * @var array All available steps for the setup wizard
37
-	 */
38
-	protected $steps = array();
39
-
40
-	/**
41
-	 * Class constructor.
42
-	 *
43
-	 * @since 2.4.0
44
-	 */
45
-	public function __construct() {
46
-
47
-		if ( apply_filters( 'getpaid_enable_setup_wizard', true ) && wpinv_current_user_can_manage_invoicing() ) {
48
-			add_action( 'admin_menu', array( $this, 'add_menu' ) );
49
-			add_action( 'current_screen', array( $this, 'setup_wizard' ) );
50
-		}
51
-
52
-	}
53
-
54
-	/**
55
-	 * Add admin menus/screens.
56
-	 *
57
-	 * @since 2.4.0
58
-	 */
59
-	public function add_menu() {
60
-		add_dashboard_page( '', '', wpinv_get_capability(), 'gp-setup', '' );
61
-	}
62
-
63
-	/**
64
-	 * Sets up the setup wizard.
65
-	 *
66
-	 * @since 2.4.0
67
-	 */
68
-	public function setup_wizard() {
69
-
70
-		if ( isset( $_GET['page'] ) && 'gp-setup' === $_GET['page'] ) {
71
-			$this->setup_globals();
72
-			$this->maybe_save_current_step();
73
-			$this->display_wizard();
74
-			exit;
75
-		}
76
-
77
-	}
78
-
79
-	/**
80
-	 * Sets up class variables.
81
-	 *
82
-	 * @since 2.4.0
83
-	 */
84
-	protected function setup_globals() {
85
-		$this->steps         = $this->get_setup_steps();
86
-		$this->step          = $this->get_current_step();
87
-		$this->previous_step = $this->get_previous_step();
88
-		$this->next_step     = $this->get_next_step();
89
-	}
90
-
91
-	/**
92
-	 * Saves the current step.
93
-	 *
94
-	 * @since 2.4.0
95
-	 */
96
-	protected function maybe_save_current_step() {
97
-		if ( ! empty( $_POST['save_step'] ) && is_callable( $this->steps[ $this->step ]['handler'] ) ) {
98
-			call_user_func( $this->steps[ $this->step ]['handler'], $this );
99
-		}
100
-	}
101
-
102
-	/**
103
-	 * Returns the setup steps.
104
-	 *
105
-	 * @since 2.4.0
106
-	 * @return array
107
-	 */
108
-	protected function get_setup_steps() {
109
-
110
-		$steps = array(
111
-
112
-			'introduction'     => array(
113
-				'name'    => __( 'Introduction', 'invoicing' ),
114
-				'view'    => array( $this, 'setup_introduction' ),
115
-				'handler' => '',
116
-			),
117
-
118
-			'business_details' => array(
119
-				'name'    => __( 'Business Details', 'invoicing' ),
120
-				'view'    => array( $this, 'setup_business' ),
121
-				'handler' => '',
122
-			),
123
-
124
-			'currency'         => array(
125
-				'name'    => __( 'Currency', 'invoicing' ),
126
-				'view'    => array( $this, 'setup_currency' ),
127
-				'handler' => '',
128
-			),
129
-
130
-			'payments'         => array(
131
-				'name'    => __( 'Payment Gateways', 'invoicing' ),
132
-				'view'    => array( $this, 'setup_payments' ),
133
-				'handler' => array( $this, 'setup_payments_save' ),
134
-			),
135
-
136
-			'recommend'        => array(
137
-				'name'    => __( 'Recommend', 'invoicing' ),
138
-				'view'    => array( $this, 'setup_recommend' ),
139
-				'handler' => '',
140
-			),
141
-
142
-			'next_steps'       => array(
143
-				'name'    => __( 'Get Paid', 'invoicing' ),
144
-				'view'    => array( $this, 'setup_ready' ),
145
-				'handler' => '',
146
-			),
147
-
148
-		);
149
-
150
-		return apply_filters( 'getpaid_setup_wizard_steps', $steps );
151
-
152
-	}
153
-
154
-	/**
155
-	 * Returns the current step.
156
-	 *
157
-	 * @since 2.4.0
158
-	 * @return string
159
-	 */
160
-	protected function get_current_step() {
161
-		$step = isset( $_GET['step'] ) ? sanitize_key( $_GET['step'] ) : '';
162
-		return ! empty( $step ) && in_array( $step, array_keys( $this->steps ) ) ? $step : current( array_keys( $this->steps ) );
163
-	}
164
-
165
-	/**
166
-	 * Returns the previous step.
167
-	 *
168
-	 * @since 2.4.0
169
-	 * @return string|false
170
-	 */
171
-	protected function get_previous_step() {
172
-
173
-		$previous = false;
174
-		$current  = $this->step;
175
-		foreach ( array_keys( $this->steps ) as $step ) {
176
-			if ( $current === $step ) {
177
-				return $previous;
178
-			}
179
-
180
-			$previous = $step;
181
-		}
182
-
183
-		return false;
184
-	}
185
-
186
-	/**
187
-	 * Returns the next step.
188
-	 *
189
-	 * @since 2.4.0
190
-	 * @return string|false
191
-	 */
192
-	protected function get_next_step() {
193
-
194
-		$on_current = false;
195
-		$current    = $this->step;
196
-		foreach ( array_keys( $this->steps ) as $step ) {
197
-
198
-			if ( $on_current ) {
199
-				return $step;
200
-			}
201
-
202
-			if ( $current === $step ) {
203
-				return $on_current = true;
204
-			}
20
+    /**
21
+     * @var string Current Step
22
+     */
23
+    protected $step = '';
24
+
25
+    /**
26
+     * @var string|false Previous Step
27
+     */
28
+    protected $previous_step = '';
29
+
30
+    /**
31
+     * @var string|false Next Step
32
+     */
33
+    protected $next_step = '';
34
+
35
+    /**
36
+     * @var array All available steps for the setup wizard
37
+     */
38
+    protected $steps = array();
39
+
40
+    /**
41
+     * Class constructor.
42
+     *
43
+     * @since 2.4.0
44
+     */
45
+    public function __construct() {
46
+
47
+        if ( apply_filters( 'getpaid_enable_setup_wizard', true ) && wpinv_current_user_can_manage_invoicing() ) {
48
+            add_action( 'admin_menu', array( $this, 'add_menu' ) );
49
+            add_action( 'current_screen', array( $this, 'setup_wizard' ) );
50
+        }
51
+
52
+    }
53
+
54
+    /**
55
+     * Add admin menus/screens.
56
+     *
57
+     * @since 2.4.0
58
+     */
59
+    public function add_menu() {
60
+        add_dashboard_page( '', '', wpinv_get_capability(), 'gp-setup', '' );
61
+    }
62
+
63
+    /**
64
+     * Sets up the setup wizard.
65
+     *
66
+     * @since 2.4.0
67
+     */
68
+    public function setup_wizard() {
69
+
70
+        if ( isset( $_GET['page'] ) && 'gp-setup' === $_GET['page'] ) {
71
+            $this->setup_globals();
72
+            $this->maybe_save_current_step();
73
+            $this->display_wizard();
74
+            exit;
75
+        }
76
+
77
+    }
78
+
79
+    /**
80
+     * Sets up class variables.
81
+     *
82
+     * @since 2.4.0
83
+     */
84
+    protected function setup_globals() {
85
+        $this->steps         = $this->get_setup_steps();
86
+        $this->step          = $this->get_current_step();
87
+        $this->previous_step = $this->get_previous_step();
88
+        $this->next_step     = $this->get_next_step();
89
+    }
90
+
91
+    /**
92
+     * Saves the current step.
93
+     *
94
+     * @since 2.4.0
95
+     */
96
+    protected function maybe_save_current_step() {
97
+        if ( ! empty( $_POST['save_step'] ) && is_callable( $this->steps[ $this->step ]['handler'] ) ) {
98
+            call_user_func( $this->steps[ $this->step ]['handler'], $this );
99
+        }
100
+    }
101
+
102
+    /**
103
+     * Returns the setup steps.
104
+     *
105
+     * @since 2.4.0
106
+     * @return array
107
+     */
108
+    protected function get_setup_steps() {
109
+
110
+        $steps = array(
111
+
112
+            'introduction'     => array(
113
+                'name'    => __( 'Introduction', 'invoicing' ),
114
+                'view'    => array( $this, 'setup_introduction' ),
115
+                'handler' => '',
116
+            ),
117
+
118
+            'business_details' => array(
119
+                'name'    => __( 'Business Details', 'invoicing' ),
120
+                'view'    => array( $this, 'setup_business' ),
121
+                'handler' => '',
122
+            ),
123
+
124
+            'currency'         => array(
125
+                'name'    => __( 'Currency', 'invoicing' ),
126
+                'view'    => array( $this, 'setup_currency' ),
127
+                'handler' => '',
128
+            ),
129
+
130
+            'payments'         => array(
131
+                'name'    => __( 'Payment Gateways', 'invoicing' ),
132
+                'view'    => array( $this, 'setup_payments' ),
133
+                'handler' => array( $this, 'setup_payments_save' ),
134
+            ),
135
+
136
+            'recommend'        => array(
137
+                'name'    => __( 'Recommend', 'invoicing' ),
138
+                'view'    => array( $this, 'setup_recommend' ),
139
+                'handler' => '',
140
+            ),
141
+
142
+            'next_steps'       => array(
143
+                'name'    => __( 'Get Paid', 'invoicing' ),
144
+                'view'    => array( $this, 'setup_ready' ),
145
+                'handler' => '',
146
+            ),
147
+
148
+        );
149
+
150
+        return apply_filters( 'getpaid_setup_wizard_steps', $steps );
151
+
152
+    }
153
+
154
+    /**
155
+     * Returns the current step.
156
+     *
157
+     * @since 2.4.0
158
+     * @return string
159
+     */
160
+    protected function get_current_step() {
161
+        $step = isset( $_GET['step'] ) ? sanitize_key( $_GET['step'] ) : '';
162
+        return ! empty( $step ) && in_array( $step, array_keys( $this->steps ) ) ? $step : current( array_keys( $this->steps ) );
163
+    }
164
+
165
+    /**
166
+     * Returns the previous step.
167
+     *
168
+     * @since 2.4.0
169
+     * @return string|false
170
+     */
171
+    protected function get_previous_step() {
172
+
173
+        $previous = false;
174
+        $current  = $this->step;
175
+        foreach ( array_keys( $this->steps ) as $step ) {
176
+            if ( $current === $step ) {
177
+                return $previous;
178
+            }
179
+
180
+            $previous = $step;
181
+        }
182
+
183
+        return false;
184
+    }
185
+
186
+    /**
187
+     * Returns the next step.
188
+     *
189
+     * @since 2.4.0
190
+     * @return string|false
191
+     */
192
+    protected function get_next_step() {
193
+
194
+        $on_current = false;
195
+        $current    = $this->step;
196
+        foreach ( array_keys( $this->steps ) as $step ) {
197
+
198
+            if ( $on_current ) {
199
+                return $step;
200
+            }
201
+
202
+            if ( $current === $step ) {
203
+                return $on_current = true;
204
+            }
205 205
 }
206 206
 
207
-		return false;
208
-	}
209
-
210
-	/**
211
-	 * Displays the setup wizard.
212
-	 *
213
-	 * @since 2.4.0
214
-	 */
215
-	public function display_wizard() {
216
-		$this->display_header();
217
-		$this->display_current_step();
218
-		$this->display_footer();
219
-	}
220
-
221
-	/**
222
-	 * Displays the Wizard Header.
223
-	 *
224
-	 * @since 2.0.0
225
-	 */
226
-	public function display_header() {
227
-		$steps     = $this->steps;
228
-		$current   = $this->step;
229
-		$next_step = $this->next_step;
230
-		array_shift( $steps );
231
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-header.php';
232
-	}
233
-
234
-	/**
235
-	 * Displays the content for the current step.
236
-	 *
237
-	 * @since 2.4.0
238
-	 */
239
-	public function display_current_step() {
240
-		?>
207
+        return false;
208
+    }
209
+
210
+    /**
211
+     * Displays the setup wizard.
212
+     *
213
+     * @since 2.4.0
214
+     */
215
+    public function display_wizard() {
216
+        $this->display_header();
217
+        $this->display_current_step();
218
+        $this->display_footer();
219
+    }
220
+
221
+    /**
222
+     * Displays the Wizard Header.
223
+     *
224
+     * @since 2.0.0
225
+     */
226
+    public function display_header() {
227
+        $steps     = $this->steps;
228
+        $current   = $this->step;
229
+        $next_step = $this->next_step;
230
+        array_shift( $steps );
231
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-header.php';
232
+    }
233
+
234
+    /**
235
+     * Displays the content for the current step.
236
+     *
237
+     * @since 2.4.0
238
+     */
239
+    public function display_current_step() {
240
+        ?>
241 241
 			<div class="gp-setup-content rowx mw-100 text-center mb-3">
242 242
 				<div class="col-12 col-md-5 m-auto">
243 243
 					<?php call_user_func( $this->steps[ $this->step ]['view'], $this ); ?>
244 244
 				</div>
245 245
 			</div>
246 246
 		<?php
247
-	}
248
-
249
-	/**
250
-	 * Setup Wizard Footer.
251
-	 *
252
-	 * @since 2.4.0
253
-	 */
254
-	public function display_footer() {
255
-
256
-		if ( isset( $_GET['step'] ) ) {
257
-			$label    = $this->step == 'next_steps' ? __( 'Return to the WordPress Dashboard', 'invoicing' ) : __( 'Skip this step', 'invoicing' );
258
-
259
-			echo '<p class="gd-return-to-dashboard-wrap"> <a href="' . esc_url( $this->get_next_step_link() ) . '" class="gd-return-to-dashboard btn btn-link d-block text-muted">' . esc_html( $label ) . '</a></p>';
260
-		}
261
-
262
-		echo '</body></html>';
263
-	}
264
-
265
-	/**
266
-	 * Introduction step.
267
-	 *
268
-	 * @since 2.0.0
269
-	 */
270
-	public function setup_introduction() {
271
-		$next_url = $this->get_next_step_link();
272
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-introduction.php';
273
-	}
274
-
275
-	/**
276
-	 * Get the URL for the next step's screen.
277
-	 *
278
-	 * @param string step   slug (default: current step)
279
-	 *
280
-	 * @return string       URL for next step if a next step exists.
281
-	 *                      Admin URL if it's the last step.
282
-	 *                      Empty string on failure.
283
-	 * @since 3.0.0
284
-	 */
285
-	public function get_next_step_link( $step = '' ) {
286
-		if ( ! $step ) {
287
-			$step = $this->step;
288
-		}
289
-
290
-		$keys = array_keys( $this->steps );
291
-		if ( end( $keys ) === $step ) {
292
-			return admin_url();
293
-		}
294
-
295
-		$step_index = array_search( $step, $keys );
296
-		if ( false === $step_index ) {
297
-			return '';
298
-		}
299
-
300
-		return remove_query_arg( 'settings-updated', add_query_arg( 'step', $keys[ $step_index + 1 ] ) );
301
-	}
302
-
303
-	/**
304
-	 * Setup maps api.
305
-	 *
306
-	 * @since 2.0.0
307
-	 */
308
-	public function setup_business() {
309
-		$next_url = $this->get_next_step_link();
310
-		$wizard   = $this;
311
-		$page     = 'wpinv_settings_general_main';
312
-		$section  = 'wpinv_settings_general_main';
313
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
314
-	}
315
-
316
-	/**
317
-	 * Default Location settings.
318
-	 *
319
-	 * @since 2.0.0
320
-	 */
321
-	public function setup_currency() {
322
-		$next_url = $this->get_next_step_link();
323
-		$wizard   = $this;
324
-		$page     = 'wpinv_settings_general_currency_section';
325
-		$section  = 'wpinv_settings_general_currency_section';
326
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
327
-	}
328
-
329
-	/**
330
-	 * Installation of recommended plugins.
331
-	 *
332
-	 * @since 1.0.0
333
-	 */
334
-	public function setup_recommend() {
335
-		$next_url            = $this->get_next_step_link();
336
-		$recommended_plugins = self::get_recommend_wp_plugins();
337
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-plugins.php';
338
-	}
339
-
340
-	/**
341
-	 * A list of recommended wp.org plugins.
342
-	 * @return array
343
-	 */
344
-	public static function get_recommend_wp_plugins() {
345
-		return array(
346
-			'ayecode-connect'  => array(
347
-				'file' => 'ayecode-connect/ayecode-connect.php',
348
-				'url'  => 'https://wordpress.org/plugins/ayecode-connect/',
349
-				'slug' => 'ayecode-connect',
350
-				'name' => 'AyeCode Connect',
351
-				'desc' => __( 'Documentation and Support from within your WordPress admin.', 'invoicing' ),
352
-			),
353
-			'invoicing-quotes' => array(
354
-				'file' => 'invoicing-quotes/wpinv-quote.php',
355
-				'url'  => 'https://wordpress.org/plugins/invoicing-quotes/',
356
-				'slug' => 'invoicing-quotes',
357
-				'name' => 'Customer Quotes',
358
-				'desc' => __( 'Create & Send Quotes to Customers and have them accept and pay.', 'invoicing' ),
359
-			),
360
-			'userswp'          => array(
361
-				'file' => 'userswp/userswp.php',
362
-				'url'  => 'https://wordpress.org/plugins/userswp/',
363
-				'slug' => 'userswp',
364
-				'name' => 'UsersWP',
365
-				'desc' => __( 'Frontend user login and registration as well as slick profile pages.', 'invoicing' ),
366
-			),
367
-		);
368
-	}
369
-
370
-	/**
371
-	 * Dummy Data setup.
372
-	 *
373
-	 * @since 2.4.0
374
-	 */
375
-	public function setup_payments() {
376
-		$next_url = $this->get_next_step_link();
377
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-gateways.php';
378
-	}
379
-
380
-	/**
381
-	 * Dummy data save.
382
-	 *
383
-	 * This is done via ajax so we just pass onto the next step.
384
-	 *
385
-	 * @since 2.0.0
386
-	 */
387
-	public function setup_payments_save() {
388
-		check_admin_referer( 'getpaid-setup-wizard', 'getpaid-setup-wizard' );
389
-		wpinv_update_option( 'manual_active', ! empty( $_POST['enable-manual-gateway'] ) );
390
-
391
-		if ( ! empty( $_POST['paypal-email'] ) ) {
392
-			wpinv_update_option( 'paypal_email', sanitize_email( $_POST['paypal-email'] ) );
393
-			wpinv_update_option( 'paypal_active', 1 );
394
-			wpinv_update_option( 'paypal_sandbox', 0 );
395
-		}
396
-
397
-		wp_redirect( esc_url_raw( $this->get_next_step_link() ) );
398
-		exit;
399
-	}
400
-
401
-	/**
402
-	 * Final step.
403
-	 *
404
-	 * @since 2.0.0
405
-	 */
406
-	public function setup_ready() {
407
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-thank-you.php';
408
-	}
247
+    }
248
+
249
+    /**
250
+     * Setup Wizard Footer.
251
+     *
252
+     * @since 2.4.0
253
+     */
254
+    public function display_footer() {
255
+
256
+        if ( isset( $_GET['step'] ) ) {
257
+            $label    = $this->step == 'next_steps' ? __( 'Return to the WordPress Dashboard', 'invoicing' ) : __( 'Skip this step', 'invoicing' );
258
+
259
+            echo '<p class="gd-return-to-dashboard-wrap"> <a href="' . esc_url( $this->get_next_step_link() ) . '" class="gd-return-to-dashboard btn btn-link d-block text-muted">' . esc_html( $label ) . '</a></p>';
260
+        }
261
+
262
+        echo '</body></html>';
263
+    }
264
+
265
+    /**
266
+     * Introduction step.
267
+     *
268
+     * @since 2.0.0
269
+     */
270
+    public function setup_introduction() {
271
+        $next_url = $this->get_next_step_link();
272
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-introduction.php';
273
+    }
274
+
275
+    /**
276
+     * Get the URL for the next step's screen.
277
+     *
278
+     * @param string step   slug (default: current step)
279
+     *
280
+     * @return string       URL for next step if a next step exists.
281
+     *                      Admin URL if it's the last step.
282
+     *                      Empty string on failure.
283
+     * @since 3.0.0
284
+     */
285
+    public function get_next_step_link( $step = '' ) {
286
+        if ( ! $step ) {
287
+            $step = $this->step;
288
+        }
289
+
290
+        $keys = array_keys( $this->steps );
291
+        if ( end( $keys ) === $step ) {
292
+            return admin_url();
293
+        }
294
+
295
+        $step_index = array_search( $step, $keys );
296
+        if ( false === $step_index ) {
297
+            return '';
298
+        }
299
+
300
+        return remove_query_arg( 'settings-updated', add_query_arg( 'step', $keys[ $step_index + 1 ] ) );
301
+    }
302
+
303
+    /**
304
+     * Setup maps api.
305
+     *
306
+     * @since 2.0.0
307
+     */
308
+    public function setup_business() {
309
+        $next_url = $this->get_next_step_link();
310
+        $wizard   = $this;
311
+        $page     = 'wpinv_settings_general_main';
312
+        $section  = 'wpinv_settings_general_main';
313
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
314
+    }
315
+
316
+    /**
317
+     * Default Location settings.
318
+     *
319
+     * @since 2.0.0
320
+     */
321
+    public function setup_currency() {
322
+        $next_url = $this->get_next_step_link();
323
+        $wizard   = $this;
324
+        $page     = 'wpinv_settings_general_currency_section';
325
+        $section  = 'wpinv_settings_general_currency_section';
326
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
327
+    }
328
+
329
+    /**
330
+     * Installation of recommended plugins.
331
+     *
332
+     * @since 1.0.0
333
+     */
334
+    public function setup_recommend() {
335
+        $next_url            = $this->get_next_step_link();
336
+        $recommended_plugins = self::get_recommend_wp_plugins();
337
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-plugins.php';
338
+    }
339
+
340
+    /**
341
+     * A list of recommended wp.org plugins.
342
+     * @return array
343
+     */
344
+    public static function get_recommend_wp_plugins() {
345
+        return array(
346
+            'ayecode-connect'  => array(
347
+                'file' => 'ayecode-connect/ayecode-connect.php',
348
+                'url'  => 'https://wordpress.org/plugins/ayecode-connect/',
349
+                'slug' => 'ayecode-connect',
350
+                'name' => 'AyeCode Connect',
351
+                'desc' => __( 'Documentation and Support from within your WordPress admin.', 'invoicing' ),
352
+            ),
353
+            'invoicing-quotes' => array(
354
+                'file' => 'invoicing-quotes/wpinv-quote.php',
355
+                'url'  => 'https://wordpress.org/plugins/invoicing-quotes/',
356
+                'slug' => 'invoicing-quotes',
357
+                'name' => 'Customer Quotes',
358
+                'desc' => __( 'Create & Send Quotes to Customers and have them accept and pay.', 'invoicing' ),
359
+            ),
360
+            'userswp'          => array(
361
+                'file' => 'userswp/userswp.php',
362
+                'url'  => 'https://wordpress.org/plugins/userswp/',
363
+                'slug' => 'userswp',
364
+                'name' => 'UsersWP',
365
+                'desc' => __( 'Frontend user login and registration as well as slick profile pages.', 'invoicing' ),
366
+            ),
367
+        );
368
+    }
369
+
370
+    /**
371
+     * Dummy Data setup.
372
+     *
373
+     * @since 2.4.0
374
+     */
375
+    public function setup_payments() {
376
+        $next_url = $this->get_next_step_link();
377
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-gateways.php';
378
+    }
379
+
380
+    /**
381
+     * Dummy data save.
382
+     *
383
+     * This is done via ajax so we just pass onto the next step.
384
+     *
385
+     * @since 2.0.0
386
+     */
387
+    public function setup_payments_save() {
388
+        check_admin_referer( 'getpaid-setup-wizard', 'getpaid-setup-wizard' );
389
+        wpinv_update_option( 'manual_active', ! empty( $_POST['enable-manual-gateway'] ) );
390
+
391
+        if ( ! empty( $_POST['paypal-email'] ) ) {
392
+            wpinv_update_option( 'paypal_email', sanitize_email( $_POST['paypal-email'] ) );
393
+            wpinv_update_option( 'paypal_active', 1 );
394
+            wpinv_update_option( 'paypal_sandbox', 0 );
395
+        }
396
+
397
+        wp_redirect( esc_url_raw( $this->get_next_step_link() ) );
398
+        exit;
399
+    }
400
+
401
+    /**
402
+     * Final step.
403
+     *
404
+     * @since 2.0.0
405
+     */
406
+    public function setup_ready() {
407
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-thank-you.php';
408
+    }
409 409
 
410 410
 }
411 411
 
Please login to merge, or discard this patch.
includes/admin/meta-boxes/class-getpaid-meta-box-item-details.php 1 patch
Indentation   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
  */
9 9
 
10 10
 if ( ! defined( 'ABSPATH' ) ) {
11
-	exit; // Exit if accessed directly
11
+    exit; // Exit if accessed directly
12 12
 }
13 13
 
14 14
 /**
@@ -17,10 +17,10 @@  discard block
 block discarded – undo
17 17
 class GetPaid_Meta_Box_Item_Details {
18 18
 
19 19
     /**
20
-	 * Output the metabox.
21
-	 *
22
-	 * @param WP_Post $post
23
-	 */
20
+     * Output the metabox.
21
+     *
22
+     * @param WP_Post $post
23
+     */
24 24
     public static function output( $post ) {
25 25
 
26 26
         // Prepare the item.
@@ -114,23 +114,23 @@  discard block
 block discarded – undo
114 114
                                 // Dynamic pricing.
115 115
                                 if ( $item->supports_dynamic_pricing() ) {
116 116
 
117
-								do_action( 'wpinv_item_details_metabox_before_dynamic_pricing_checkbox', $item );
117
+                                do_action( 'wpinv_item_details_metabox_before_dynamic_pricing_checkbox', $item );
118 118
 
119
-								// NYP toggle.
120
-								aui()->input(
119
+                                // NYP toggle.
120
+                                aui()->input(
121 121
                                     array(
122
-								'id'      => 'wpinv_name_your_price',
123
-								'name'    => 'wpinv_name_your_price',
124
-								'type'    => 'checkbox',
125
-								'label'   => apply_filters( 'wpinv_name_your_price_toggle_text', __( 'Let customers name their price', 'invoicing' ) ),
126
-								'value'   => '1',
127
-								'checked' => $item->user_can_set_their_price(),
128
-								'no_wrap' => true,
122
+                                'id'      => 'wpinv_name_your_price',
123
+                                'name'    => 'wpinv_name_your_price',
124
+                                'type'    => 'checkbox',
125
+                                'label'   => apply_filters( 'wpinv_name_your_price_toggle_text', __( 'Let customers name their price', 'invoicing' ) ),
126
+                                'value'   => '1',
127
+                                'checked' => $item->user_can_set_their_price(),
128
+                                'no_wrap' => true,
129 129
                                     ),
130 130
                                     true
131 131
                                 );
132 132
 
133
-							do_action( 'wpinv_item_details_metabox_dynamic_pricing_checkbox', $item );
133
+                            do_action( 'wpinv_item_details_metabox_dynamic_pricing_checkbox', $item );
134 134
 
135 135
                                 }
136 136
 
@@ -274,35 +274,35 @@  discard block
 block discarded – undo
274 274
     }
275 275
 
276 276
     /**
277
-	 * Save meta box data.
278
-	 *
279
-	 * @param int $post_id
280
-	 */
281
-	public static function save( $post_id ) {
277
+     * Save meta box data.
278
+     *
279
+     * @param int $post_id
280
+     */
281
+    public static function save( $post_id ) {
282 282
 
283 283
         // Prepare the item.
284 284
         $item = new WPInv_Item( $post_id );
285 285
 
286 286
         // Load new data.
287 287
         $item->set_props(
288
-			array(
289
-				'price'              => isset( $_POST['wpinv_item_price'] ) ? getpaid_standardize_amount( $_POST['wpinv_item_price'] ) : null,
290
-				'vat_rule'           => isset( $_POST['wpinv_vat_rules'] ) ? wpinv_clean( $_POST['wpinv_vat_rules'] ) : null,
291
-				'vat_class'          => isset( $_POST['wpinv_vat_class'] ) ? wpinv_clean( $_POST['wpinv_vat_class'] ) : null,
292
-				'type'               => isset( $_POST['wpinv_item_type'] ) ? wpinv_clean( $_POST['wpinv_item_type'] ) : null,
293
-				'is_dynamic_pricing' => ! empty( $_POST['wpinv_name_your_price'] ),
288
+            array(
289
+                'price'              => isset( $_POST['wpinv_item_price'] ) ? getpaid_standardize_amount( $_POST['wpinv_item_price'] ) : null,
290
+                'vat_rule'           => isset( $_POST['wpinv_vat_rules'] ) ? wpinv_clean( $_POST['wpinv_vat_rules'] ) : null,
291
+                'vat_class'          => isset( $_POST['wpinv_vat_class'] ) ? wpinv_clean( $_POST['wpinv_vat_class'] ) : null,
292
+                'type'               => isset( $_POST['wpinv_item_type'] ) ? wpinv_clean( $_POST['wpinv_item_type'] ) : null,
293
+                'is_dynamic_pricing' => ! empty( $_POST['wpinv_name_your_price'] ),
294 294
                 'minimum_price'      => isset( $_POST['wpinv_minimum_price'] ) ? getpaid_standardize_amount( $_POST['wpinv_minimum_price'] ) : null,
295
-				'is_recurring'       => ! empty( $_POST['wpinv_is_recurring'] ),
296
-				'recurring_period'   => isset( $_POST['wpinv_recurring_period'] ) ? wpinv_clean( $_POST['wpinv_recurring_period'] ) : null,
297
-				'recurring_interval' => isset( $_POST['wpinv_recurring_interval'] ) ? (int) $_POST['wpinv_recurring_interval'] : 1,
298
-				'recurring_limit'    => isset( $_POST['wpinv_recurring_limit'] ) ? (int) $_POST['wpinv_recurring_limit'] : null,
299
-				'is_free_trial'      => isset( $_POST['wpinv_trial_interval'] ) ? ( 0 != (int) $_POST['wpinv_trial_interval'] ) : null,
300
-				'trial_period'       => isset( $_POST['wpinv_trial_period'] ) ? wpinv_clean( $_POST['wpinv_trial_period'] ) : null,
301
-				'trial_interval'     => isset( $_POST['wpinv_trial_interval'] ) ? (int) $_POST['wpinv_trial_interval'] : null,
302
-			)
295
+                'is_recurring'       => ! empty( $_POST['wpinv_is_recurring'] ),
296
+                'recurring_period'   => isset( $_POST['wpinv_recurring_period'] ) ? wpinv_clean( $_POST['wpinv_recurring_period'] ) : null,
297
+                'recurring_interval' => isset( $_POST['wpinv_recurring_interval'] ) ? (int) $_POST['wpinv_recurring_interval'] : 1,
298
+                'recurring_limit'    => isset( $_POST['wpinv_recurring_limit'] ) ? (int) $_POST['wpinv_recurring_limit'] : null,
299
+                'is_free_trial'      => isset( $_POST['wpinv_trial_interval'] ) ? ( 0 != (int) $_POST['wpinv_trial_interval'] ) : null,
300
+                'trial_period'       => isset( $_POST['wpinv_trial_period'] ) ? wpinv_clean( $_POST['wpinv_trial_period'] ) : null,
301
+                'trial_interval'     => isset( $_POST['wpinv_trial_interval'] ) ? (int) $_POST['wpinv_trial_interval'] : null,
302
+            )
303 303
         );
304 304
 
305
-		$item->save();
306
-		do_action( 'getpaid_item_metabox_save', $post_id, $item );
307
-	}
305
+        $item->save();
306
+        do_action( 'getpaid_item_metabox_save', $post_id, $item );
307
+    }
308 308
 }
Please login to merge, or discard this patch.
includes/class-wpinv-ajax.php 1 patch
Indentation   +64 added lines, -64 removed lines patch added patch discarded remove patch
@@ -14,70 +14,70 @@  discard block
 block discarded – undo
14 14
 class WPInv_Ajax {
15 15
 
16 16
     /**
17
-	 * Hook in ajax handlers.
18
-	 */
19
-	public static function init() {
20
-		add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 );
21
-		add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 );
22
-		self::add_ajax_events();
17
+     * Hook in ajax handlers.
18
+     */
19
+    public static function init() {
20
+        add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 );
21
+        add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 );
22
+        self::add_ajax_events();
23 23
     }
24 24
 
25 25
     /**
26
-	 * Set GetPaid AJAX constant and headers.
27
-	 */
28
-	public static function define_ajax() {
29
-
30
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
31
-			getpaid_maybe_define_constant( 'DOING_AJAX', true );
32
-			getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true );
33
-			if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) {
34
-				/** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 );
35
-			}
36
-			$GLOBALS['wpdb']->hide_errors();
37
-		}
26
+     * Set GetPaid AJAX constant and headers.
27
+     */
28
+    public static function define_ajax() {
29
+
30
+        if ( ! empty( $_GET['wpinv-ajax'] ) ) {
31
+            getpaid_maybe_define_constant( 'DOING_AJAX', true );
32
+            getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true );
33
+            if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) {
34
+                /** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 );
35
+            }
36
+            $GLOBALS['wpdb']->hide_errors();
37
+        }
38 38
 
39 39
     }
40 40
 
41 41
     /**
42
-	 * Send headers for GetPaid Ajax Requests.
43
-	 *
44
-	 * @since 1.0.18
45
-	 */
46
-	private static function wpinv_ajax_headers() {
47
-		if ( ! headers_sent() ) {
48
-			send_origin_headers();
49
-			send_nosniff_header();
50
-			nocache_headers();
51
-			header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
52
-			header( 'X-Robots-Tag: noindex' );
53
-			status_header( 200 );
54
-		}
42
+     * Send headers for GetPaid Ajax Requests.
43
+     *
44
+     * @since 1.0.18
45
+     */
46
+    private static function wpinv_ajax_headers() {
47
+        if ( ! headers_sent() ) {
48
+            send_origin_headers();
49
+            send_nosniff_header();
50
+            nocache_headers();
51
+            header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
52
+            header( 'X-Robots-Tag: noindex' );
53
+            status_header( 200 );
54
+        }
55 55
     }
56 56
 
57 57
     /**
58
-	 * Check for GetPaid Ajax request and fire action.
59
-	 */
60
-	public static function do_wpinv_ajax() {
61
-		global $wp_query;
58
+     * Check for GetPaid Ajax request and fire action.
59
+     */
60
+    public static function do_wpinv_ajax() {
61
+        global $wp_query;
62 62
 
63
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
64
-			$wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) );
65
-		}
63
+        if ( ! empty( $_GET['wpinv-ajax'] ) ) {
64
+            $wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) );
65
+        }
66 66
 
67
-		$action = $wp_query->get( 'wpinv-ajax' );
67
+        $action = $wp_query->get( 'wpinv-ajax' );
68 68
 
69
-		if ( $action ) {
70
-			self::wpinv_ajax_headers();
71
-			$action = sanitize_text_field( $action );
72
-			do_action( 'wpinv_ajax_' . $action );
73
-			wp_die();
74
-		}
69
+        if ( $action ) {
70
+            self::wpinv_ajax_headers();
71
+            $action = sanitize_text_field( $action );
72
+            do_action( 'wpinv_ajax_' . $action );
73
+            wp_die();
74
+        }
75 75
 
76 76
     }
77 77
 
78 78
     /**
79
-	 * Hook in ajax methods.
80
-	 */
79
+     * Hook in ajax methods.
80
+     */
81 81
     public static function add_ajax_events() {
82 82
 
83 83
         // array( 'event' => is_frontend )
@@ -261,11 +261,11 @@  discard block
 block discarded – undo
261 261
         check_ajax_referer( 'getpaid_form_nonce' );
262 262
 
263 263
         // Is the request set up correctly?
264
-		if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) && empty( $_GET['invoice'] ) ) {
265
-			aui()->alert(
266
-				array(
267
-					'type'    => 'warning',
268
-					'content' => __( 'No payment form or item provided', 'invoicing' ),
264
+        if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) && empty( $_GET['invoice'] ) ) {
265
+            aui()->alert(
266
+                array(
267
+                    'type'    => 'warning',
268
+                    'content' => __( 'No payment form or item provided', 'invoicing' ),
269 269
                 ),
270 270
                 true
271 271
             );
@@ -273,7 +273,7 @@  discard block
 block discarded – undo
273 273
         }
274 274
 
275 275
         // Payment form or button?
276
-		if ( ! empty( $_GET['form'] ) ) {
276
+        if ( ! empty( $_GET['form'] ) ) {
277 277
             $form = sanitize_text_field( urldecode( $_GET['form'] ) );
278 278
 
279 279
             if ( false !== strpos( $form, '|' ) ) {
@@ -326,10 +326,10 @@  discard block
 block discarded – undo
326 326
                 getpaid_display_payment_form( $form );
327 327
             }
328 328
 } elseif ( ! empty( $_GET['invoice'] ) ) {
329
-		    getpaid_display_invoice_payment_form( (int) urldecode( $_GET['invoice'] ) );
329
+            getpaid_display_invoice_payment_form( (int) urldecode( $_GET['invoice'] ) );
330 330
         } else {
331
-			$items = getpaid_convert_items_to_array( sanitize_text_field( urldecode( $_GET['item'] ) ) );
332
-		    getpaid_display_item_payment_form( $items );
331
+            $items = getpaid_convert_items_to_array( sanitize_text_field( urldecode( $_GET['item'] ) ) );
332
+            getpaid_display_item_payment_form( $items );
333 333
         }
334 334
 
335 335
         exit;
@@ -649,7 +649,7 @@  discard block
 block discarded – undo
649 649
         if ( is_wp_error( $error ) ) {
650 650
             $alert = $error->get_error_message();
651 651
             wp_send_json_success( compact( 'alert' ) );
652
-         }
652
+            }
653 653
 
654 654
         // Update totals.
655 655
         $invoice->recalculate_total();
@@ -1084,12 +1084,12 @@  discard block
 block discarded – undo
1084 1084
     }
1085 1085
 
1086 1086
     /**
1087
-	 * Handles file uploads.
1088
-	 *
1089
-	 * @since       1.0.0
1090
-	 * @return      void
1091
-	 */
1092
-	public static function file_upload() {
1087
+     * Handles file uploads.
1088
+     *
1089
+     * @since       1.0.0
1090
+     * @return      void
1091
+     */
1092
+    public static function file_upload() {
1093 1093
 
1094 1094
         // Check nonce.
1095 1095
         check_ajax_referer( 'getpaid_form_nonce' );
@@ -1150,7 +1150,7 @@  discard block
 block discarded – undo
1150 1150
 
1151 1151
         wp_send_json_success( $response );
1152 1152
 
1153
-	}
1153
+    }
1154 1154
 
1155 1155
 }
1156 1156
 
Please login to merge, or discard this patch.