Passed
Push — master ( 3127f7...8c7816 )
by Brian
05:09
created
includes/admin/class-getpaid-post-types-admin.php 2 patches
Indentation   +757 added lines, -757 removed lines patch added patch discarded remove patch
@@ -13,719 +13,719 @@  discard block
 block discarded – undo
13 13
 class GetPaid_Post_Types_Admin {
14 14
 
15 15
     /**
16
-	 * Hook in methods.
17
-	 */
18
-	public static function init() {
19
-
20
-		// Init metaboxes.
21
-		GetPaid_Metaboxes::init();
22
-
23
-		// Filter the post updated messages.
24
-		add_filter( 'post_updated_messages', 'GetPaid_Post_Types_Admin::post_updated_messages' );
25
-
26
-		// Filter post actions.
27
-		add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::post_row_actions', 10, 2 );
28
-		add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::filter_invoice_row_actions', 90, 2 );
29
-
30
-		// Invoice table columns.
31
-		add_filter( 'manage_wpi_invoice_posts_columns', array( __CLASS__, 'invoice_columns' ), 100 );
32
-		add_action( 'manage_wpi_invoice_posts_custom_column', array( __CLASS__, 'display_invoice_columns' ), 10, 2 );
33
-		add_filter( 'bulk_actions-edit-wpi_invoice', array( __CLASS__, 'invoice_bulk_actions' ) );
34
-		add_filter( 'handle_bulk_actions-edit-wpi_invoice', array( __CLASS__, 'handle_invoice_bulk_actions' ), 10, 3 );
35
-
36
-		// Items table columns.
37
-		add_filter( 'manage_wpi_item_posts_columns', array( __CLASS__, 'item_columns' ), 100 );
38
-		add_filter( 'manage_edit-wpi_item_sortable_columns', array( __CLASS__, 'sortable_item_columns' ), 20 );
39
-		add_action( 'manage_wpi_item_posts_custom_column', array( __CLASS__, 'display_item_columns' ), 10, 2 );
40
-		add_action( 'restrict_manage_posts', array( __CLASS__, 'add_item_filters' ), 100 );
41
-		add_action( 'parse_query', array( __CLASS__, 'filter_item_query' ), 100 );
42
-		add_action( 'request', array( __CLASS__, 'reorder_items' ), 100 );
43
-
44
-		// Payment forms columns.
45
-		add_filter( 'manage_wpi_payment_form_posts_columns', array( __CLASS__, 'payment_form_columns' ), 100 );
46
-		add_action( 'manage_wpi_payment_form_posts_custom_column', array( __CLASS__, 'display_payment_form_columns' ), 10, 2 );
47
-		add_filter( 'display_post_states', array( __CLASS__, 'filter_payment_form_state' ), 10, 2 );
48
-
49
-		// Discount table columns.
50
-		add_filter( 'manage_wpi_discount_posts_columns', array( __CLASS__, 'discount_columns' ), 100 );
51
-		add_filter( 'bulk_actions-edit-wpi_discount', '__return_empty_array', 100 );
52
-
53
-		// Deleting posts.
54
-		add_action( 'delete_post', array( __CLASS__, 'delete_post' ) );
55
-		add_filter( 'display_post_states', array( __CLASS__, 'filter_discount_state' ), 10, 2 );
56
-
57
-		add_filter( 'display_post_states', array( __CLASS__, 'add_display_post_states' ), 10, 2 );
58
-	}
59
-
60
-	/**
61
-	 * Post updated messages.
62
-	 */
63
-	public static function post_updated_messages( $messages ) {
64
-		global $post;
65
-
66
-		$messages['wpi_discount'] = array(
67
-			0  => '',
68
-			1  => __( 'Discount updated.', 'invoicing' ),
69
-			2  => __( 'Custom field updated.', 'invoicing' ),
70
-			3  => __( 'Custom field deleted.', 'invoicing' ),
71
-			4  => __( 'Discount updated.', 'invoicing' ),
72
-			5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Discount restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
73
-			6  => __( 'Discount updated.', 'invoicing' ),
74
-			7  => __( 'Discount saved.', 'invoicing' ),
75
-			8  => __( 'Discount submitted.', 'invoicing' ),
76
-			9  => wp_sprintf( __( 'Discount scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
77
-			10 => __( 'Discount draft updated.', 'invoicing' ),
78
-		);
79
-
80
-		$messages['wpi_payment_form'] = array(
81
-			0  => '',
82
-			1  => __( 'Payment Form updated.', 'invoicing' ),
83
-			2  => __( 'Custom field updated.', 'invoicing' ),
84
-			3  => __( 'Custom field deleted.', 'invoicing' ),
85
-			4  => __( 'Payment Form updated.', 'invoicing' ),
86
-			5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Payment Form restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
87
-			6  => __( 'Payment Form updated.', 'invoicing' ),
88
-			7  => __( 'Payment Form saved.', 'invoicing' ),
89
-			8  => __( 'Payment Form submitted.', 'invoicing' ),
90
-			9  => wp_sprintf( __( 'Payment Form scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
91
-			10 => __( 'Payment Form draft updated.', 'invoicing' ),
92
-		);
93
-
94
-		return $messages;
95
-
96
-	}
97
-
98
-	/**
99
-	 * Post row actions.
100
-	 */
101
-	public static function post_row_actions( $actions, $post ) {
102
-
103
-		$post = get_post( $post );
104
-
105
-		// We do not want to edit the default payment form.
106
-		if ( 'wpi_payment_form' == $post->post_type ) {
107
-
108
-			if ( $post->ID == wpinv_get_default_payment_form() ) {
109
-				unset( $actions['trash'] );
110
-				unset( $actions['inline hide-if-no-js'] );
111
-			}
112
-
113
-			$actions['duplicate'] = sprintf(
114
-				'<a href="%1$s">%2$s</a>',
115
-				esc_url(
116
-					wp_nonce_url(
117
-						add_query_arg(
118
-							array(
119
-								'getpaid-admin-action' => 'duplicate_form',
120
-								'form_id'              => $post->ID,
121
-							)
122
-						),
123
-						'getpaid-nonce',
124
-						'getpaid-nonce'
125
-					)
126
-				),
127
-				esc_html( __( 'Duplicate', 'invoicing' ) )
128
-			);
129
-
130
-		}
131
-
132
-		// Link to item payment form.
133
-		if ( 'wpi_item' == $post->post_type ) {
134
-
135
-			if ( in_array( get_post_meta( $post->ID, '_wpinv_type', true ), array( '', 'fee', 'custom' ) ) ) {
136
-
137
-				$actions['buy'] = sprintf(
138
-					'<a href="%1$s">%2$s</a>',
139
-					esc_url( getpaid_embed_url( false, $post->ID . '|0' ) ),
140
-					esc_html( __( 'Buy', 'invoicing' ) )
141
-				);
142
-
143
-			}
16
+     * Hook in methods.
17
+     */
18
+    public static function init() {
19
+
20
+        // Init metaboxes.
21
+        GetPaid_Metaboxes::init();
22
+
23
+        // Filter the post updated messages.
24
+        add_filter( 'post_updated_messages', 'GetPaid_Post_Types_Admin::post_updated_messages' );
25
+
26
+        // Filter post actions.
27
+        add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::post_row_actions', 10, 2 );
28
+        add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::filter_invoice_row_actions', 90, 2 );
29
+
30
+        // Invoice table columns.
31
+        add_filter( 'manage_wpi_invoice_posts_columns', array( __CLASS__, 'invoice_columns' ), 100 );
32
+        add_action( 'manage_wpi_invoice_posts_custom_column', array( __CLASS__, 'display_invoice_columns' ), 10, 2 );
33
+        add_filter( 'bulk_actions-edit-wpi_invoice', array( __CLASS__, 'invoice_bulk_actions' ) );
34
+        add_filter( 'handle_bulk_actions-edit-wpi_invoice', array( __CLASS__, 'handle_invoice_bulk_actions' ), 10, 3 );
35
+
36
+        // Items table columns.
37
+        add_filter( 'manage_wpi_item_posts_columns', array( __CLASS__, 'item_columns' ), 100 );
38
+        add_filter( 'manage_edit-wpi_item_sortable_columns', array( __CLASS__, 'sortable_item_columns' ), 20 );
39
+        add_action( 'manage_wpi_item_posts_custom_column', array( __CLASS__, 'display_item_columns' ), 10, 2 );
40
+        add_action( 'restrict_manage_posts', array( __CLASS__, 'add_item_filters' ), 100 );
41
+        add_action( 'parse_query', array( __CLASS__, 'filter_item_query' ), 100 );
42
+        add_action( 'request', array( __CLASS__, 'reorder_items' ), 100 );
43
+
44
+        // Payment forms columns.
45
+        add_filter( 'manage_wpi_payment_form_posts_columns', array( __CLASS__, 'payment_form_columns' ), 100 );
46
+        add_action( 'manage_wpi_payment_form_posts_custom_column', array( __CLASS__, 'display_payment_form_columns' ), 10, 2 );
47
+        add_filter( 'display_post_states', array( __CLASS__, 'filter_payment_form_state' ), 10, 2 );
48
+
49
+        // Discount table columns.
50
+        add_filter( 'manage_wpi_discount_posts_columns', array( __CLASS__, 'discount_columns' ), 100 );
51
+        add_filter( 'bulk_actions-edit-wpi_discount', '__return_empty_array', 100 );
52
+
53
+        // Deleting posts.
54
+        add_action( 'delete_post', array( __CLASS__, 'delete_post' ) );
55
+        add_filter( 'display_post_states', array( __CLASS__, 'filter_discount_state' ), 10, 2 );
56
+
57
+        add_filter( 'display_post_states', array( __CLASS__, 'add_display_post_states' ), 10, 2 );
58
+    }
59
+
60
+    /**
61
+     * Post updated messages.
62
+     */
63
+    public static function post_updated_messages( $messages ) {
64
+        global $post;
65
+
66
+        $messages['wpi_discount'] = array(
67
+            0  => '',
68
+            1  => __( 'Discount updated.', 'invoicing' ),
69
+            2  => __( 'Custom field updated.', 'invoicing' ),
70
+            3  => __( 'Custom field deleted.', 'invoicing' ),
71
+            4  => __( 'Discount updated.', 'invoicing' ),
72
+            5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Discount restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
73
+            6  => __( 'Discount updated.', 'invoicing' ),
74
+            7  => __( 'Discount saved.', 'invoicing' ),
75
+            8  => __( 'Discount submitted.', 'invoicing' ),
76
+            9  => wp_sprintf( __( 'Discount scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
77
+            10 => __( 'Discount draft updated.', 'invoicing' ),
78
+        );
79
+
80
+        $messages['wpi_payment_form'] = array(
81
+            0  => '',
82
+            1  => __( 'Payment Form updated.', 'invoicing' ),
83
+            2  => __( 'Custom field updated.', 'invoicing' ),
84
+            3  => __( 'Custom field deleted.', 'invoicing' ),
85
+            4  => __( 'Payment Form updated.', 'invoicing' ),
86
+            5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Payment Form restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
87
+            6  => __( 'Payment Form updated.', 'invoicing' ),
88
+            7  => __( 'Payment Form saved.', 'invoicing' ),
89
+            8  => __( 'Payment Form submitted.', 'invoicing' ),
90
+            9  => wp_sprintf( __( 'Payment Form scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
91
+            10 => __( 'Payment Form draft updated.', 'invoicing' ),
92
+        );
93
+
94
+        return $messages;
95
+
96
+    }
97
+
98
+    /**
99
+     * Post row actions.
100
+     */
101
+    public static function post_row_actions( $actions, $post ) {
102
+
103
+        $post = get_post( $post );
104
+
105
+        // We do not want to edit the default payment form.
106
+        if ( 'wpi_payment_form' == $post->post_type ) {
107
+
108
+            if ( $post->ID == wpinv_get_default_payment_form() ) {
109
+                unset( $actions['trash'] );
110
+                unset( $actions['inline hide-if-no-js'] );
111
+            }
112
+
113
+            $actions['duplicate'] = sprintf(
114
+                '<a href="%1$s">%2$s</a>',
115
+                esc_url(
116
+                    wp_nonce_url(
117
+                        add_query_arg(
118
+                            array(
119
+                                'getpaid-admin-action' => 'duplicate_form',
120
+                                'form_id'              => $post->ID,
121
+                            )
122
+                        ),
123
+                        'getpaid-nonce',
124
+                        'getpaid-nonce'
125
+                    )
126
+                ),
127
+                esc_html( __( 'Duplicate', 'invoicing' ) )
128
+            );
129
+
130
+        }
131
+
132
+        // Link to item payment form.
133
+        if ( 'wpi_item' == $post->post_type ) {
134
+
135
+            if ( in_array( get_post_meta( $post->ID, '_wpinv_type', true ), array( '', 'fee', 'custom' ) ) ) {
136
+
137
+                $actions['buy'] = sprintf(
138
+                    '<a href="%1$s">%2$s</a>',
139
+                    esc_url( getpaid_embed_url( false, $post->ID . '|0' ) ),
140
+                    esc_html( __( 'Buy', 'invoicing' ) )
141
+                );
142
+
143
+            }
144 144
 }
145 145
 
146
-		return $actions;
147
-	}
146
+        return $actions;
147
+    }
148 148
 
149
-	/**
149
+    /**
150 150
      * Remove bulk edit option from admin side quote listing
151 151
      *
152 152
      * @since    1.0.0
153 153
      * @param array $actions post actions
154
-	 * @param WP_Post $post
154
+     * @param WP_Post $post
155 155
      * @return array $actions actions without edit option
156 156
      */
157 157
     public static function filter_invoice_row_actions( $actions, $post ) {
158 158
 
159 159
         if ( getpaid_is_invoice_post_type( $post->post_type ) ) {
160 160
 
161
-			$actions = array();
162
-			$invoice = new WPInv_Invoice( $post );
163
-
164
-			$actions['edit'] = sprintf(
165
-				'<a href="%1$s">%2$s</a>',
166
-				esc_url( get_edit_post_link( $invoice->get_id() ) ),
167
-				esc_html( __( 'Edit', 'invoicing' ) )
168
-			);
169
-
170
-			if ( ! $invoice->is_draft() ) {
171
-
172
-				$actions['view'] = sprintf(
173
-					'<a href="%1$s">%2$s</a>',
174
-					esc_url( $invoice->get_view_url() ),
175
-					sprintf(
176
-						esc_html( __( 'View %s', 'invoicing' ) ),
177
-						getpaid_get_post_type_label( $invoice->get_post_type(), false )
178
-					)
179
-				);
180
-
181
-				$actions['send'] = sprintf(
182
-					'<a href="%1$s">%2$s</a>',
183
-					esc_url(
184
-						wp_nonce_url(
185
-							add_query_arg(
186
-								array(
187
-									'getpaid-admin-action' => 'send_invoice',
188
-									'invoice_id'           => $invoice->get_id(),
189
-								)
190
-							),
191
-							'getpaid-nonce',
192
-							'getpaid-nonce'
193
-						)
194
-					),
195
-					esc_html( __( 'Send to Customer', 'invoicing' ) )
196
-				);
197
-
198
-			}
199
-
200
-			$actions['duplicate'] = sprintf(
201
-				'<a href="%1$s">%2$s</a>',
202
-				esc_url(
203
-					wp_nonce_url(
204
-						add_query_arg(
205
-							array(
206
-								'getpaid-admin-action' => 'duplicate_invoice',
207
-								'invoice_id'           => $post->ID,
208
-							)
209
-						),
210
-						'getpaid-nonce',
211
-						'getpaid-nonce'
212
-					)
213
-				),
214
-				esc_html( __( 'Duplicate', 'invoicing' ) )
215
-			);
161
+            $actions = array();
162
+            $invoice = new WPInv_Invoice( $post );
163
+
164
+            $actions['edit'] = sprintf(
165
+                '<a href="%1$s">%2$s</a>',
166
+                esc_url( get_edit_post_link( $invoice->get_id() ) ),
167
+                esc_html( __( 'Edit', 'invoicing' ) )
168
+            );
169
+
170
+            if ( ! $invoice->is_draft() ) {
171
+
172
+                $actions['view'] = sprintf(
173
+                    '<a href="%1$s">%2$s</a>',
174
+                    esc_url( $invoice->get_view_url() ),
175
+                    sprintf(
176
+                        esc_html( __( 'View %s', 'invoicing' ) ),
177
+                        getpaid_get_post_type_label( $invoice->get_post_type(), false )
178
+                    )
179
+                );
180
+
181
+                $actions['send'] = sprintf(
182
+                    '<a href="%1$s">%2$s</a>',
183
+                    esc_url(
184
+                        wp_nonce_url(
185
+                            add_query_arg(
186
+                                array(
187
+                                    'getpaid-admin-action' => 'send_invoice',
188
+                                    'invoice_id'           => $invoice->get_id(),
189
+                                )
190
+                            ),
191
+                            'getpaid-nonce',
192
+                            'getpaid-nonce'
193
+                        )
194
+                    ),
195
+                    esc_html( __( 'Send to Customer', 'invoicing' ) )
196
+                );
197
+
198
+            }
199
+
200
+            $actions['duplicate'] = sprintf(
201
+                '<a href="%1$s">%2$s</a>',
202
+                esc_url(
203
+                    wp_nonce_url(
204
+                        add_query_arg(
205
+                            array(
206
+                                'getpaid-admin-action' => 'duplicate_invoice',
207
+                                'invoice_id'           => $post->ID,
208
+                            )
209
+                        ),
210
+                        'getpaid-nonce',
211
+                        'getpaid-nonce'
212
+                    )
213
+                ),
214
+                esc_html( __( 'Duplicate', 'invoicing' ) )
215
+            );
216 216
 
217 217
         }
218 218
 
219 219
         return $actions;
220
-	}
221
-
222
-	/**
223
-	 * Returns an array of invoice table columns.
224
-	 */
225
-	public static function invoice_columns( $columns ) {
226
-
227
-		$columns = array(
228
-			'cb'           => $columns['cb'],
229
-			'number'       => __( 'Invoice', 'invoicing' ),
230
-			'customer'     => __( 'Customer', 'invoicing' ),
231
-			'invoice_date' => __( 'Created', 'invoicing' ),
232
-			'payment_date' => __( 'Completed', 'invoicing' ),
233
-			'amount'       => __( 'Amount', 'invoicing' ),
234
-			'recurring'    => __( 'Recurring', 'invoicing' ),
235
-			'status'       => __( 'Status', 'invoicing' ),
236
-		);
237
-
238
-		return apply_filters( 'wpi_invoice_table_columns', $columns );
239
-	}
240
-
241
-	/**
242
-	 * Displays invoice table columns.
243
-	 */
244
-	public static function display_invoice_columns( $column_name, $post_id ) {
245
-
246
-		$invoice = new WPInv_Invoice( $post_id );
247
-
248
-		switch ( $column_name ) {
249
-
250
-			case 'invoice_date':
251
-				$date_time = esc_attr( $invoice->get_created_date() );
252
-				$date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
253
-				echo wp_kses_post( "<span title='$date_time'>$date</span>" );
254
-				break;
255
-
256
-			case 'payment_date':
257
-				if ( $invoice->is_paid() ) {
258
-					$date_time = esc_attr( $invoice->get_completed_date() );
259
-					$date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
260
-					echo wp_kses_post( "<span title='$date_time'>$date</span>" );
261
-				} else {
262
-					echo '&mdash;';
263
-				}
264
-
265
-				break;
266
-
267
-			case 'amount':
268
-				$amount = $invoice->get_total();
269
-				$formated_amount = wp_kses_post( wpinv_price( $amount, $invoice->get_currency() ) );
270
-
271
-				if ( $invoice->is_refunded() ) {
272
-					$refunded_amount = wpinv_price( 0, $invoice->get_currency() );
273
-					echo wp_kses_post( "<del>$formated_amount</del>&nbsp;<ins>$refunded_amount</ins>" );
274
-				} else {
275
-
276
-					$discount = $invoice->get_total_discount();
277
-
278
-					if ( ! empty( $discount ) ) {
279
-						$new_amount = wpinv_price( $amount + $discount, $invoice->get_currency() );
280
-						echo wp_kses_post( "<del>$new_amount</del>&nbsp;<ins>$formated_amount</ins>" );
281
-					} else {
282
-						echo wp_kses_post( $formated_amount );
283
-					}
220
+    }
221
+
222
+    /**
223
+     * Returns an array of invoice table columns.
224
+     */
225
+    public static function invoice_columns( $columns ) {
226
+
227
+        $columns = array(
228
+            'cb'           => $columns['cb'],
229
+            'number'       => __( 'Invoice', 'invoicing' ),
230
+            'customer'     => __( 'Customer', 'invoicing' ),
231
+            'invoice_date' => __( 'Created', 'invoicing' ),
232
+            'payment_date' => __( 'Completed', 'invoicing' ),
233
+            'amount'       => __( 'Amount', 'invoicing' ),
234
+            'recurring'    => __( 'Recurring', 'invoicing' ),
235
+            'status'       => __( 'Status', 'invoicing' ),
236
+        );
237
+
238
+        return apply_filters( 'wpi_invoice_table_columns', $columns );
239
+    }
240
+
241
+    /**
242
+     * Displays invoice table columns.
243
+     */
244
+    public static function display_invoice_columns( $column_name, $post_id ) {
245
+
246
+        $invoice = new WPInv_Invoice( $post_id );
247
+
248
+        switch ( $column_name ) {
249
+
250
+            case 'invoice_date':
251
+                $date_time = esc_attr( $invoice->get_created_date() );
252
+                $date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
253
+                echo wp_kses_post( "<span title='$date_time'>$date</span>" );
254
+                break;
255
+
256
+            case 'payment_date':
257
+                if ( $invoice->is_paid() ) {
258
+                    $date_time = esc_attr( $invoice->get_completed_date() );
259
+                    $date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
260
+                    echo wp_kses_post( "<span title='$date_time'>$date</span>" );
261
+                } else {
262
+                    echo '&mdash;';
263
+                }
264
+
265
+                break;
266
+
267
+            case 'amount':
268
+                $amount = $invoice->get_total();
269
+                $formated_amount = wp_kses_post( wpinv_price( $amount, $invoice->get_currency() ) );
270
+
271
+                if ( $invoice->is_refunded() ) {
272
+                    $refunded_amount = wpinv_price( 0, $invoice->get_currency() );
273
+                    echo wp_kses_post( "<del>$formated_amount</del>&nbsp;<ins>$refunded_amount</ins>" );
274
+                } else {
275
+
276
+                    $discount = $invoice->get_total_discount();
277
+
278
+                    if ( ! empty( $discount ) ) {
279
+                        $new_amount = wpinv_price( $amount + $discount, $invoice->get_currency() );
280
+                        echo wp_kses_post( "<del>$new_amount</del>&nbsp;<ins>$formated_amount</ins>" );
281
+                    } else {
282
+                        echo wp_kses_post( $formated_amount );
283
+                    }
284 284
 }
285 285
 
286
-				break;
287
-
288
-			case 'status':
289
-				$status       = esc_html( $invoice->get_status() );
290
-				$status_label = esc_html( $invoice->get_status_nicename() );
291
-
292
-				// If it is paid, show the gateway title.
293
-				if ( $invoice->is_paid() ) {
294
-					$gateway = esc_html( $invoice->get_gateway_title() );
295
-					$gateway = wp_sprintf( esc_attr__( 'Paid via %s', 'invoicing' ), esc_html( $gateway ) );
296
-
297
-					echo wp_kses_post( "<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>" );
298
-				} else {
299
-					echo wp_kses_post( "<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>" );
300
-				}
301
-
302
-				// If it is not paid, display the overdue and view status.
303
-				if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
304
-
305
-					// Invoice view status.
306
-					if ( wpinv_is_invoice_viewed( $invoice->get_id() ) ) {
307
-						echo '&nbsp;&nbsp;<i class="fa fa-eye wpi-help-tip" title="' . esc_attr__( 'Viewed by Customer', 'invoicing' ) . '"></i>';
308
-					} else {
309
-						echo '&nbsp;&nbsp;<i class="fa fa-eye-slash wpi-help-tip" title="' . esc_attr__( 'Not Viewed by Customer', 'invoicing' ) . '"></i>';
310
-					}
311
-
312
-					// Display the overview status.
313
-					if ( wpinv_get_option( 'overdue_active' ) ) {
314
-						$due_date = $invoice->get_due_date();
315
-						$fomatted = getpaid_format_date( $due_date );
316
-
317
-						if ( ! empty( $fomatted ) ) {
318
-							$date = wp_sprintf( __( 'Due %s', 'invoicing' ), $fomatted );
319
-							echo wp_kses_post( "<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>" );
320
-						}
321
-					}
286
+                break;
287
+
288
+            case 'status':
289
+                $status       = esc_html( $invoice->get_status() );
290
+                $status_label = esc_html( $invoice->get_status_nicename() );
291
+
292
+                // If it is paid, show the gateway title.
293
+                if ( $invoice->is_paid() ) {
294
+                    $gateway = esc_html( $invoice->get_gateway_title() );
295
+                    $gateway = wp_sprintf( esc_attr__( 'Paid via %s', 'invoicing' ), esc_html( $gateway ) );
296
+
297
+                    echo wp_kses_post( "<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>" );
298
+                } else {
299
+                    echo wp_kses_post( "<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>" );
300
+                }
301
+
302
+                // If it is not paid, display the overdue and view status.
303
+                if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
304
+
305
+                    // Invoice view status.
306
+                    if ( wpinv_is_invoice_viewed( $invoice->get_id() ) ) {
307
+                        echo '&nbsp;&nbsp;<i class="fa fa-eye wpi-help-tip" title="' . esc_attr__( 'Viewed by Customer', 'invoicing' ) . '"></i>';
308
+                    } else {
309
+                        echo '&nbsp;&nbsp;<i class="fa fa-eye-slash wpi-help-tip" title="' . esc_attr__( 'Not Viewed by Customer', 'invoicing' ) . '"></i>';
310
+                    }
311
+
312
+                    // Display the overview status.
313
+                    if ( wpinv_get_option( 'overdue_active' ) ) {
314
+                        $due_date = $invoice->get_due_date();
315
+                        $fomatted = getpaid_format_date( $due_date );
316
+
317
+                        if ( ! empty( $fomatted ) ) {
318
+                            $date = wp_sprintf( __( 'Due %s', 'invoicing' ), $fomatted );
319
+                            echo wp_kses_post( "<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>" );
320
+                        }
321
+                    }
322 322
 }
323 323
 
324
-				break;
324
+                break;
325 325
 
326
-			case 'recurring':
327
-				if ( $invoice->is_recurring() ) {
328
-					echo '<i class="fa fa-check" style="color:#43850a;"></i>';
329
-				} else {
330
-					echo '<i class="fa fa-times" style="color:#616161;"></i>';
331
-				}
332
-				break;
326
+            case 'recurring':
327
+                if ( $invoice->is_recurring() ) {
328
+                    echo '<i class="fa fa-check" style="color:#43850a;"></i>';
329
+                } else {
330
+                    echo '<i class="fa fa-times" style="color:#616161;"></i>';
331
+                }
332
+                break;
333 333
 
334
-			case 'number':
335
-				$edit_link       = esc_url( get_edit_post_link( $invoice->get_id() ) );
336
-				$invoice_number  = esc_html( $invoice->get_number() );
337
-				$invoice_details = esc_attr__( 'View Invoice Details', 'invoicing' );
334
+            case 'number':
335
+                $edit_link       = esc_url( get_edit_post_link( $invoice->get_id() ) );
336
+                $invoice_number  = esc_html( $invoice->get_number() );
337
+                $invoice_details = esc_attr__( 'View Invoice Details', 'invoicing' );
338 338
 
339
-				echo wp_kses_post( "<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>" );
339
+                echo wp_kses_post( "<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>" );
340 340
 
341
-				break;
341
+                break;
342 342
 
343
-			case 'customer':
344
-				$customer_name = $invoice->get_user_full_name();
343
+            case 'customer':
344
+                $customer_name = $invoice->get_user_full_name();
345 345
 
346
-				if ( empty( $customer_name ) ) {
347
-					$customer_name = $invoice->get_email();
348
-				}
346
+                if ( empty( $customer_name ) ) {
347
+                    $customer_name = $invoice->get_email();
348
+                }
349 349
 
350
-				if ( ! empty( $customer_name ) ) {
351
-					$customer_details = esc_attr__( 'View Customer Details', 'invoicing' );
352
-					$view_link        = esc_url( add_query_arg( 'user_id', $invoice->get_user_id(), admin_url( 'user-edit.php' ) ) );
353
-					echo wp_kses_post( "<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>" );
354
-				} else {
355
-					echo '<div>&mdash;</div>';
356
-				}
350
+                if ( ! empty( $customer_name ) ) {
351
+                    $customer_details = esc_attr__( 'View Customer Details', 'invoicing' );
352
+                    $view_link        = esc_url( add_query_arg( 'user_id', $invoice->get_user_id(), admin_url( 'user-edit.php' ) ) );
353
+                    echo wp_kses_post( "<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>" );
354
+                } else {
355
+                    echo '<div>&mdash;</div>';
356
+                }
357 357
 
358
-				break;
359
-
360
-		}
361
-
362
-	}
363
-
364
-	/**
365
-	 * Displays invoice bulk actions.
366
-	 */
367
-	public static function invoice_bulk_actions( $actions ) {
368
-		$actions['resend-invoice'] = __( 'Send to Customer', 'invoicing' );
369
-		return $actions;
370
-	}
371
-
372
-	/**
373
-	 * Processes invoice bulk actions.
374
-	 */
375
-	public static function handle_invoice_bulk_actions( $redirect_url, $action, $post_ids ) {
376
-
377
-		if ( $action == 'resend-invoice' ) {
378
-			foreach ( $post_ids as $post_id ) {
379
-				getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $post_id ), true );
380
-			}
381
-		}
382
-
383
-		return $redirect_url;
384
-
385
-	}
386
-
387
-	/**
388
-	 * Returns an array of payment forms table columns.
389
-	 */
390
-	public static function payment_form_columns( $columns ) {
391
-
392
-		$columns = array(
393
-			'cb'        => $columns['cb'],
394
-			'title'     => __( 'Name', 'invoicing' ),
395
-			'shortcode' => __( 'Shortcode', 'invoicing' ),
396
-			'earnings'  => __( 'Revenue', 'invoicing' ),
397
-			'refunds'   => __( 'Refunded', 'invoicing' ),
398
-			'items'     => __( 'Items', 'invoicing' ),
399
-			'date'      => __( 'Date', 'invoicing' ),
400
-		);
401
-
402
-		return apply_filters( 'wpi_payment_form_table_columns', $columns );
403
-
404
-	}
405
-
406
-	/**
407
-	 * Displays payment form table columns.
408
-	 */
409
-	public static function display_payment_form_columns( $column_name, $post_id ) {
410
-
411
-		// Retrieve the payment form.
412
-		$form = new GetPaid_Payment_Form( $post_id );
413
-
414
-		switch ( $column_name ) {
415
-
416
-			case 'earnings':
417
-				echo wp_kses_post( wpinv_price( $form->get_earned() ) );
418
-				break;
419
-
420
-			case 'refunds':
421
-				echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
422
-				break;
423
-
424
-			case 'refunds':
425
-				echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
426
-				break;
427
-
428
-			case 'shortcode':
429
-				if ( $form->is_default() ) {
430
-					echo '&mdash;';
431
-				} else {
432
-					echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr( $form->get_id() ) . ']" style="width: 100%;" readonly/>';
433
-				}
434
-
435
-				break;
358
+                break;
436 359
 
437
-			case 'items':
438
-				$items = $form->get_items();
439
-
440
-				if ( $form->is_default() || empty( $items ) ) {
441
-					echo '&mdash;';
442
-					return;
443
-				}
444
-
445
-				$_items = array();
446
-
447
-				foreach ( $items as $item ) {
448
-					$url = $item->get_edit_url();
449
-
450
-					if ( empty( $url ) ) {
451
-						$_items[] = esc_html( $item->get_name() );
452
-					} else {
453
-						$_items[] = sprintf(
454
-							'<a href="%s">%s</a>',
455
-							esc_url( $url ),
456
-							esc_html( $item->get_name() )
457
-						);
458
-					}
360
+        }
361
+
362
+    }
363
+
364
+    /**
365
+     * Displays invoice bulk actions.
366
+     */
367
+    public static function invoice_bulk_actions( $actions ) {
368
+        $actions['resend-invoice'] = __( 'Send to Customer', 'invoicing' );
369
+        return $actions;
370
+    }
371
+
372
+    /**
373
+     * Processes invoice bulk actions.
374
+     */
375
+    public static function handle_invoice_bulk_actions( $redirect_url, $action, $post_ids ) {
376
+
377
+        if ( $action == 'resend-invoice' ) {
378
+            foreach ( $post_ids as $post_id ) {
379
+                getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $post_id ), true );
380
+            }
381
+        }
382
+
383
+        return $redirect_url;
384
+
385
+    }
386
+
387
+    /**
388
+     * Returns an array of payment forms table columns.
389
+     */
390
+    public static function payment_form_columns( $columns ) {
391
+
392
+        $columns = array(
393
+            'cb'        => $columns['cb'],
394
+            'title'     => __( 'Name', 'invoicing' ),
395
+            'shortcode' => __( 'Shortcode', 'invoicing' ),
396
+            'earnings'  => __( 'Revenue', 'invoicing' ),
397
+            'refunds'   => __( 'Refunded', 'invoicing' ),
398
+            'items'     => __( 'Items', 'invoicing' ),
399
+            'date'      => __( 'Date', 'invoicing' ),
400
+        );
401
+
402
+        return apply_filters( 'wpi_payment_form_table_columns', $columns );
403
+
404
+    }
405
+
406
+    /**
407
+     * Displays payment form table columns.
408
+     */
409
+    public static function display_payment_form_columns( $column_name, $post_id ) {
410
+
411
+        // Retrieve the payment form.
412
+        $form = new GetPaid_Payment_Form( $post_id );
413
+
414
+        switch ( $column_name ) {
415
+
416
+            case 'earnings':
417
+                echo wp_kses_post( wpinv_price( $form->get_earned() ) );
418
+                break;
419
+
420
+            case 'refunds':
421
+                echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
422
+                break;
423
+
424
+            case 'refunds':
425
+                echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
426
+                break;
427
+
428
+            case 'shortcode':
429
+                if ( $form->is_default() ) {
430
+                    echo '&mdash;';
431
+                } else {
432
+                    echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr( $form->get_id() ) . ']" style="width: 100%;" readonly/>';
433
+                }
434
+
435
+                break;
436
+
437
+            case 'items':
438
+                $items = $form->get_items();
439
+
440
+                if ( $form->is_default() || empty( $items ) ) {
441
+                    echo '&mdash;';
442
+                    return;
443
+                }
444
+
445
+                $_items = array();
446
+
447
+                foreach ( $items as $item ) {
448
+                    $url = $item->get_edit_url();
449
+
450
+                    if ( empty( $url ) ) {
451
+                        $_items[] = esc_html( $item->get_name() );
452
+                    } else {
453
+                        $_items[] = sprintf(
454
+                            '<a href="%s">%s</a>',
455
+                            esc_url( $url ),
456
+                            esc_html( $item->get_name() )
457
+                        );
458
+                    }
459 459
 }
460 460
 
461
-				echo wp_kses_post( implode( '<br>', $_items ) );
461
+                echo wp_kses_post( implode( '<br>', $_items ) );
462 462
 
463
-				break;
463
+                break;
464 464
 
465
-		}
465
+        }
466 466
 
467
-	}
467
+    }
468 468
 
469
-	/**
470
-	 * Filters post states.
471
-	 */
472
-	public static function filter_payment_form_state( $post_states, $post ) {
469
+    /**
470
+     * Filters post states.
471
+     */
472
+    public static function filter_payment_form_state( $post_states, $post ) {
473 473
 
474
-		if ( 'wpi_payment_form' == $post->post_type && wpinv_get_default_payment_form() == $post->ID ) {
475
-			$post_states['default_form'] = __( 'Default Payment Form', 'invoicing' );
476
-		}
474
+        if ( 'wpi_payment_form' == $post->post_type && wpinv_get_default_payment_form() == $post->ID ) {
475
+            $post_states['default_form'] = __( 'Default Payment Form', 'invoicing' );
476
+        }
477 477
 
478
-		return $post_states;
478
+        return $post_states;
479 479
 
480
-	}
480
+    }
481 481
 
482
-	/**
483
-	 * Returns an array of coupon table columns.
484
-	 */
485
-	public static function discount_columns( $columns ) {
482
+    /**
483
+     * Returns an array of coupon table columns.
484
+     */
485
+    public static function discount_columns( $columns ) {
486
+
487
+        $columns = array(
488
+            'cb'          => $columns['cb'],
489
+            'title'       => __( 'Name', 'invoicing' ),
490
+            'code'        => __( 'Code', 'invoicing' ),
491
+            'amount'      => __( 'Amount', 'invoicing' ),
492
+            'usage'       => __( 'Usage / Limit', 'invoicing' ),
493
+            'start_date'  => __( 'Start Date', 'invoicing' ),
494
+            'expiry_date' => __( 'Expiry Date', 'invoicing' ),
495
+        );
496
+
497
+        return apply_filters( 'wpi_discount_table_columns', $columns );
498
+    }
486 499
 
487
-		$columns = array(
488
-			'cb'          => $columns['cb'],
489
-			'title'       => __( 'Name', 'invoicing' ),
490
-			'code'        => __( 'Code', 'invoicing' ),
491
-			'amount'      => __( 'Amount', 'invoicing' ),
492
-			'usage'       => __( 'Usage / Limit', 'invoicing' ),
493
-			'start_date'  => __( 'Start Date', 'invoicing' ),
494
-			'expiry_date' => __( 'Expiry Date', 'invoicing' ),
495
-		);
500
+    /**
501
+     * Filters post states.
502
+     */
503
+    public static function filter_discount_state( $post_states, $post ) {
496 504
 
497
-		return apply_filters( 'wpi_discount_table_columns', $columns );
498
-	}
505
+        if ( 'wpi_discount' == $post->post_type ) {
499 506
 
500
-	/**
501
-	 * Filters post states.
502
-	 */
503
-	public static function filter_discount_state( $post_states, $post ) {
507
+            $discount = new WPInv_Discount( $post );
504 508
 
505
-		if ( 'wpi_discount' == $post->post_type ) {
509
+            $status = $discount->is_expired() ? 'expired' : $discount->get_status();
506 510
 
507
-			$discount = new WPInv_Discount( $post );
511
+            if ( $status != 'publish' ) {
512
+                return array(
513
+                    'discount_status' => wpinv_discount_status( $status ),
514
+                );
515
+            }
508 516
 
509
-			$status = $discount->is_expired() ? 'expired' : $discount->get_status();
517
+            return array();
510 518
 
511
-			if ( $status != 'publish' ) {
512
-				return array(
513
-					'discount_status' => wpinv_discount_status( $status ),
514
-				);
515
-			}
519
+        }
516 520
 
517
-			return array();
521
+        return $post_states;
518 522
 
519
-		}
523
+    }
520 524
 
521
-		return $post_states;
525
+    /**
526
+     * Returns an array of items table columns.
527
+     */
528
+    public static function item_columns( $columns ) {
529
+
530
+        $columns = array(
531
+            'cb'        => $columns['cb'],
532
+            'title'     => __( 'Name', 'invoicing' ),
533
+            'price'     => __( 'Price', 'invoicing' ),
534
+            'vat_rule'  => __( 'Tax Rule', 'invoicing' ),
535
+            'vat_class' => __( 'Tax Class', 'invoicing' ),
536
+            'type'      => __( 'Type', 'invoicing' ),
537
+            'shortcode' => __( 'Shortcode', 'invoicing' ),
538
+        );
539
+
540
+        if ( ! wpinv_use_taxes() ) {
541
+            unset( $columns['vat_rule'] );
542
+            unset( $columns['vat_class'] );
543
+        }
544
+
545
+        return apply_filters( 'wpi_item_table_columns', $columns );
546
+    }
547
+
548
+    /**
549
+     * Returns an array of sortable items table columns.
550
+     */
551
+    public static function sortable_item_columns( $columns ) {
552
+
553
+        return array_merge(
554
+            $columns,
555
+            array(
556
+                'price'     => 'price',
557
+                'vat_rule'  => 'vat_rule',
558
+                'vat_class' => 'vat_class',
559
+                'type'      => 'type',
560
+            )
561
+        );
562
+
563
+    }
564
+
565
+    /**
566
+     * Displays items table columns.
567
+     */
568
+    public static function display_item_columns( $column_name, $post_id ) {
569
+
570
+        $item = new WPInv_Item( $post_id );
571
+
572
+        switch ( $column_name ) {
573
+
574
+            case 'price':
575
+                if ( ! $item->is_recurring() ) {
576
+                    echo wp_kses_post( $item->get_the_price() );
577
+                    break;
578
+                }
579
+
580
+                $price = wp_sprintf(
581
+                    __( '%1$s / %2$s', 'invoicing' ),
582
+                    $item->get_the_price(),
583
+                    getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' )
584
+                );
585
+
586
+                if ( $item->get_the_price() == $item->get_the_initial_price() ) {
587
+                    echo wp_kses_post( $price );
588
+                    break;
589
+                }
590
+
591
+                echo wp_kses_post( $item->get_the_initial_price() );
592
+
593
+                echo '<span class="meta">' . wp_sprintf( esc_html__( 'then %s', 'invoicing' ), wp_kses_post( $price ) ) . '</span>';
594
+                break;
595
+
596
+            case 'vat_rule':
597
+                echo wp_kses_post( getpaid_get_tax_rule_label( $item->get_vat_rule() ) );
598
+                break;
599
+
600
+            case 'vat_class':
601
+                echo wp_kses_post( getpaid_get_tax_class_label( $item->get_vat_class() ) );
602
+                break;
603
+
604
+            case 'shortcode':
605
+                if ( $item->is_type( array( '', 'fee', 'custom' ) ) ) {
606
+                    echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr( $item->get_id() ) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>';
607
+                } else {
608
+                    echo '&mdash;';
609
+                }
610
+
611
+                break;
612
+
613
+            case 'type':
614
+                echo wp_kses_post( wpinv_item_type( $item->get_id() ) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>' );
615
+                break;
616
+
617
+        }
618
+
619
+    }
620
+
621
+    /**
622
+     * Lets users filter items using taxes.
623
+     */
624
+    public static function add_item_filters( $post_type ) {
625
+
626
+        // Abort if we're not dealing with items.
627
+        if ( $post_type != 'wpi_item' ) {
628
+            return;
629
+        }
630
+
631
+        // Filter by vat rules.
632
+        if ( wpinv_use_taxes() ) {
633
+
634
+            // Sanitize selected vat rule.
635
+            $vat_rule   = '';
636
+            $vat_rules  = getpaid_get_tax_rules();
637
+            if ( isset( $_GET['vat_rule'] ) ) {
638
+                $vat_rule   = sanitize_text_field( $_GET['vat_rule'] );
639
+            }
640
+
641
+            // Filter by VAT rule.
642
+            wpinv_html_select(
643
+                array(
644
+                    'options'          => array_merge(
645
+                        array(
646
+                            '' => __( 'All Tax Rules', 'invoicing' ),
647
+                        ),
648
+                        $vat_rules
649
+                    ),
650
+                    'name'             => 'vat_rule',
651
+                    'id'               => 'vat_rule',
652
+                    'selected'         => in_array( $vat_rule, array_keys( $vat_rules ) ) ? $vat_rule : '',
653
+                    'show_option_all'  => false,
654
+                    'show_option_none' => false,
655
+                )
656
+            );
657
+
658
+            // Filter by VAT class.
659
+
660
+            // Sanitize selected vat rule.
661
+            $vat_class   = '';
662
+            $vat_classes = getpaid_get_tax_classes();
663
+            if ( isset( $_GET['vat_class'] ) ) {
664
+                $vat_class   = sanitize_text_field( $_GET['vat_class'] );
665
+            }
666
+
667
+            wpinv_html_select(
668
+                array(
669
+                    'options'          => array_merge(
670
+                        array(
671
+                            '' => __( 'All Tax Classes', 'invoicing' ),
672
+                        ),
673
+                        $vat_classes
674
+                    ),
675
+                    'name'             => 'vat_class',
676
+                    'id'               => 'vat_class',
677
+                    'selected'         => in_array( $vat_class, array_keys( $vat_classes ) ) ? $vat_class : '',
678
+                    'show_option_all'  => false,
679
+                    'show_option_none' => false,
680
+                )
681
+            );
682
+
683
+        }
684
+
685
+        // Filter by item type.
686
+        $type   = '';
687
+        if ( isset( $_GET['type'] ) ) {
688
+            $type   = sanitize_text_field( $_GET['type'] );
689
+        }
522 690
 
523
-	}
691
+        wpinv_html_select(
692
+            array(
693
+                'options'          => array_merge(
694
+                    array(
695
+                        '' => __( 'All item types', 'invoicing' ),
696
+                    ),
697
+                    wpinv_get_item_types()
698
+                ),
699
+                'name'             => 'type',
700
+                'id'               => 'type',
701
+                'selected'         => in_array( $type, wpinv_item_types() ) ? $type : '',
702
+                'show_option_all'  => false,
703
+                'show_option_none' => false,
704
+            )
705
+        );
524 706
 
525
-	/**
526
-	 * Returns an array of items table columns.
527
-	 */
528
-	public static function item_columns( $columns ) {
707
+    }
529 708
 
530
-		$columns = array(
531
-			'cb'        => $columns['cb'],
532
-			'title'     => __( 'Name', 'invoicing' ),
533
-			'price'     => __( 'Price', 'invoicing' ),
534
-			'vat_rule'  => __( 'Tax Rule', 'invoicing' ),
535
-			'vat_class' => __( 'Tax Class', 'invoicing' ),
536
-			'type'      => __( 'Type', 'invoicing' ),
537
-			'shortcode' => __( 'Shortcode', 'invoicing' ),
538
-		);
709
+    /**
710
+     * Filters the item query.
711
+     */
712
+    public static function filter_item_query( $query ) {
539 713
 
540
-		if ( ! wpinv_use_taxes() ) {
541
-			unset( $columns['vat_rule'] );
542
-			unset( $columns['vat_class'] );
543
-		}
714
+        // modify the query only if it admin and main query.
715
+        if ( ! ( is_admin() && $query->is_main_query() ) ) {
716
+            return $query;
717
+        }
544 718
 
545
-		return apply_filters( 'wpi_item_table_columns', $columns );
546
-	}
719
+        // we want to modify the query for our items.
720
+        if ( empty( $query->query['post_type'] ) || 'wpi_item' != $query->query['post_type'] ) {
721
+            return $query;
722
+        }
547 723
 
548
-	/**
549
-	 * Returns an array of sortable items table columns.
550
-	 */
551
-	public static function sortable_item_columns( $columns ) {
552
-
553
-		return array_merge(
554
-			$columns,
555
-			array(
556
-				'price'     => 'price',
557
-				'vat_rule'  => 'vat_rule',
558
-				'vat_class' => 'vat_class',
559
-				'type'      => 'type',
560
-			)
561
-		);
562
-
563
-	}
564
-
565
-	/**
566
-	 * Displays items table columns.
567
-	 */
568
-	public static function display_item_columns( $column_name, $post_id ) {
569
-
570
-		$item = new WPInv_Item( $post_id );
571
-
572
-		switch ( $column_name ) {
573
-
574
-			case 'price':
575
-				if ( ! $item->is_recurring() ) {
576
-					echo wp_kses_post( $item->get_the_price() );
577
-					break;
578
-				}
579
-
580
-				$price = wp_sprintf(
581
-					__( '%1$s / %2$s', 'invoicing' ),
582
-					$item->get_the_price(),
583
-					getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' )
584
-				);
585
-
586
-				if ( $item->get_the_price() == $item->get_the_initial_price() ) {
587
-					echo wp_kses_post( $price );
588
-					break;
589
-				}
590
-
591
-				echo wp_kses_post( $item->get_the_initial_price() );
592
-
593
-				echo '<span class="meta">' . wp_sprintf( esc_html__( 'then %s', 'invoicing' ), wp_kses_post( $price ) ) . '</span>';
594
-				break;
595
-
596
-			case 'vat_rule':
597
-				echo wp_kses_post( getpaid_get_tax_rule_label( $item->get_vat_rule() ) );
598
-				break;
599
-
600
-			case 'vat_class':
601
-				echo wp_kses_post( getpaid_get_tax_class_label( $item->get_vat_class() ) );
602
-				break;
603
-
604
-			case 'shortcode':
605
-				if ( $item->is_type( array( '', 'fee', 'custom' ) ) ) {
606
-					echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr( $item->get_id() ) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>';
607
-				} else {
608
-					echo '&mdash;';
609
-				}
610
-
611
-				break;
612
-
613
-			case 'type':
614
-				echo wp_kses_post( wpinv_item_type( $item->get_id() ) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>' );
615
-				break;
616
-
617
-		}
618
-
619
-	}
620
-
621
-	/**
622
-	 * Lets users filter items using taxes.
623
-	 */
624
-	public static function add_item_filters( $post_type ) {
625
-
626
-		// Abort if we're not dealing with items.
627
-		if ( $post_type != 'wpi_item' ) {
628
-			return;
629
-		}
630
-
631
-		// Filter by vat rules.
632
-		if ( wpinv_use_taxes() ) {
633
-
634
-			// Sanitize selected vat rule.
635
-			$vat_rule   = '';
636
-			$vat_rules  = getpaid_get_tax_rules();
637
-			if ( isset( $_GET['vat_rule'] ) ) {
638
-				$vat_rule   = sanitize_text_field( $_GET['vat_rule'] );
639
-			}
640
-
641
-			// Filter by VAT rule.
642
-			wpinv_html_select(
643
-				array(
644
-					'options'          => array_merge(
645
-						array(
646
-							'' => __( 'All Tax Rules', 'invoicing' ),
647
-						),
648
-						$vat_rules
649
-					),
650
-					'name'             => 'vat_rule',
651
-					'id'               => 'vat_rule',
652
-					'selected'         => in_array( $vat_rule, array_keys( $vat_rules ) ) ? $vat_rule : '',
653
-					'show_option_all'  => false,
654
-					'show_option_none' => false,
655
-				)
656
-			);
657
-
658
-			// Filter by VAT class.
659
-
660
-			// Sanitize selected vat rule.
661
-			$vat_class   = '';
662
-			$vat_classes = getpaid_get_tax_classes();
663
-			if ( isset( $_GET['vat_class'] ) ) {
664
-				$vat_class   = sanitize_text_field( $_GET['vat_class'] );
665
-			}
666
-
667
-			wpinv_html_select(
668
-				array(
669
-					'options'          => array_merge(
670
-						array(
671
-							'' => __( 'All Tax Classes', 'invoicing' ),
672
-						),
673
-						$vat_classes
674
-					),
675
-					'name'             => 'vat_class',
676
-					'id'               => 'vat_class',
677
-					'selected'         => in_array( $vat_class, array_keys( $vat_classes ) ) ? $vat_class : '',
678
-					'show_option_all'  => false,
679
-					'show_option_none' => false,
680
-				)
681
-			);
682
-
683
-		}
684
-
685
-		// Filter by item type.
686
-		$type   = '';
687
-		if ( isset( $_GET['type'] ) ) {
688
-			$type   = sanitize_text_field( $_GET['type'] );
689
-		}
690
-
691
-		wpinv_html_select(
692
-			array(
693
-				'options'          => array_merge(
694
-					array(
695
-						'' => __( 'All item types', 'invoicing' ),
696
-					),
697
-					wpinv_get_item_types()
698
-				),
699
-				'name'             => 'type',
700
-				'id'               => 'type',
701
-				'selected'         => in_array( $type, wpinv_item_types() ) ? $type : '',
702
-				'show_option_all'  => false,
703
-				'show_option_none' => false,
704
-			)
705
-		);
706
-
707
-	}
708
-
709
-	/**
710
-	 * Filters the item query.
711
-	 */
712
-	public static function filter_item_query( $query ) {
713
-
714
-		// modify the query only if it admin and main query.
715
-		if ( ! ( is_admin() && $query->is_main_query() ) ) {
716
-			return $query;
717
-		}
718
-
719
-		// we want to modify the query for our items.
720
-		if ( empty( $query->query['post_type'] ) || 'wpi_item' != $query->query['post_type'] ) {
721
-			return $query;
722
-		}
723
-
724
-		if ( empty( $query->query_vars['meta_query'] ) ) {
725
-			$query->query_vars['meta_query'] = array();
726
-		}
727
-
728
-		// Filter vat rule type
724
+        if ( empty( $query->query_vars['meta_query'] ) ) {
725
+            $query->query_vars['meta_query'] = array();
726
+        }
727
+
728
+        // Filter vat rule type
729 729
         if ( ! empty( $_GET['vat_rule'] ) ) {
730 730
             $query->query_vars['meta_query'][] = array(
731 731
                 'key'     => '_wpinv_vat_rule',
@@ -750,97 +750,97 @@  discard block
 block discarded – undo
750 750
                 'value'   => sanitize_text_field( $_GET['type'] ),
751 751
                 'compare' => '=',
752 752
             );
753
-		}
754
-
755
-	}
756
-
757
-	/**
758
-	 * Reorders items.
759
-	 */
760
-	public static function reorder_items( $vars ) {
761
-		global $typenow;
762
-
763
-		if ( 'wpi_item' !== $typenow || empty( $vars['orderby'] ) ) {
764
-			return $vars;
765
-		}
766
-
767
-		// By item type.
768
-		if ( 'type' == $vars['orderby'] ) {
769
-			return array_merge(
770
-				$vars,
771
-				array(
772
-					'meta_key' => '_wpinv_type',
773
-					'orderby'  => 'meta_value',
774
-				)
775
-			);
776
-		}
777
-
778
-		// By vat class.
779
-		if ( 'vat_class' == $vars['orderby'] ) {
780
-			return array_merge(
781
-				$vars,
782
-				array(
783
-					'meta_key' => '_wpinv_vat_class',
784
-					'orderby'  => 'meta_value',
785
-				)
786
-			);
787
-		}
788
-
789
-		// By vat rule.
790
-		if ( 'vat_rule' == $vars['orderby'] ) {
791
-			return array_merge(
792
-				$vars,
793
-				array(
794
-					'meta_key' => '_wpinv_vat_rule',
795
-					'orderby'  => 'meta_value',
796
-				)
797
-			);
798
-		}
799
-
800
-		// By price.
801
-		if ( 'price' == $vars['orderby'] ) {
802
-			return array_merge(
803
-				$vars,
804
-				array(
805
-					'meta_key' => '_wpinv_price',
806
-					'orderby'  => 'meta_value_num',
807
-				)
808
-			);
809
-		}
810
-
811
-		return $vars;
812
-
813
-	}
814
-
815
-	/**
816
-	 * Fired when deleting a post.
817
-	 */
818
-	public static function delete_post( $post_id ) {
819
-
820
-		switch ( get_post_type( $post_id ) ) {
821
-
822
-			case 'wpi_item':
823
-				do_action( 'getpaid_before_delete_item', new WPInv_Item( $post_id ) );
824
-				break;
825
-
826
-			case 'wpi_payment_form':
827
-				do_action( 'getpaid_before_delete_payment_form', new GetPaid_Payment_Form( $post_id ) );
828
-				break;
829
-
830
-			case 'wpi_discount':
831
-				do_action( 'getpaid_before_delete_discount', new WPInv_Discount( $post_id ) );
832
-				break;
833
-
834
-			case 'wpi_invoice':
835
-				$invoice = new WPInv_Invoice( $post_id );
836
-				do_action( 'getpaid_before_delete_invoice', $invoice );
837
-				$invoice->get_data_store()->delete_items( $invoice );
838
-				$invoice->get_data_store()->delete_special_fields( $invoice );
839
-				break;
840
-		}
841
-	}
842
-
843
-	/**
753
+        }
754
+
755
+    }
756
+
757
+    /**
758
+     * Reorders items.
759
+     */
760
+    public static function reorder_items( $vars ) {
761
+        global $typenow;
762
+
763
+        if ( 'wpi_item' !== $typenow || empty( $vars['orderby'] ) ) {
764
+            return $vars;
765
+        }
766
+
767
+        // By item type.
768
+        if ( 'type' == $vars['orderby'] ) {
769
+            return array_merge(
770
+                $vars,
771
+                array(
772
+                    'meta_key' => '_wpinv_type',
773
+                    'orderby'  => 'meta_value',
774
+                )
775
+            );
776
+        }
777
+
778
+        // By vat class.
779
+        if ( 'vat_class' == $vars['orderby'] ) {
780
+            return array_merge(
781
+                $vars,
782
+                array(
783
+                    'meta_key' => '_wpinv_vat_class',
784
+                    'orderby'  => 'meta_value',
785
+                )
786
+            );
787
+        }
788
+
789
+        // By vat rule.
790
+        if ( 'vat_rule' == $vars['orderby'] ) {
791
+            return array_merge(
792
+                $vars,
793
+                array(
794
+                    'meta_key' => '_wpinv_vat_rule',
795
+                    'orderby'  => 'meta_value',
796
+                )
797
+            );
798
+        }
799
+
800
+        // By price.
801
+        if ( 'price' == $vars['orderby'] ) {
802
+            return array_merge(
803
+                $vars,
804
+                array(
805
+                    'meta_key' => '_wpinv_price',
806
+                    'orderby'  => 'meta_value_num',
807
+                )
808
+            );
809
+        }
810
+
811
+        return $vars;
812
+
813
+    }
814
+
815
+    /**
816
+     * Fired when deleting a post.
817
+     */
818
+    public static function delete_post( $post_id ) {
819
+
820
+        switch ( get_post_type( $post_id ) ) {
821
+
822
+            case 'wpi_item':
823
+                do_action( 'getpaid_before_delete_item', new WPInv_Item( $post_id ) );
824
+                break;
825
+
826
+            case 'wpi_payment_form':
827
+                do_action( 'getpaid_before_delete_payment_form', new GetPaid_Payment_Form( $post_id ) );
828
+                break;
829
+
830
+            case 'wpi_discount':
831
+                do_action( 'getpaid_before_delete_discount', new WPInv_Discount( $post_id ) );
832
+                break;
833
+
834
+            case 'wpi_invoice':
835
+                $invoice = new WPInv_Invoice( $post_id );
836
+                do_action( 'getpaid_before_delete_invoice', $invoice );
837
+                $invoice->get_data_store()->delete_items( $invoice );
838
+                $invoice->get_data_store()->delete_special_fields( $invoice );
839
+                break;
840
+        }
841
+    }
842
+
843
+    /**
844 844
      * Add a post display state for special GetPaid pages in the page list table.
845 845
      *
846 846
      * @param array   $post_states An array of post display states.
@@ -854,21 +854,21 @@  discard block
 block discarded – undo
854 854
             $post_states['getpaid_success_page'] = __( 'GetPaid Receipt Page', 'invoicing' );
855 855
         }
856 856
 
857
-		foreach ( getpaid_get_invoice_post_types() as $post_type => $label ) {
857
+        foreach ( getpaid_get_invoice_post_types() as $post_type => $label ) {
858 858
 
859
-			if ( wpinv_get_option( "{$post_type}_history_page", 0 ) == $post->ID ) {
860
-				$post_states[ "getpaid_{$post_type}_history_page" ] = sprintf(
861
-					__( 'GetPaid %s History Page', 'invoicing' ),
862
-					$label
863
-				);
864
-			}
859
+            if ( wpinv_get_option( "{$post_type}_history_page", 0 ) == $post->ID ) {
860
+                $post_states[ "getpaid_{$post_type}_history_page" ] = sprintf(
861
+                    __( 'GetPaid %s History Page', 'invoicing' ),
862
+                    $label
863
+                );
864
+            }
865 865
 }
866 866
 
867
-		if ( wpinv_get_option( 'invoice_subscription_page', 0 ) == $post->ID ) {
867
+        if ( wpinv_get_option( 'invoice_subscription_page', 0 ) == $post->ID ) {
868 868
             $post_states['getpaid_invoice_subscription_page'] = __( 'GetPaid Subscription Page', 'invoicing' );
869 869
         }
870 870
 
871
-		if ( wpinv_get_option( 'checkout_page', 0 ) == $post->ID ) {
871
+        if ( wpinv_get_option( 'checkout_page', 0 ) == $post->ID ) {
872 872
             $post_states['getpaid_checkout_page'] = __( 'GetPaid Checkout Page', 'invoicing' );
873 873
         }
874 874
 
Please login to merge, or discard this patch.
Spacing   +243 added lines, -243 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  *
5 5
  */
6 6
 
7
-defined( 'ABSPATH' ) || exit;
7
+defined('ABSPATH') || exit;
8 8
 
9 9
 /**
10 10
  * Post types Admin Class
@@ -21,74 +21,74 @@  discard block
 block discarded – undo
21 21
 		GetPaid_Metaboxes::init();
22 22
 
23 23
 		// Filter the post updated messages.
24
-		add_filter( 'post_updated_messages', 'GetPaid_Post_Types_Admin::post_updated_messages' );
24
+		add_filter('post_updated_messages', 'GetPaid_Post_Types_Admin::post_updated_messages');
25 25
 
26 26
 		// Filter post actions.
27
-		add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::post_row_actions', 10, 2 );
28
-		add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::filter_invoice_row_actions', 90, 2 );
27
+		add_filter('post_row_actions', 'GetPaid_Post_Types_Admin::post_row_actions', 10, 2);
28
+		add_filter('post_row_actions', 'GetPaid_Post_Types_Admin::filter_invoice_row_actions', 90, 2);
29 29
 
30 30
 		// Invoice table columns.
31
-		add_filter( 'manage_wpi_invoice_posts_columns', array( __CLASS__, 'invoice_columns' ), 100 );
32
-		add_action( 'manage_wpi_invoice_posts_custom_column', array( __CLASS__, 'display_invoice_columns' ), 10, 2 );
33
-		add_filter( 'bulk_actions-edit-wpi_invoice', array( __CLASS__, 'invoice_bulk_actions' ) );
34
-		add_filter( 'handle_bulk_actions-edit-wpi_invoice', array( __CLASS__, 'handle_invoice_bulk_actions' ), 10, 3 );
31
+		add_filter('manage_wpi_invoice_posts_columns', array(__CLASS__, 'invoice_columns'), 100);
32
+		add_action('manage_wpi_invoice_posts_custom_column', array(__CLASS__, 'display_invoice_columns'), 10, 2);
33
+		add_filter('bulk_actions-edit-wpi_invoice', array(__CLASS__, 'invoice_bulk_actions'));
34
+		add_filter('handle_bulk_actions-edit-wpi_invoice', array(__CLASS__, 'handle_invoice_bulk_actions'), 10, 3);
35 35
 
36 36
 		// Items table columns.
37
-		add_filter( 'manage_wpi_item_posts_columns', array( __CLASS__, 'item_columns' ), 100 );
38
-		add_filter( 'manage_edit-wpi_item_sortable_columns', array( __CLASS__, 'sortable_item_columns' ), 20 );
39
-		add_action( 'manage_wpi_item_posts_custom_column', array( __CLASS__, 'display_item_columns' ), 10, 2 );
40
-		add_action( 'restrict_manage_posts', array( __CLASS__, 'add_item_filters' ), 100 );
41
-		add_action( 'parse_query', array( __CLASS__, 'filter_item_query' ), 100 );
42
-		add_action( 'request', array( __CLASS__, 'reorder_items' ), 100 );
37
+		add_filter('manage_wpi_item_posts_columns', array(__CLASS__, 'item_columns'), 100);
38
+		add_filter('manage_edit-wpi_item_sortable_columns', array(__CLASS__, 'sortable_item_columns'), 20);
39
+		add_action('manage_wpi_item_posts_custom_column', array(__CLASS__, 'display_item_columns'), 10, 2);
40
+		add_action('restrict_manage_posts', array(__CLASS__, 'add_item_filters'), 100);
41
+		add_action('parse_query', array(__CLASS__, 'filter_item_query'), 100);
42
+		add_action('request', array(__CLASS__, 'reorder_items'), 100);
43 43
 
44 44
 		// Payment forms columns.
45
-		add_filter( 'manage_wpi_payment_form_posts_columns', array( __CLASS__, 'payment_form_columns' ), 100 );
46
-		add_action( 'manage_wpi_payment_form_posts_custom_column', array( __CLASS__, 'display_payment_form_columns' ), 10, 2 );
47
-		add_filter( 'display_post_states', array( __CLASS__, 'filter_payment_form_state' ), 10, 2 );
45
+		add_filter('manage_wpi_payment_form_posts_columns', array(__CLASS__, 'payment_form_columns'), 100);
46
+		add_action('manage_wpi_payment_form_posts_custom_column', array(__CLASS__, 'display_payment_form_columns'), 10, 2);
47
+		add_filter('display_post_states', array(__CLASS__, 'filter_payment_form_state'), 10, 2);
48 48
 
49 49
 		// Discount table columns.
50
-		add_filter( 'manage_wpi_discount_posts_columns', array( __CLASS__, 'discount_columns' ), 100 );
51
-		add_filter( 'bulk_actions-edit-wpi_discount', '__return_empty_array', 100 );
50
+		add_filter('manage_wpi_discount_posts_columns', array(__CLASS__, 'discount_columns'), 100);
51
+		add_filter('bulk_actions-edit-wpi_discount', '__return_empty_array', 100);
52 52
 
53 53
 		// Deleting posts.
54
-		add_action( 'delete_post', array( __CLASS__, 'delete_post' ) );
55
-		add_filter( 'display_post_states', array( __CLASS__, 'filter_discount_state' ), 10, 2 );
54
+		add_action('delete_post', array(__CLASS__, 'delete_post'));
55
+		add_filter('display_post_states', array(__CLASS__, 'filter_discount_state'), 10, 2);
56 56
 
57
-		add_filter( 'display_post_states', array( __CLASS__, 'add_display_post_states' ), 10, 2 );
57
+		add_filter('display_post_states', array(__CLASS__, 'add_display_post_states'), 10, 2);
58 58
 	}
59 59
 
60 60
 	/**
61 61
 	 * Post updated messages.
62 62
 	 */
63
-	public static function post_updated_messages( $messages ) {
63
+	public static function post_updated_messages($messages) {
64 64
 		global $post;
65 65
 
66 66
 		$messages['wpi_discount'] = array(
67 67
 			0  => '',
68
-			1  => __( 'Discount updated.', 'invoicing' ),
69
-			2  => __( 'Custom field updated.', 'invoicing' ),
70
-			3  => __( 'Custom field deleted.', 'invoicing' ),
71
-			4  => __( 'Discount updated.', 'invoicing' ),
72
-			5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Discount restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
73
-			6  => __( 'Discount updated.', 'invoicing' ),
74
-			7  => __( 'Discount saved.', 'invoicing' ),
75
-			8  => __( 'Discount submitted.', 'invoicing' ),
76
-			9  => wp_sprintf( __( 'Discount scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
77
-			10 => __( 'Discount draft updated.', 'invoicing' ),
68
+			1  => __('Discount updated.', 'invoicing'),
69
+			2  => __('Custom field updated.', 'invoicing'),
70
+			3  => __('Custom field deleted.', 'invoicing'),
71
+			4  => __('Discount updated.', 'invoicing'),
72
+			5  => isset($_GET['revision']) ? wp_sprintf(__('Discount restored to revision from %s', 'invoicing'), wp_post_revision_title((int) $_GET['revision'], false)) : false,
73
+			6  => __('Discount updated.', 'invoicing'),
74
+			7  => __('Discount saved.', 'invoicing'),
75
+			8  => __('Discount submitted.', 'invoicing'),
76
+			9  => wp_sprintf(__('Discount scheduled for: <strong>%1$s</strong>.', 'invoicing'), date_i18n(__('M j, Y @ G:i', 'invoicing'), strtotime($post->post_date))),
77
+			10 => __('Discount draft updated.', 'invoicing'),
78 78
 		);
79 79
 
80 80
 		$messages['wpi_payment_form'] = array(
81 81
 			0  => '',
82
-			1  => __( 'Payment Form updated.', 'invoicing' ),
83
-			2  => __( 'Custom field updated.', 'invoicing' ),
84
-			3  => __( 'Custom field deleted.', 'invoicing' ),
85
-			4  => __( 'Payment Form updated.', 'invoicing' ),
86
-			5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Payment Form restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
87
-			6  => __( 'Payment Form updated.', 'invoicing' ),
88
-			7  => __( 'Payment Form saved.', 'invoicing' ),
89
-			8  => __( 'Payment Form submitted.', 'invoicing' ),
90
-			9  => wp_sprintf( __( 'Payment Form scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
91
-			10 => __( 'Payment Form draft updated.', 'invoicing' ),
82
+			1  => __('Payment Form updated.', 'invoicing'),
83
+			2  => __('Custom field updated.', 'invoicing'),
84
+			3  => __('Custom field deleted.', 'invoicing'),
85
+			4  => __('Payment Form updated.', 'invoicing'),
86
+			5  => isset($_GET['revision']) ? wp_sprintf(__('Payment Form restored to revision from %s', 'invoicing'), wp_post_revision_title((int) $_GET['revision'], false)) : false,
87
+			6  => __('Payment Form updated.', 'invoicing'),
88
+			7  => __('Payment Form saved.', 'invoicing'),
89
+			8  => __('Payment Form submitted.', 'invoicing'),
90
+			9  => wp_sprintf(__('Payment Form scheduled for: <strong>%1$s</strong>.', 'invoicing'), date_i18n(__('M j, Y @ G:i', 'invoicing'), strtotime($post->post_date))),
91
+			10 => __('Payment Form draft updated.', 'invoicing'),
92 92
 		);
93 93
 
94 94
 		return $messages;
@@ -98,16 +98,16 @@  discard block
 block discarded – undo
98 98
 	/**
99 99
 	 * Post row actions.
100 100
 	 */
101
-	public static function post_row_actions( $actions, $post ) {
101
+	public static function post_row_actions($actions, $post) {
102 102
 
103
-		$post = get_post( $post );
103
+		$post = get_post($post);
104 104
 
105 105
 		// We do not want to edit the default payment form.
106
-		if ( 'wpi_payment_form' == $post->post_type ) {
106
+		if ('wpi_payment_form' == $post->post_type) {
107 107
 
108
-			if ( $post->ID == wpinv_get_default_payment_form() ) {
109
-				unset( $actions['trash'] );
110
-				unset( $actions['inline hide-if-no-js'] );
108
+			if ($post->ID == wpinv_get_default_payment_form()) {
109
+				unset($actions['trash']);
110
+				unset($actions['inline hide-if-no-js']);
111 111
 			}
112 112
 
113 113
 			$actions['duplicate'] = sprintf(
@@ -124,20 +124,20 @@  discard block
 block discarded – undo
124 124
 						'getpaid-nonce'
125 125
 					)
126 126
 				),
127
-				esc_html( __( 'Duplicate', 'invoicing' ) )
127
+				esc_html(__('Duplicate', 'invoicing'))
128 128
 			);
129 129
 
130 130
 		}
131 131
 
132 132
 		// Link to item payment form.
133
-		if ( 'wpi_item' == $post->post_type ) {
133
+		if ('wpi_item' == $post->post_type) {
134 134
 
135
-			if ( in_array( get_post_meta( $post->ID, '_wpinv_type', true ), array( '', 'fee', 'custom' ) ) ) {
135
+			if (in_array(get_post_meta($post->ID, '_wpinv_type', true), array('', 'fee', 'custom'))) {
136 136
 
137 137
 				$actions['buy'] = sprintf(
138 138
 					'<a href="%1$s">%2$s</a>',
139
-					esc_url( getpaid_embed_url( false, $post->ID . '|0' ) ),
140
-					esc_html( __( 'Buy', 'invoicing' ) )
139
+					esc_url(getpaid_embed_url(false, $post->ID . '|0')),
140
+					esc_html(__('Buy', 'invoicing'))
141 141
 				);
142 142
 
143 143
 			}
@@ -154,27 +154,27 @@  discard block
 block discarded – undo
154 154
 	 * @param WP_Post $post
155 155
      * @return array $actions actions without edit option
156 156
      */
157
-    public static function filter_invoice_row_actions( $actions, $post ) {
157
+    public static function filter_invoice_row_actions($actions, $post) {
158 158
 
159
-        if ( getpaid_is_invoice_post_type( $post->post_type ) ) {
159
+        if (getpaid_is_invoice_post_type($post->post_type)) {
160 160
 
161 161
 			$actions = array();
162
-			$invoice = new WPInv_Invoice( $post );
162
+			$invoice = new WPInv_Invoice($post);
163 163
 
164 164
 			$actions['edit'] = sprintf(
165 165
 				'<a href="%1$s">%2$s</a>',
166
-				esc_url( get_edit_post_link( $invoice->get_id() ) ),
167
-				esc_html( __( 'Edit', 'invoicing' ) )
166
+				esc_url(get_edit_post_link($invoice->get_id())),
167
+				esc_html(__('Edit', 'invoicing'))
168 168
 			);
169 169
 
170
-			if ( ! $invoice->is_draft() ) {
170
+			if (!$invoice->is_draft()) {
171 171
 
172 172
 				$actions['view'] = sprintf(
173 173
 					'<a href="%1$s">%2$s</a>',
174
-					esc_url( $invoice->get_view_url() ),
174
+					esc_url($invoice->get_view_url()),
175 175
 					sprintf(
176
-						esc_html( __( 'View %s', 'invoicing' ) ),
177
-						getpaid_get_post_type_label( $invoice->get_post_type(), false )
176
+						esc_html(__('View %s', 'invoicing')),
177
+						getpaid_get_post_type_label($invoice->get_post_type(), false)
178 178
 					)
179 179
 				);
180 180
 
@@ -192,7 +192,7 @@  discard block
 block discarded – undo
192 192
 							'getpaid-nonce'
193 193
 						)
194 194
 					),
195
-					esc_html( __( 'Send to Customer', 'invoicing' ) )
195
+					esc_html(__('Send to Customer', 'invoicing'))
196 196
 				);
197 197
 
198 198
 			}
@@ -211,7 +211,7 @@  discard block
 block discarded – undo
211 211
 						'getpaid-nonce'
212 212
 					)
213 213
 				),
214
-				esc_html( __( 'Duplicate', 'invoicing' ) )
214
+				esc_html(__('Duplicate', 'invoicing'))
215 215
 			);
216 216
 
217 217
         }
@@ -222,42 +222,42 @@  discard block
 block discarded – undo
222 222
 	/**
223 223
 	 * Returns an array of invoice table columns.
224 224
 	 */
225
-	public static function invoice_columns( $columns ) {
225
+	public static function invoice_columns($columns) {
226 226
 
227 227
 		$columns = array(
228 228
 			'cb'           => $columns['cb'],
229
-			'number'       => __( 'Invoice', 'invoicing' ),
230
-			'customer'     => __( 'Customer', 'invoicing' ),
231
-			'invoice_date' => __( 'Created', 'invoicing' ),
232
-			'payment_date' => __( 'Completed', 'invoicing' ),
233
-			'amount'       => __( 'Amount', 'invoicing' ),
234
-			'recurring'    => __( 'Recurring', 'invoicing' ),
235
-			'status'       => __( 'Status', 'invoicing' ),
229
+			'number'       => __('Invoice', 'invoicing'),
230
+			'customer'     => __('Customer', 'invoicing'),
231
+			'invoice_date' => __('Created', 'invoicing'),
232
+			'payment_date' => __('Completed', 'invoicing'),
233
+			'amount'       => __('Amount', 'invoicing'),
234
+			'recurring'    => __('Recurring', 'invoicing'),
235
+			'status'       => __('Status', 'invoicing'),
236 236
 		);
237 237
 
238
-		return apply_filters( 'wpi_invoice_table_columns', $columns );
238
+		return apply_filters('wpi_invoice_table_columns', $columns);
239 239
 	}
240 240
 
241 241
 	/**
242 242
 	 * Displays invoice table columns.
243 243
 	 */
244
-	public static function display_invoice_columns( $column_name, $post_id ) {
244
+	public static function display_invoice_columns($column_name, $post_id) {
245 245
 
246
-		$invoice = new WPInv_Invoice( $post_id );
246
+		$invoice = new WPInv_Invoice($post_id);
247 247
 
248
-		switch ( $column_name ) {
248
+		switch ($column_name) {
249 249
 
250 250
 			case 'invoice_date':
251
-				$date_time = esc_attr( $invoice->get_created_date() );
252
-				$date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
253
-				echo wp_kses_post( "<span title='$date_time'>$date</span>" );
251
+				$date_time = esc_attr($invoice->get_created_date());
252
+				$date      = esc_html(getpaid_format_date_value($date_time, '&mdash;', true));
253
+				echo wp_kses_post("<span title='$date_time'>$date</span>");
254 254
 				break;
255 255
 
256 256
 			case 'payment_date':
257
-				if ( $invoice->is_paid() ) {
258
-					$date_time = esc_attr( $invoice->get_completed_date() );
259
-					$date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
260
-					echo wp_kses_post( "<span title='$date_time'>$date</span>" );
257
+				if ($invoice->is_paid()) {
258
+					$date_time = esc_attr($invoice->get_completed_date());
259
+					$date      = esc_html(getpaid_format_date_value($date_time, '&mdash;', true));
260
+					echo wp_kses_post("<span title='$date_time'>$date</span>");
261 261
 				} else {
262 262
 					echo '&mdash;';
263 263
 				}
@@ -266,57 +266,57 @@  discard block
 block discarded – undo
266 266
 
267 267
 			case 'amount':
268 268
 				$amount = $invoice->get_total();
269
-				$formated_amount = wp_kses_post( wpinv_price( $amount, $invoice->get_currency() ) );
269
+				$formated_amount = wp_kses_post(wpinv_price($amount, $invoice->get_currency()));
270 270
 
271
-				if ( $invoice->is_refunded() ) {
272
-					$refunded_amount = wpinv_price( 0, $invoice->get_currency() );
273
-					echo wp_kses_post( "<del>$formated_amount</del>&nbsp;<ins>$refunded_amount</ins>" );
271
+				if ($invoice->is_refunded()) {
272
+					$refunded_amount = wpinv_price(0, $invoice->get_currency());
273
+					echo wp_kses_post("<del>$formated_amount</del>&nbsp;<ins>$refunded_amount</ins>");
274 274
 				} else {
275 275
 
276 276
 					$discount = $invoice->get_total_discount();
277 277
 
278
-					if ( ! empty( $discount ) ) {
279
-						$new_amount = wpinv_price( $amount + $discount, $invoice->get_currency() );
280
-						echo wp_kses_post( "<del>$new_amount</del>&nbsp;<ins>$formated_amount</ins>" );
278
+					if (!empty($discount)) {
279
+						$new_amount = wpinv_price($amount + $discount, $invoice->get_currency());
280
+						echo wp_kses_post("<del>$new_amount</del>&nbsp;<ins>$formated_amount</ins>");
281 281
 					} else {
282
-						echo wp_kses_post( $formated_amount );
282
+						echo wp_kses_post($formated_amount);
283 283
 					}
284 284
 }
285 285
 
286 286
 				break;
287 287
 
288 288
 			case 'status':
289
-				$status       = esc_html( $invoice->get_status() );
290
-				$status_label = esc_html( $invoice->get_status_nicename() );
289
+				$status       = esc_html($invoice->get_status());
290
+				$status_label = esc_html($invoice->get_status_nicename());
291 291
 
292 292
 				// If it is paid, show the gateway title.
293
-				if ( $invoice->is_paid() ) {
294
-					$gateway = esc_html( $invoice->get_gateway_title() );
295
-					$gateway = wp_sprintf( esc_attr__( 'Paid via %s', 'invoicing' ), esc_html( $gateway ) );
293
+				if ($invoice->is_paid()) {
294
+					$gateway = esc_html($invoice->get_gateway_title());
295
+					$gateway = wp_sprintf(esc_attr__('Paid via %s', 'invoicing'), esc_html($gateway));
296 296
 
297
-					echo wp_kses_post( "<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>" );
297
+					echo wp_kses_post("<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>");
298 298
 				} else {
299
-					echo wp_kses_post( "<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>" );
299
+					echo wp_kses_post("<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>");
300 300
 				}
301 301
 
302 302
 				// If it is not paid, display the overdue and view status.
303
-				if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
303
+				if (!$invoice->is_paid() && !$invoice->is_refunded()) {
304 304
 
305 305
 					// Invoice view status.
306
-					if ( wpinv_is_invoice_viewed( $invoice->get_id() ) ) {
307
-						echo '&nbsp;&nbsp;<i class="fa fa-eye wpi-help-tip" title="' . esc_attr__( 'Viewed by Customer', 'invoicing' ) . '"></i>';
306
+					if (wpinv_is_invoice_viewed($invoice->get_id())) {
307
+						echo '&nbsp;&nbsp;<i class="fa fa-eye wpi-help-tip" title="' . esc_attr__('Viewed by Customer', 'invoicing') . '"></i>';
308 308
 					} else {
309
-						echo '&nbsp;&nbsp;<i class="fa fa-eye-slash wpi-help-tip" title="' . esc_attr__( 'Not Viewed by Customer', 'invoicing' ) . '"></i>';
309
+						echo '&nbsp;&nbsp;<i class="fa fa-eye-slash wpi-help-tip" title="' . esc_attr__('Not Viewed by Customer', 'invoicing') . '"></i>';
310 310
 					}
311 311
 
312 312
 					// Display the overview status.
313
-					if ( wpinv_get_option( 'overdue_active' ) ) {
313
+					if (wpinv_get_option('overdue_active')) {
314 314
 						$due_date = $invoice->get_due_date();
315
-						$fomatted = getpaid_format_date( $due_date );
315
+						$fomatted = getpaid_format_date($due_date);
316 316
 
317
-						if ( ! empty( $fomatted ) ) {
318
-							$date = wp_sprintf( __( 'Due %s', 'invoicing' ), $fomatted );
319
-							echo wp_kses_post( "<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>" );
317
+						if (!empty($fomatted)) {
318
+							$date = wp_sprintf(__('Due %s', 'invoicing'), $fomatted);
319
+							echo wp_kses_post("<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>");
320 320
 						}
321 321
 					}
322 322
 }
@@ -324,7 +324,7 @@  discard block
 block discarded – undo
324 324
 				break;
325 325
 
326 326
 			case 'recurring':
327
-				if ( $invoice->is_recurring() ) {
327
+				if ($invoice->is_recurring()) {
328 328
 					echo '<i class="fa fa-check" style="color:#43850a;"></i>';
329 329
 				} else {
330 330
 					echo '<i class="fa fa-times" style="color:#616161;"></i>';
@@ -332,25 +332,25 @@  discard block
 block discarded – undo
332 332
 				break;
333 333
 
334 334
 			case 'number':
335
-				$edit_link       = esc_url( get_edit_post_link( $invoice->get_id() ) );
336
-				$invoice_number  = esc_html( $invoice->get_number() );
337
-				$invoice_details = esc_attr__( 'View Invoice Details', 'invoicing' );
335
+				$edit_link       = esc_url(get_edit_post_link($invoice->get_id()));
336
+				$invoice_number  = esc_html($invoice->get_number());
337
+				$invoice_details = esc_attr__('View Invoice Details', 'invoicing');
338 338
 
339
-				echo wp_kses_post( "<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>" );
339
+				echo wp_kses_post("<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>");
340 340
 
341 341
 				break;
342 342
 
343 343
 			case 'customer':
344 344
 				$customer_name = $invoice->get_user_full_name();
345 345
 
346
-				if ( empty( $customer_name ) ) {
346
+				if (empty($customer_name)) {
347 347
 					$customer_name = $invoice->get_email();
348 348
 				}
349 349
 
350
-				if ( ! empty( $customer_name ) ) {
351
-					$customer_details = esc_attr__( 'View Customer Details', 'invoicing' );
352
-					$view_link        = esc_url( add_query_arg( 'user_id', $invoice->get_user_id(), admin_url( 'user-edit.php' ) ) );
353
-					echo wp_kses_post( "<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>" );
350
+				if (!empty($customer_name)) {
351
+					$customer_details = esc_attr__('View Customer Details', 'invoicing');
352
+					$view_link        = esc_url(add_query_arg('user_id', $invoice->get_user_id(), admin_url('user-edit.php')));
353
+					echo wp_kses_post("<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>");
354 354
 				} else {
355 355
 					echo '<div>&mdash;</div>';
356 356
 				}
@@ -364,19 +364,19 @@  discard block
 block discarded – undo
364 364
 	/**
365 365
 	 * Displays invoice bulk actions.
366 366
 	 */
367
-	public static function invoice_bulk_actions( $actions ) {
368
-		$actions['resend-invoice'] = __( 'Send to Customer', 'invoicing' );
367
+	public static function invoice_bulk_actions($actions) {
368
+		$actions['resend-invoice'] = __('Send to Customer', 'invoicing');
369 369
 		return $actions;
370 370
 	}
371 371
 
372 372
 	/**
373 373
 	 * Processes invoice bulk actions.
374 374
 	 */
375
-	public static function handle_invoice_bulk_actions( $redirect_url, $action, $post_ids ) {
375
+	public static function handle_invoice_bulk_actions($redirect_url, $action, $post_ids) {
376 376
 
377
-		if ( $action == 'resend-invoice' ) {
378
-			foreach ( $post_ids as $post_id ) {
379
-				getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $post_id ), true );
377
+		if ($action == 'resend-invoice') {
378
+			foreach ($post_ids as $post_id) {
379
+				getpaid()->get('invoice_emails')->user_invoice(new WPInv_Invoice($post_id), true);
380 380
 			}
381 381
 		}
382 382
 
@@ -387,49 +387,49 @@  discard block
 block discarded – undo
387 387
 	/**
388 388
 	 * Returns an array of payment forms table columns.
389 389
 	 */
390
-	public static function payment_form_columns( $columns ) {
390
+	public static function payment_form_columns($columns) {
391 391
 
392 392
 		$columns = array(
393 393
 			'cb'        => $columns['cb'],
394
-			'title'     => __( 'Name', 'invoicing' ),
395
-			'shortcode' => __( 'Shortcode', 'invoicing' ),
396
-			'earnings'  => __( 'Revenue', 'invoicing' ),
397
-			'refunds'   => __( 'Refunded', 'invoicing' ),
398
-			'items'     => __( 'Items', 'invoicing' ),
399
-			'date'      => __( 'Date', 'invoicing' ),
394
+			'title'     => __('Name', 'invoicing'),
395
+			'shortcode' => __('Shortcode', 'invoicing'),
396
+			'earnings'  => __('Revenue', 'invoicing'),
397
+			'refunds'   => __('Refunded', 'invoicing'),
398
+			'items'     => __('Items', 'invoicing'),
399
+			'date'      => __('Date', 'invoicing'),
400 400
 		);
401 401
 
402
-		return apply_filters( 'wpi_payment_form_table_columns', $columns );
402
+		return apply_filters('wpi_payment_form_table_columns', $columns);
403 403
 
404 404
 	}
405 405
 
406 406
 	/**
407 407
 	 * Displays payment form table columns.
408 408
 	 */
409
-	public static function display_payment_form_columns( $column_name, $post_id ) {
409
+	public static function display_payment_form_columns($column_name, $post_id) {
410 410
 
411 411
 		// Retrieve the payment form.
412
-		$form = new GetPaid_Payment_Form( $post_id );
412
+		$form = new GetPaid_Payment_Form($post_id);
413 413
 
414
-		switch ( $column_name ) {
414
+		switch ($column_name) {
415 415
 
416 416
 			case 'earnings':
417
-				echo wp_kses_post( wpinv_price( $form->get_earned() ) );
417
+				echo wp_kses_post(wpinv_price($form->get_earned()));
418 418
 				break;
419 419
 
420 420
 			case 'refunds':
421
-				echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
421
+				echo wp_kses_post(wpinv_price($form->get_refunded()));
422 422
 				break;
423 423
 
424 424
 			case 'refunds':
425
-				echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
425
+				echo wp_kses_post(wpinv_price($form->get_refunded()));
426 426
 				break;
427 427
 
428 428
 			case 'shortcode':
429
-				if ( $form->is_default() ) {
429
+				if ($form->is_default()) {
430 430
 					echo '&mdash;';
431 431
 				} else {
432
-					echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr( $form->get_id() ) . ']" style="width: 100%;" readonly/>';
432
+					echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr($form->get_id()) . ']" style="width: 100%;" readonly/>';
433 433
 				}
434 434
 
435 435
 				break;
@@ -437,28 +437,28 @@  discard block
 block discarded – undo
437 437
 			case 'items':
438 438
 				$items = $form->get_items();
439 439
 
440
-				if ( $form->is_default() || empty( $items ) ) {
440
+				if ($form->is_default() || empty($items)) {
441 441
 					echo '&mdash;';
442 442
 					return;
443 443
 				}
444 444
 
445 445
 				$_items = array();
446 446
 
447
-				foreach ( $items as $item ) {
447
+				foreach ($items as $item) {
448 448
 					$url = $item->get_edit_url();
449 449
 
450
-					if ( empty( $url ) ) {
451
-						$_items[] = esc_html( $item->get_name() );
450
+					if (empty($url)) {
451
+						$_items[] = esc_html($item->get_name());
452 452
 					} else {
453 453
 						$_items[] = sprintf(
454 454
 							'<a href="%s">%s</a>',
455
-							esc_url( $url ),
456
-							esc_html( $item->get_name() )
455
+							esc_url($url),
456
+							esc_html($item->get_name())
457 457
 						);
458 458
 					}
459 459
 }
460 460
 
461
-				echo wp_kses_post( implode( '<br>', $_items ) );
461
+				echo wp_kses_post(implode('<br>', $_items));
462 462
 
463 463
 				break;
464 464
 
@@ -469,10 +469,10 @@  discard block
 block discarded – undo
469 469
 	/**
470 470
 	 * Filters post states.
471 471
 	 */
472
-	public static function filter_payment_form_state( $post_states, $post ) {
472
+	public static function filter_payment_form_state($post_states, $post) {
473 473
 
474
-		if ( 'wpi_payment_form' == $post->post_type && wpinv_get_default_payment_form() == $post->ID ) {
475
-			$post_states['default_form'] = __( 'Default Payment Form', 'invoicing' );
474
+		if ('wpi_payment_form' == $post->post_type && wpinv_get_default_payment_form() == $post->ID) {
475
+			$post_states['default_form'] = __('Default Payment Form', 'invoicing');
476 476
 		}
477 477
 
478 478
 		return $post_states;
@@ -482,35 +482,35 @@  discard block
 block discarded – undo
482 482
 	/**
483 483
 	 * Returns an array of coupon table columns.
484 484
 	 */
485
-	public static function discount_columns( $columns ) {
485
+	public static function discount_columns($columns) {
486 486
 
487 487
 		$columns = array(
488 488
 			'cb'          => $columns['cb'],
489
-			'title'       => __( 'Name', 'invoicing' ),
490
-			'code'        => __( 'Code', 'invoicing' ),
491
-			'amount'      => __( 'Amount', 'invoicing' ),
492
-			'usage'       => __( 'Usage / Limit', 'invoicing' ),
493
-			'start_date'  => __( 'Start Date', 'invoicing' ),
494
-			'expiry_date' => __( 'Expiry Date', 'invoicing' ),
489
+			'title'       => __('Name', 'invoicing'),
490
+			'code'        => __('Code', 'invoicing'),
491
+			'amount'      => __('Amount', 'invoicing'),
492
+			'usage'       => __('Usage / Limit', 'invoicing'),
493
+			'start_date'  => __('Start Date', 'invoicing'),
494
+			'expiry_date' => __('Expiry Date', 'invoicing'),
495 495
 		);
496 496
 
497
-		return apply_filters( 'wpi_discount_table_columns', $columns );
497
+		return apply_filters('wpi_discount_table_columns', $columns);
498 498
 	}
499 499
 
500 500
 	/**
501 501
 	 * Filters post states.
502 502
 	 */
503
-	public static function filter_discount_state( $post_states, $post ) {
503
+	public static function filter_discount_state($post_states, $post) {
504 504
 
505
-		if ( 'wpi_discount' == $post->post_type ) {
505
+		if ('wpi_discount' == $post->post_type) {
506 506
 
507
-			$discount = new WPInv_Discount( $post );
507
+			$discount = new WPInv_Discount($post);
508 508
 
509 509
 			$status = $discount->is_expired() ? 'expired' : $discount->get_status();
510 510
 
511
-			if ( $status != 'publish' ) {
511
+			if ($status != 'publish') {
512 512
 				return array(
513
-					'discount_status' => wpinv_discount_status( $status ),
513
+					'discount_status' => wpinv_discount_status($status),
514 514
 				);
515 515
 			}
516 516
 
@@ -525,30 +525,30 @@  discard block
 block discarded – undo
525 525
 	/**
526 526
 	 * Returns an array of items table columns.
527 527
 	 */
528
-	public static function item_columns( $columns ) {
528
+	public static function item_columns($columns) {
529 529
 
530 530
 		$columns = array(
531 531
 			'cb'        => $columns['cb'],
532
-			'title'     => __( 'Name', 'invoicing' ),
533
-			'price'     => __( 'Price', 'invoicing' ),
534
-			'vat_rule'  => __( 'Tax Rule', 'invoicing' ),
535
-			'vat_class' => __( 'Tax Class', 'invoicing' ),
536
-			'type'      => __( 'Type', 'invoicing' ),
537
-			'shortcode' => __( 'Shortcode', 'invoicing' ),
532
+			'title'     => __('Name', 'invoicing'),
533
+			'price'     => __('Price', 'invoicing'),
534
+			'vat_rule'  => __('Tax Rule', 'invoicing'),
535
+			'vat_class' => __('Tax Class', 'invoicing'),
536
+			'type'      => __('Type', 'invoicing'),
537
+			'shortcode' => __('Shortcode', 'invoicing'),
538 538
 		);
539 539
 
540
-		if ( ! wpinv_use_taxes() ) {
541
-			unset( $columns['vat_rule'] );
542
-			unset( $columns['vat_class'] );
540
+		if (!wpinv_use_taxes()) {
541
+			unset($columns['vat_rule']);
542
+			unset($columns['vat_class']);
543 543
 		}
544 544
 
545
-		return apply_filters( 'wpi_item_table_columns', $columns );
545
+		return apply_filters('wpi_item_table_columns', $columns);
546 546
 	}
547 547
 
548 548
 	/**
549 549
 	 * Returns an array of sortable items table columns.
550 550
 	 */
551
-	public static function sortable_item_columns( $columns ) {
551
+	public static function sortable_item_columns($columns) {
552 552
 
553 553
 		return array_merge(
554 554
 			$columns,
@@ -565,45 +565,45 @@  discard block
 block discarded – undo
565 565
 	/**
566 566
 	 * Displays items table columns.
567 567
 	 */
568
-	public static function display_item_columns( $column_name, $post_id ) {
568
+	public static function display_item_columns($column_name, $post_id) {
569 569
 
570
-		$item = new WPInv_Item( $post_id );
570
+		$item = new WPInv_Item($post_id);
571 571
 
572
-		switch ( $column_name ) {
572
+		switch ($column_name) {
573 573
 
574 574
 			case 'price':
575
-				if ( ! $item->is_recurring() ) {
576
-					echo wp_kses_post( $item->get_the_price() );
575
+				if (!$item->is_recurring()) {
576
+					echo wp_kses_post($item->get_the_price());
577 577
 					break;
578 578
 				}
579 579
 
580 580
 				$price = wp_sprintf(
581
-					__( '%1$s / %2$s', 'invoicing' ),
581
+					__('%1$s / %2$s', 'invoicing'),
582 582
 					$item->get_the_price(),
583
-					getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' )
583
+					getpaid_get_subscription_period_label($item->get_recurring_period(), $item->get_recurring_interval(), '')
584 584
 				);
585 585
 
586
-				if ( $item->get_the_price() == $item->get_the_initial_price() ) {
587
-					echo wp_kses_post( $price );
586
+				if ($item->get_the_price() == $item->get_the_initial_price()) {
587
+					echo wp_kses_post($price);
588 588
 					break;
589 589
 				}
590 590
 
591
-				echo wp_kses_post( $item->get_the_initial_price() );
591
+				echo wp_kses_post($item->get_the_initial_price());
592 592
 
593
-				echo '<span class="meta">' . wp_sprintf( esc_html__( 'then %s', 'invoicing' ), wp_kses_post( $price ) ) . '</span>';
593
+				echo '<span class="meta">' . wp_sprintf(esc_html__('then %s', 'invoicing'), wp_kses_post($price)) . '</span>';
594 594
 				break;
595 595
 
596 596
 			case 'vat_rule':
597
-				echo wp_kses_post( getpaid_get_tax_rule_label( $item->get_vat_rule() ) );
597
+				echo wp_kses_post(getpaid_get_tax_rule_label($item->get_vat_rule()));
598 598
 				break;
599 599
 
600 600
 			case 'vat_class':
601
-				echo wp_kses_post( getpaid_get_tax_class_label( $item->get_vat_class() ) );
601
+				echo wp_kses_post(getpaid_get_tax_class_label($item->get_vat_class()));
602 602
 				break;
603 603
 
604 604
 			case 'shortcode':
605
-				if ( $item->is_type( array( '', 'fee', 'custom' ) ) ) {
606
-					echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr( $item->get_id() ) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>';
605
+				if ($item->is_type(array('', 'fee', 'custom'))) {
606
+					echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr($item->get_id()) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>';
607 607
 				} else {
608 608
 					echo '&mdash;';
609 609
 				}
@@ -611,7 +611,7 @@  discard block
 block discarded – undo
611 611
 				break;
612 612
 
613 613
 			case 'type':
614
-				echo wp_kses_post( wpinv_item_type( $item->get_id() ) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>' );
614
+				echo wp_kses_post(wpinv_item_type($item->get_id()) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>');
615 615
 				break;
616 616
 
617 617
 		}
@@ -621,21 +621,21 @@  discard block
 block discarded – undo
621 621
 	/**
622 622
 	 * Lets users filter items using taxes.
623 623
 	 */
624
-	public static function add_item_filters( $post_type ) {
624
+	public static function add_item_filters($post_type) {
625 625
 
626 626
 		// Abort if we're not dealing with items.
627
-		if ( $post_type != 'wpi_item' ) {
627
+		if ($post_type != 'wpi_item') {
628 628
 			return;
629 629
 		}
630 630
 
631 631
 		// Filter by vat rules.
632
-		if ( wpinv_use_taxes() ) {
632
+		if (wpinv_use_taxes()) {
633 633
 
634 634
 			// Sanitize selected vat rule.
635 635
 			$vat_rule   = '';
636 636
 			$vat_rules  = getpaid_get_tax_rules();
637
-			if ( isset( $_GET['vat_rule'] ) ) {
638
-				$vat_rule   = sanitize_text_field( $_GET['vat_rule'] );
637
+			if (isset($_GET['vat_rule'])) {
638
+				$vat_rule = sanitize_text_field($_GET['vat_rule']);
639 639
 			}
640 640
 
641 641
 			// Filter by VAT rule.
@@ -643,13 +643,13 @@  discard block
 block discarded – undo
643 643
 				array(
644 644
 					'options'          => array_merge(
645 645
 						array(
646
-							'' => __( 'All Tax Rules', 'invoicing' ),
646
+							'' => __('All Tax Rules', 'invoicing'),
647 647
 						),
648 648
 						$vat_rules
649 649
 					),
650 650
 					'name'             => 'vat_rule',
651 651
 					'id'               => 'vat_rule',
652
-					'selected'         => in_array( $vat_rule, array_keys( $vat_rules ) ) ? $vat_rule : '',
652
+					'selected'         => in_array($vat_rule, array_keys($vat_rules)) ? $vat_rule : '',
653 653
 					'show_option_all'  => false,
654 654
 					'show_option_none' => false,
655 655
 				)
@@ -660,21 +660,21 @@  discard block
 block discarded – undo
660 660
 			// Sanitize selected vat rule.
661 661
 			$vat_class   = '';
662 662
 			$vat_classes = getpaid_get_tax_classes();
663
-			if ( isset( $_GET['vat_class'] ) ) {
664
-				$vat_class   = sanitize_text_field( $_GET['vat_class'] );
663
+			if (isset($_GET['vat_class'])) {
664
+				$vat_class = sanitize_text_field($_GET['vat_class']);
665 665
 			}
666 666
 
667 667
 			wpinv_html_select(
668 668
 				array(
669 669
 					'options'          => array_merge(
670 670
 						array(
671
-							'' => __( 'All Tax Classes', 'invoicing' ),
671
+							'' => __('All Tax Classes', 'invoicing'),
672 672
 						),
673 673
 						$vat_classes
674 674
 					),
675 675
 					'name'             => 'vat_class',
676 676
 					'id'               => 'vat_class',
677
-					'selected'         => in_array( $vat_class, array_keys( $vat_classes ) ) ? $vat_class : '',
677
+					'selected'         => in_array($vat_class, array_keys($vat_classes)) ? $vat_class : '',
678 678
 					'show_option_all'  => false,
679 679
 					'show_option_none' => false,
680 680
 				)
@@ -683,22 +683,22 @@  discard block
 block discarded – undo
683 683
 		}
684 684
 
685 685
 		// Filter by item type.
686
-		$type   = '';
687
-		if ( isset( $_GET['type'] ) ) {
688
-			$type   = sanitize_text_field( $_GET['type'] );
686
+		$type = '';
687
+		if (isset($_GET['type'])) {
688
+			$type = sanitize_text_field($_GET['type']);
689 689
 		}
690 690
 
691 691
 		wpinv_html_select(
692 692
 			array(
693 693
 				'options'          => array_merge(
694 694
 					array(
695
-						'' => __( 'All item types', 'invoicing' ),
695
+						'' => __('All item types', 'invoicing'),
696 696
 					),
697 697
 					wpinv_get_item_types()
698 698
 				),
699 699
 				'name'             => 'type',
700 700
 				'id'               => 'type',
701
-				'selected'         => in_array( $type, wpinv_item_types() ) ? $type : '',
701
+				'selected'         => in_array($type, wpinv_item_types()) ? $type : '',
702 702
 				'show_option_all'  => false,
703 703
 				'show_option_none' => false,
704 704
 			)
@@ -709,45 +709,45 @@  discard block
 block discarded – undo
709 709
 	/**
710 710
 	 * Filters the item query.
711 711
 	 */
712
-	public static function filter_item_query( $query ) {
712
+	public static function filter_item_query($query) {
713 713
 
714 714
 		// modify the query only if it admin and main query.
715
-		if ( ! ( is_admin() && $query->is_main_query() ) ) {
715
+		if (!(is_admin() && $query->is_main_query())) {
716 716
 			return $query;
717 717
 		}
718 718
 
719 719
 		// we want to modify the query for our items.
720
-		if ( empty( $query->query['post_type'] ) || 'wpi_item' != $query->query['post_type'] ) {
720
+		if (empty($query->query['post_type']) || 'wpi_item' != $query->query['post_type']) {
721 721
 			return $query;
722 722
 		}
723 723
 
724
-		if ( empty( $query->query_vars['meta_query'] ) ) {
724
+		if (empty($query->query_vars['meta_query'])) {
725 725
 			$query->query_vars['meta_query'] = array();
726 726
 		}
727 727
 
728 728
 		// Filter vat rule type
729
-        if ( ! empty( $_GET['vat_rule'] ) ) {
729
+        if (!empty($_GET['vat_rule'])) {
730 730
             $query->query_vars['meta_query'][] = array(
731 731
                 'key'     => '_wpinv_vat_rule',
732
-                'value'   => sanitize_text_field( $_GET['vat_rule'] ),
732
+                'value'   => sanitize_text_field($_GET['vat_rule']),
733 733
                 'compare' => '=',
734 734
             );
735 735
         }
736 736
 
737 737
         // Filter vat class
738
-        if ( ! empty( $_GET['vat_class'] ) ) {
738
+        if (!empty($_GET['vat_class'])) {
739 739
             $query->query_vars['meta_query'][] = array(
740 740
                 'key'     => '_wpinv_vat_class',
741
-                'value'   => sanitize_text_field( $_GET['vat_class'] ),
741
+                'value'   => sanitize_text_field($_GET['vat_class']),
742 742
                 'compare' => '=',
743 743
             );
744 744
         }
745 745
 
746 746
         // Filter item type
747
-        if ( ! empty( $_GET['type'] ) ) {
747
+        if (!empty($_GET['type'])) {
748 748
             $query->query_vars['meta_query'][] = array(
749 749
                 'key'     => '_wpinv_type',
750
-                'value'   => sanitize_text_field( $_GET['type'] ),
750
+                'value'   => sanitize_text_field($_GET['type']),
751 751
                 'compare' => '=',
752 752
             );
753 753
 		}
@@ -757,15 +757,15 @@  discard block
 block discarded – undo
757 757
 	/**
758 758
 	 * Reorders items.
759 759
 	 */
760
-	public static function reorder_items( $vars ) {
760
+	public static function reorder_items($vars) {
761 761
 		global $typenow;
762 762
 
763
-		if ( 'wpi_item' !== $typenow || empty( $vars['orderby'] ) ) {
763
+		if ('wpi_item' !== $typenow || empty($vars['orderby'])) {
764 764
 			return $vars;
765 765
 		}
766 766
 
767 767
 		// By item type.
768
-		if ( 'type' == $vars['orderby'] ) {
768
+		if ('type' == $vars['orderby']) {
769 769
 			return array_merge(
770 770
 				$vars,
771 771
 				array(
@@ -776,7 +776,7 @@  discard block
 block discarded – undo
776 776
 		}
777 777
 
778 778
 		// By vat class.
779
-		if ( 'vat_class' == $vars['orderby'] ) {
779
+		if ('vat_class' == $vars['orderby']) {
780 780
 			return array_merge(
781 781
 				$vars,
782 782
 				array(
@@ -787,7 +787,7 @@  discard block
 block discarded – undo
787 787
 		}
788 788
 
789 789
 		// By vat rule.
790
-		if ( 'vat_rule' == $vars['orderby'] ) {
790
+		if ('vat_rule' == $vars['orderby']) {
791 791
 			return array_merge(
792 792
 				$vars,
793 793
 				array(
@@ -798,7 +798,7 @@  discard block
 block discarded – undo
798 798
 		}
799 799
 
800 800
 		// By price.
801
-		if ( 'price' == $vars['orderby'] ) {
801
+		if ('price' == $vars['orderby']) {
802 802
 			return array_merge(
803 803
 				$vars,
804 804
 				array(
@@ -815,27 +815,27 @@  discard block
 block discarded – undo
815 815
 	/**
816 816
 	 * Fired when deleting a post.
817 817
 	 */
818
-	public static function delete_post( $post_id ) {
818
+	public static function delete_post($post_id) {
819 819
 
820
-		switch ( get_post_type( $post_id ) ) {
820
+		switch (get_post_type($post_id)) {
821 821
 
822 822
 			case 'wpi_item':
823
-				do_action( 'getpaid_before_delete_item', new WPInv_Item( $post_id ) );
823
+				do_action('getpaid_before_delete_item', new WPInv_Item($post_id));
824 824
 				break;
825 825
 
826 826
 			case 'wpi_payment_form':
827
-				do_action( 'getpaid_before_delete_payment_form', new GetPaid_Payment_Form( $post_id ) );
827
+				do_action('getpaid_before_delete_payment_form', new GetPaid_Payment_Form($post_id));
828 828
 				break;
829 829
 
830 830
 			case 'wpi_discount':
831
-				do_action( 'getpaid_before_delete_discount', new WPInv_Discount( $post_id ) );
831
+				do_action('getpaid_before_delete_discount', new WPInv_Discount($post_id));
832 832
 				break;
833 833
 
834 834
 			case 'wpi_invoice':
835
-				$invoice = new WPInv_Invoice( $post_id );
836
-				do_action( 'getpaid_before_delete_invoice', $invoice );
837
-				$invoice->get_data_store()->delete_items( $invoice );
838
-				$invoice->get_data_store()->delete_special_fields( $invoice );
835
+				$invoice = new WPInv_Invoice($post_id);
836
+				do_action('getpaid_before_delete_invoice', $invoice);
837
+				$invoice->get_data_store()->delete_items($invoice);
838
+				$invoice->get_data_store()->delete_special_fields($invoice);
839 839
 				break;
840 840
 		}
841 841
 	}
@@ -848,28 +848,28 @@  discard block
 block discarded – undo
848 848
      *
849 849
      * @return mixed
850 850
      */
851
-    public static function add_display_post_states( $post_states, $post ) {
851
+    public static function add_display_post_states($post_states, $post) {
852 852
 
853
-        if ( wpinv_get_option( 'success_page', 0 ) == $post->ID ) {
854
-            $post_states['getpaid_success_page'] = __( 'GetPaid Receipt Page', 'invoicing' );
853
+        if (wpinv_get_option('success_page', 0) == $post->ID) {
854
+            $post_states['getpaid_success_page'] = __('GetPaid Receipt Page', 'invoicing');
855 855
         }
856 856
 
857
-		foreach ( getpaid_get_invoice_post_types() as $post_type => $label ) {
857
+		foreach (getpaid_get_invoice_post_types() as $post_type => $label) {
858 858
 
859
-			if ( wpinv_get_option( "{$post_type}_history_page", 0 ) == $post->ID ) {
860
-				$post_states[ "getpaid_{$post_type}_history_page" ] = sprintf(
861
-					__( 'GetPaid %s History Page', 'invoicing' ),
859
+			if (wpinv_get_option("{$post_type}_history_page", 0) == $post->ID) {
860
+				$post_states["getpaid_{$post_type}_history_page"] = sprintf(
861
+					__('GetPaid %s History Page', 'invoicing'),
862 862
 					$label
863 863
 				);
864 864
 			}
865 865
 }
866 866
 
867
-		if ( wpinv_get_option( 'invoice_subscription_page', 0 ) == $post->ID ) {
868
-            $post_states['getpaid_invoice_subscription_page'] = __( 'GetPaid Subscription Page', 'invoicing' );
867
+		if (wpinv_get_option('invoice_subscription_page', 0) == $post->ID) {
868
+            $post_states['getpaid_invoice_subscription_page'] = __('GetPaid Subscription Page', 'invoicing');
869 869
         }
870 870
 
871
-		if ( wpinv_get_option( 'checkout_page', 0 ) == $post->ID ) {
872
-            $post_states['getpaid_checkout_page'] = __( 'GetPaid Checkout Page', 'invoicing' );
871
+		if (wpinv_get_option('checkout_page', 0) == $post->ID) {
872
+            $post_states['getpaid_checkout_page'] = __('GetPaid Checkout Page', 'invoicing');
873 873
         }
874 874
 
875 875
         return $post_states;
Please login to merge, or discard this patch.
includes/admin/register-settings.php 2 patches
Indentation   +309 added lines, -309 removed lines patch added patch discarded remove patch
@@ -192,13 +192,13 @@  discard block
 block discarded – undo
192 192
     $name       = isset( $option['name'] ) ? $option['name'] : '';
193 193
     $cb         = "wpinv_{$option['type']}_callback";
194 194
     $section    = "wpinv_settings_{$tab}_$section";
195
-	$is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page'];
195
+    $is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page'];
196 196
 
197
-	if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) {
198
-		$tip   = wpinv_clean( $option['desc'] );
199
-		$name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>";
200
-		unset( $option['desc'] );
201
-	}
197
+    if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) {
198
+        $tip   = wpinv_clean( $option['desc'] );
199
+        $name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>";
200
+        unset( $option['desc'] );
201
+    }
202 202
 
203 203
     // Loop through all tabs.
204 204
     add_settings_field(
@@ -225,9 +225,9 @@  discard block
 block discarded – undo
225 225
             'faux'            => isset( $option['faux'] ) ? $option['faux'] : false,
226 226
             'onchange'        => isset( $option['onchange'] ) ? $option['onchange'] : '',
227 227
             'custom'          => isset( $option['custom'] ) ? $option['custom'] : '',
228
-			'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '',
229
-			'class'           => isset( $option['class'] ) ? $option['class'] : '',
230
-			'style'           => isset( $option['style'] ) ? $option['style'] : '',
228
+            'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '',
229
+            'class'           => isset( $option['class'] ) ? $option['class'] : '',
230
+            'style'           => isset( $option['style'] ) ? $option['style'] : '',
231 231
             'cols'            => isset( $option['cols'] ) && (int) $option['cols'] > 0 ? (int) $option['cols'] : 50,
232 232
             'rows'            => isset( $option['rows'] ) && (int) $option['rows'] > 0 ? (int) $option['rows'] : 5,
233 233
         )
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
  * @return array
242 242
  */
243 243
 function wpinv_get_registered_settings() {
244
-	return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) );
244
+    return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) );
245 245
 }
246 246
 
247 247
 /**
@@ -260,18 +260,18 @@  discard block
 block discarded – undo
260 260
  */
261 261
 function wpinv_settings_sanitize( $input = array() ) {
262 262
 
263
-	$wpinv_options = wpinv_get_options();
264
-	$raw_referrer  = wp_get_raw_referer();
263
+    $wpinv_options = wpinv_get_options();
264
+    $raw_referrer  = wp_get_raw_referer();
265 265
 
266 266
     if ( empty( $raw_referrer ) ) {
267
-		return array_merge( $wpinv_options, $input );
267
+        return array_merge( $wpinv_options, $input );
268 268
     }
269 269
 
270 270
     wp_parse_str( $raw_referrer, $referrer );
271 271
 
272
-	if ( in_array( 'gp-setup', $referrer ) ) {
273
-		return array_merge( $wpinv_options, $input );
274
-	}
272
+    if ( in_array( 'gp-setup', $referrer ) ) {
273
+        return array_merge( $wpinv_options, $input );
274
+    }
275 275
 
276 276
     $settings = wpinv_get_registered_settings();
277 277
     $tab      = isset( $referrer['tab'] ) ? $referrer['tab'] : 'general';
@@ -293,10 +293,10 @@  discard block
 block discarded – undo
293 293
         }
294 294
 
295 295
         // General filter
296
-		$input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key );
296
+        $input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key );
297 297
 
298
-		// Key specific filter.
299
-		$input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] );
298
+        // Key specific filter.
299
+        $input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] );
300 300
     }
301 301
 
302 302
     // Loop through the whitelist and unset any that are empty for the tab being saved
@@ -339,14 +339,14 @@  discard block
 block discarded – undo
339 339
 
340 340
     foreach ( $new_rates as $rate ) {
341 341
 
342
-		$rate['rate']    = wpinv_sanitize_amount( $rate['rate'] );
343
-		$rate['name']    = sanitize_text_field( $rate['name'] );
344
-		$rate['state']   = sanitize_text_field( $rate['state'] );
345
-		$rate['country'] = sanitize_text_field( $rate['country'] );
346
-		$rate['global']  = empty( $rate['state'] );
347
-		$tax_rates[]     = $rate;
342
+        $rate['rate']    = wpinv_sanitize_amount( $rate['rate'] );
343
+        $rate['name']    = sanitize_text_field( $rate['name'] );
344
+        $rate['state']   = sanitize_text_field( $rate['state'] );
345
+        $rate['country'] = sanitize_text_field( $rate['country'] );
346
+        $rate['global']  = empty( $rate['state'] );
347
+        $tax_rates[]     = $rate;
348 348
 
349
-	}
349
+    }
350 350
 
351 351
     update_option( 'wpinv_tax_rates', $tax_rates );
352 352
 
@@ -359,21 +359,21 @@  discard block
 block discarded – undo
359 359
         return $input;
360 360
     }
361 361
 
362
-	if ( empty( $_POST['wpinv_tax_rules_nonce'] ) || ! wp_verify_nonce( $_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules' ) ) {
363
-		return $input;
364
-	}
362
+    if ( empty( $_POST['wpinv_tax_rules_nonce'] ) || ! wp_verify_nonce( $_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules' ) ) {
363
+        return $input;
364
+    }
365 365
 
366 366
     $new_rules = ! empty( $_POST['tax_rules'] ) ? wp_kses_post_deep( array_values( $_POST['tax_rules'] ) ) : array();
367 367
     $tax_rules = array();
368 368
 
369 369
     foreach ( $new_rules as $rule ) {
370 370
 
371
-		$rule['key']      = sanitize_title_with_dashes( $rule['key'] );
372
-		$rule['label']    = sanitize_text_field( $rule['label'] );
373
-		$rule['tax_base'] = sanitize_text_field( $rule['tax_base'] );
374
-		$tax_rules[]      = $rule;
371
+        $rule['key']      = sanitize_title_with_dashes( $rule['key'] );
372
+        $rule['label']    = sanitize_text_field( $rule['label'] );
373
+        $rule['tax_base'] = sanitize_text_field( $rule['tax_base'] );
374
+        $tax_rules[]      = $rule;
375 375
 
376
-	}
376
+    }
377 377
 
378 378
     update_option( 'wpinv_tax_rules', $tax_rules );
379 379
 
@@ -386,11 +386,11 @@  discard block
 block discarded – undo
386 386
     $tabs['general']  = __( 'General', 'invoicing' );
387 387
     $tabs['gateways'] = __( 'Payment Gateways', 'invoicing' );
388 388
     $tabs['taxes']    = __( 'Taxes', 'invoicing' );
389
-	$tabs['emails']   = __( 'Emails', 'invoicing' );
389
+    $tabs['emails']   = __( 'Emails', 'invoicing' );
390 390
 
391
-	if ( count( getpaid_get_integration_settings() ) > 0 ) {
392
-		$tabs['integrations'] = __( 'Integrations', 'invoicing' );
393
-	}
391
+    if ( count( getpaid_get_integration_settings() ) > 0 ) {
392
+        $tabs['integrations'] = __( 'Integrations', 'invoicing' );
393
+    }
394 394
 
395 395
     $tabs['privacy']  = __( 'Privacy', 'invoicing' );
396 396
     $tabs['misc']     = __( 'Misc', 'invoicing' );
@@ -421,53 +421,53 @@  discard block
 block discarded – undo
421 421
         'general'      => apply_filters(
422 422
             'wpinv_settings_sections_general',
423 423
             array(
424
-				'main'             => __( 'General Settings', 'invoicing' ),
425
-				'page_section'     => __( 'Page Settings', 'invoicing' ),
426
-				'currency_section' => __( 'Currency Settings', 'invoicing' ),
427
-				'labels'           => __( 'Label Texts', 'invoicing' ),
424
+                'main'             => __( 'General Settings', 'invoicing' ),
425
+                'page_section'     => __( 'Page Settings', 'invoicing' ),
426
+                'currency_section' => __( 'Currency Settings', 'invoicing' ),
427
+                'labels'           => __( 'Label Texts', 'invoicing' ),
428 428
             )
429 429
         ),
430 430
         'gateways'     => apply_filters(
431 431
             'wpinv_settings_sections_gateways',
432 432
             array(
433
-				'main' => __( 'Gateway Settings', 'invoicing' ),
433
+                'main' => __( 'Gateway Settings', 'invoicing' ),
434 434
             )
435 435
         ),
436 436
         'taxes'        => apply_filters(
437 437
             'wpinv_settings_sections_taxes',
438 438
             array(
439
-				'main'  => __( 'Tax Settings', 'invoicing' ),
440
-				'rules' => __( 'Tax Rules', 'invoicing' ),
441
-				'rates' => __( 'Tax Rates', 'invoicing' ),
442
-				'vat'   => __( 'EU VAT Settings', 'invoicing' ),
439
+                'main'  => __( 'Tax Settings', 'invoicing' ),
440
+                'rules' => __( 'Tax Rules', 'invoicing' ),
441
+                'rates' => __( 'Tax Rates', 'invoicing' ),
442
+                'vat'   => __( 'EU VAT Settings', 'invoicing' ),
443 443
             )
444 444
         ),
445 445
         'emails'       => apply_filters(
446 446
             'wpinv_settings_sections_emails',
447 447
             array(
448
-				'main' => __( 'Email Settings', 'invoicing' ),
448
+                'main' => __( 'Email Settings', 'invoicing' ),
449 449
             )
450 450
         ),
451 451
 
452
-		'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ),
452
+        'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ),
453 453
 
454 454
         'privacy'      => apply_filters(
455 455
             'wpinv_settings_sections_privacy',
456 456
             array(
457
-				'main' => __( 'Privacy policy', 'invoicing' ),
457
+                'main' => __( 'Privacy policy', 'invoicing' ),
458 458
             )
459 459
         ),
460 460
         'misc'         => apply_filters(
461 461
             'wpinv_settings_sections_misc',
462 462
             array(
463
-				'main'       => __( 'Miscellaneous', 'invoicing' ),
464
-				'custom-css' => __( 'Custom CSS', 'invoicing' ),
463
+                'main'       => __( 'Miscellaneous', 'invoicing' ),
464
+                'custom-css' => __( 'Custom CSS', 'invoicing' ),
465 465
             )
466 466
         ),
467 467
         'tools'        => apply_filters(
468 468
             'wpinv_settings_sections_tools',
469 469
             array(
470
-				'main' => __( 'Diagnostic Tools', 'invoicing' ),
470
+                'main' => __( 'Diagnostic Tools', 'invoicing' ),
471 471
             )
472 472
         ),
473 473
     );
@@ -478,46 +478,46 @@  discard block
 block discarded – undo
478 478
 }
479 479
 
480 480
 function wpinv_get_pages( $with_slug = false, $default_label = null ) {
481
-	$pages_options = array();
481
+    $pages_options = array();
482 482
 
483
-	if ( $default_label !== null && $default_label !== false ) {
484
-		$pages_options = array( '' => $default_label ); // Blank option
485
-	}
483
+    if ( $default_label !== null && $default_label !== false ) {
484
+        $pages_options = array( '' => $default_label ); // Blank option
485
+    }
486 486
 
487
-	$pages = get_pages();
488
-	if ( $pages ) {
489
-		foreach ( $pages as $page ) {
490
-			$title = $with_slug ? $page->post_title . ' (' . $page->post_name . ')' : $page->post_title;
487
+    $pages = get_pages();
488
+    if ( $pages ) {
489
+        foreach ( $pages as $page ) {
490
+            $title = $with_slug ? $page->post_title . ' (' . $page->post_name . ')' : $page->post_title;
491 491
             $pages_options[ $page->ID ] = $title;
492
-		}
493
-	}
492
+        }
493
+    }
494 494
 
495
-	return $pages_options;
495
+    return $pages_options;
496 496
 }
497 497
 
498 498
 function wpinv_header_callback( $args ) {
499
-	if ( ! empty( $args['desc'] ) ) {
499
+    if ( ! empty( $args['desc'] ) ) {
500 500
         echo wp_kses_post( $args['desc'] );
501 501
     }
502 502
 }
503 503
 
504 504
 function wpinv_hidden_callback( $args ) {
505 505
 
506
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
507
-	$value   = wpinv_get_option( $args['id'], $std );
506
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
507
+    $value   = wpinv_get_option( $args['id'], $std );
508 508
 
509
-	if ( isset( $args['set_value'] ) ) {
510
-		$value = $args['set_value'];
511
-	}
509
+    if ( isset( $args['set_value'] ) ) {
510
+        $value = $args['set_value'];
511
+    }
512 512
 
513
-	if ( isset( $args['faux'] ) && true === $args['faux'] ) {
514
-		$args['readonly'] = true;
515
-		$name  = '';
516
-	} else {
517
-		$name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']';
518
-	}
513
+    if ( isset( $args['faux'] ) && true === $args['faux'] ) {
514
+        $args['readonly'] = true;
515
+        $name  = '';
516
+    } else {
517
+        $name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']';
518
+    }
519 519
 
520
-	echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />';
520
+    echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />';
521 521
 
522 522
 }
523 523
 
@@ -526,12 +526,12 @@  discard block
 block discarded – undo
526 526
  */
527 527
 function wpinv_checkbox_callback( $args ) {
528 528
 
529
-	$std = isset( $args['std'] ) ? $args['std'] : '';
530
-	$std = wpinv_get_option( $args['id'], $std );
531
-	$id  = esc_attr( $args['id'] );
529
+    $std = isset( $args['std'] ) ? $args['std'] : '';
530
+    $std = wpinv_get_option( $args['id'], $std );
531
+    $id  = esc_attr( $args['id'] );
532 532
 
533
-	getpaid_hidden_field( "wpinv_settings[$id]", '0' );
534
-	?>
533
+    getpaid_hidden_field( "wpinv_settings[$id]", '0' );
534
+    ?>
535 535
 		<fieldset>
536 536
 			<label>
537 537
 				<input id="wpinv-settings-<?php echo esc_attr( $id ); ?>" name="wpinv_settings[<?php echo esc_attr( $id ); ?>]" <?php checked( empty( $std ), false ); ?> value="1" type="checkbox" />
@@ -543,75 +543,75 @@  discard block
 block discarded – undo
543 543
 
544 544
 function wpinv_multicheck_callback( $args ) {
545 545
 
546
-	$sanitize_id = wpinv_sanitize_key( $args['id'] );
547
-	$class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
546
+    $sanitize_id = wpinv_sanitize_key( $args['id'] );
547
+    $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
548 548
 
549
-	if ( ! empty( $args['options'] ) ) {
549
+    if ( ! empty( $args['options'] ) ) {
550 550
 
551
-		$std     = isset( $args['std'] ) ? $args['std'] : array();
552
-		$value   = wpinv_get_option( $args['id'], $std );
551
+        $std     = isset( $args['std'] ) ? $args['std'] : array();
552
+        $value   = wpinv_get_option( $args['id'], $std );
553 553
 
554
-		echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">';
554
+        echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">';
555 555
         foreach ( $args['options'] as $key => $option ) :
556
-			$sanitize_key = esc_attr( wpinv_sanitize_key( $key ) );
557
-			if ( in_array( $sanitize_key, $value ) ) {
558
-				$enabled = $sanitize_key;
559
-			} else {
560
-				$enabled = null;
561
-			}
562
-			echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/>&nbsp;';
563
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>';
564
-		endforeach;
565
-		echo '</div>';
566
-		echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>';
567
-	}
556
+            $sanitize_key = esc_attr( wpinv_sanitize_key( $key ) );
557
+            if ( in_array( $sanitize_key, $value ) ) {
558
+                $enabled = $sanitize_key;
559
+            } else {
560
+                $enabled = null;
561
+            }
562
+            echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/>&nbsp;';
563
+            echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>';
564
+        endforeach;
565
+        echo '</div>';
566
+        echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>';
567
+    }
568 568
 }
569 569
 
570 570
 function wpinv_payment_icons_callback( $args ) {
571 571
 
572 572
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
573
-	$value   = wpinv_get_option( $args['id'], false );
573
+    $value   = wpinv_get_option( $args['id'], false );
574 574
 
575
-	if ( ! empty( $args['options'] ) ) {
576
-		foreach ( $args['options'] as $key => $option ) {
575
+    if ( ! empty( $args['options'] ) ) {
576
+        foreach ( $args['options'] as $key => $option ) {
577 577
             $sanitize_key = wpinv_sanitize_key( $key );
578 578
 
579
-			if ( empty( $value ) ) {
580
-				$enabled = $option;
581
-			} else {
582
-				$enabled = null;
583
-			}
584
-
585
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
586
-
587
-				echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
588
-
589
-				if ( wpinv_string_is_image_url( $key ) ) {
590
-				echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
591
-				} else {
592
-				$card = strtolower( str_replace( ' ', '', $option ) );
593
-
594
-				if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) {
595
-					$image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' );
596
-					} else {
597
-					$image       = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false );
598
-					$content_dir = WP_CONTENT_DIR;
599
-
600
-					if ( function_exists( 'wp_normalize_path' ) ) {
601
-						// Replaces backslashes with forward slashes for Windows systems
602
-						$image = wp_normalize_path( $image );
603
-						$content_dir = wp_normalize_path( $content_dir );
604
-						}
605
-
606
-					$image = str_replace( $content_dir, content_url(), $image );
607
-					}
608
-
609
-				echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
610
-				}
611
-			echo wp_kses_post( $option ) . '</label>';
612
-		}
613
-		echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>';
614
-	}
579
+            if ( empty( $value ) ) {
580
+                $enabled = $option;
581
+            } else {
582
+                $enabled = null;
583
+            }
584
+
585
+            echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
586
+
587
+                echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
588
+
589
+                if ( wpinv_string_is_image_url( $key ) ) {
590
+                echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
591
+                } else {
592
+                $card = strtolower( str_replace( ' ', '', $option ) );
593
+
594
+                if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) {
595
+                    $image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' );
596
+                    } else {
597
+                    $image       = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false );
598
+                    $content_dir = WP_CONTENT_DIR;
599
+
600
+                    if ( function_exists( 'wp_normalize_path' ) ) {
601
+                        // Replaces backslashes with forward slashes for Windows systems
602
+                        $image = wp_normalize_path( $image );
603
+                        $content_dir = wp_normalize_path( $content_dir );
604
+                        }
605
+
606
+                    $image = str_replace( $content_dir, content_url(), $image );
607
+                    }
608
+
609
+                echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
610
+                }
611
+            echo wp_kses_post( $option ) . '</label>';
612
+        }
613
+        echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>';
614
+    }
615 615
 }
616 616
 
617 617
 /**
@@ -619,9 +619,9 @@  discard block
 block discarded – undo
619 619
  */
620 620
 function wpinv_radio_callback( $args ) {
621 621
 
622
-	$std = isset( $args['std'] ) ? $args['std'] : '';
623
-	$std = wpinv_get_option( $args['id'], $std );
624
-	?>
622
+    $std = isset( $args['std'] ) ? $args['std'] : '';
623
+    $std = wpinv_get_option( $args['id'], $std );
624
+    ?>
625 625
 		<fieldset>
626 626
 			<ul id="wpinv-settings-<?php echo esc_attr( $args['id'] ); ?>" style="margin-top: 0;">
627 627
 				<?php foreach ( $args['options'] as $key => $option ) : ?>
@@ -635,7 +635,7 @@  discard block
 block discarded – undo
635 635
 			</ul>
636 636
 		</fieldset>
637 637
 	<?php
638
-	getpaid_settings_description_callback( $args );
638
+    getpaid_settings_description_callback( $args );
639 639
 }
640 640
 
641 641
 /**
@@ -643,10 +643,10 @@  discard block
 block discarded – undo
643 643
  */
644 644
 function getpaid_settings_description_callback( $args ) {
645 645
 
646
-	if ( ! empty( $args['desc'] ) ) {
647
-		$description = $args['desc'];
648
-		echo wp_kses_post( "<p class='description'>$description</p>" );
649
-	}
646
+    if ( ! empty( $args['desc'] ) ) {
647
+        $description = $args['desc'];
648
+        echo wp_kses_post( "<p class='description'>$description</p>" );
649
+    }
650 650
 
651 651
 }
652 652
 
@@ -655,7 +655,7 @@  discard block
 block discarded – undo
655 655
  */
656 656
 function wpinv_gateways_callback() {
657 657
 
658
-	?>
658
+    ?>
659 659
 		</td>
660 660
 	</tr>
661 661
 	<tr class="bsui">
@@ -669,26 +669,26 @@  discard block
 block discarded – undo
669 669
 
670 670
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
671 671
     $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
672
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
673
-	$value   = wpinv_get_option( $args['id'], $std );
672
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
673
+    $value   = wpinv_get_option( $args['id'], $std );
674 674
 
675
-	echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >';
675
+    echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >';
676 676
 
677
-	foreach ( $args['options'] as $key => $option ) :
677
+    foreach ( $args['options'] as $key => $option ) :
678 678
 
679
-		echo '<option value="' . esc_attr( $key ) . '" ';
679
+        echo '<option value="' . esc_attr( $key ) . '" ';
680 680
 
681
-		if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) {
681
+        if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) {
682 682
             selected( $key, $args['selected'] );
683 683
         } else {
684 684
             selected( $key, $value );
685 685
         }
686 686
 
687
-		echo '>' . esc_html( $option['admin_label'] ) . '</option>';
688
-	endforeach;
687
+        echo '>' . esc_html( $option['admin_label'] ) . '</option>';
688
+    endforeach;
689 689
 
690
-	echo '</select>';
691
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
690
+    echo '</select>';
691
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
692 692
 }
693 693
 
694 694
 /**
@@ -699,38 +699,38 @@  discard block
 block discarded – undo
699 699
  */
700 700
 function wpinv_settings_attrs_helper( $args ) {
701 701
 
702
-	$value = isset( $args['std'] ) ? $args['std'] : '';
703
-	$id    = esc_attr( $args['id'] );
704
-	$value = is_scalar( $value ) ? $value : '';
705
-
706
-	$attrs = array(
707
-		'name'     => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]",
708
-		'readonly' => ! empty( $args['faux'] ),
709
-		'value'    => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ),
710
-		'id'       => 'wpinv-settings-' . $args['id'],
711
-		'style'    => $args['style'],
712
-		'class'    => $args['class'],
713
-		'placeholder' => $args['placeholder'],
714
-		'data-placeholder' => $args['placeholder'],
715
-	);
702
+    $value = isset( $args['std'] ) ? $args['std'] : '';
703
+    $id    = esc_attr( $args['id'] );
704
+    $value = is_scalar( $value ) ? $value : '';
705
+
706
+    $attrs = array(
707
+        'name'     => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]",
708
+        'readonly' => ! empty( $args['faux'] ),
709
+        'value'    => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ),
710
+        'id'       => 'wpinv-settings-' . $args['id'],
711
+        'style'    => $args['style'],
712
+        'class'    => $args['class'],
713
+        'placeholder' => $args['placeholder'],
714
+        'data-placeholder' => $args['placeholder'],
715
+    );
716 716
 
717
-	if ( ! empty( $args['onchange'] ) ) {
718
-		$attrs['onchange'] = $args['onchange'];
719
-	}
717
+    if ( ! empty( $args['onchange'] ) ) {
718
+        $attrs['onchange'] = $args['onchange'];
719
+    }
720 720
 
721
-	foreach ( $attrs as $key => $value ) {
721
+    foreach ( $attrs as $key => $value ) {
722 722
 
723
-		if ( false === $value ) {
724
-			continue;
725
-		}
723
+        if ( false === $value ) {
724
+            continue;
725
+        }
726 726
 
727
-		if ( true === $value ) {
728
-			echo ' ' . esc_attr( $key );
729
-		} else {
730
-			echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
731
-		}
727
+        if ( true === $value ) {
728
+            echo ' ' . esc_attr( $key );
729
+        } else {
730
+            echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
731
+        }
732 732
 
733
-	}
733
+    }
734 734
 
735 735
 }
736 736
 
@@ -739,9 +739,9 @@  discard block
 block discarded – undo
739 739
  */
740 740
 function wpinv_text_callback( $args ) {
741 741
 
742
-	$desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
742
+    $desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
743 743
 
744
-	?>
744
+    ?>
745 745
 		<label style="width: 100%;">
746 746
 			<input type="text" <?php wpinv_settings_attrs_helper( $args ); ?>>
747 747
 			<?php echo wp_kses_post( $desc ); ?>
@@ -755,9 +755,9 @@  discard block
 block discarded – undo
755 755
  */
756 756
 function wpinv_number_callback( $args ) {
757 757
 
758
-	$desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
758
+    $desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
759 759
 
760
-	?>
760
+    ?>
761 761
 		<label style="width: 100%;">
762 762
 			<input type="number" step="<?php echo floatval( $args['step'] ); ?>" max="<?php echo intval( $args['max'] ); ?>" min="<?php echo intval( $args['min'] ); ?>" <?php wpinv_settings_attrs_helper( $args ); ?>>
763 763
 			<?php echo wp_kses_post( $desc ); ?>
@@ -769,34 +769,34 @@  discard block
 block discarded – undo
769 769
 function wpinv_textarea_callback( $args ) {
770 770
 
771 771
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
772
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
773
-	$value   = wpinv_get_option( $args['id'], $std );
772
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
773
+    $value   = wpinv_get_option( $args['id'], $std );
774 774
 
775 775
     $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
776 776
     $class = ( isset( $args['class'] ) && ! is_null( $args['class'] ) ) ? $args['class'] : 'large-text';
777 777
 
778
-	echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
779
-	echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
778
+    echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
779
+    echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
780 780
 
781 781
 }
782 782
 
783 783
 function wpinv_password_callback( $args ) {
784 784
 
785 785
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
786
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
787
-	$value   = wpinv_get_option( $args['id'], $std );
786
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
787
+    $value   = wpinv_get_option( $args['id'], $std );
788 788
 
789
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
790
-	echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
791
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
789
+    $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
790
+    echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
791
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
792 792
 
793 793
 }
794 794
 
795 795
 function wpinv_missing_callback( $args ) {
796
-	printf(
797
-		esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ),
798
-		'<strong>' . esc_html( $args['id'] ) . '</strong>'
799
-	);
796
+    printf(
797
+        esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ),
798
+        '<strong>' . esc_html( $args['id'] ) . '</strong>'
799
+    );
800 800
 }
801 801
 
802 802
 /**
@@ -804,13 +804,13 @@  discard block
 block discarded – undo
804 804
  */
805 805
 function wpinv_select_callback( $args ) {
806 806
 
807
-	$desc   = wp_kses_post( $args['desc'] );
808
-	$desc   = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
809
-	$value  = isset( $args['std'] ) ? $args['std'] : '';
810
-	$value  = wpinv_get_option( $args['id'], $value );
811
-	$rand   = uniqid( 'random_id' );
807
+    $desc   = wp_kses_post( $args['desc'] );
808
+    $desc   = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
809
+    $value  = isset( $args['std'] ) ? $args['std'] : '';
810
+    $value  = wpinv_get_option( $args['id'], $value );
811
+    $rand   = uniqid( 'random_id' );
812 812
 
813
-	?>
813
+    ?>
814 814
 		<label style="width: 100%;">
815 815
 			<select <?php wpinv_settings_attrs_helper( $args ); ?> data-allow-clear="true">
816 816
 				<?php foreach ( $args['options'] as $option => $name ) : ?>
@@ -843,50 +843,50 @@  discard block
 block discarded – undo
843 843
 function wpinv_color_select_callback( $args ) {
844 844
 
845 845
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
846
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
847
-	$value   = wpinv_get_option( $args['id'], $std );
846
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
847
+    $value   = wpinv_get_option( $args['id'], $std );
848 848
 
849
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>';
849
+    echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>';
850 850
 
851
-	foreach ( $args['options'] as $option => $color ) {
852
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>';
853
-	}
851
+    foreach ( $args['options'] as $option => $color ) {
852
+        echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>';
853
+    }
854 854
 
855
-	echo '</select>';
856
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
855
+    echo '</select>';
856
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
857 857
 
858 858
 }
859 859
 
860 860
 function wpinv_rich_editor_callback( $args ) {
861
-	global $wp_version;
861
+    global $wp_version;
862 862
 
863 863
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
864 864
 
865
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
866
-	$value   = wpinv_get_option( $args['id'], $std );
865
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
866
+    $value   = wpinv_get_option( $args['id'], $std );
867 867
 
868
-	if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) {
869
-		$value = $std;
870
-	}
868
+    if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) {
869
+        $value = $std;
870
+    }
871 871
 
872
-	$rows = isset( $args['size'] ) ? $args['size'] : 20;
872
+    $rows = isset( $args['size'] ) ? $args['size'] : 20;
873 873
 
874
-	echo '<div class="getpaid-settings-editor-input">';
875
-	if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) {
876
-		wp_editor(
874
+    echo '<div class="getpaid-settings-editor-input">';
875
+    if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) {
876
+        wp_editor(
877 877
             stripslashes( $value ),
878 878
             'wpinv_settings_' . esc_attr( $args['id'] ),
879 879
             array(
880
-				'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']',
881
-				'textarea_rows' => absint( $rows ),
882
-				'media_buttons' => false,
880
+                'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']',
881
+                'textarea_rows' => absint( $rows ),
882
+                'media_buttons' => false,
883 883
             )
884 884
         );
885
-	} else {
886
-		echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
887
-	}
885
+    } else {
886
+        echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
887
+    }
888 888
 
889
-	echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
889
+    echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
890 890
 
891 891
 }
892 892
 
@@ -894,51 +894,51 @@  discard block
 block discarded – undo
894 894
 
895 895
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
896 896
 
897
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
898
-	$value   = wpinv_get_option( $args['id'], $std );
897
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
898
+    $value   = wpinv_get_option( $args['id'], $std );
899 899
 
900
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
901
-	echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
902
-	echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>';
903
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
900
+    $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
901
+    echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
902
+    echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>';
903
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
904 904
 
905 905
 }
906 906
 
907 907
 function wpinv_color_callback( $args ) {
908 908
 
909
-	$std         = isset( $args['std'] ) ? $args['std'] : '';
910
-	$value       = wpinv_get_option( $args['id'], $std );
909
+    $std         = isset( $args['std'] ) ? $args['std'] : '';
910
+    $value       = wpinv_get_option( $args['id'], $std );
911 911
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
912 912
 
913
-	echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />';
914
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
913
+    echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />';
914
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
915 915
 
916 916
 }
917 917
 
918 918
 function wpinv_country_states_callback( $args ) {
919 919
 
920
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
921
-	$value   = wpinv_get_option( $args['id'], $std );
920
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
921
+    $value   = wpinv_get_option( $args['id'], $std );
922 922
 
923 923
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
924 924
 
925
-	if ( isset( $args['placeholder'] ) ) {
926
-		$placeholder = $args['placeholder'];
927
-	} else {
928
-		$placeholder = '';
929
-	}
925
+    if ( isset( $args['placeholder'] ) ) {
926
+        $placeholder = $args['placeholder'];
927
+    } else {
928
+        $placeholder = '';
929
+    }
930 930
 
931
-	$states = wpinv_get_country_states();
931
+    $states = wpinv_get_country_states();
932 932
 
933
-	$class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2';
934
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>';
933
+    $class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2';
934
+    echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>';
935 935
 
936
-	foreach ( $states as $option => $name ) {
937
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>';
938
-	}
936
+    foreach ( $states as $option => $name ) {
937
+        echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>';
938
+    }
939 939
 
940
-	echo '</select>';
941
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
940
+    echo '</select>';
941
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
942 942
 
943 943
 }
944 944
 
@@ -947,7 +947,7 @@  discard block
 block discarded – undo
947 947
  */
948 948
 function wpinv_tax_rates_callback() {
949 949
 
950
-	?>
950
+    ?>
951 951
 		</td>
952 952
 	</tr>
953 953
 	<tr class="bsui">
@@ -963,9 +963,9 @@  discard block
 block discarded – undo
963 963
  */
964 964
 function wpinv_tax_rate_callback( $tax_rate, $key ) {
965 965
 
966
-	$key                      = sanitize_key( $key );
967
-	$tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate'];
968
-	include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php';
966
+    $key                      = sanitize_key( $key );
967
+    $tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate'];
968
+    include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php';
969 969
 
970 970
 }
971 971
 
@@ -974,7 +974,7 @@  discard block
 block discarded – undo
974 974
  */
975 975
 function wpinv_tax_rules_callback() {
976 976
 
977
-	?>
977
+    ?>
978 978
 		</td>
979 979
 	</tr>
980 980
 	<tr class="bsui">
@@ -1012,14 +1012,14 @@  discard block
 block discarded – undo
1012 1012
                 <td>
1013 1013
 					<a href="
1014 1014
                     <?php
1015
-						echo esc_url(
1016
-							wp_nonce_url(
1017
-								add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
1018
-								'getpaid-nonce',
1019
-								'getpaid-nonce'
1020
-							)
1021
-						);
1022
-					?>
1015
+                        echo esc_url(
1016
+                            wp_nonce_url(
1017
+                                add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
1018
+                                'getpaid-nonce',
1019
+                                'getpaid-nonce'
1020
+                            )
1021
+                        );
1022
+                    ?>
1023 1023
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1024 1024
                 </td>
1025 1025
             </tr>
@@ -1031,14 +1031,14 @@  discard block
 block discarded – undo
1031 1031
                 <td>
1032 1032
 					<a href="
1033 1033
                     <?php
1034
-						echo esc_url(
1035
-							wp_nonce_url(
1036
-								add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ),
1037
-								'getpaid-nonce',
1038
-								'getpaid-nonce'
1039
-							)
1040
-						);
1041
-					?>
1034
+                        echo esc_url(
1035
+                            wp_nonce_url(
1036
+                                add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ),
1037
+                                'getpaid-nonce',
1038
+                                'getpaid-nonce'
1039
+                            )
1040
+                        );
1041
+                    ?>
1042 1042
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1043 1043
                 </td>
1044 1044
             </tr>
@@ -1050,14 +1050,14 @@  discard block
 block discarded – undo
1050 1050
                 <td>
1051 1051
 					<a href="
1052 1052
                     <?php
1053
-						echo esc_url(
1054
-							wp_nonce_url(
1055
-								add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ),
1056
-								'getpaid-nonce',
1057
-								'getpaid-nonce'
1058
-							)
1059
-						);
1060
-					?>
1053
+                        echo esc_url(
1054
+                            wp_nonce_url(
1055
+                                add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ),
1056
+                                'getpaid-nonce',
1057
+                                'getpaid-nonce'
1058
+                            )
1059
+                        );
1060
+                    ?>
1061 1061
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1062 1062
                 </td>
1063 1063
             </tr>
@@ -1070,14 +1070,14 @@  discard block
 block discarded – undo
1070 1070
                 <td>
1071 1071
 					<a href="
1072 1072
                     <?php
1073
-						echo esc_url(
1074
-							wp_nonce_url(
1075
-								add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ),
1076
-								'getpaid-nonce',
1077
-								'getpaid-nonce'
1078
-							)
1079
-						);
1080
-					?>
1073
+                        echo esc_url(
1074
+                            wp_nonce_url(
1075
+                                add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ),
1076
+                                'getpaid-nonce',
1077
+                                'getpaid-nonce'
1078
+                            )
1079
+                        );
1080
+                    ?>
1081 1081
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1082 1082
                 </td>
1083 1083
             </tr>
@@ -1090,8 +1090,8 @@  discard block
 block discarded – undo
1090 1090
                 <td>
1091 1091
 					<a href="
1092 1092
                     <?php
1093
-						echo esc_url( admin_url( 'index.php?page=gp-setup' ) );
1094
-					?>
1093
+                        echo esc_url( admin_url( 'index.php?page=gp-setup' ) );
1094
+                    ?>
1095 1095
                     " class="button button-primary"><?php esc_html_e( 'Launch', 'invoicing' ); ?></a>
1096 1096
                 </td>
1097 1097
             </tr>
@@ -1105,19 +1105,19 @@  discard block
 block discarded – undo
1105 1105
 
1106 1106
 
1107 1107
 function wpinv_descriptive_text_callback( $args ) {
1108
-	echo wp_kses_post( $args['desc'] );
1108
+    echo wp_kses_post( $args['desc'] );
1109 1109
 }
1110 1110
 
1111 1111
 function wpinv_raw_html_callback( $args ) {
1112
-	echo wp_kses( $args['desc'], getpaid_allowed_html() );
1112
+    echo wp_kses( $args['desc'], getpaid_allowed_html() );
1113 1113
 }
1114 1114
 
1115 1115
 function wpinv_hook_callback( $args ) {
1116
-	do_action( 'wpinv_' . $args['id'], $args );
1116
+    do_action( 'wpinv_' . $args['id'], $args );
1117 1117
 }
1118 1118
 
1119 1119
 function wpinv_set_settings_cap() {
1120
-	return wpinv_get_capability();
1120
+    return wpinv_get_capability();
1121 1121
 }
1122 1122
 add_filter( 'option_page_capability_wpinv_settings', 'wpinv_set_settings_cap' );
1123 1123
 
@@ -1141,15 +1141,15 @@  discard block
 block discarded – undo
1141 1141
  */
1142 1142
 function wpinv_get_merge_tags_help_text( $subscription = false ) {
1143 1143
 
1144
-	$url  = $subscription ? 'https://gist.github.com/picocodes/3d213982d57c34edf7a46fd3f0e8583e' : 'https://gist.github.com/picocodes/43bdc4d4bbba844534b2722e2af0b58f';
1145
-	$link = sprintf(
1146
-		'<strong><a href="%s" target="_blank">%s</a></strong>',
1147
-		$url,
1148
-		esc_html__( 'View available merge tags.', 'wpinv-quotes' )
1149
-	);
1144
+    $url  = $subscription ? 'https://gist.github.com/picocodes/3d213982d57c34edf7a46fd3f0e8583e' : 'https://gist.github.com/picocodes/43bdc4d4bbba844534b2722e2af0b58f';
1145
+    $link = sprintf(
1146
+        '<strong><a href="%s" target="_blank">%s</a></strong>',
1147
+        $url,
1148
+        esc_html__( 'View available merge tags.', 'wpinv-quotes' )
1149
+    );
1150 1150
 
1151
-	$description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' );
1151
+    $description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' );
1152 1152
 
1153
-	return "$description $link";
1153
+    return "$description $link";
1154 1154
 
1155 1155
 }
Please login to merge, or discard this patch.
Spacing   +381 added lines, -381 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @since   1.0.0
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * Retrieves all default settings.
@@ -16,13 +16,13 @@  discard block
 block discarded – undo
16 16
 function wpinv_get_settings() {
17 17
     $defaults = array();
18 18
 
19
-    foreach ( array_values( wpinv_get_registered_settings() ) as $tab_settings ) {
19
+    foreach (array_values(wpinv_get_registered_settings()) as $tab_settings) {
20 20
 
21
-        foreach ( array_values( $tab_settings ) as $section_settings ) {
21
+        foreach (array_values($tab_settings) as $section_settings) {
22 22
 
23
-            foreach ( $section_settings as $key => $setting ) {
24
-                if ( isset( $setting['std'] ) ) {
25
-                    $defaults[ $key ] = $setting['std'];
23
+            foreach ($section_settings as $key => $setting) {
24
+                if (isset($setting['std'])) {
25
+                    $defaults[$key] = $setting['std'];
26 26
                 }
27 27
             }
28 28
 }
@@ -41,12 +41,12 @@  discard block
 block discarded – undo
41 41
     global $wpinv_options;
42 42
 
43 43
     // Try fetching the saved options.
44
-    if ( empty( $wpinv_options ) ) {
45
-        $wpinv_options = get_option( 'wpinv_settings' );
44
+    if (empty($wpinv_options)) {
45
+        $wpinv_options = get_option('wpinv_settings');
46 46
     }
47 47
 
48 48
     // If that fails, don't fetch the default settings to prevent a loop.
49
-    if ( ! is_array( $wpinv_options ) ) {
49
+    if (!is_array($wpinv_options)) {
50 50
         $wpinv_options = array();
51 51
     }
52 52
 
@@ -60,13 +60,13 @@  discard block
 block discarded – undo
60 60
  * @param mixed $default The default value to use if the setting has not been set.
61 61
  * @return mixed
62 62
  */
63
-function wpinv_get_option( $key = '', $default = false ) {
63
+function wpinv_get_option($key = '', $default = false) {
64 64
 
65 65
     $options = wpinv_get_options();
66
-    $value   = isset( $options[ $key ] ) ? $options[ $key ] : $default;
67
-    $value   = apply_filters( 'wpinv_get_option', $value, $key, $default );
66
+    $value   = isset($options[$key]) ? $options[$key] : $default;
67
+    $value   = apply_filters('wpinv_get_option', $value, $key, $default);
68 68
 
69
-    return apply_filters( 'wpinv_get_option_' . $key, $value, $key, $default );
69
+    return apply_filters('wpinv_get_option_' . $key, $value, $key, $default);
70 70
 }
71 71
 
72 72
 /**
@@ -75,11 +75,11 @@  discard block
 block discarded – undo
75 75
  * @param array $options the new options.
76 76
  * @return bool
77 77
  */
78
-function wpinv_update_options( $options ) {
78
+function wpinv_update_options($options) {
79 79
     global $wpinv_options;
80 80
 
81 81
     // update the option.
82
-    if ( is_array( $options ) && update_option( 'wpinv_settings', $options ) ) {
82
+    if (is_array($options) && update_option('wpinv_settings', $options)) {
83 83
         $wpinv_options = $options;
84 84
         return true;
85 85
     }
@@ -94,24 +94,24 @@  discard block
 block discarded – undo
94 94
  * @param mixed $value The setting value.
95 95
  * @return bool
96 96
  */
97
-function wpinv_update_option( $key = '', $value = false ) {
97
+function wpinv_update_option($key = '', $value = false) {
98 98
 
99 99
     // If no key, exit.
100
-    if ( empty( $key ) ) {
100
+    if (empty($key)) {
101 101
         return false;
102 102
     }
103 103
 
104 104
     // Maybe delete the option instead.
105
-    if ( is_null( $value ) ) {
106
-        return wpinv_delete_option( $key );
105
+    if (is_null($value)) {
106
+        return wpinv_delete_option($key);
107 107
     }
108 108
 
109 109
     // Prepare the new options.
110 110
     $options         = wpinv_get_options();
111
-    $options[ $key ] = apply_filters( 'wpinv_update_option', $value, $key );
111
+    $options[$key] = apply_filters('wpinv_update_option', $value, $key);
112 112
 
113 113
     // Save the new options.
114
-    return wpinv_update_options( $options );
114
+    return wpinv_update_options($options);
115 115
 
116 116
 }
117 117
 
@@ -121,18 +121,18 @@  discard block
 block discarded – undo
121 121
  * @param string $key the setting key.
122 122
  * @return bool
123 123
  */
124
-function wpinv_delete_option( $key = '' ) {
124
+function wpinv_delete_option($key = '') {
125 125
 
126 126
     // If no key, exit
127
-    if ( empty( $key ) ) {
127
+    if (empty($key)) {
128 128
         return false;
129 129
     }
130 130
 
131 131
     $options = wpinv_get_options();
132 132
 
133
-    if ( isset( $options[ $key ] ) ) {
134
-        unset( $options[ $key ] );
135
-        return wpinv_update_options( $options );
133
+    if (isset($options[$key])) {
134
+        unset($options[$key]);
135
+        return wpinv_update_options($options);
136 136
     }
137 137
 
138 138
     return true;
@@ -146,14 +146,14 @@  discard block
 block discarded – undo
146 146
 function wpinv_register_settings() {
147 147
 
148 148
     // Loop through all tabs.
149
-    foreach ( wpinv_get_registered_settings() as $tab => $sections ) {
149
+    foreach (wpinv_get_registered_settings() as $tab => $sections) {
150 150
 
151 151
         // In each tab, loop through sections.
152
-        foreach ( $sections as $section => $settings ) {
152
+        foreach ($sections as $section => $settings) {
153 153
 
154 154
             // Check for backwards compatibility
155
-            $section_tabs = wpinv_get_settings_tab_sections( $tab );
156
-            if ( ! is_array( $section_tabs ) || ! array_key_exists( $section, $section_tabs ) ) {
155
+            $section_tabs = wpinv_get_settings_tab_sections($tab);
156
+            if (!is_array($section_tabs) || !array_key_exists($section, $section_tabs)) {
157 157
                 $section = 'main';
158 158
                 $settings = $sections;
159 159
             }
@@ -166,18 +166,18 @@  discard block
 block discarded – undo
166 166
                 'wpinv_settings_' . $tab . '_' . $section
167 167
             );
168 168
 
169
-            foreach ( $settings as $option ) {
170
-                if ( ! empty( $option['id'] ) ) {
171
-                    wpinv_register_settings_option( $tab, $section, $option );
169
+            foreach ($settings as $option) {
170
+                if (!empty($option['id'])) {
171
+                    wpinv_register_settings_option($tab, $section, $option);
172 172
                 }
173 173
             }
174 174
 }
175 175
     }
176 176
 
177 177
     // Creates our settings in the options table.
178
-    register_setting( 'wpinv_settings', 'wpinv_settings', 'wpinv_settings_sanitize' );
178
+    register_setting('wpinv_settings', 'wpinv_settings', 'wpinv_settings_sanitize');
179 179
 }
180
-add_action( 'admin_init', 'wpinv_register_settings' );
180
+add_action('admin_init', 'wpinv_register_settings');
181 181
 
182 182
 /**
183 183
  * Register a single settings option.
@@ -187,49 +187,49 @@  discard block
 block discarded – undo
187 187
  * @param string $option
188 188
  *
189 189
  */
190
-function wpinv_register_settings_option( $tab, $section, $option ) {
190
+function wpinv_register_settings_option($tab, $section, $option) {
191 191
 
192
-    $name       = isset( $option['name'] ) ? $option['name'] : '';
192
+    $name       = isset($option['name']) ? $option['name'] : '';
193 193
     $cb         = "wpinv_{$option['type']}_callback";
194 194
     $section    = "wpinv_settings_{$tab}_$section";
195
-	$is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page'];
195
+	$is_wizzard = is_admin() && isset($_GET['page']) && 'gp-setup' == $_GET['page'];
196 196
 
197
-	if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) {
198
-		$tip   = wpinv_clean( $option['desc'] );
197
+	if (isset($option['desc']) && (!$is_wizzard && !empty($option['help-tip']))) {
198
+		$tip   = wpinv_clean($option['desc']);
199 199
 		$name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>";
200
-		unset( $option['desc'] );
200
+		unset($option['desc']);
201 201
 	}
202 202
 
203 203
     // Loop through all tabs.
204 204
     add_settings_field(
205 205
         'wpinv_settings[' . $option['id'] . ']',
206 206
         $name,
207
-        function_exists( $cb ) ? $cb : 'wpinv_missing_callback',
207
+        function_exists($cb) ? $cb : 'wpinv_missing_callback',
208 208
         $section,
209 209
         $section,
210 210
         array(
211 211
             'section'         => $section,
212
-            'id'              => isset( $option['id'] ) ? $option['id'] : uniqid( 'wpinv-' ),
213
-            'desc'            => isset( $option['desc'] ) ? $option['desc'] : '',
212
+            'id'              => isset($option['id']) ? $option['id'] : uniqid('wpinv-'),
213
+            'desc'            => isset($option['desc']) ? $option['desc'] : '',
214 214
             'name'            => $name,
215
-            'size'            => isset( $option['size'] ) ? $option['size'] : null,
216
-            'options'         => isset( $option['options'] ) ? $option['options'] : '',
217
-            'selected'        => isset( $option['selected'] ) ? $option['selected'] : null,
218
-            'std'             => isset( $option['std'] ) ? $option['std'] : '',
219
-            'min'             => isset( $option['min'] ) ? $option['min'] : 0,
220
-            'max'             => isset( $option['max'] ) ? $option['max'] : 999999,
221
-            'step'            => isset( $option['step'] ) ? $option['step'] : 1,
222
-            'placeholder'     => isset( $option['placeholder'] ) ? $option['placeholder'] : null,
223
-            'allow_blank'     => isset( $option['allow_blank'] ) ? $option['allow_blank'] : true,
224
-            'readonly'        => isset( $option['readonly'] ) ? $option['readonly'] : false,
225
-            'faux'            => isset( $option['faux'] ) ? $option['faux'] : false,
226
-            'onchange'        => isset( $option['onchange'] ) ? $option['onchange'] : '',
227
-            'custom'          => isset( $option['custom'] ) ? $option['custom'] : '',
228
-			'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '',
229
-			'class'           => isset( $option['class'] ) ? $option['class'] : '',
230
-			'style'           => isset( $option['style'] ) ? $option['style'] : '',
231
-            'cols'            => isset( $option['cols'] ) && (int) $option['cols'] > 0 ? (int) $option['cols'] : 50,
232
-            'rows'            => isset( $option['rows'] ) && (int) $option['rows'] > 0 ? (int) $option['rows'] : 5,
215
+            'size'            => isset($option['size']) ? $option['size'] : null,
216
+            'options'         => isset($option['options']) ? $option['options'] : '',
217
+            'selected'        => isset($option['selected']) ? $option['selected'] : null,
218
+            'std'             => isset($option['std']) ? $option['std'] : '',
219
+            'min'             => isset($option['min']) ? $option['min'] : 0,
220
+            'max'             => isset($option['max']) ? $option['max'] : 999999,
221
+            'step'            => isset($option['step']) ? $option['step'] : 1,
222
+            'placeholder'     => isset($option['placeholder']) ? $option['placeholder'] : null,
223
+            'allow_blank'     => isset($option['allow_blank']) ? $option['allow_blank'] : true,
224
+            'readonly'        => isset($option['readonly']) ? $option['readonly'] : false,
225
+            'faux'            => isset($option['faux']) ? $option['faux'] : false,
226
+            'onchange'        => isset($option['onchange']) ? $option['onchange'] : '',
227
+            'custom'          => isset($option['custom']) ? $option['custom'] : '',
228
+			'default_content' => isset($option['default_content']) ? $option['default_content'] : '',
229
+			'class'           => isset($option['class']) ? $option['class'] : '',
230
+			'style'           => isset($option['style']) ? $option['style'] : '',
231
+            'cols'            => isset($option['cols']) && (int) $option['cols'] > 0 ? (int) $option['cols'] : 50,
232
+            'rows'            => isset($option['rows']) && (int) $option['rows'] > 0 ? (int) $option['rows'] : 5,
233 233
         )
234 234
     );
235 235
 
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
  * @return array
242 242
  */
243 243
 function wpinv_get_registered_settings() {
244
-	return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) );
244
+	return array_filter(apply_filters('wpinv_registered_settings', wpinv_get_data('admin-settings')));
245 245
 }
246 246
 
247 247
 /**
@@ -250,7 +250,7 @@  discard block
 block discarded – undo
250 250
  * @return array
251 251
  */
252 252
 function getpaid_get_integration_settings() {
253
-    return apply_filters( 'getpaid_integration_settings', array() );
253
+    return apply_filters('getpaid_integration_settings', array());
254 254
 }
255 255
 
256 256
 /**
@@ -258,153 +258,153 @@  discard block
 block discarded – undo
258 258
  *
259 259
  * @return array
260 260
  */
261
-function wpinv_settings_sanitize( $input = array() ) {
261
+function wpinv_settings_sanitize($input = array()) {
262 262
 
263 263
 	$wpinv_options = wpinv_get_options();
264 264
 	$raw_referrer  = wp_get_raw_referer();
265 265
 
266
-    if ( empty( $raw_referrer ) ) {
267
-		return array_merge( $wpinv_options, $input );
266
+    if (empty($raw_referrer)) {
267
+		return array_merge($wpinv_options, $input);
268 268
     }
269 269
 
270
-    wp_parse_str( $raw_referrer, $referrer );
270
+    wp_parse_str($raw_referrer, $referrer);
271 271
 
272
-	if ( in_array( 'gp-setup', $referrer ) ) {
273
-		return array_merge( $wpinv_options, $input );
272
+	if (in_array('gp-setup', $referrer)) {
273
+		return array_merge($wpinv_options, $input);
274 274
 	}
275 275
 
276 276
     $settings = wpinv_get_registered_settings();
277
-    $tab      = isset( $referrer['tab'] ) ? $referrer['tab'] : 'general';
278
-    $section  = isset( $referrer['section'] ) ? $referrer['section'] : 'main';
277
+    $tab      = isset($referrer['tab']) ? $referrer['tab'] : 'general';
278
+    $section  = isset($referrer['section']) ? $referrer['section'] : 'main';
279 279
 
280 280
     $input = $input ? $input : array();
281
-    $input = apply_filters( 'wpinv_settings_tab_' . $tab . '_sanitize', $input );
282
-    $input = apply_filters( 'wpinv_settings_' . $tab . '-' . $section . '_sanitize', $input );
281
+    $input = apply_filters('wpinv_settings_tab_' . $tab . '_sanitize', $input);
282
+    $input = apply_filters('wpinv_settings_' . $tab . '-' . $section . '_sanitize', $input);
283 283
 
284 284
     // Loop through each setting being saved and pass it through a sanitization filter
285
-    foreach ( $input as $key => $value ) {
285
+    foreach ($input as $key => $value) {
286 286
 
287 287
         // Get the setting type (checkbox, select, etc)
288
-        $type = isset( $settings[ $tab ][ $section ][ $key ]['type'] ) ? $settings[ $tab ][ $section ][ $key ]['type'] : false;
288
+        $type = isset($settings[$tab][$section][$key]['type']) ? $settings[$tab][$section][$key]['type'] : false;
289 289
 
290
-        if ( $type ) {
290
+        if ($type) {
291 291
             // Field type specific filter
292
-            $input[ $key ] = apply_filters( "wpinv_settings_sanitize_$type", $value, $key );
292
+            $input[$key] = apply_filters("wpinv_settings_sanitize_$type", $value, $key);
293 293
         }
294 294
 
295 295
         // General filter
296
-		$input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key );
296
+		$input[$key] = apply_filters('wpinv_settings_sanitize', $input[$key], $key);
297 297
 
298 298
 		// Key specific filter.
299
-		$input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] );
299
+		$input[$key] = apply_filters("wpinv_settings_sanitize_$key", $input[$key]);
300 300
     }
301 301
 
302 302
     // Loop through the whitelist and unset any that are empty for the tab being saved
303
-    $main_settings    = isset( $settings[ $tab ] ) ? $settings[ $tab ] : array(); // Check for extensions that aren't using new sections
304
-    $section_settings = ! empty( $settings[ $tab ][ $section ] ) ? $settings[ $tab ][ $section ] : array();
303
+    $main_settings    = isset($settings[$tab]) ? $settings[$tab] : array(); // Check for extensions that aren't using new sections
304
+    $section_settings = !empty($settings[$tab][$section]) ? $settings[$tab][$section] : array();
305 305
 
306
-    $found_settings   = array_merge( $main_settings, $section_settings );
306
+    $found_settings   = array_merge($main_settings, $section_settings);
307 307
 
308
-    if ( ! empty( $found_settings ) ) {
309
-        foreach ( $found_settings as $key => $value ) {
308
+    if (!empty($found_settings)) {
309
+        foreach ($found_settings as $key => $value) {
310 310
 
311 311
             // settings used to have numeric keys, now they have keys that match the option ID. This ensures both methods work
312
-            if ( is_numeric( $key ) ) {
312
+            if (is_numeric($key)) {
313 313
                 $key = $value['id'];
314 314
             }
315 315
 
316
-            if ( ! isset( $input[ $key ] ) && isset( $wpinv_options[ $key ] ) ) {
317
-                unset( $wpinv_options[ $key ] );
316
+            if (!isset($input[$key]) && isset($wpinv_options[$key])) {
317
+                unset($wpinv_options[$key]);
318 318
             }
319 319
         }
320 320
     }
321 321
 
322 322
     // Merge our new settings with the existing
323
-    $output = array_merge( $wpinv_options, $input );
323
+    $output = array_merge($wpinv_options, $input);
324 324
 
325
-    add_settings_error( 'wpinv-notices', '', __( 'Settings updated.', 'invoicing' ), 'updated' );
325
+    add_settings_error('wpinv-notices', '', __('Settings updated.', 'invoicing'), 'updated');
326 326
 
327 327
     return $output;
328 328
 }
329
-add_filter( 'wpinv_settings_sanitize_text', 'trim', 10, 1 );
330
-add_filter( 'wpinv_settings_sanitize_tax_rate', 'wpinv_sanitize_amount' );
329
+add_filter('wpinv_settings_sanitize_text', 'trim', 10, 1);
330
+add_filter('wpinv_settings_sanitize_tax_rate', 'wpinv_sanitize_amount');
331 331
 
332
-function wpinv_settings_sanitize_tax_rates( $input ) {
333
-    if ( ! wpinv_current_user_can_manage_invoicing() ) {
332
+function wpinv_settings_sanitize_tax_rates($input) {
333
+    if (!wpinv_current_user_can_manage_invoicing()) {
334 334
         return $input;
335 335
     }
336 336
 
337
-    $new_rates = ! empty( $_POST['tax_rates'] ) ? wp_kses_post_deep( array_values( $_POST['tax_rates'] ) ) : array();
337
+    $new_rates = !empty($_POST['tax_rates']) ? wp_kses_post_deep(array_values($_POST['tax_rates'])) : array();
338 338
     $tax_rates = array();
339 339
 
340
-    foreach ( $new_rates as $rate ) {
340
+    foreach ($new_rates as $rate) {
341 341
 
342
-		$rate['rate']    = wpinv_sanitize_amount( $rate['rate'] );
343
-		$rate['name']    = sanitize_text_field( $rate['name'] );
344
-		$rate['state']   = sanitize_text_field( $rate['state'] );
345
-		$rate['country'] = sanitize_text_field( $rate['country'] );
346
-		$rate['global']  = empty( $rate['state'] );
342
+		$rate['rate']    = wpinv_sanitize_amount($rate['rate']);
343
+		$rate['name']    = sanitize_text_field($rate['name']);
344
+		$rate['state']   = sanitize_text_field($rate['state']);
345
+		$rate['country'] = sanitize_text_field($rate['country']);
346
+		$rate['global']  = empty($rate['state']);
347 347
 		$tax_rates[]     = $rate;
348 348
 
349 349
 	}
350 350
 
351
-    update_option( 'wpinv_tax_rates', $tax_rates );
351
+    update_option('wpinv_tax_rates', $tax_rates);
352 352
 
353 353
     return $input;
354 354
 }
355
-add_filter( 'wpinv_settings_taxes-rates_sanitize', 'wpinv_settings_sanitize_tax_rates' );
355
+add_filter('wpinv_settings_taxes-rates_sanitize', 'wpinv_settings_sanitize_tax_rates');
356 356
 
357
-function wpinv_settings_sanitize_tax_rules( $input ) {
358
-    if ( ! wpinv_current_user_can_manage_invoicing() ) {
357
+function wpinv_settings_sanitize_tax_rules($input) {
358
+    if (!wpinv_current_user_can_manage_invoicing()) {
359 359
         return $input;
360 360
     }
361 361
 
362
-	if ( empty( $_POST['wpinv_tax_rules_nonce'] ) || ! wp_verify_nonce( $_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules' ) ) {
362
+	if (empty($_POST['wpinv_tax_rules_nonce']) || !wp_verify_nonce($_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules')) {
363 363
 		return $input;
364 364
 	}
365 365
 
366
-    $new_rules = ! empty( $_POST['tax_rules'] ) ? wp_kses_post_deep( array_values( $_POST['tax_rules'] ) ) : array();
366
+    $new_rules = !empty($_POST['tax_rules']) ? wp_kses_post_deep(array_values($_POST['tax_rules'])) : array();
367 367
     $tax_rules = array();
368 368
 
369
-    foreach ( $new_rules as $rule ) {
369
+    foreach ($new_rules as $rule) {
370 370
 
371
-		$rule['key']      = sanitize_title_with_dashes( $rule['key'] );
372
-		$rule['label']    = sanitize_text_field( $rule['label'] );
373
-		$rule['tax_base'] = sanitize_text_field( $rule['tax_base'] );
371
+		$rule['key']      = sanitize_title_with_dashes($rule['key']);
372
+		$rule['label']    = sanitize_text_field($rule['label']);
373
+		$rule['tax_base'] = sanitize_text_field($rule['tax_base']);
374 374
 		$tax_rules[]      = $rule;
375 375
 
376 376
 	}
377 377
 
378
-    update_option( 'wpinv_tax_rules', $tax_rules );
378
+    update_option('wpinv_tax_rules', $tax_rules);
379 379
 
380 380
     return $input;
381 381
 }
382
-add_filter( 'wpinv_settings_taxes-rules_sanitize', 'wpinv_settings_sanitize_tax_rules' );
382
+add_filter('wpinv_settings_taxes-rules_sanitize', 'wpinv_settings_sanitize_tax_rules');
383 383
 
384 384
 function wpinv_get_settings_tabs() {
385 385
     $tabs             = array();
386
-    $tabs['general']  = __( 'General', 'invoicing' );
387
-    $tabs['gateways'] = __( 'Payment Gateways', 'invoicing' );
388
-    $tabs['taxes']    = __( 'Taxes', 'invoicing' );
389
-	$tabs['emails']   = __( 'Emails', 'invoicing' );
386
+    $tabs['general']  = __('General', 'invoicing');
387
+    $tabs['gateways'] = __('Payment Gateways', 'invoicing');
388
+    $tabs['taxes']    = __('Taxes', 'invoicing');
389
+	$tabs['emails'] = __('Emails', 'invoicing');
390 390
 
391
-	if ( count( getpaid_get_integration_settings() ) > 0 ) {
392
-		$tabs['integrations'] = __( 'Integrations', 'invoicing' );
391
+	if (count(getpaid_get_integration_settings()) > 0) {
392
+		$tabs['integrations'] = __('Integrations', 'invoicing');
393 393
 	}
394 394
 
395
-    $tabs['privacy']  = __( 'Privacy', 'invoicing' );
396
-    $tabs['misc']     = __( 'Misc', 'invoicing' );
397
-    $tabs['tools']    = __( 'Tools', 'invoicing' );
395
+    $tabs['privacy']  = __('Privacy', 'invoicing');
396
+    $tabs['misc']     = __('Misc', 'invoicing');
397
+    $tabs['tools']    = __('Tools', 'invoicing');
398 398
 
399
-    return apply_filters( 'wpinv_settings_tabs', $tabs );
399
+    return apply_filters('wpinv_settings_tabs', $tabs);
400 400
 }
401 401
 
402
-function wpinv_get_settings_tab_sections( $tab = false ) {
402
+function wpinv_get_settings_tab_sections($tab = false) {
403 403
     $tabs     = false;
404 404
     $sections = wpinv_get_registered_settings_sections();
405 405
 
406
-    if ( $tab && ! empty( $sections[ $tab ] ) ) {
407
-        $tabs = $sections[ $tab ];
406
+    if ($tab && !empty($sections[$tab])) {
407
+        $tabs = $sections[$tab];
408 408
     }
409 409
 
410 410
     return $tabs;
@@ -413,7 +413,7 @@  discard block
 block discarded – undo
413 413
 function wpinv_get_registered_settings_sections() {
414 414
     static $sections = false;
415 415
 
416
-    if ( false !== $sections ) {
416
+    if (false !== $sections) {
417 417
         return $sections;
418 418
     }
419 419
 
@@ -421,231 +421,231 @@  discard block
 block discarded – undo
421 421
         'general'      => apply_filters(
422 422
             'wpinv_settings_sections_general',
423 423
             array(
424
-				'main'             => __( 'General Settings', 'invoicing' ),
425
-				'page_section'     => __( 'Page Settings', 'invoicing' ),
426
-				'currency_section' => __( 'Currency Settings', 'invoicing' ),
427
-				'labels'           => __( 'Label Texts', 'invoicing' ),
424
+				'main'             => __('General Settings', 'invoicing'),
425
+				'page_section'     => __('Page Settings', 'invoicing'),
426
+				'currency_section' => __('Currency Settings', 'invoicing'),
427
+				'labels'           => __('Label Texts', 'invoicing'),
428 428
             )
429 429
         ),
430 430
         'gateways'     => apply_filters(
431 431
             'wpinv_settings_sections_gateways',
432 432
             array(
433
-				'main' => __( 'Gateway Settings', 'invoicing' ),
433
+				'main' => __('Gateway Settings', 'invoicing'),
434 434
             )
435 435
         ),
436 436
         'taxes'        => apply_filters(
437 437
             'wpinv_settings_sections_taxes',
438 438
             array(
439
-				'main'  => __( 'Tax Settings', 'invoicing' ),
440
-				'rules' => __( 'Tax Rules', 'invoicing' ),
441
-				'rates' => __( 'Tax Rates', 'invoicing' ),
442
-				'vat'   => __( 'EU VAT Settings', 'invoicing' ),
439
+				'main'  => __('Tax Settings', 'invoicing'),
440
+				'rules' => __('Tax Rules', 'invoicing'),
441
+				'rates' => __('Tax Rates', 'invoicing'),
442
+				'vat'   => __('EU VAT Settings', 'invoicing'),
443 443
             )
444 444
         ),
445 445
         'emails'       => apply_filters(
446 446
             'wpinv_settings_sections_emails',
447 447
             array(
448
-				'main' => __( 'Email Settings', 'invoicing' ),
448
+				'main' => __('Email Settings', 'invoicing'),
449 449
             )
450 450
         ),
451 451
 
452
-		'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ),
452
+		'integrations' => wp_list_pluck(getpaid_get_integration_settings(), 'label', 'id'),
453 453
 
454 454
         'privacy'      => apply_filters(
455 455
             'wpinv_settings_sections_privacy',
456 456
             array(
457
-				'main' => __( 'Privacy policy', 'invoicing' ),
457
+				'main' => __('Privacy policy', 'invoicing'),
458 458
             )
459 459
         ),
460 460
         'misc'         => apply_filters(
461 461
             'wpinv_settings_sections_misc',
462 462
             array(
463
-				'main'       => __( 'Miscellaneous', 'invoicing' ),
464
-				'custom-css' => __( 'Custom CSS', 'invoicing' ),
463
+				'main'       => __('Miscellaneous', 'invoicing'),
464
+				'custom-css' => __('Custom CSS', 'invoicing'),
465 465
             )
466 466
         ),
467 467
         'tools'        => apply_filters(
468 468
             'wpinv_settings_sections_tools',
469 469
             array(
470
-				'main' => __( 'Diagnostic Tools', 'invoicing' ),
470
+				'main' => __('Diagnostic Tools', 'invoicing'),
471 471
             )
472 472
         ),
473 473
     );
474 474
 
475
-    $sections = apply_filters( 'wpinv_settings_sections', $sections );
475
+    $sections = apply_filters('wpinv_settings_sections', $sections);
476 476
 
477 477
     return $sections;
478 478
 }
479 479
 
480
-function wpinv_get_pages( $with_slug = false, $default_label = null ) {
480
+function wpinv_get_pages($with_slug = false, $default_label = null) {
481 481
 	$pages_options = array();
482 482
 
483
-	if ( $default_label !== null && $default_label !== false ) {
484
-		$pages_options = array( '' => $default_label ); // Blank option
483
+	if ($default_label !== null && $default_label !== false) {
484
+		$pages_options = array('' => $default_label); // Blank option
485 485
 	}
486 486
 
487 487
 	$pages = get_pages();
488
-	if ( $pages ) {
489
-		foreach ( $pages as $page ) {
488
+	if ($pages) {
489
+		foreach ($pages as $page) {
490 490
 			$title = $with_slug ? $page->post_title . ' (' . $page->post_name . ')' : $page->post_title;
491
-            $pages_options[ $page->ID ] = $title;
491
+            $pages_options[$page->ID] = $title;
492 492
 		}
493 493
 	}
494 494
 
495 495
 	return $pages_options;
496 496
 }
497 497
 
498
-function wpinv_header_callback( $args ) {
499
-	if ( ! empty( $args['desc'] ) ) {
500
-        echo wp_kses_post( $args['desc'] );
498
+function wpinv_header_callback($args) {
499
+	if (!empty($args['desc'])) {
500
+        echo wp_kses_post($args['desc']);
501 501
     }
502 502
 }
503 503
 
504
-function wpinv_hidden_callback( $args ) {
504
+function wpinv_hidden_callback($args) {
505 505
 
506
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
507
-	$value   = wpinv_get_option( $args['id'], $std );
506
+	$std     = isset($args['std']) ? $args['std'] : '';
507
+	$value   = wpinv_get_option($args['id'], $std);
508 508
 
509
-	if ( isset( $args['set_value'] ) ) {
509
+	if (isset($args['set_value'])) {
510 510
 		$value = $args['set_value'];
511 511
 	}
512 512
 
513
-	if ( isset( $args['faux'] ) && true === $args['faux'] ) {
513
+	if (isset($args['faux']) && true === $args['faux']) {
514 514
 		$args['readonly'] = true;
515
-		$name  = '';
515
+		$name = '';
516 516
 	} else {
517
-		$name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']';
517
+		$name = 'wpinv_settings[' . esc_attr($args['id']) . ']';
518 518
 	}
519 519
 
520
-	echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />';
520
+	echo '<input type="hidden" id="wpinv_settings[' . esc_attr($args['id']) . ']" name="' . esc_attr($name) . '" value="' . esc_attr(stripslashes($value)) . '" />';
521 521
 
522 522
 }
523 523
 
524 524
 /**
525 525
  * Displays a checkbox settings callback.
526 526
  */
527
-function wpinv_checkbox_callback( $args ) {
527
+function wpinv_checkbox_callback($args) {
528 528
 
529
-	$std = isset( $args['std'] ) ? $args['std'] : '';
530
-	$std = wpinv_get_option( $args['id'], $std );
531
-	$id  = esc_attr( $args['id'] );
529
+	$std = isset($args['std']) ? $args['std'] : '';
530
+	$std = wpinv_get_option($args['id'], $std);
531
+	$id  = esc_attr($args['id']);
532 532
 
533
-	getpaid_hidden_field( "wpinv_settings[$id]", '0' );
533
+	getpaid_hidden_field("wpinv_settings[$id]", '0');
534 534
 	?>
535 535
 		<fieldset>
536 536
 			<label>
537
-				<input id="wpinv-settings-<?php echo esc_attr( $id ); ?>" name="wpinv_settings[<?php echo esc_attr( $id ); ?>]" <?php checked( empty( $std ), false ); ?> value="1" type="checkbox" />
538
-				<?php echo wp_kses_post( $args['desc'] ); ?>
537
+				<input id="wpinv-settings-<?php echo esc_attr($id); ?>" name="wpinv_settings[<?php echo esc_attr($id); ?>]" <?php checked(empty($std), false); ?> value="1" type="checkbox" />
538
+				<?php echo wp_kses_post($args['desc']); ?>
539 539
 			</label>
540 540
 		</fieldset>
541 541
 	<?php
542 542
 }
543 543
 
544
-function wpinv_multicheck_callback( $args ) {
544
+function wpinv_multicheck_callback($args) {
545 545
 
546
-	$sanitize_id = wpinv_sanitize_key( $args['id'] );
547
-	$class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
546
+	$sanitize_id = wpinv_sanitize_key($args['id']);
547
+	$class = !empty($args['class']) ? ' ' . esc_attr($args['class']) : '';
548 548
 
549
-	if ( ! empty( $args['options'] ) ) {
549
+	if (!empty($args['options'])) {
550 550
 
551
-		$std     = isset( $args['std'] ) ? $args['std'] : array();
552
-		$value   = wpinv_get_option( $args['id'], $std );
551
+		$std     = isset($args['std']) ? $args['std'] : array();
552
+		$value   = wpinv_get_option($args['id'], $std);
553 553
 
554
-		echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">';
555
-        foreach ( $args['options'] as $key => $option ) :
556
-			$sanitize_key = esc_attr( wpinv_sanitize_key( $key ) );
557
-			if ( in_array( $sanitize_key, $value ) ) {
554
+		echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr($sanitize_id . $class) . '">';
555
+        foreach ($args['options'] as $key => $option) :
556
+			$sanitize_key = esc_attr(wpinv_sanitize_key($key));
557
+			if (in_array($sanitize_key, $value)) {
558 558
 				$enabled = $sanitize_key;
559 559
 			} else {
560 560
 				$enabled = null;
561 561
 			}
562
-			echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/>&nbsp;';
563
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>';
562
+			echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" id="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" type="checkbox" value="' . esc_attr($sanitize_key) . '" ' . checked($sanitize_key, $enabled, false) . '/>&nbsp;';
563
+			echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']">' . wp_kses_post($option) . '</label></div>';
564 564
 		endforeach;
565 565
 		echo '</div>';
566
-		echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>';
566
+		echo '<p class="description">' . wp_kses_post($args['desc']) . '</p>';
567 567
 	}
568 568
 }
569 569
 
570
-function wpinv_payment_icons_callback( $args ) {
570
+function wpinv_payment_icons_callback($args) {
571 571
 
572
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
573
-	$value   = wpinv_get_option( $args['id'], false );
572
+    $sanitize_id = wpinv_sanitize_key($args['id']);
573
+	$value = wpinv_get_option($args['id'], false);
574 574
 
575
-	if ( ! empty( $args['options'] ) ) {
576
-		foreach ( $args['options'] as $key => $option ) {
577
-            $sanitize_key = wpinv_sanitize_key( $key );
575
+	if (!empty($args['options'])) {
576
+		foreach ($args['options'] as $key => $option) {
577
+            $sanitize_key = wpinv_sanitize_key($key);
578 578
 
579
-			if ( empty( $value ) ) {
579
+			if (empty($value)) {
580 580
 				$enabled = $option;
581 581
 			} else {
582 582
 				$enabled = null;
583 583
 			}
584 584
 
585
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
585
+			echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
586 586
 
587
-				echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
587
+				echo '<input name="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" id="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" type="checkbox" value="' . esc_attr($option) . '" ' . checked($option, $enabled, false) . '/>&nbsp;';
588 588
 
589
-				if ( wpinv_string_is_image_url( $key ) ) {
590
-				echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
589
+				if (wpinv_string_is_image_url($key)) {
590
+				echo '<img class="payment-icon" src="' . esc_url($key) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
591 591
 				} else {
592
-				$card = strtolower( str_replace( ' ', '', $option ) );
592
+				$card = strtolower(str_replace(' ', '', $option));
593 593
 
594
-				if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) {
595
-					$image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' );
594
+				if (has_filter('wpinv_accepted_payment_' . $card . '_image')) {
595
+					$image = apply_filters('wpinv_accepted_payment_' . $card . '_image', '');
596 596
 					} else {
597
-					$image       = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false );
597
+					$image       = wpinv_locate_template('images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false);
598 598
 					$content_dir = WP_CONTENT_DIR;
599 599
 
600
-					if ( function_exists( 'wp_normalize_path' ) ) {
600
+					if (function_exists('wp_normalize_path')) {
601 601
 						// Replaces backslashes with forward slashes for Windows systems
602
-						$image = wp_normalize_path( $image );
603
-						$content_dir = wp_normalize_path( $content_dir );
602
+						$image = wp_normalize_path($image);
603
+						$content_dir = wp_normalize_path($content_dir);
604 604
 						}
605 605
 
606
-					$image = str_replace( $content_dir, content_url(), $image );
606
+					$image = str_replace($content_dir, content_url(), $image);
607 607
 					}
608 608
 
609
-				echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
609
+				echo '<img class="payment-icon" src="' . esc_url($image) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
610 610
 				}
611
-			echo wp_kses_post( $option ) . '</label>';
611
+			echo wp_kses_post($option) . '</label>';
612 612
 		}
613
-		echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>';
613
+		echo '<p class="description" style="margin-top:16px;">' . wp_kses_post($args['desc']) . '</p>';
614 614
 	}
615 615
 }
616 616
 
617 617
 /**
618 618
  * Displays a radio settings field.
619 619
  */
620
-function wpinv_radio_callback( $args ) {
620
+function wpinv_radio_callback($args) {
621 621
 
622
-	$std = isset( $args['std'] ) ? $args['std'] : '';
623
-	$std = wpinv_get_option( $args['id'], $std );
622
+	$std = isset($args['std']) ? $args['std'] : '';
623
+	$std = wpinv_get_option($args['id'], $std);
624 624
 	?>
625 625
 		<fieldset>
626
-			<ul id="wpinv-settings-<?php echo esc_attr( $args['id'] ); ?>" style="margin-top: 0;">
627
-				<?php foreach ( $args['options'] as $key => $option ) : ?>
626
+			<ul id="wpinv-settings-<?php echo esc_attr($args['id']); ?>" style="margin-top: 0;">
627
+				<?php foreach ($args['options'] as $key => $option) : ?>
628 628
 					<li>
629 629
 						<label>
630
-							<input name="wpinv_settings[<?php echo esc_attr( $args['id'] ); ?>]" <?php checked( $std, $key ); ?> value="<?php echo esc_attr( $key ); ?>" type="radio">
631
-							<?php echo wp_kses_post( $option ); ?>
630
+							<input name="wpinv_settings[<?php echo esc_attr($args['id']); ?>]" <?php checked($std, $key); ?> value="<?php echo esc_attr($key); ?>" type="radio">
631
+							<?php echo wp_kses_post($option); ?>
632 632
 						</label>
633 633
 					</li>
634 634
 				<?php endforeach; ?>
635 635
 			</ul>
636 636
 		</fieldset>
637 637
 	<?php
638
-	getpaid_settings_description_callback( $args );
638
+	getpaid_settings_description_callback($args);
639 639
 }
640 640
 
641 641
 /**
642 642
  * Displays a description if available.
643 643
  */
644
-function getpaid_settings_description_callback( $args ) {
644
+function getpaid_settings_description_callback($args) {
645 645
 
646
-	if ( ! empty( $args['desc'] ) ) {
646
+	if (!empty($args['desc'])) {
647 647
 		$description = $args['desc'];
648
-		echo wp_kses_post( "<p class='description'>$description</p>" );
648
+		echo wp_kses_post("<p class='description'>$description</p>");
649 649
 	}
650 650
 
651 651
 }
@@ -660,35 +660,35 @@  discard block
 block discarded – undo
660 660
 	</tr>
661 661
 	<tr class="bsui">
662 662
     	<td colspan="2" class="p-0">
663
-			<?php include plugin_dir_path( __FILE__ ) . 'views/html-gateways-edit.php'; ?>
663
+			<?php include plugin_dir_path(__FILE__) . 'views/html-gateways-edit.php'; ?>
664 664
 
665 665
 	<?php
666 666
 }
667 667
 
668
-function wpinv_gateway_select_callback( $args ) {
668
+function wpinv_gateway_select_callback($args) {
669 669
 
670
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
671
-    $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
672
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
673
-	$value   = wpinv_get_option( $args['id'], $std );
670
+    $sanitize_id = wpinv_sanitize_key($args['id']);
671
+    $class = !empty($args['class']) ? ' ' . esc_attr($args['class']) : '';
672
+	$std     = isset($args['std']) ? $args['std'] : '';
673
+	$value   = wpinv_get_option($args['id'], $std);
674 674
 
675
-	echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >';
675
+	echo '<select name="wpinv_settings[' . esc_attr($sanitize_id) . ']"" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" class="' . esc_attr($class) . '" >';
676 676
 
677
-	foreach ( $args['options'] as $key => $option ) :
677
+	foreach ($args['options'] as $key => $option) :
678 678
 
679
-		echo '<option value="' . esc_attr( $key ) . '" ';
679
+		echo '<option value="' . esc_attr($key) . '" ';
680 680
 
681
-		if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) {
682
-            selected( $key, $args['selected'] );
681
+		if (isset($args['selected']) && $args['selected'] !== null && $args['selected'] !== false) {
682
+            selected($key, $args['selected']);
683 683
         } else {
684
-            selected( $key, $value );
684
+            selected($key, $value);
685 685
         }
686 686
 
687
-		echo '>' . esc_html( $option['admin_label'] ) . '</option>';
687
+		echo '>' . esc_html($option['admin_label']) . '</option>';
688 688
 	endforeach;
689 689
 
690 690
 	echo '</select>';
691
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
691
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
692 692
 }
693 693
 
694 694
 /**
@@ -697,16 +697,16 @@  discard block
 block discarded – undo
697 697
  * @param array $args
698 698
  * @return string
699 699
  */
700
-function wpinv_settings_attrs_helper( $args ) {
700
+function wpinv_settings_attrs_helper($args) {
701 701
 
702
-	$value = isset( $args['std'] ) ? $args['std'] : '';
703
-	$id    = esc_attr( $args['id'] );
704
-	$value = is_scalar( $value ) ? $value : '';
702
+	$value = isset($args['std']) ? $args['std'] : '';
703
+	$id    = esc_attr($args['id']);
704
+	$value = is_scalar($value) ? $value : '';
705 705
 
706 706
 	$attrs = array(
707
-		'name'     => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]",
708
-		'readonly' => ! empty( $args['faux'] ),
709
-		'value'    => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ),
707
+		'name'     => !empty($args['faux']) ? false : "wpinv_settings[$id]",
708
+		'readonly' => !empty($args['faux']),
709
+		'value'    => !empty($args['faux']) ? $value : wpinv_get_option($args['id'], $value),
710 710
 		'id'       => 'wpinv-settings-' . $args['id'],
711 711
 		'style'    => $args['style'],
712 712
 		'class'    => $args['class'],
@@ -714,20 +714,20 @@  discard block
 block discarded – undo
714 714
 		'data-placeholder' => $args['placeholder'],
715 715
 	);
716 716
 
717
-	if ( ! empty( $args['onchange'] ) ) {
717
+	if (!empty($args['onchange'])) {
718 718
 		$attrs['onchange'] = $args['onchange'];
719 719
 	}
720 720
 
721
-	foreach ( $attrs as $key => $value ) {
721
+	foreach ($attrs as $key => $value) {
722 722
 
723
-		if ( false === $value ) {
723
+		if (false === $value) {
724 724
 			continue;
725 725
 		}
726 726
 
727
-		if ( true === $value ) {
728
-			echo ' ' . esc_attr( $key );
727
+		if (true === $value) {
728
+			echo ' ' . esc_attr($key);
729 729
 		} else {
730
-			echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
730
+			echo ' ' . esc_attr($key) . '="' . esc_attr($value) . '"';
731 731
 		}
732 732
 
733 733
 	}
@@ -737,14 +737,14 @@  discard block
 block discarded – undo
737 737
 /**
738 738
  * Displays a text input settings callback.
739 739
  */
740
-function wpinv_text_callback( $args ) {
740
+function wpinv_text_callback($args) {
741 741
 
742
-	$desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
742
+	$desc = empty($desc) ? '' : "<p class='description'>$desc</p>";
743 743
 
744 744
 	?>
745 745
 		<label style="width: 100%;">
746
-			<input type="text" <?php wpinv_settings_attrs_helper( $args ); ?>>
747
-			<?php echo wp_kses_post( $desc ); ?>
746
+			<input type="text" <?php wpinv_settings_attrs_helper($args); ?>>
747
+			<?php echo wp_kses_post($desc); ?>
748 748
 		</label>
749 749
 	<?php
750 750
 
@@ -753,176 +753,176 @@  discard block
 block discarded – undo
753 753
 /**
754 754
  * Displays a number input settings callback.
755 755
  */
756
-function wpinv_number_callback( $args ) {
756
+function wpinv_number_callback($args) {
757 757
 
758
-	$desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
758
+	$desc = empty($desc) ? '' : "<p class='description'>$desc</p>";
759 759
 
760 760
 	?>
761 761
 		<label style="width: 100%;">
762
-			<input type="number" step="<?php echo floatval( $args['step'] ); ?>" max="<?php echo intval( $args['max'] ); ?>" min="<?php echo intval( $args['min'] ); ?>" <?php wpinv_settings_attrs_helper( $args ); ?>>
763
-			<?php echo wp_kses_post( $desc ); ?>
762
+			<input type="number" step="<?php echo floatval($args['step']); ?>" max="<?php echo intval($args['max']); ?>" min="<?php echo intval($args['min']); ?>" <?php wpinv_settings_attrs_helper($args); ?>>
763
+			<?php echo wp_kses_post($desc); ?>
764 764
 		</label>
765 765
 	<?php
766 766
 
767 767
 }
768 768
 
769
-function wpinv_textarea_callback( $args ) {
769
+function wpinv_textarea_callback($args) {
770 770
 
771
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
772
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
773
-	$value   = wpinv_get_option( $args['id'], $std );
771
+    $sanitize_id = wpinv_sanitize_key($args['id']);
772
+	$std     = isset($args['std']) ? $args['std'] : '';
773
+	$value   = wpinv_get_option($args['id'], $std);
774 774
 
775
-    $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
776
-    $class = ( isset( $args['class'] ) && ! is_null( $args['class'] ) ) ? $args['class'] : 'large-text';
775
+    $size = (isset($args['size']) && !is_null($args['size'])) ? $args['size'] : 'regular';
776
+    $class = (isset($args['class']) && !is_null($args['class'])) ? $args['class'] : 'large-text';
777 777
 
778
-	echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
779
-	echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
778
+	echo '<textarea class="' . esc_attr($class) . ' txtarea-' . esc_attr($size) . ' wpi-' . esc_attr(sanitize_html_class($sanitize_id)) . ' " cols="' . esc_attr($args['cols']) . '" rows="' . esc_attr($args['rows']) . '" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']">' . esc_textarea(stripslashes($value)) . '</textarea>';
779
+	echo '<br /><label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
780 780
 
781 781
 }
782 782
 
783
-function wpinv_password_callback( $args ) {
783
+function wpinv_password_callback($args) {
784 784
 
785
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
786
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
787
-	$value   = wpinv_get_option( $args['id'], $std );
785
+    $sanitize_id = wpinv_sanitize_key($args['id']);
786
+	$std     = isset($args['std']) ? $args['std'] : '';
787
+	$value   = wpinv_get_option($args['id'], $std);
788 788
 
789
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
790
-	echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
791
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
789
+	$size = (isset($args['size']) && !is_null($args['size'])) ? $args['size'] : 'regular';
790
+	echo '<input type="password" class="' . esc_attr($size) . '-text" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" value="' . esc_attr($value) . '"/>';
791
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
792 792
 
793 793
 }
794 794
 
795
-function wpinv_missing_callback( $args ) {
795
+function wpinv_missing_callback($args) {
796 796
 	printf(
797
-		esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ),
798
-		'<strong>' . esc_html( $args['id'] ) . '</strong>'
797
+		esc_html__('The callback function used for the %s setting is missing.', 'invoicing'),
798
+		'<strong>' . esc_html($args['id']) . '</strong>'
799 799
 	);
800 800
 }
801 801
 
802 802
 /**
803 803
  * Displays a number input settings callback.
804 804
  */
805
-function wpinv_select_callback( $args ) {
805
+function wpinv_select_callback($args) {
806 806
 
807
-	$desc   = wp_kses_post( $args['desc'] );
808
-	$desc   = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
809
-	$value  = isset( $args['std'] ) ? $args['std'] : '';
810
-	$value  = wpinv_get_option( $args['id'], $value );
811
-	$rand   = uniqid( 'random_id' );
807
+	$desc   = wp_kses_post($args['desc']);
808
+	$desc   = empty($desc) ? '' : "<p class='description'>$desc</p>";
809
+	$value  = isset($args['std']) ? $args['std'] : '';
810
+	$value  = wpinv_get_option($args['id'], $value);
811
+	$rand   = uniqid('random_id');
812 812
 
813 813
 	?>
814 814
 		<label style="width: 100%;">
815
-			<select <?php wpinv_settings_attrs_helper( $args ); ?> data-allow-clear="true">
816
-				<?php foreach ( $args['options'] as $option => $name ) : ?>
817
-					<option value="<?php echo esc_attr( $option ); ?>" <?php echo selected( $option, $value ); ?>><?php echo esc_html( $name ); ?></option>
815
+			<select <?php wpinv_settings_attrs_helper($args); ?> data-allow-clear="true">
816
+				<?php foreach ($args['options'] as $option => $name) : ?>
817
+					<option value="<?php echo esc_attr($option); ?>" <?php echo selected($option, $value); ?>><?php echo esc_html($name); ?></option>
818 818
 				<?php endforeach; ?>
819 819
 			</select>
820 820
 
821
-			<?php if ( substr( $args['id'], -5 ) === '_page' && is_numeric( $value ) ) : ?>
822
-				<a href="<?php echo esc_url( get_edit_post_link( $value ) ); ?>" target="_blank" class="button getpaid-page-setting-edit"><?php esc_html_e( 'Edit Page', 'invoicing' ); ?></a>
821
+			<?php if (substr($args['id'], -5) === '_page' && is_numeric($value)) : ?>
822
+				<a href="<?php echo esc_url(get_edit_post_link($value)); ?>" target="_blank" class="button getpaid-page-setting-edit"><?php esc_html_e('Edit Page', 'invoicing'); ?></a>
823 823
 			<?php endif; ?>
824 824
 
825
-			<?php if ( substr( $args['id'], -5 ) === '_page' && ! empty( $args['default_content'] ) ) : ?>
826
-				&nbsp;<a href="#TB_inline?&width=400&height=550&inlineId=<?php echo esc_attr( $rand ); ?>" class="button thickbox getpaid-page-setting-view-default"><?php esc_html_e( 'View Default Content', 'invoicing' ); ?></a>
827
-				<div id='<?php echo esc_attr( $rand ); ?>' style='display:none;'>
825
+			<?php if (substr($args['id'], -5) === '_page' && !empty($args['default_content'])) : ?>
826
+				&nbsp;<a href="#TB_inline?&width=400&height=550&inlineId=<?php echo esc_attr($rand); ?>" class="button thickbox getpaid-page-setting-view-default"><?php esc_html_e('View Default Content', 'invoicing'); ?></a>
827
+				<div id='<?php echo esc_attr($rand); ?>' style='display:none;'>
828 828
 					<div>
829
-						<h3><?php esc_html_e( 'Original Content', 'invoicing' ); ?></h3>
830
-						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php echo wp_kses_post( gepaid_trim_lines( $args['default_content'] ) ); ?></textarea>
831
-						<h3><?php esc_html_e( 'Current Content', 'invoicing' ); ?></h3>
832
-						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php $_post = get_post( $value ); echo empty( $_post ) ? '' : wp_kses_post( gepaid_trim_lines( $_post->post_content ) ); ?></textarea>
829
+						<h3><?php esc_html_e('Original Content', 'invoicing'); ?></h3>
830
+						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php echo wp_kses_post(gepaid_trim_lines($args['default_content'])); ?></textarea>
831
+						<h3><?php esc_html_e('Current Content', 'invoicing'); ?></h3>
832
+						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php $_post = get_post($value); echo empty($_post) ? '' : wp_kses_post(gepaid_trim_lines($_post->post_content)); ?></textarea>
833 833
 					</div>
834 834
 				</div>
835 835
 			<?php endif; ?>
836 836
 
837
-			<?php echo wp_kses_post( $desc ); ?>
837
+			<?php echo wp_kses_post($desc); ?>
838 838
 		</label>
839 839
 	<?php
840 840
 
841 841
 }
842 842
 
843
-function wpinv_color_select_callback( $args ) {
843
+function wpinv_color_select_callback($args) {
844 844
 
845
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
846
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
847
-	$value   = wpinv_get_option( $args['id'], $std );
845
+    $sanitize_id = wpinv_sanitize_key($args['id']);
846
+	$std     = isset($args['std']) ? $args['std'] : '';
847
+	$value   = wpinv_get_option($args['id'], $std);
848 848
 
849
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>';
849
+	echo '<select id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']"/>';
850 850
 
851
-	foreach ( $args['options'] as $option => $color ) {
852
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>';
851
+	foreach ($args['options'] as $option => $color) {
852
+		echo '<option value="' . esc_attr($option) . '" ' . selected($option, $value) . '>' . esc_html($color['label']) . '</option>';
853 853
 	}
854 854
 
855 855
 	echo '</select>';
856
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
856
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
857 857
 
858 858
 }
859 859
 
860
-function wpinv_rich_editor_callback( $args ) {
860
+function wpinv_rich_editor_callback($args) {
861 861
 	global $wp_version;
862 862
 
863
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
863
+    $sanitize_id = wpinv_sanitize_key($args['id']);
864 864
 
865
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
866
-	$value   = wpinv_get_option( $args['id'], $std );
865
+	$std     = isset($args['std']) ? $args['std'] : '';
866
+	$value   = wpinv_get_option($args['id'], $std);
867 867
 
868
-	if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) {
868
+	if (!empty($args['allow_blank']) && empty($value)) {
869 869
 		$value = $std;
870 870
 	}
871 871
 
872
-	$rows = isset( $args['size'] ) ? $args['size'] : 20;
872
+	$rows = isset($args['size']) ? $args['size'] : 20;
873 873
 
874 874
 	echo '<div class="getpaid-settings-editor-input">';
875
-	if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) {
875
+	if ($wp_version >= 3.3 && function_exists('wp_editor')) {
876 876
 		wp_editor(
877
-            stripslashes( $value ),
878
-            'wpinv_settings_' . esc_attr( $args['id'] ),
877
+            stripslashes($value),
878
+            'wpinv_settings_' . esc_attr($args['id']),
879 879
             array(
880
-				'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']',
881
-				'textarea_rows' => absint( $rows ),
880
+				'textarea_name' => 'wpinv_settings[' . esc_attr($args['id']) . ']',
881
+				'textarea_rows' => absint($rows),
882 882
 				'media_buttons' => false,
883 883
             )
884 884
         );
885 885
 	} else {
886
-		echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
886
+		echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" class="wpi-' . esc_attr(sanitize_html_class($args['id'])) . '">' . esc_textarea(stripslashes($value)) . '</textarea>';
887 887
 	}
888 888
 
889
-	echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
889
+	echo '</div><br/><label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
890 890
 
891 891
 }
892 892
 
893
-function wpinv_upload_callback( $args ) {
893
+function wpinv_upload_callback($args) {
894 894
 
895
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
895
+    $sanitize_id = wpinv_sanitize_key($args['id']);
896 896
 
897
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
898
-	$value   = wpinv_get_option( $args['id'], $std );
897
+	$std     = isset($args['std']) ? $args['std'] : '';
898
+	$value   = wpinv_get_option($args['id'], $std);
899 899
 
900
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
901
-	echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
902
-	echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>';
903
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
900
+	$size = (isset($args['size']) && !is_null($args['size'])) ? $args['size'] : 'regular';
901
+	echo '<input type="text" class="' . sanitize_html_class($size) . '-text" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" value="' . esc_attr(stripslashes($value)) . '"/>';
902
+	echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__('Upload File', 'invoicing') . '"/></span>';
903
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
904 904
 
905 905
 }
906 906
 
907
-function wpinv_color_callback( $args ) {
907
+function wpinv_color_callback($args) {
908 908
 
909
-	$std         = isset( $args['std'] ) ? $args['std'] : '';
910
-	$value       = wpinv_get_option( $args['id'], $std );
911
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
909
+	$std         = isset($args['std']) ? $args['std'] : '';
910
+	$value       = wpinv_get_option($args['id'], $std);
911
+    $sanitize_id = wpinv_sanitize_key($args['id']);
912 912
 
913
-	echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />';
914
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
913
+	echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" value="' . esc_attr($value) . '" data-default-color="' . esc_attr($std) . '" />';
914
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
915 915
 
916 916
 }
917 917
 
918
-function wpinv_country_states_callback( $args ) {
918
+function wpinv_country_states_callback($args) {
919 919
 
920
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
921
-	$value   = wpinv_get_option( $args['id'], $std );
920
+	$std     = isset($args['std']) ? $args['std'] : '';
921
+	$value   = wpinv_get_option($args['id'], $std);
922 922
 
923
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
923
+    $sanitize_id = wpinv_sanitize_key($args['id']);
924 924
 
925
-	if ( isset( $args['placeholder'] ) ) {
925
+	if (isset($args['placeholder'])) {
926 926
 		$placeholder = $args['placeholder'];
927 927
 	} else {
928 928
 		$placeholder = '';
@@ -930,15 +930,15 @@  discard block
 block discarded – undo
930 930
 
931 931
 	$states = wpinv_get_country_states();
932 932
 
933
-	$class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2';
934
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>';
933
+	$class = empty($states) ? 'wpinv-no-states' : 'wpi_select2';
934
+	echo '<select id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" class="' . esc_attr($class) . '" data-placeholder="' . esc_html($placeholder) . '"/>';
935 935
 
936
-	foreach ( $states as $option => $name ) {
937
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>';
936
+	foreach ($states as $option => $name) {
937
+		echo '<option value="' . esc_attr($option) . '" ' . selected($option, $value) . '>' . esc_html($name) . '</option>';
938 938
 	}
939 939
 
940 940
 	echo '</select>';
941
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
941
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
942 942
 
943 943
 }
944 944
 
@@ -952,7 +952,7 @@  discard block
 block discarded – undo
952 952
 	</tr>
953 953
 	<tr class="bsui">
954 954
     	<td colspan="2" class="p-0">
955
-			<?php include plugin_dir_path( __FILE__ ) . 'views/html-tax-rates-edit.php'; ?>
955
+			<?php include plugin_dir_path(__FILE__) . 'views/html-tax-rates-edit.php'; ?>
956 956
 
957 957
 	<?php
958 958
 
@@ -961,11 +961,11 @@  discard block
 block discarded – undo
961 961
 /**
962 962
  * Displays a tax rate' edit row.
963 963
  */
964
-function wpinv_tax_rate_callback( $tax_rate, $key ) {
964
+function wpinv_tax_rate_callback($tax_rate, $key) {
965 965
 
966
-	$key                      = sanitize_key( $key );
967
-	$tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate'];
968
-	include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php';
966
+	$key                      = sanitize_key($key);
967
+	$tax_rate['reduced_rate'] = empty($tax_rate['reduced_rate']) ? 0 : $tax_rate['reduced_rate'];
968
+	include plugin_dir_path(__FILE__) . 'views/html-tax-rate-edit.php';
969 969
 
970 970
 }
971 971
 
@@ -979,158 +979,158 @@  discard block
 block discarded – undo
979 979
 	</tr>
980 980
 	<tr class="bsui">
981 981
     	<td colspan="2" class="p-0">
982
-			<?php include plugin_dir_path( __FILE__ ) . 'views/html-tax-rules-edit.php'; ?>
982
+			<?php include plugin_dir_path(__FILE__) . 'views/html-tax-rules-edit.php'; ?>
983 983
 
984 984
 	<?php
985 985
 
986 986
 }
987 987
 
988
-function wpinv_tools_callback( $args ) {
988
+function wpinv_tools_callback($args) {
989 989
     ?>
990 990
     </td><tr>
991 991
     <td colspan="2" class="wpinv_tools_tdbox">
992 992
     <?php
993
-    if ( $args['desc'] ) {
993
+    if ($args['desc']) {
994 994
 ?>
995
-<p><?php echo wp_kses_post( $args['desc'] ); ?></p><?php } ?>
996
-    <?php do_action( 'wpinv_tools_before' ); ?>
995
+<p><?php echo wp_kses_post($args['desc']); ?></p><?php } ?>
996
+    <?php do_action('wpinv_tools_before'); ?>
997 997
     <table id="wpinv_tools_table" class="wp-list-table widefat fixed posts">
998 998
         <thead>
999 999
             <tr>
1000
-                <th scope="col" class="wpinv-th-tool"><?php esc_html_e( 'Tool', 'invoicing' ); ?></th>
1001
-                <th scope="col" class="wpinv-th-desc"><?php esc_html_e( 'Description', 'invoicing' ); ?></th>
1002
-                <th scope="col" class="wpinv-th-action"><?php esc_html_e( 'Action', 'invoicing' ); ?></th>
1000
+                <th scope="col" class="wpinv-th-tool"><?php esc_html_e('Tool', 'invoicing'); ?></th>
1001
+                <th scope="col" class="wpinv-th-desc"><?php esc_html_e('Description', 'invoicing'); ?></th>
1002
+                <th scope="col" class="wpinv-th-action"><?php esc_html_e('Action', 'invoicing'); ?></th>
1003 1003
             </tr>
1004 1004
         </thead>
1005 1005
 
1006 1006
         <tbody>
1007 1007
 			<tr>
1008
-                <td><?php esc_html_e( 'Check Pages', 'invoicing' ); ?></td>
1008
+                <td><?php esc_html_e('Check Pages', 'invoicing'); ?></td>
1009 1009
                 <td>
1010
-                    <small><?php esc_html_e( 'Creates any missing GetPaid pages.', 'invoicing' ); ?></small>
1010
+                    <small><?php esc_html_e('Creates any missing GetPaid pages.', 'invoicing'); ?></small>
1011 1011
                 </td>
1012 1012
                 <td>
1013 1013
 					<a href="
1014 1014
                     <?php
1015 1015
 						echo esc_url(
1016 1016
 							wp_nonce_url(
1017
-								add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
1017
+								add_query_arg('getpaid-admin-action', 'create_missing_pages'),
1018 1018
 								'getpaid-nonce',
1019 1019
 								'getpaid-nonce'
1020 1020
 							)
1021 1021
 						);
1022 1022
 					?>
1023
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1023
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1024 1024
                 </td>
1025 1025
             </tr>
1026 1026
 			<tr>
1027
-                <td><?php esc_html_e( 'Create Database Tables', 'invoicing' ); ?></td>
1027
+                <td><?php esc_html_e('Create Database Tables', 'invoicing'); ?></td>
1028 1028
                 <td>
1029
-                    <small><?php esc_html_e( 'Run this tool to create any missing database tables.', 'invoicing' ); ?></small>
1029
+                    <small><?php esc_html_e('Run this tool to create any missing database tables.', 'invoicing'); ?></small>
1030 1030
                 </td>
1031 1031
                 <td>
1032 1032
 					<a href="
1033 1033
                     <?php
1034 1034
 						echo esc_url(
1035 1035
 							wp_nonce_url(
1036
-								add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ),
1036
+								add_query_arg('getpaid-admin-action', 'create_missing_tables'),
1037 1037
 								'getpaid-nonce',
1038 1038
 								'getpaid-nonce'
1039 1039
 							)
1040 1040
 						);
1041 1041
 					?>
1042
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1042
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1043 1043
                 </td>
1044 1044
             </tr>
1045 1045
 			<tr>
1046
-                <td><?php esc_html_e( 'Migrate old invoices', 'invoicing' ); ?></td>
1046
+                <td><?php esc_html_e('Migrate old invoices', 'invoicing'); ?></td>
1047 1047
                 <td>
1048
-                    <small><?php esc_html_e( 'If your old invoices were not migrated after updating from Invoicing to GetPaid, you can use this tool to migrate them.', 'invoicing' ); ?></small>
1048
+                    <small><?php esc_html_e('If your old invoices were not migrated after updating from Invoicing to GetPaid, you can use this tool to migrate them.', 'invoicing'); ?></small>
1049 1049
                 </td>
1050 1050
                 <td>
1051 1051
 					<a href="
1052 1052
                     <?php
1053 1053
 						echo esc_url(
1054 1054
 							wp_nonce_url(
1055
-								add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ),
1055
+								add_query_arg('getpaid-admin-action', 'migrate_old_invoices'),
1056 1056
 								'getpaid-nonce',
1057 1057
 								'getpaid-nonce'
1058 1058
 							)
1059 1059
 						);
1060 1060
 					?>
1061
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1061
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1062 1062
                 </td>
1063 1063
             </tr>
1064 1064
 
1065 1065
 			<tr>
1066
-                <td><?php esc_html_e( 'Recalculate Discounts', 'invoicing' ); ?></td>
1066
+                <td><?php esc_html_e('Recalculate Discounts', 'invoicing'); ?></td>
1067 1067
                 <td>
1068
-                    <small><?php esc_html_e( 'Recalculate discounts for existing invoices that have discount codes but are not discounted.', 'invoicing' ); ?></small>
1068
+                    <small><?php esc_html_e('Recalculate discounts for existing invoices that have discount codes but are not discounted.', 'invoicing'); ?></small>
1069 1069
                 </td>
1070 1070
                 <td>
1071 1071
 					<a href="
1072 1072
                     <?php
1073 1073
 						echo esc_url(
1074 1074
 							wp_nonce_url(
1075
-								add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ),
1075
+								add_query_arg('getpaid-admin-action', 'recalculate_discounts'),
1076 1076
 								'getpaid-nonce',
1077 1077
 								'getpaid-nonce'
1078 1078
 							)
1079 1079
 						);
1080 1080
 					?>
1081
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1081
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1082 1082
                 </td>
1083 1083
             </tr>
1084 1084
 
1085 1085
 			<tr>
1086
-                <td><?php esc_html_e( 'Set-up Wizard', 'invoicing' ); ?></td>
1086
+                <td><?php esc_html_e('Set-up Wizard', 'invoicing'); ?></td>
1087 1087
                 <td>
1088
-                    <small><?php esc_html_e( 'Launch the quick set-up wizard.', 'invoicing' ); ?></small>
1088
+                    <small><?php esc_html_e('Launch the quick set-up wizard.', 'invoicing'); ?></small>
1089 1089
                 </td>
1090 1090
                 <td>
1091 1091
 					<a href="
1092 1092
                     <?php
1093
-						echo esc_url( admin_url( 'index.php?page=gp-setup' ) );
1093
+						echo esc_url(admin_url('index.php?page=gp-setup'));
1094 1094
 					?>
1095
-                    " class="button button-primary"><?php esc_html_e( 'Launch', 'invoicing' ); ?></a>
1095
+                    " class="button button-primary"><?php esc_html_e('Launch', 'invoicing'); ?></a>
1096 1096
                 </td>
1097 1097
             </tr>
1098 1098
 
1099
-			<?php do_action( 'wpinv_tools_row' ); ?>
1099
+			<?php do_action('wpinv_tools_row'); ?>
1100 1100
         </tbody>
1101 1101
     </table>
1102
-    <?php do_action( 'wpinv_tools_after' ); ?>
1102
+    <?php do_action('wpinv_tools_after'); ?>
1103 1103
     <?php
1104 1104
 }
1105 1105
 
1106 1106
 
1107
-function wpinv_descriptive_text_callback( $args ) {
1108
-	echo wp_kses_post( $args['desc'] );
1107
+function wpinv_descriptive_text_callback($args) {
1108
+	echo wp_kses_post($args['desc']);
1109 1109
 }
1110 1110
 
1111
-function wpinv_raw_html_callback( $args ) {
1112
-	echo wp_kses( $args['desc'], getpaid_allowed_html() );
1111
+function wpinv_raw_html_callback($args) {
1112
+	echo wp_kses($args['desc'], getpaid_allowed_html());
1113 1113
 }
1114 1114
 
1115
-function wpinv_hook_callback( $args ) {
1116
-	do_action( 'wpinv_' . $args['id'], $args );
1115
+function wpinv_hook_callback($args) {
1116
+	do_action('wpinv_' . $args['id'], $args);
1117 1117
 }
1118 1118
 
1119 1119
 function wpinv_set_settings_cap() {
1120 1120
 	return wpinv_get_capability();
1121 1121
 }
1122
-add_filter( 'option_page_capability_wpinv_settings', 'wpinv_set_settings_cap' );
1122
+add_filter('option_page_capability_wpinv_settings', 'wpinv_set_settings_cap');
1123 1123
 
1124 1124
 
1125
-function wpinv_on_update_settings( $old_value, $value, $option ) {
1126
-    $old = ! empty( $old_value['remove_data_on_unistall'] ) ? 1 : '';
1127
-    $new = ! empty( $value['remove_data_on_unistall'] ) ? 1 : '';
1125
+function wpinv_on_update_settings($old_value, $value, $option) {
1126
+    $old = !empty($old_value['remove_data_on_unistall']) ? 1 : '';
1127
+    $new = !empty($value['remove_data_on_unistall']) ? 1 : '';
1128 1128
 
1129
-    if ( $old != $new ) {
1130
-        update_option( 'wpinv_remove_data_on_invoice_unistall', $new );
1129
+    if ($old != $new) {
1130
+        update_option('wpinv_remove_data_on_invoice_unistall', $new);
1131 1131
     }
1132 1132
 }
1133
-add_action( 'update_option_wpinv_settings', 'wpinv_on_update_settings', 10, 3 );
1133
+add_action('update_option_wpinv_settings', 'wpinv_on_update_settings', 10, 3);
1134 1134
 
1135 1135
 /**
1136 1136
  * Returns the merge tags help text.
@@ -1139,16 +1139,16 @@  discard block
 block discarded – undo
1139 1139
  *
1140 1140
  * @return string
1141 1141
  */
1142
-function wpinv_get_merge_tags_help_text( $subscription = false ) {
1142
+function wpinv_get_merge_tags_help_text($subscription = false) {
1143 1143
 
1144 1144
 	$url  = $subscription ? 'https://gist.github.com/picocodes/3d213982d57c34edf7a46fd3f0e8583e' : 'https://gist.github.com/picocodes/43bdc4d4bbba844534b2722e2af0b58f';
1145 1145
 	$link = sprintf(
1146 1146
 		'<strong><a href="%s" target="_blank">%s</a></strong>',
1147 1147
 		$url,
1148
-		esc_html__( 'View available merge tags.', 'wpinv-quotes' )
1148
+		esc_html__('View available merge tags.', 'wpinv-quotes')
1149 1149
 	);
1150 1150
 
1151
-	$description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' );
1151
+	$description = esc_html__('The content of the email (Merge Tags and HTML are allowed).', 'invoicing');
1152 1152
 
1153 1153
 	return "$description $link";
1154 1154
 
Please login to merge, or discard this patch.
includes/admin/views/html-tax-rules-edit.php 2 patches
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -8,8 +8,8 @@
 block discarded – undo
8 8
 
9 9
 $dummy_rule = array(
10 10
     'key'      => 'TAX_RULE_KEY',
11
-	'label'    => __( 'New Tax Rule', 'invoicing' ),
12
-	'tax_base' => wpinv_get_option( 'tax_base', 'billing' ),
11
+    'label'    => __( 'New Tax Rule', 'invoicing' ),
12
+    'tax_base' => wpinv_get_option( 'tax_base', 'billing' ),
13 13
 );
14 14
 
15 15
 wp_nonce_field( 'wpinv_tax_rules', 'wpinv_tax_rules_nonce' );
Please login to merge, or discard this patch.
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -4,34 +4,34 @@  discard block
 block discarded – undo
4 4
  *
5 5
  */
6 6
 
7
-defined( 'ABSPATH' ) || exit;
7
+defined('ABSPATH') || exit;
8 8
 
9 9
 $dummy_rule = array(
10 10
     'key'      => 'TAX_RULE_KEY',
11
-	'label'    => __( 'New Tax Rule', 'invoicing' ),
12
-	'tax_base' => wpinv_get_option( 'tax_base', 'billing' ),
11
+	'label'    => __('New Tax Rule', 'invoicing'),
12
+	'tax_base' => wpinv_get_option('tax_base', 'billing'),
13 13
 );
14 14
 
15
-wp_nonce_field( 'wpinv_tax_rules', 'wpinv_tax_rules_nonce' );
15
+wp_nonce_field('wpinv_tax_rules', 'wpinv_tax_rules_nonce');
16 16
 
17 17
 ?>
18 18
 <div class="table-responsive">
19 19
     <table id="wpinv-tax-rules" class="widefat fixed table">
20
-        <caption><?php echo esc_html_e( 'You can use this section to create or edit your tax rules', 'invoicing' ); ?></caption>
20
+        <caption><?php echo esc_html_e('You can use this section to create or edit your tax rules', 'invoicing'); ?></caption>
21 21
 
22 22
         <thead>
23 23
             <tr class="table-light">
24 24
 
25 25
                 <th scope="col" class="border-bottom border-top">
26
-                    <?php esc_html_e( 'Unique Key', 'invoicing' ); ?>
26
+                    <?php esc_html_e('Unique Key', 'invoicing'); ?>
27 27
                 </th>
28 28
 
29 29
                 <th scope="col" class="border-bottom border-top">
30
-                    <?php esc_html_e( 'Label', 'invoicing' ); ?>
30
+                    <?php esc_html_e('Label', 'invoicing'); ?>
31 31
                 </th>
32 32
 
33 33
                 <th scope="col" class="border-bottom border-top">
34
-                    <?php esc_html_e( 'Calculate tax based on', 'invoicing' ); ?>
34
+                    <?php esc_html_e('Calculate tax based on', 'invoicing'); ?>
35 35
                 </th>
36 36
 
37 37
                 <th scope="col" class="border-bottom border-top" style="width:32px">&nbsp;</th>
@@ -40,8 +40,8 @@  discard block
 block discarded – undo
40 40
         </thead>
41 41
 
42 42
         <tbody>
43
-            <?php foreach ( GetPaid_Tax::get_all_tax_rules() as $tax_rule ) : ?>
44
-                <?php include plugin_dir_path( __FILE__ ) . 'html-tax-rule-edit.php'; ?>
43
+            <?php foreach (GetPaid_Tax::get_all_tax_rules() as $tax_rule) : ?>
44
+                <?php include plugin_dir_path(__FILE__) . 'html-tax-rule-edit.php'; ?>
45 45
             <?php endforeach; ?>
46 46
         </tbody>
47 47
 
@@ -49,8 +49,8 @@  discard block
 block discarded – undo
49 49
             <tr class="table-light">
50 50
                 <td colspan="4" class="border-top">
51 51
 
52
-                    <button type="button" class="button button-secondary wpinv_add_tax_rule" aria-label="<?php esc_attr_e( 'Add Tax Rule', 'invoicing' ); ?>">
53
-                        <span><?php esc_html_e( 'Add Tax Rule', 'invoicing' ); ?></span>
52
+                    <button type="button" class="button button-secondary wpinv_add_tax_rule" aria-label="<?php esc_attr_e('Add Tax Rule', 'invoicing'); ?>">
53
+                        <span><?php esc_html_e('Add Tax Rule', 'invoicing'); ?></span>
54 54
                     </button>
55 55
 
56 56
                 </td>
@@ -61,6 +61,6 @@  discard block
 block discarded – undo
61 61
 
62 62
 <script type="text/html" id="tmpl-wpinv-tax-rule-row">
63 63
     <?php $tax_rule = $dummy_rule; ?>
64
-    <?php include plugin_dir_path( __FILE__ ) . 'html-tax-rule-edit.php'; ?>
64
+    <?php include plugin_dir_path(__FILE__) . 'html-tax-rule-edit.php'; ?>
65 65
 </script>
66 66
 
Please login to merge, or discard this patch.
includes/admin/views/html-tax-rule-edit.php 1 patch
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -5,29 +5,29 @@
 block discarded – undo
5 5
  * @var array $tax_rule
6 6
  */
7 7
 
8
-defined( 'ABSPATH' ) || exit;
8
+defined('ABSPATH') || exit;
9 9
 
10 10
 ?>
11 11
 
12 12
 <tr>
13 13
 
14 14
     <td class="wpinv-tax-rule-key">
15
-        <input type="text" name="tax_rules[<?php echo esc_attr( $tax_rule['key'] ); ?>][key]" value="<?php echo esc_attr( $tax_rule['key'] ); ?>" required/>
15
+        <input type="text" name="tax_rules[<?php echo esc_attr($tax_rule['key']); ?>][key]" value="<?php echo esc_attr($tax_rule['key']); ?>" required/>
16 16
     </td>
17 17
 
18 18
     <td class="wpinv-tax-rule-label">
19
-        <input type="text" name="tax_rules[<?php echo esc_attr( $tax_rule['key'] ); ?>][label]" value="<?php echo esc_attr( $tax_rule['label'] ); ?>" required/>
19
+        <input type="text" name="tax_rules[<?php echo esc_attr($tax_rule['key']); ?>][label]" value="<?php echo esc_attr($tax_rule['label']); ?>" required/>
20 20
     </td>
21 21
 
22 22
     <td class="wpinv-tax-rule-base-address">
23
-        <select name="tax_rules[<?php echo esc_attr( $tax_rule['key'] ); ?>][tax_base]" class="getpaid-tax-rule-base-address" required>
24
-            <option value="billing" <?php selected( $tax_rule['tax_base'], 'billing' ); ?>><?php esc_html_e( 'Customer billing address', 'invoicing' ); ?></option>
25
-            <option value="base" <?php selected( $tax_rule['tax_base'], 'base' ); ?>><?php esc_html_e( 'Shop base address', 'invoicing' ); ?></option>
23
+        <select name="tax_rules[<?php echo esc_attr($tax_rule['key']); ?>][tax_base]" class="getpaid-tax-rule-base-address" required>
24
+            <option value="billing" <?php selected($tax_rule['tax_base'], 'billing'); ?>><?php esc_html_e('Customer billing address', 'invoicing'); ?></option>
25
+            <option value="base" <?php selected($tax_rule['tax_base'], 'base'); ?>><?php esc_html_e('Shop base address', 'invoicing'); ?></option>
26 26
         </select>
27 27
     </td>
28 28
 
29 29
     <td class="wpinv_tax_remove">
30
-        <button type="button" class="close wpinv_remove_tax_rule" aria-label="<?php esc_attr_e( 'Delete', 'invoicing' ); ?>" title="<?php esc_attr_e( 'Delete', 'invoicing' ); ?>">
30
+        <button type="button" class="close wpinv_remove_tax_rule" aria-label="<?php esc_attr_e('Delete', 'invoicing'); ?>" title="<?php esc_attr_e('Delete', 'invoicing'); ?>">
31 31
             <span aria-hidden="true">&times;</span>
32 32
         </button>
33 33
     </td>
Please login to merge, or discard this patch.
includes/class-getpaid-tax.php 2 patches
Indentation   +190 added lines, -190 removed lines patch added patch discarded remove patch
@@ -13,197 +13,197 @@
 block discarded – undo
13 13
  */
14 14
 class GetPaid_Tax {
15 15
 
16
-	/**
17
-	 * Calculates tax for a line item.
18
-	 *
19
-	 * @param  float   $price              The price to calc tax on.
20
-	 * @param  array   $rates              The rates to apply.
21
-	 * @param  boolean $price_includes_tax Whether the passed price has taxes included.
22
-	 * @return array                       Array of tax name => tax amount.
23
-	 */
24
-	public static function calc_tax( $price, $rates, $price_includes_tax = false ) {
25
-
26
-		if ( $price_includes_tax ) {
27
-			$taxes = self::calc_inclusive_tax( $price, $rates );
28
-		} else {
29
-			$taxes = self::calc_exclusive_tax( $price, $rates );
30
-		}
31
-
32
-		return apply_filters( 'getpaid_calc_tax', $taxes, $price, $rates, $price_includes_tax );
33
-
34
-	}
35
-
36
-	/**
37
-	 * Calc tax from inclusive price.
38
-	 *
39
-	 * @param  float $price Price to calculate tax for.
40
-	 * @param  array $rates Array of tax rates.
41
-	 * @return array
42
-	 */
43
-	public static function calc_inclusive_tax( $price, $rates ) {
44
-		$taxes     = array();
45
-		$tax_rates = wp_list_pluck( $rates, 'rate', 'name' );
46
-
47
-		// Add tax rates.
48
-		$tax_rate  = 1 + ( array_sum( $tax_rates ) / 100 );
49
-
50
-		foreach ( $tax_rates as $name => $rate ) {
51
-			$the_rate       = ( $rate / 100 ) / $tax_rate;
52
-			$net_price      = $price - ( $the_rate * $price );
53
-			$tax_amount     = apply_filters( 'getpaid_price_inc_tax_amount', $price - $net_price, $name, $rate, $price );
54
-			$taxes[ $name ] = $tax_amount;
55
-		}
56
-
57
-		// Round all taxes to precision (4DP) before passing them back.
58
-		$taxes = array_map( array( __CLASS__, 'round' ), $taxes );
59
-
60
-		return $taxes;
61
-	}
62
-
63
-	/**
64
-	 * Calc tax from exclusive price.
65
-	 *
66
-	 * @param  float $price Price to calculate tax for.
67
-	 * @param  array $rates Array of tax rates.
68
-	 * @return array
69
-	 */
70
-	public static function calc_exclusive_tax( $price, $rates ) {
71
-		$taxes     = array();
72
-		$tax_rates = wp_list_pluck( $rates, 'rate', 'name' );
73
-
74
-		foreach ( $tax_rates as $name => $rate ) {
75
-
76
-			$tax_amount     = $price * ( $rate / 100 );
77
-			$taxes[ $name ] = apply_filters( 'getpaid_price_ex_tax_amount', $tax_amount, $name, $rate, $price );
78
-
79
-		}
80
-
81
-		// Round all taxes to precision (4DP) before passing them back.
82
-		$taxes = array_map( array( __CLASS__, 'round' ), $taxes );
83
-
84
-		return $taxes;
85
-	}
86
-
87
-	/**
88
-	 * Get's an array of all tax rates.
89
-	 *
90
-	 * @return array
91
-	 */
92
-	public static function get_all_tax_rates() {
93
-
94
-		$rates = get_option( 'wpinv_tax_rates', array() );
95
-
96
-		return apply_filters(
97
-			'getpaid_get_all_tax_rates',
98
-			array_filter( wpinv_parse_list( $rates ) )
99
-		);
100
-
101
-	}
102
-
103
-	/**
104
-	 * Get's an array of default tax rates.
105
-	 *
106
-	 * @return array
107
-	 */
108
-	public static function get_default_tax_rates() {
109
-
110
-		return apply_filters(
111
-			'getpaid_get_default_tax_rates',
112
-			array(
113
-				array(
114
-					'country' => wpinv_get_default_country(),
115
-					'state'   => wpinv_get_default_state(),
116
-					'global'  => true,
117
-					'rate'    => wpinv_get_default_tax_rate(),
118
-					'name'    => __( 'Base Tax', 'invoicing' ),
119
-				),
120
-			)
121
-		);
122
-
123
-	}
124
-
125
-	/**
126
-	 * Get's an array of all tax rules.
127
-	 *
128
-	 * @return array
129
-	 */
130
-	public static function get_all_tax_rules() {
131
-
132
-		$rules = get_option(
133
-			'wpinv_tax_rules',
134
-			array(
135
-				array(
136
-					'key'      => 'physical',
137
-					'label'    => __( 'Physical Item', 'invoicing' ),
138
-					'tax_base' => wpinv_get_option( 'tax_base', 'billing' ),
139
-				),
140
-				array(
141
-					'key'      => 'digital',
142
-					'label'    => __( 'Digital Item', 'invoicing' ),
143
-					'tax_base' => wpinv_get_option( 'tax_base', 'billing' ),
144
-				),
145
-        	)
146
-		);
147
-
148
-		return apply_filters(
149
-			'getpaid_tax_rules',
150
-			array_filter( array_values( wpinv_parse_list( $rules ) ) )
151
-		);
152
-
153
-	}
154
-
155
-	/**
156
-	 * Get's an array of tax rates for a given address.
157
-	 *
158
-	 * @param string $country
159
-	 * @param string $state
160
-	 * @return array
161
-	 */
162
-	public static function get_address_tax_rates( $country, $state ) {
163
-
164
-		$all_tax_rates  = self::get_all_tax_rates();
165
-		$matching_rates = array_merge(
166
-			wp_list_filter( $all_tax_rates, array( 'country' => $country ) ),
167
-			wp_list_filter( $all_tax_rates, array( 'country' => '' ) )
168
-		);
169
-
170
-		foreach ( $matching_rates as $i => $rate ) {
171
-
172
-			$states = array_filter( wpinv_clean( explode( ',', strtolower( $rate['state'] ) ) ) );
173
-			if ( empty( $rate['global'] ) && ! in_array( strtolower( $state ), $states ) ) {
174
-				unset( $matching_rates[ $i ] );
175
-			}
16
+    /**
17
+     * Calculates tax for a line item.
18
+     *
19
+     * @param  float   $price              The price to calc tax on.
20
+     * @param  array   $rates              The rates to apply.
21
+     * @param  boolean $price_includes_tax Whether the passed price has taxes included.
22
+     * @return array                       Array of tax name => tax amount.
23
+     */
24
+    public static function calc_tax( $price, $rates, $price_includes_tax = false ) {
25
+
26
+        if ( $price_includes_tax ) {
27
+            $taxes = self::calc_inclusive_tax( $price, $rates );
28
+        } else {
29
+            $taxes = self::calc_exclusive_tax( $price, $rates );
30
+        }
31
+
32
+        return apply_filters( 'getpaid_calc_tax', $taxes, $price, $rates, $price_includes_tax );
33
+
34
+    }
35
+
36
+    /**
37
+     * Calc tax from inclusive price.
38
+     *
39
+     * @param  float $price Price to calculate tax for.
40
+     * @param  array $rates Array of tax rates.
41
+     * @return array
42
+     */
43
+    public static function calc_inclusive_tax( $price, $rates ) {
44
+        $taxes     = array();
45
+        $tax_rates = wp_list_pluck( $rates, 'rate', 'name' );
46
+
47
+        // Add tax rates.
48
+        $tax_rate  = 1 + ( array_sum( $tax_rates ) / 100 );
49
+
50
+        foreach ( $tax_rates as $name => $rate ) {
51
+            $the_rate       = ( $rate / 100 ) / $tax_rate;
52
+            $net_price      = $price - ( $the_rate * $price );
53
+            $tax_amount     = apply_filters( 'getpaid_price_inc_tax_amount', $price - $net_price, $name, $rate, $price );
54
+            $taxes[ $name ] = $tax_amount;
55
+        }
56
+
57
+        // Round all taxes to precision (4DP) before passing them back.
58
+        $taxes = array_map( array( __CLASS__, 'round' ), $taxes );
59
+
60
+        return $taxes;
61
+    }
62
+
63
+    /**
64
+     * Calc tax from exclusive price.
65
+     *
66
+     * @param  float $price Price to calculate tax for.
67
+     * @param  array $rates Array of tax rates.
68
+     * @return array
69
+     */
70
+    public static function calc_exclusive_tax( $price, $rates ) {
71
+        $taxes     = array();
72
+        $tax_rates = wp_list_pluck( $rates, 'rate', 'name' );
73
+
74
+        foreach ( $tax_rates as $name => $rate ) {
75
+
76
+            $tax_amount     = $price * ( $rate / 100 );
77
+            $taxes[ $name ] = apply_filters( 'getpaid_price_ex_tax_amount', $tax_amount, $name, $rate, $price );
78
+
79
+        }
80
+
81
+        // Round all taxes to precision (4DP) before passing them back.
82
+        $taxes = array_map( array( __CLASS__, 'round' ), $taxes );
83
+
84
+        return $taxes;
85
+    }
86
+
87
+    /**
88
+     * Get's an array of all tax rates.
89
+     *
90
+     * @return array
91
+     */
92
+    public static function get_all_tax_rates() {
93
+
94
+        $rates = get_option( 'wpinv_tax_rates', array() );
95
+
96
+        return apply_filters(
97
+            'getpaid_get_all_tax_rates',
98
+            array_filter( wpinv_parse_list( $rates ) )
99
+        );
100
+
101
+    }
102
+
103
+    /**
104
+     * Get's an array of default tax rates.
105
+     *
106
+     * @return array
107
+     */
108
+    public static function get_default_tax_rates() {
109
+
110
+        return apply_filters(
111
+            'getpaid_get_default_tax_rates',
112
+            array(
113
+                array(
114
+                    'country' => wpinv_get_default_country(),
115
+                    'state'   => wpinv_get_default_state(),
116
+                    'global'  => true,
117
+                    'rate'    => wpinv_get_default_tax_rate(),
118
+                    'name'    => __( 'Base Tax', 'invoicing' ),
119
+                ),
120
+            )
121
+        );
122
+
123
+    }
124
+
125
+    /**
126
+     * Get's an array of all tax rules.
127
+     *
128
+     * @return array
129
+     */
130
+    public static function get_all_tax_rules() {
131
+
132
+        $rules = get_option(
133
+            'wpinv_tax_rules',
134
+            array(
135
+                array(
136
+                    'key'      => 'physical',
137
+                    'label'    => __( 'Physical Item', 'invoicing' ),
138
+                    'tax_base' => wpinv_get_option( 'tax_base', 'billing' ),
139
+                ),
140
+                array(
141
+                    'key'      => 'digital',
142
+                    'label'    => __( 'Digital Item', 'invoicing' ),
143
+                    'tax_base' => wpinv_get_option( 'tax_base', 'billing' ),
144
+                ),
145
+            )
146
+        );
147
+
148
+        return apply_filters(
149
+            'getpaid_tax_rules',
150
+            array_filter( array_values( wpinv_parse_list( $rules ) ) )
151
+        );
152
+
153
+    }
154
+
155
+    /**
156
+     * Get's an array of tax rates for a given address.
157
+     *
158
+     * @param string $country
159
+     * @param string $state
160
+     * @return array
161
+     */
162
+    public static function get_address_tax_rates( $country, $state ) {
163
+
164
+        $all_tax_rates  = self::get_all_tax_rates();
165
+        $matching_rates = array_merge(
166
+            wp_list_filter( $all_tax_rates, array( 'country' => $country ) ),
167
+            wp_list_filter( $all_tax_rates, array( 'country' => '' ) )
168
+        );
169
+
170
+        foreach ( $matching_rates as $i => $rate ) {
171
+
172
+            $states = array_filter( wpinv_clean( explode( ',', strtolower( $rate['state'] ) ) ) );
173
+            if ( empty( $rate['global'] ) && ! in_array( strtolower( $state ), $states ) ) {
174
+                unset( $matching_rates[ $i ] );
175
+            }
176 176
 }
177 177
 
178
-		return apply_filters( 'getpaid_get_address_tax_rates', $matching_rates, $country, $state );
179
-
180
-	}
181
-
182
-	/**
183
-	 * Sums a set of taxes to form a single total. Result is rounded to precision.
184
-	 *
185
-	 * @param  array $taxes Array of taxes.
186
-	 * @return float
187
-	 */
188
-	public static function get_tax_total( $taxes ) {
189
-		return self::round( array_sum( $taxes ) );
190
-	}
191
-
192
-	/**
193
-	 * Round to precision.
194
-	 *
195
-	 * Filter example: to return rounding to .5 cents you'd use:
196
-	 *
197
-	 * function euro_5cent_rounding( $in ) {
198
-	 *      return round( $in / 5, 2 ) * 5;
199
-	 * }
200
-	 * add_filter( 'getpaid_tax_round', 'euro_5cent_rounding' );
201
-	 *
202
-	 * @param float|int $in Value to round.
203
-	 * @return float
204
-	 */
205
-	public static function round( $in ) {
206
-		return apply_filters( 'getpaid_tax_round', round( $in, 4 ), $in );
207
-	}
178
+        return apply_filters( 'getpaid_get_address_tax_rates', $matching_rates, $country, $state );
179
+
180
+    }
181
+
182
+    /**
183
+     * Sums a set of taxes to form a single total. Result is rounded to precision.
184
+     *
185
+     * @param  array $taxes Array of taxes.
186
+     * @return float
187
+     */
188
+    public static function get_tax_total( $taxes ) {
189
+        return self::round( array_sum( $taxes ) );
190
+    }
191
+
192
+    /**
193
+     * Round to precision.
194
+     *
195
+     * Filter example: to return rounding to .5 cents you'd use:
196
+     *
197
+     * function euro_5cent_rounding( $in ) {
198
+     *      return round( $in / 5, 2 ) * 5;
199
+     * }
200
+     * add_filter( 'getpaid_tax_round', 'euro_5cent_rounding' );
201
+     *
202
+     * @param float|int $in Value to round.
203
+     * @return float
204
+     */
205
+    public static function round( $in ) {
206
+        return apply_filters( 'getpaid_tax_round', round( $in, 4 ), $in );
207
+    }
208 208
 
209 209
 }
Please login to merge, or discard this patch.
Spacing   +41 added lines, -41 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  *
6 6
  */
7 7
 
8
-defined( 'ABSPATH' ) || exit;
8
+defined('ABSPATH') || exit;
9 9
 
10 10
 /**
11 11
  * Class GetPaid_Tax
@@ -21,15 +21,15 @@  discard block
 block discarded – undo
21 21
 	 * @param  boolean $price_includes_tax Whether the passed price has taxes included.
22 22
 	 * @return array                       Array of tax name => tax amount.
23 23
 	 */
24
-	public static function calc_tax( $price, $rates, $price_includes_tax = false ) {
24
+	public static function calc_tax($price, $rates, $price_includes_tax = false) {
25 25
 
26
-		if ( $price_includes_tax ) {
27
-			$taxes = self::calc_inclusive_tax( $price, $rates );
26
+		if ($price_includes_tax) {
27
+			$taxes = self::calc_inclusive_tax($price, $rates);
28 28
 		} else {
29
-			$taxes = self::calc_exclusive_tax( $price, $rates );
29
+			$taxes = self::calc_exclusive_tax($price, $rates);
30 30
 		}
31 31
 
32
-		return apply_filters( 'getpaid_calc_tax', $taxes, $price, $rates, $price_includes_tax );
32
+		return apply_filters('getpaid_calc_tax', $taxes, $price, $rates, $price_includes_tax);
33 33
 
34 34
 	}
35 35
 
@@ -40,22 +40,22 @@  discard block
 block discarded – undo
40 40
 	 * @param  array $rates Array of tax rates.
41 41
 	 * @return array
42 42
 	 */
43
-	public static function calc_inclusive_tax( $price, $rates ) {
43
+	public static function calc_inclusive_tax($price, $rates) {
44 44
 		$taxes     = array();
45
-		$tax_rates = wp_list_pluck( $rates, 'rate', 'name' );
45
+		$tax_rates = wp_list_pluck($rates, 'rate', 'name');
46 46
 
47 47
 		// Add tax rates.
48
-		$tax_rate  = 1 + ( array_sum( $tax_rates ) / 100 );
48
+		$tax_rate  = 1 + (array_sum($tax_rates) / 100);
49 49
 
50
-		foreach ( $tax_rates as $name => $rate ) {
51
-			$the_rate       = ( $rate / 100 ) / $tax_rate;
52
-			$net_price      = $price - ( $the_rate * $price );
53
-			$tax_amount     = apply_filters( 'getpaid_price_inc_tax_amount', $price - $net_price, $name, $rate, $price );
54
-			$taxes[ $name ] = $tax_amount;
50
+		foreach ($tax_rates as $name => $rate) {
51
+			$the_rate       = ($rate / 100) / $tax_rate;
52
+			$net_price      = $price - ($the_rate * $price);
53
+			$tax_amount     = apply_filters('getpaid_price_inc_tax_amount', $price - $net_price, $name, $rate, $price);
54
+			$taxes[$name] = $tax_amount;
55 55
 		}
56 56
 
57 57
 		// Round all taxes to precision (4DP) before passing them back.
58
-		$taxes = array_map( array( __CLASS__, 'round' ), $taxes );
58
+		$taxes = array_map(array(__CLASS__, 'round'), $taxes);
59 59
 
60 60
 		return $taxes;
61 61
 	}
@@ -67,19 +67,19 @@  discard block
 block discarded – undo
67 67
 	 * @param  array $rates Array of tax rates.
68 68
 	 * @return array
69 69
 	 */
70
-	public static function calc_exclusive_tax( $price, $rates ) {
70
+	public static function calc_exclusive_tax($price, $rates) {
71 71
 		$taxes     = array();
72
-		$tax_rates = wp_list_pluck( $rates, 'rate', 'name' );
72
+		$tax_rates = wp_list_pluck($rates, 'rate', 'name');
73 73
 
74
-		foreach ( $tax_rates as $name => $rate ) {
74
+		foreach ($tax_rates as $name => $rate) {
75 75
 
76
-			$tax_amount     = $price * ( $rate / 100 );
77
-			$taxes[ $name ] = apply_filters( 'getpaid_price_ex_tax_amount', $tax_amount, $name, $rate, $price );
76
+			$tax_amount     = $price * ($rate / 100);
77
+			$taxes[$name] = apply_filters('getpaid_price_ex_tax_amount', $tax_amount, $name, $rate, $price);
78 78
 
79 79
 		}
80 80
 
81 81
 		// Round all taxes to precision (4DP) before passing them back.
82
-		$taxes = array_map( array( __CLASS__, 'round' ), $taxes );
82
+		$taxes = array_map(array(__CLASS__, 'round'), $taxes);
83 83
 
84 84
 		return $taxes;
85 85
 	}
@@ -91,11 +91,11 @@  discard block
 block discarded – undo
91 91
 	 */
92 92
 	public static function get_all_tax_rates() {
93 93
 
94
-		$rates = get_option( 'wpinv_tax_rates', array() );
94
+		$rates = get_option('wpinv_tax_rates', array());
95 95
 
96 96
 		return apply_filters(
97 97
 			'getpaid_get_all_tax_rates',
98
-			array_filter( wpinv_parse_list( $rates ) )
98
+			array_filter(wpinv_parse_list($rates))
99 99
 		);
100 100
 
101 101
 	}
@@ -115,7 +115,7 @@  discard block
 block discarded – undo
115 115
 					'state'   => wpinv_get_default_state(),
116 116
 					'global'  => true,
117 117
 					'rate'    => wpinv_get_default_tax_rate(),
118
-					'name'    => __( 'Base Tax', 'invoicing' ),
118
+					'name'    => __('Base Tax', 'invoicing'),
119 119
 				),
120 120
 			)
121 121
 		);
@@ -134,20 +134,20 @@  discard block
 block discarded – undo
134 134
 			array(
135 135
 				array(
136 136
 					'key'      => 'physical',
137
-					'label'    => __( 'Physical Item', 'invoicing' ),
138
-					'tax_base' => wpinv_get_option( 'tax_base', 'billing' ),
137
+					'label'    => __('Physical Item', 'invoicing'),
138
+					'tax_base' => wpinv_get_option('tax_base', 'billing'),
139 139
 				),
140 140
 				array(
141 141
 					'key'      => 'digital',
142
-					'label'    => __( 'Digital Item', 'invoicing' ),
143
-					'tax_base' => wpinv_get_option( 'tax_base', 'billing' ),
142
+					'label'    => __('Digital Item', 'invoicing'),
143
+					'tax_base' => wpinv_get_option('tax_base', 'billing'),
144 144
 				),
145 145
         	)
146 146
 		);
147 147
 
148 148
 		return apply_filters(
149 149
 			'getpaid_tax_rules',
150
-			array_filter( array_values( wpinv_parse_list( $rules ) ) )
150
+			array_filter(array_values(wpinv_parse_list($rules)))
151 151
 		);
152 152
 
153 153
 	}
@@ -159,23 +159,23 @@  discard block
 block discarded – undo
159 159
 	 * @param string $state
160 160
 	 * @return array
161 161
 	 */
162
-	public static function get_address_tax_rates( $country, $state ) {
162
+	public static function get_address_tax_rates($country, $state) {
163 163
 
164 164
 		$all_tax_rates  = self::get_all_tax_rates();
165 165
 		$matching_rates = array_merge(
166
-			wp_list_filter( $all_tax_rates, array( 'country' => $country ) ),
167
-			wp_list_filter( $all_tax_rates, array( 'country' => '' ) )
166
+			wp_list_filter($all_tax_rates, array('country' => $country)),
167
+			wp_list_filter($all_tax_rates, array('country' => ''))
168 168
 		);
169 169
 
170
-		foreach ( $matching_rates as $i => $rate ) {
170
+		foreach ($matching_rates as $i => $rate) {
171 171
 
172
-			$states = array_filter( wpinv_clean( explode( ',', strtolower( $rate['state'] ) ) ) );
173
-			if ( empty( $rate['global'] ) && ! in_array( strtolower( $state ), $states ) ) {
174
-				unset( $matching_rates[ $i ] );
172
+			$states = array_filter(wpinv_clean(explode(',', strtolower($rate['state']))));
173
+			if (empty($rate['global']) && !in_array(strtolower($state), $states)) {
174
+				unset($matching_rates[$i]);
175 175
 			}
176 176
 }
177 177
 
178
-		return apply_filters( 'getpaid_get_address_tax_rates', $matching_rates, $country, $state );
178
+		return apply_filters('getpaid_get_address_tax_rates', $matching_rates, $country, $state);
179 179
 
180 180
 	}
181 181
 
@@ -185,8 +185,8 @@  discard block
 block discarded – undo
185 185
 	 * @param  array $taxes Array of taxes.
186 186
 	 * @return float
187 187
 	 */
188
-	public static function get_tax_total( $taxes ) {
189
-		return self::round( array_sum( $taxes ) );
188
+	public static function get_tax_total($taxes) {
189
+		return self::round(array_sum($taxes));
190 190
 	}
191 191
 
192 192
 	/**
@@ -202,8 +202,8 @@  discard block
 block discarded – undo
202 202
 	 * @param float|int $in Value to round.
203 203
 	 * @return float
204 204
 	 */
205
-	public static function round( $in ) {
206
-		return apply_filters( 'getpaid_tax_round', round( $in, 4 ), $in );
205
+	public static function round($in) {
206
+		return apply_filters('getpaid_tax_round', round($in, 4), $in);
207 207
 	}
208 208
 
209 209
 }
Please login to merge, or discard this patch.