Passed
Pull Request — master (#834)
by Kiran
06:01
created
includes/wpinv-template-functions.php 1 patch
Spacing   +462 added lines, -462 removed lines patch added patch discarded remove patch
@@ -4,99 +4,99 @@  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
  * Displays an invoice.
11 11
  *
12 12
  * @param WPInv_Invoice $invoice.
13 13
  */
14
-function getpaid_invoice( $invoice ) {
15
-    if ( ! empty( $invoice ) ) {
16
-        wpinv_get_template( 'invoice/invoice.php', compact( 'invoice' ) );
14
+function getpaid_invoice($invoice) {
15
+    if (!empty($invoice)) {
16
+        wpinv_get_template('invoice/invoice.php', compact('invoice'));
17 17
     }
18 18
 }
19
-add_action( 'getpaid_invoice', 'getpaid_invoice', 10 );
19
+add_action('getpaid_invoice', 'getpaid_invoice', 10);
20 20
 
21 21
 /**
22 22
  * Displays the invoice footer.
23 23
  */
24
-function getpaid_invoice_footer( $invoice ) {
25
-    if ( ! empty( $invoice ) ) {
26
-        wpinv_get_template( 'invoice/footer.php', compact( 'invoice' ) );
24
+function getpaid_invoice_footer($invoice) {
25
+    if (!empty($invoice)) {
26
+        wpinv_get_template('invoice/footer.php', compact('invoice'));
27 27
     }
28 28
 }
29
-add_action( 'getpaid_invoice_footer', 'getpaid_invoice_footer', 10 );
29
+add_action('getpaid_invoice_footer', 'getpaid_invoice_footer', 10);
30 30
 
31 31
 /**
32 32
  * Displays the invoice top bar.
33 33
  */
34
-function getpaid_invoice_header( $invoice ) {
35
-    if ( ! empty( $invoice ) ) {
36
-        wpinv_get_template( 'invoice/header.php', compact( 'invoice' ) );
34
+function getpaid_invoice_header($invoice) {
35
+    if (!empty($invoice)) {
36
+        wpinv_get_template('invoice/header.php', compact('invoice'));
37 37
     }
38 38
 }
39
-add_action( 'getpaid_invoice_header', 'getpaid_invoice_header', 10 );
39
+add_action('getpaid_invoice_header', 'getpaid_invoice_header', 10);
40 40
 
41 41
 /**
42 42
  * Displays actions on the left side of the header.
43 43
  */
44
-function getpaid_invoice_header_left_actions( $invoice ) {
45
-    if ( ! empty( $invoice ) ) {
46
-        wpinv_get_template( 'invoice/header-left-actions.php', compact( 'invoice' ) );
44
+function getpaid_invoice_header_left_actions($invoice) {
45
+    if (!empty($invoice)) {
46
+        wpinv_get_template('invoice/header-left-actions.php', compact('invoice'));
47 47
     }
48 48
 }
49
-add_action( 'getpaid_invoice_header_left', 'getpaid_invoice_header_left_actions', 10 );
49
+add_action('getpaid_invoice_header_left', 'getpaid_invoice_header_left_actions', 10);
50 50
 
51 51
 /**
52 52
  * Displays actions on the right side of the invoice top bar.
53 53
  */
54
-function getpaid_invoice_header_right_actions( $invoice ) {
55
-    if ( ! empty( $invoice ) ) {
56
-        wpinv_get_template( 'invoice/header-right-actions.php', compact( 'invoice' ) );
54
+function getpaid_invoice_header_right_actions($invoice) {
55
+    if (!empty($invoice)) {
56
+        wpinv_get_template('invoice/header-right-actions.php', compact('invoice'));
57 57
     }
58 58
 }
59
-add_action( 'getpaid_invoice_header_right', 'getpaid_invoice_header_right_actions', 10 );
59
+add_action('getpaid_invoice_header_right', 'getpaid_invoice_header_right_actions', 10);
60 60
 
61 61
 /**
62 62
  * Displays the invoice title, logo etc.
63 63
  */
64
-function getpaid_invoice_details_top( $invoice ) {
65
-    if ( ! empty( $invoice ) ) {
66
-        wpinv_get_template( 'invoice/details-top.php', compact( 'invoice' ) );
64
+function getpaid_invoice_details_top($invoice) {
65
+    if (!empty($invoice)) {
66
+        wpinv_get_template('invoice/details-top.php', compact('invoice'));
67 67
     }
68 68
 }
69
-add_action( 'getpaid_invoice_details', 'getpaid_invoice_details_top', 10 );
69
+add_action('getpaid_invoice_details', 'getpaid_invoice_details_top', 10);
70 70
 
71 71
 /**
72 72
  * Displays the company logo.
73 73
  */
74
-function getpaid_invoice_logo( $invoice ) {
75
-    if ( ! empty( $invoice ) ) {
76
-        wpinv_get_template( 'invoice/invoice-logo.php', compact( 'invoice' ) );
74
+function getpaid_invoice_logo($invoice) {
75
+    if (!empty($invoice)) {
76
+        wpinv_get_template('invoice/invoice-logo.php', compact('invoice'));
77 77
     }
78 78
 }
79
-add_action( 'getpaid_invoice_details_top_left', 'getpaid_invoice_logo' );
79
+add_action('getpaid_invoice_details_top_left', 'getpaid_invoice_logo');
80 80
 
81 81
 /**
82 82
  * Displays the type of invoice.
83 83
  */
84
-function getpaid_invoice_type( $invoice ) {
85
-    if ( ! empty( $invoice ) ) {
86
-        wpinv_get_template( 'invoice/invoice-type.php', compact( 'invoice' ) );
84
+function getpaid_invoice_type($invoice) {
85
+    if (!empty($invoice)) {
86
+        wpinv_get_template('invoice/invoice-type.php', compact('invoice'));
87 87
     }
88 88
 }
89
-add_action( 'getpaid_invoice_details_top_right', 'getpaid_invoice_type' );
89
+add_action('getpaid_invoice_details_top_right', 'getpaid_invoice_type');
90 90
 
91 91
 /**
92 92
  * Displays the invoice details.
93 93
  */
94
-function getpaid_invoice_details_main( $invoice ) {
95
-    if ( ! empty( $invoice ) ) {
96
-        wpinv_get_template( 'invoice/details.php', compact( 'invoice' ) );
94
+function getpaid_invoice_details_main($invoice) {
95
+    if (!empty($invoice)) {
96
+        wpinv_get_template('invoice/details.php', compact('invoice'));
97 97
     }
98 98
 }
99
-add_action( 'getpaid_invoice_details', 'getpaid_invoice_details_main', 50 );
99
+add_action('getpaid_invoice_details', 'getpaid_invoice_details_main', 50);
100 100
 
101 101
 /**
102 102
  * Returns a path to the templates directory.
@@ -125,8 +125,8 @@  discard block
 block discarded – undo
125 125
  * @param string $template_path The templates directory relative to the theme's root dir. Defaults to 'invoicing'.
126 126
  * @param string $default_path The root path to the default template. Defaults to invoicing/templates
127 127
  */
128
-function wpinv_get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
129
-    getpaid_template()->display_template( $template_name, $args, $template_path, $default_path );
128
+function wpinv_get_template($template_name, $args = array(), $template_path = '', $default_path = '') {
129
+    getpaid_template()->display_template($template_name, $args, $template_path, $default_path);
130 130
 }
131 131
 
132 132
 /**
@@ -139,8 +139,8 @@  discard block
 block discarded – undo
139 139
  * @param string $template_path The templates directory relative to the theme's root dir. Defaults to 'invoicing'.
140 140
  * @param string $default_path The root path to the default template. Defaults to invoicing/templates
141 141
  */
142
-function wpinv_get_template_html( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
143
-	return getpaid_template()->get_template( $template_name, $args, $template_path, $default_path );
142
+function wpinv_get_template_html($template_name, $args = array(), $template_path = '', $default_path = '') {
143
+	return getpaid_template()->get_template($template_name, $args, $template_path, $default_path);
144 144
 }
145 145
 
146 146
 /**
@@ -149,7 +149,7 @@  discard block
 block discarded – undo
149 149
  * @return string
150 150
  */
151 151
 function wpinv_template_path() {
152
-    return apply_filters( 'wpinv_template_path', wpinv_get_theme_template_dir_name() );
152
+    return apply_filters('wpinv_template_path', wpinv_get_theme_template_dir_name());
153 153
 }
154 154
 
155 155
 /**
@@ -158,7 +158,7 @@  discard block
 block discarded – undo
158 158
  * @return string
159 159
  */
160 160
 function wpinv_get_theme_template_dir_name() {
161
-	return trailingslashit( apply_filters( 'wpinv_templates_dir', 'invoicing' ) );
161
+	return trailingslashit(apply_filters('wpinv_templates_dir', 'invoicing'));
162 162
 }
163 163
 
164 164
 /**
@@ -170,58 +170,58 @@  discard block
 block discarded – undo
170 170
  * @param string $template_path The template path relative to the theme's root dir. Defaults to 'invoicing'.
171 171
  * @param string $default_path The root path to the default template. Defaults to invoicing/templates
172 172
  */
173
-function wpinv_locate_template( $template_name, $template_path = '', $default_path = '' ) {
174
-    return getpaid_template()->locate_template( $template_name, $template_path, $default_path );
173
+function wpinv_locate_template($template_name, $template_path = '', $default_path = '') {
174
+    return getpaid_template()->locate_template($template_name, $template_path, $default_path);
175 175
 }
176 176
 
177
-function wpinv_get_template_part( $slug, $name = null, $load = true ) {
178
-	do_action( 'get_template_part_' . $slug, $slug, $name );
177
+function wpinv_get_template_part($slug, $name = null, $load = true) {
178
+	do_action('get_template_part_' . $slug, $slug, $name);
179 179
 
180 180
 	// Setup possible parts
181 181
 	$templates = array();
182
-	if ( isset( $name ) ) {
182
+	if (isset($name)) {
183 183
 		$templates[] = $slug . '-' . $name . '.php';
184 184
     }
185 185
 	$templates[] = $slug . '.php';
186 186
 
187 187
 	// Allow template parts to be filtered
188
-	$templates = apply_filters( 'wpinv_get_template_part', $templates, $slug, $name );
188
+	$templates = apply_filters('wpinv_get_template_part', $templates, $slug, $name);
189 189
 
190 190
 	// Return the part that is found
191
-	return wpinv_locate_tmpl( $templates, $load, false );
191
+	return wpinv_locate_tmpl($templates, $load, false);
192 192
 }
193 193
 
194
-function wpinv_locate_tmpl( $template_names, $load = false, $require_once = true ) {
194
+function wpinv_locate_tmpl($template_names, $load = false, $require_once = true) {
195 195
 	// No file found yet
196 196
 	$located = false;
197 197
 
198 198
 	// Try to find a template file
199
-	foreach ( (array)$template_names as $template_name ) {
199
+	foreach ((array) $template_names as $template_name) {
200 200
 
201 201
 		// Continue if template is empty
202
-		if ( empty( $template_name ) ) {
202
+		if (empty($template_name)) {
203 203
 			continue;
204 204
         }
205 205
 
206 206
 		// Trim off any slashes from the template name
207
-		$template_name = ltrim( $template_name, '/' );
207
+		$template_name = ltrim($template_name, '/');
208 208
 
209 209
 		// try locating this template file by looping through the template paths
210
-		foreach ( wpinv_get_theme_template_paths() as $template_path ) {
210
+		foreach (wpinv_get_theme_template_paths() as $template_path) {
211 211
 
212
-			if ( file_exists( $template_path . $template_name ) ) {
212
+			if (file_exists($template_path . $template_name)) {
213 213
 				$located = $template_path . $template_name;
214 214
 				break;
215 215
 			}
216 216
 		}
217 217
 
218
-		if ( ! empty( $located ) ) {
218
+		if (!empty($located)) {
219 219
 			break;
220 220
 		}
221 221
 	}
222 222
 
223
-	if ( ( true == $load ) && ! empty( $located ) ) {
224
-		load_template( $located, $require_once );
223
+	if ((true == $load) && !empty($located)) {
224
+		load_template($located, $require_once);
225 225
     }
226 226
 
227 227
 	return $located;
@@ -231,73 +231,73 @@  discard block
 block discarded – undo
231 231
 	$template_dir = wpinv_get_theme_template_dir_name();
232 232
 
233 233
 	$file_paths = array(
234
-		1   => trailingslashit( get_stylesheet_directory() ) . $template_dir,
235
-		10  => trailingslashit( get_template_directory() ) . $template_dir,
234
+		1   => trailingslashit(get_stylesheet_directory()) . $template_dir,
235
+		10  => trailingslashit(get_template_directory()) . $template_dir,
236 236
 		100 => wpinv_get_templates_dir(),
237 237
 	);
238 238
 
239
-	$file_paths = apply_filters( 'wpinv_template_paths', $file_paths );
239
+	$file_paths = apply_filters('wpinv_template_paths', $file_paths);
240 240
 
241 241
 	// sort the file paths based on priority
242
-	ksort( $file_paths, SORT_NUMERIC );
242
+	ksort($file_paths, SORT_NUMERIC);
243 243
 
244
-	return array_map( 'trailingslashit', $file_paths );
244
+	return array_map('trailingslashit', $file_paths);
245 245
 }
246 246
 
247 247
 function wpinv_checkout_meta_tags() {
248 248
 
249 249
 	$pages   = array();
250
-	$pages[] = wpinv_get_option( 'success_page' );
251
-	$pages[] = wpinv_get_option( 'failure_page' );
252
-	$pages[] = wpinv_get_option( 'invoice_history_page' );
253
-	$pages[] = wpinv_get_option( 'invoice_subscription_page' );
250
+	$pages[] = wpinv_get_option('success_page');
251
+	$pages[] = wpinv_get_option('failure_page');
252
+	$pages[] = wpinv_get_option('invoice_history_page');
253
+	$pages[] = wpinv_get_option('invoice_subscription_page');
254 254
 
255
-	if ( ! wpinv_is_checkout() && ! is_page( $pages ) ) {
255
+	if (!wpinv_is_checkout() && !is_page($pages)) {
256 256
 		return;
257 257
 	}
258 258
 
259 259
 	echo '<meta name="robots" content="noindex,nofollow" />' . "\n";
260 260
 }
261
-add_action( 'wp_head', 'wpinv_checkout_meta_tags' );
261
+add_action('wp_head', 'wpinv_checkout_meta_tags');
262 262
 
263
-function wpinv_add_body_classes( $class ) {
264
-	$classes = (array)$class;
263
+function wpinv_add_body_classes($class) {
264
+	$classes = (array) $class;
265 265
 
266
-	if ( wpinv_is_checkout() ) {
266
+	if (wpinv_is_checkout()) {
267 267
 		$classes[] = 'wpinv-checkout';
268 268
 		$classes[] = 'wpinv-page';
269 269
 	}
270 270
 
271
-	if ( wpinv_is_success_page() ) {
271
+	if (wpinv_is_success_page()) {
272 272
 		$classes[] = 'wpinv-success';
273 273
 		$classes[] = 'wpinv-page';
274 274
 	}
275 275
 
276
-	if ( wpinv_is_failed_transaction_page() ) {
276
+	if (wpinv_is_failed_transaction_page()) {
277 277
 		$classes[] = 'wpinv-failed-transaction';
278 278
 		$classes[] = 'wpinv-page';
279 279
 	}
280 280
 
281
-	if ( wpinv_is_invoice_history_page() ) {
281
+	if (wpinv_is_invoice_history_page()) {
282 282
 		$classes[] = 'wpinv-history';
283 283
 		$classes[] = 'wpinv-page';
284 284
 	}
285 285
 
286
-	if ( wpinv_is_subscriptions_history_page() ) {
286
+	if (wpinv_is_subscriptions_history_page()) {
287 287
 		$classes[] = 'wpinv-subscription';
288 288
 		$classes[] = 'wpinv-page';
289 289
 	}
290 290
 
291
-	if ( wpinv_is_test_mode() ) {
291
+	if (wpinv_is_test_mode()) {
292 292
 		$classes[] = 'wpinv-test-mode';
293 293
 		$classes[] = 'wpinv-page';
294 294
 	}
295 295
 
296
-	return array_unique( $classes );
296
+	return array_unique($classes);
297 297
 }
298
-add_filter( 'body_class', 'wpinv_add_body_classes' );
298
+add_filter('body_class', 'wpinv_add_body_classes');
299 299
 
300
-function wpinv_html_select( $args = array() ) {
300
+function wpinv_html_select($args = array()) {
301 301
     $defaults = array(
302 302
         'options'          => array(),
303 303
         'name'             => null,
@@ -306,8 +306,8 @@  discard block
 block discarded – undo
306 306
         'selected'         => 0,
307 307
         'placeholder'      => null,
308 308
         'multiple'         => false,
309
-        'show_option_all'  => _x( 'All', 'all dropdown items', 'invoicing' ),
310
-        'show_option_none' => _x( 'None', 'no dropdown items', 'invoicing' ),
309
+        'show_option_all'  => _x('All', 'all dropdown items', 'invoicing'),
310
+        'show_option_none' => _x('None', 'no dropdown items', 'invoicing'),
311 311
         'data'             => array(),
312 312
         'onchange'         => null,
313 313
         'required'         => false,
@@ -315,79 +315,79 @@  discard block
 block discarded – undo
315 315
         'readonly'         => false,
316 316
     );
317 317
 
318
-    $args = wp_parse_args( $args, $defaults );
318
+    $args = wp_parse_args($args, $defaults);
319 319
 
320 320
     $attrs = array(
321 321
         'name'     => $args['name'],
322 322
         'id'       => $args['id'],
323
-        'class'    => 'wpinv-select ' . implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) ),
324
-        'multiple' => ! empty( $args['multiple'] ),
325
-        'readonly' => ! empty( $args['readonly'] ),
326
-        'disabled' => ! empty( $args['disabled'] ),
327
-        'required' => ! empty( $args['required'] ),
328
-        'onchange' => ! empty( $args['onchange'] ),
323
+        'class'    => 'wpinv-select ' . implode(' ', array_map('sanitize_html_class', explode(' ', $args['class']))),
324
+        'multiple' => !empty($args['multiple']),
325
+        'readonly' => !empty($args['readonly']),
326
+        'disabled' => !empty($args['disabled']),
327
+        'required' => !empty($args['required']),
328
+        'onchange' => !empty($args['onchange']),
329 329
     );
330 330
 
331
-    if ( $args['placeholder'] ) {
331
+    if ($args['placeholder']) {
332 332
         $attrs['data-placeholder'] = $args['placeholder'];
333 333
     }
334 334
 
335
-    if ( $args['onchange'] ) {
335
+    if ($args['onchange']) {
336 336
         $attrs['onchange'] = $args['onchange'];
337 337
     }
338 338
 
339
-    foreach ( $args['data'] as $key => $value ) {
339
+    foreach ($args['data'] as $key => $value) {
340 340
         $attrs["data-$key"] = $value;
341 341
     }
342 342
 
343 343
     echo '<select ';
344 344
 
345
-    foreach ( $attrs as $attr => $value ) {
345
+    foreach ($attrs as $attr => $value) {
346 346
 
347
-        if ( false === $value ) {
347
+        if (false === $value) {
348 348
             continue;
349 349
         }
350 350
 
351
-        if ( true === $value ) {
352
-            echo ' ' . esc_attr( $attr );
351
+        if (true === $value) {
352
+            echo ' ' . esc_attr($attr);
353 353
         } else {
354
-            echo ' ' . esc_attr( $attr ) . '="' . esc_attr( $value ) . '"';
354
+            echo ' ' . esc_attr($attr) . '="' . esc_attr($value) . '"';
355 355
         }
356 356
 
357 357
     }
358 358
 
359 359
     echo '>';
360 360
 
361
-    if ( $args['show_option_all'] ) {
362
-        if ( $args['multiple'] ) {
363
-            $selected = in_array( 0, $args['selected'] );
361
+    if ($args['show_option_all']) {
362
+        if ($args['multiple']) {
363
+            $selected = in_array(0, $args['selected']);
364 364
         } else {
365
-            $selected = empty( $args['selected'] );
365
+            $selected = empty($args['selected']);
366 366
         }
367
-        echo '<option value="all"' . selected( $selected, true, false ) . '>' . esc_html( $args['show_option_all'] ) . '</option>';
367
+        echo '<option value="all"' . selected($selected, true, false) . '>' . esc_html($args['show_option_all']) . '</option>';
368 368
     }
369 369
 
370
-    if ( ! empty( $args['options'] ) ) {
370
+    if (!empty($args['options'])) {
371 371
 
372
-        if ( $args['show_option_none'] ) {
373
-            if ( $args['multiple'] ) {
374
-                $selected = in_array( '', $args['selected'], true );
372
+        if ($args['show_option_none']) {
373
+            if ($args['multiple']) {
374
+                $selected = in_array('', $args['selected'], true);
375 375
             } else {
376 376
                 $selected = $args['selected'] === '';
377 377
             }
378 378
 
379
-            echo '<option value=""' . selected( $selected, true, false ) . '>' . esc_html( $args['show_option_none'] ) . '</option>';
379
+            echo '<option value=""' . selected($selected, true, false) . '>' . esc_html($args['show_option_none']) . '</option>';
380 380
         }
381 381
 
382
-        foreach ( $args['options'] as $key => $option ) {
382
+        foreach ($args['options'] as $key => $option) {
383 383
 
384
-            if ( $args['multiple'] && is_array( $args['selected'] ) ) {
385
-                $selected = in_array( $key, $args['selected'], true );
384
+            if ($args['multiple'] && is_array($args['selected'])) {
385
+                $selected = in_array($key, $args['selected'], true);
386 386
             } else {
387 387
                 $selected = $args['selected'] === $key;
388 388
             }
389 389
 
390
-            echo '<option value="' . esc_attr( $key ) . '"' . selected( $selected, true, false ) . '>' . esc_html( $option ) . '</option>';
390
+            echo '<option value="' . esc_attr($key) . '"' . selected($selected, true, false) . '>' . esc_html($option) . '</option>';
391 391
         }
392 392
     }
393 393
 
@@ -395,7 +395,7 @@  discard block
 block discarded – undo
395 395
 
396 396
 }
397 397
 
398
-function wpinv_item_dropdown( $args = array() ) {
398
+function wpinv_item_dropdown($args = array()) {
399 399
     $defaults = array(
400 400
         'name'             => 'wpi_item',
401 401
         'id'               => 'wpi_item',
@@ -403,14 +403,14 @@  discard block
 block discarded – undo
403 403
         'multiple'         => false,
404 404
         'selected'         => 0,
405 405
         'number'           => -1,
406
-        'placeholder'      => __( 'Choose a item', 'invoicing' ),
407
-        'data'             => array( 'search-type' => 'item' ),
406
+        'placeholder'      => __('Choose a item', 'invoicing'),
407
+        'data'             => array('search-type' => 'item'),
408 408
         'show_option_all'  => false,
409 409
         'show_option_none' => false,
410 410
         'show_recurring'   => false,
411 411
     );
412 412
 
413
-    $args = wp_parse_args( $args, $defaults );
413
+    $args = wp_parse_args($args, $defaults);
414 414
 
415 415
     $item_args = array(
416 416
         'post_type'      => 'wpi_item',
@@ -428,40 +428,40 @@  discard block
 block discarded – undo
428 428
         ),
429 429
     );
430 430
 
431
-    $item_args  = apply_filters( 'wpinv_item_dropdown_query_args', $item_args, $args, $defaults );
431
+    $item_args  = apply_filters('wpinv_item_dropdown_query_args', $item_args, $args, $defaults);
432 432
 
433
-    $items      = get_posts( $item_args );
433
+    $items      = get_posts($item_args);
434 434
     $options    = array();
435
-    if ( $items ) {
436
-        foreach ( $items as $item ) {
437
-            $title = esc_html( $item->post_title );
435
+    if ($items) {
436
+        foreach ($items as $item) {
437
+            $title = esc_html($item->post_title);
438 438
 
439
-            if ( ! empty( $args['show_recurring'] ) ) {
440
-                $title .= wpinv_get_item_suffix( $item->ID, false );
439
+            if (!empty($args['show_recurring'])) {
440
+                $title .= wpinv_get_item_suffix($item->ID, false);
441 441
             }
442 442
 
443
-            $options[ absint( $item->ID ) ] = $title;
443
+            $options[absint($item->ID)] = $title;
444 444
         }
445 445
     }
446 446
 
447 447
     // This ensures that any selected items are included in the drop down
448
-    if ( is_array( $args['selected'] ) ) {
449
-        foreach ( $args['selected'] as $item ) {
450
-            if ( ! in_array( $item, $options ) ) {
451
-                $title = get_the_title( $item );
452
-                if ( ! empty( $args['show_recurring'] ) ) {
453
-                    $title .= wpinv_get_item_suffix( $item, false );
448
+    if (is_array($args['selected'])) {
449
+        foreach ($args['selected'] as $item) {
450
+            if (!in_array($item, $options)) {
451
+                $title = get_the_title($item);
452
+                if (!empty($args['show_recurring'])) {
453
+                    $title .= wpinv_get_item_suffix($item, false);
454 454
                 }
455
-                $options[ $item ] = $title;
455
+                $options[$item] = $title;
456 456
             }
457 457
         }
458
-    } elseif ( is_numeric( $args['selected'] ) && $args['selected'] !== 0 ) {
459
-        if ( ! in_array( $args['selected'], $options ) ) {
460
-            $title = get_the_title( $args['selected'] );
461
-            if ( ! empty( $args['show_recurring'] ) ) {
462
-                $title .= wpinv_get_item_suffix( $args['selected'], false );
458
+    } elseif (is_numeric($args['selected']) && $args['selected'] !== 0) {
459
+        if (!in_array($args['selected'], $options)) {
460
+            $title = get_the_title($args['selected']);
461
+            if (!empty($args['show_recurring'])) {
462
+                $title .= wpinv_get_item_suffix($args['selected'], false);
463 463
             }
464
-            $options[ $args['selected'] ] = get_the_title( $args['selected'] );
464
+            $options[$args['selected']] = get_the_title($args['selected']);
465 465
         }
466 466
     }
467 467
 
@@ -497,16 +497,16 @@  discard block
 block discarded – undo
497 497
     );
498 498
 
499 499
     $options = array();
500
-    if ( $items ) {
501
-        foreach ( $items as $item ) {
502
-            $options[ $item->ID ] = esc_html( $item->post_title ) . wpinv_get_item_suffix( $item->ID, false );
500
+    if ($items) {
501
+        foreach ($items as $item) {
502
+            $options[$item->ID] = esc_html($item->post_title) . wpinv_get_item_suffix($item->ID, false);
503 503
         }
504 504
     }
505 505
 
506 506
     return $options;
507 507
 }
508 508
 
509
-function wpinv_html_checkbox( $args = array() ) {
509
+function wpinv_html_checkbox($args = array()) {
510 510
     $defaults = array(
511 511
         'name'    => null,
512 512
         'current' => null,
@@ -517,17 +517,17 @@  discard block
 block discarded – undo
517 517
         ),
518 518
     );
519 519
 
520
-    $args = wp_parse_args( $args, $defaults );
520
+    $args = wp_parse_args($args, $defaults);
521 521
 
522
-    $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) );
522
+    $class = implode(' ', array_map('sanitize_html_class', explode(' ', $args['class'])));
523 523
     $attr  = '';
524
-    if ( ! empty( $args['options']['disabled'] ) ) {
524
+    if (!empty($args['options']['disabled'])) {
525 525
         $attr .= ' disabled="disabled"';
526
-    } elseif ( ! empty( $args['options']['readonly'] ) ) {
526
+    } elseif (!empty($args['options']['readonly'])) {
527 527
         $attr .= ' readonly';
528 528
     }
529 529
 
530
-    $output = '<input type="checkbox"' . $attr . ' name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['name'] ) . '" class="' . esc_attr( $class ) . ' ' . esc_attr( $args['name'] ) . '" ' . checked( 1, $args['current'], false ) . ' />';
530
+    $output = '<input type="checkbox"' . $attr . ' name="' . esc_attr($args['name']) . '" id="' . esc_attr($args['name']) . '" class="' . esc_attr($class) . ' ' . esc_attr($args['name']) . '" ' . checked(1, $args['current'], false) . ' />';
531 531
 
532 532
     return $output;
533 533
 }
@@ -535,34 +535,34 @@  discard block
 block discarded – undo
535 535
 /**
536 536
  * Displays a hidden field.
537 537
  */
538
-function getpaid_hidden_field( $name, $value ) {
539
-    echo "<input type='hidden' name='" . esc_attr( $name ) . "' value='" . esc_attr( $value ) . "' />";
538
+function getpaid_hidden_field($name, $value) {
539
+    echo "<input type='hidden' name='" . esc_attr($name) . "' value='" . esc_attr($value) . "' />";
540 540
 }
541 541
 
542 542
 /**
543 543
  * Displays a submit field.
544 544
  */
545
-function getpaid_submit_field( $value, $name = 'submit', $class = 'btn-primary' ) {
546
-    echo "<input type='submit' name='" . esc_attr( $name ) . "' value='" . esc_attr( $value ) . "' class='btn " . esc_attr( $class ) . "' />";
545
+function getpaid_submit_field($value, $name = 'submit', $class = 'btn-primary') {
546
+    echo "<input type='submit' name='" . esc_attr($name) . "' value='" . esc_attr($value) . "' class='btn " . esc_attr($class) . "' />";
547 547
 }
548 548
 
549
-function wpinv_html_text( $args = array() ) {
549
+function wpinv_html_text($args = array()) {
550 550
     // Backwards compatibility
551
-    if ( func_num_args() > 1 ) {
551
+    if (func_num_args() > 1) {
552 552
         $args = func_get_args();
553 553
 
554 554
         $name  = $args[0];
555
-        $value = isset( $args[1] ) ? $args[1] : '';
556
-        $label = isset( $args[2] ) ? $args[2] : '';
557
-        $desc  = isset( $args[3] ) ? $args[3] : '';
555
+        $value = isset($args[1]) ? $args[1] : '';
556
+        $label = isset($args[2]) ? $args[2] : '';
557
+        $desc  = isset($args[3]) ? $args[3] : '';
558 558
     }
559 559
 
560 560
     $defaults = array(
561 561
         'id'           => '',
562
-        'name'         => isset( $name ) ? $name : 'text',
563
-        'value'        => isset( $value ) ? $value : null,
564
-        'label'        => isset( $label ) ? $label : null,
565
-        'desc'         => isset( $desc ) ? $desc : null,
562
+        'name'         => isset($name) ? $name : 'text',
563
+        'value'        => isset($value) ? $value : null,
564
+        'label'        => isset($label) ? $label : null,
565
+        'desc'         => isset($desc) ? $desc : null,
566 566
         'placeholder'  => '',
567 567
         'class'        => 'regular-text',
568 568
         'disabled'     => false,
@@ -572,41 +572,41 @@  discard block
 block discarded – undo
572 572
         'data'         => false,
573 573
     );
574 574
 
575
-    $args = wp_parse_args( $args, $defaults );
575
+    $args = wp_parse_args($args, $defaults);
576 576
 
577
-    $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) );
577
+    $class = implode(' ', array_map('sanitize_html_class', explode(' ', $args['class'])));
578 578
     $options = '';
579
-    if ( $args['required'] ) {
579
+    if ($args['required']) {
580 580
         $options .= ' required="required"';
581 581
     }
582
-    if ( $args['readonly'] ) {
582
+    if ($args['readonly']) {
583 583
         $options .= ' readonly';
584 584
     }
585
-    if ( $args['readonly'] ) {
585
+    if ($args['readonly']) {
586 586
         $options .= ' readonly';
587 587
     }
588 588
 
589 589
     $data = '';
590
-    if ( ! empty( $args['data'] ) ) {
591
-        foreach ( $args['data'] as $key => $value ) {
592
-            $data .= 'data-' . wpinv_sanitize_key( $key ) . '="' . esc_attr( $value ) . '" ';
590
+    if (!empty($args['data'])) {
591
+        foreach ($args['data'] as $key => $value) {
592
+            $data .= 'data-' . wpinv_sanitize_key($key) . '="' . esc_attr($value) . '" ';
593 593
         }
594 594
     }
595 595
 
596
-    $output = '<span id="wpinv-' . wpinv_sanitize_key( $args['name'] ) . '-wrap">';
597
-    $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key( $args['id'] ) . '">' . esc_html( $args['label'] ) . '</label>';
598
-    if ( ! empty( $args['desc'] ) ) {
599
-        $output .= '<span class="wpinv-description">' . esc_html( $args['desc'] ) . '</span>';
596
+    $output = '<span id="wpinv-' . wpinv_sanitize_key($args['name']) . '-wrap">';
597
+    $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key($args['id']) . '">' . esc_html($args['label']) . '</label>';
598
+    if (!empty($args['desc'])) {
599
+        $output .= '<span class="wpinv-description">' . esc_html($args['desc']) . '</span>';
600 600
     }
601 601
 
602
-    $output .= '<input type="text" name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['id'] ) . '" autocomplete="' . esc_attr( $args['autocomplete'] ) . '" value="' . esc_attr( $args['value'] ) . '" placeholder="' . esc_attr( $args['placeholder'] ) . '" class="' . $class . '" ' . $data . ' ' . trim( $options ) . '/>';
602
+    $output .= '<input type="text" name="' . esc_attr($args['name']) . '" id="' . esc_attr($args['id']) . '" autocomplete="' . esc_attr($args['autocomplete']) . '" value="' . esc_attr($args['value']) . '" placeholder="' . esc_attr($args['placeholder']) . '" class="' . $class . '" ' . $data . ' ' . trim($options) . '/>';
603 603
 
604 604
     $output .= '</span>';
605 605
 
606 606
     return $output;
607 607
 }
608 608
 
609
-function wpinv_html_textarea( $args = array() ) {
609
+function wpinv_html_textarea($args = array()) {
610 610
     $defaults = array(
611 611
         'name'        => 'textarea',
612 612
         'value'       => null,
@@ -617,31 +617,31 @@  discard block
 block discarded – undo
617 617
         'placeholder' => '',
618 618
     );
619 619
 
620
-    $args = wp_parse_args( $args, $defaults );
620
+    $args = wp_parse_args($args, $defaults);
621 621
 
622
-    $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) );
622
+    $class = implode(' ', array_map('sanitize_html_class', explode(' ', $args['class'])));
623 623
     $disabled = '';
624
-    if ( $args['disabled'] ) {
624
+    if ($args['disabled']) {
625 625
         $disabled = ' disabled="disabled"';
626 626
     }
627 627
 
628
-    $output = '<span id="wpinv-' . wpinv_sanitize_key( $args['name'] ) . '-wrap">';
629
-    $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key( $args['name'] ) . '">' . esc_html( $args['label'] ) . '</label>';
630
-    $output .= '<textarea name="' . esc_attr( $args['name'] ) . '" placeholder="' . esc_attr( $args['placeholder'] ) . '" id="' . wpinv_sanitize_key( $args['name'] ) . '" class="' . $class . '"' . $disabled . '>' . esc_attr( $args['value'] ) . '</textarea>';
628
+    $output = '<span id="wpinv-' . wpinv_sanitize_key($args['name']) . '-wrap">';
629
+    $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key($args['name']) . '">' . esc_html($args['label']) . '</label>';
630
+    $output .= '<textarea name="' . esc_attr($args['name']) . '" placeholder="' . esc_attr($args['placeholder']) . '" id="' . wpinv_sanitize_key($args['name']) . '" class="' . $class . '"' . $disabled . '>' . esc_attr($args['value']) . '</textarea>';
631 631
 
632
-    if ( ! empty( $args['desc'] ) ) {
633
-        $output .= '<span class="wpinv-description">' . esc_html( $args['desc'] ) . '</span>';
632
+    if (!empty($args['desc'])) {
633
+        $output .= '<span class="wpinv-description">' . esc_html($args['desc']) . '</span>';
634 634
     }
635 635
     $output .= '</span>';
636 636
 
637 637
     return $output;
638 638
 }
639 639
 
640
-function wpinv_html_ajax_user_search( $args = array() ) {
640
+function wpinv_html_ajax_user_search($args = array()) {
641 641
     $defaults = array(
642 642
         'name'         => 'user_id',
643 643
         'value'        => null,
644
-        'placeholder'  => __( 'Enter username', 'invoicing' ),
644
+        'placeholder'  => __('Enter username', 'invoicing'),
645 645
         'label'        => null,
646 646
         'desc'         => null,
647 647
         'class'        => '',
@@ -650,13 +650,13 @@  discard block
 block discarded – undo
650 650
         'data'         => false,
651 651
     );
652 652
 
653
-    $args = wp_parse_args( $args, $defaults );
653
+    $args = wp_parse_args($args, $defaults);
654 654
 
655 655
     $args['class'] = 'wpinv-ajax-user-search ' . $args['class'];
656 656
 
657 657
     $output  = '<span class="wpinv_user_search_wrap">';
658
-        $output .= wpinv_html_text( $args );
659
-        $output .= '<span class="wpinv_user_search_results hidden"><a class="wpinv-ajax-user-cancel" title="' . __( 'Cancel', 'invoicing' ) . '" aria-label="' . __( 'Cancel', 'invoicing' ) . '" href="#">x</a><span></span></span>';
658
+        $output .= wpinv_html_text($args);
659
+        $output .= '<span class="wpinv_user_search_results hidden"><a class="wpinv-ajax-user-cancel" title="' . __('Cancel', 'invoicing') . '" aria-label="' . __('Cancel', 'invoicing') . '" href="#">x</a><span></span></span>';
660 660
     $output .= '</span>';
661 661
 
662 662
     return $output;
@@ -667,44 +667,44 @@  discard block
 block discarded – undo
667 667
  *
668 668
  * @param string $template the template that is currently being used.
669 669
  */
670
-function wpinv_template( $template ) {
670
+function wpinv_template($template) {
671 671
     global $post;
672 672
 
673
-    if ( ! is_admin() && ( is_single() || is_404() ) && ! empty( $post->ID ) && getpaid_is_invoice_post_type( get_post_type( $post->ID ) ) ) {
673
+    if (!is_admin() && (is_single() || is_404()) && !empty($post->ID) && getpaid_is_invoice_post_type(get_post_type($post->ID))) {
674 674
 
675 675
         // If the user can view this invoice, display it.
676
-        if ( wpinv_user_can_view_invoice( $post->ID ) ) {
676
+        if (wpinv_user_can_view_invoice($post->ID)) {
677 677
 
678
-            return wpinv_get_template_part( 'wpinv-invoice-print', false, false );
678
+            return wpinv_get_template_part('wpinv-invoice-print', false, false);
679 679
 
680 680
         // Else display an error message.
681 681
         } else {
682 682
 
683
-            return wpinv_get_template_part( 'wpinv-invalid-access', false, false );
683
+            return wpinv_get_template_part('wpinv-invalid-access', false, false);
684 684
 
685 685
         }
686 686
 }
687 687
 
688 688
     return $template;
689 689
 }
690
-add_filter( 'template_include', 'wpinv_template', 1000, 1 );
690
+add_filter('template_include', 'wpinv_template', 1000, 1);
691 691
 
692 692
 function wpinv_get_business_address() {
693 693
     $business_address   = wpinv_store_address();
694
-    $business_address   = ! empty( $business_address ) ? wp_kses_post( wpautop( $business_address ) ) : '';
694
+    $business_address   = !empty($business_address) ? wp_kses_post(wpautop($business_address)) : '';
695 695
 
696 696
     $business_address = $business_address ? '<div class="address">' . $business_address . '</div>' : '';
697 697
 
698
-    return apply_filters( 'wpinv_get_business_address', $business_address );
698
+    return apply_filters('wpinv_get_business_address', $business_address);
699 699
 }
700 700
 
701 701
 /**
702 702
  * Displays the company address.
703 703
  */
704 704
 function wpinv_display_from_address() {
705
-    wpinv_get_template( 'invoice/company-address.php' );
705
+    wpinv_get_template('invoice/company-address.php');
706 706
 }
707
-add_action( 'getpaid_invoice_details_left', 'wpinv_display_from_address', 10 );
707
+add_action('getpaid_invoice_details_left', 'wpinv_display_from_address', 10);
708 708
 
709 709
 /**
710 710
  * Generates a watermark text for an invoice.
@@ -712,9 +712,9 @@  discard block
 block discarded – undo
712 712
  * @param WPInv_Invoice $invoice
713 713
  * @return string
714 714
  */
715
-function wpinv_watermark( $invoice ) {
716
-    $watermark = wpinv_get_watermark( $invoice );
717
-    return apply_filters( 'wpinv_get_watermark', $watermark, $invoice );
715
+function wpinv_watermark($invoice) {
716
+    $watermark = wpinv_get_watermark($invoice);
717
+    return apply_filters('wpinv_get_watermark', $watermark, $invoice);
718 718
 }
719 719
 
720 720
 /**
@@ -723,37 +723,37 @@  discard block
 block discarded – undo
723 723
  * @param WPInv_Invoice $invoice
724 724
  * @return string
725 725
  */
726
-function wpinv_get_watermark( $invoice ) {
726
+function wpinv_get_watermark($invoice) {
727 727
     return $invoice->get_status_nicename();
728 728
 }
729 729
 
730 730
 /**
731 731
  * @deprecated
732 732
  */
733
-function wpinv_display_invoice_details( $invoice ) {
734
-    return getpaid_invoice_meta( $invoice );
733
+function wpinv_display_invoice_details($invoice) {
734
+    return getpaid_invoice_meta($invoice);
735 735
 }
736 736
 
737 737
 /**
738 738
  * Displays invoice meta.
739 739
  */
740
-function getpaid_invoice_meta( $invoice ) {
740
+function getpaid_invoice_meta($invoice) {
741 741
 
742
-    $invoice = new WPInv_Invoice( $invoice );
742
+    $invoice = new WPInv_Invoice($invoice);
743 743
 
744 744
     // Ensure that we have an invoice.
745
-    if ( 0 == $invoice->get_id() ) {
745
+    if (0 == $invoice->get_id()) {
746 746
         return;
747 747
     }
748 748
 
749 749
     // Get the invoice meta.
750
-    $meta = getpaid_get_invoice_meta( $invoice );
750
+    $meta = getpaid_get_invoice_meta($invoice);
751 751
 
752 752
     // Display the meta.
753
-    wpinv_get_template( 'invoice/invoice-meta.php', compact( 'invoice', 'meta' ) );
753
+    wpinv_get_template('invoice/invoice-meta.php', compact('invoice', 'meta'));
754 754
 
755 755
 }
756
-add_action( 'getpaid_invoice_details_right', 'getpaid_invoice_meta', 10 );
756
+add_action('getpaid_invoice_details_right', 'getpaid_invoice_meta', 10);
757 757
 
758 758
 /**
759 759
  * Retrieves the address markup to use on Invoices.
@@ -765,29 +765,29 @@  discard block
 block discarded – undo
765 765
  * @param  string $separator How to separate address lines.
766 766
  * @return string
767 767
  */
768
-function wpinv_get_invoice_address_markup( $billing_details, $separator = '<br/>' ) {
768
+function wpinv_get_invoice_address_markup($billing_details, $separator = '<br/>') {
769 769
 
770 770
     // Retrieve the address markup...
771
-    $country = empty( $billing_details['country'] ) ? '' : $billing_details['country'];
772
-    $format = wpinv_get_full_address_format( $country );
771
+    $country = empty($billing_details['country']) ? '' : $billing_details['country'];
772
+    $format = wpinv_get_full_address_format($country);
773 773
 
774 774
     // ... and the replacements.
775
-    $replacements = wpinv_get_invoice_address_replacements( $billing_details );
775
+    $replacements = wpinv_get_invoice_address_replacements($billing_details);
776 776
 
777
-    $formatted_address = str_ireplace( array_keys( $replacements ), $replacements, $format );
777
+    $formatted_address = str_ireplace(array_keys($replacements), $replacements, $format);
778 778
 
779 779
 	// Remove unavailable tags.
780
-    $formatted_address = preg_replace( '/\{\{\w+\}\}/', '', $formatted_address );
780
+    $formatted_address = preg_replace('/\{\{\w+\}\}/', '', $formatted_address);
781 781
 
782 782
     // Clean up white space.
783
-	$formatted_address = preg_replace( '/  +/', ' ', trim( $formatted_address ) );
784
-    $formatted_address = preg_replace( '/\n\n+/', "\n", $formatted_address );
783
+	$formatted_address = preg_replace('/  +/', ' ', trim($formatted_address));
784
+    $formatted_address = preg_replace('/\n\n+/', "\n", $formatted_address);
785 785
 
786 786
     // Break newlines apart and remove empty lines/trim commas and white space.
787
-	$formatted_address = array_filter( array_map( 'wpinv_trim_formatted_address_line', explode( "\n", $formatted_address ) ) );
787
+	$formatted_address = array_filter(array_map('wpinv_trim_formatted_address_line', explode("\n", $formatted_address)));
788 788
 
789 789
     // Add html breaks.
790
-	$formatted_address = implode( $separator, $formatted_address );
790
+	$formatted_address = implode($separator, $formatted_address);
791 791
 
792 792
 	// We're done!
793 793
 	return $formatted_address;
@@ -799,118 +799,118 @@  discard block
 block discarded – undo
799 799
  *
800 800
  * @param WPInv_Invoice $invoice
801 801
  */
802
-function wpinv_display_to_address( $invoice = 0 ) {
803
-    if ( ! empty( $invoice ) ) {
804
-        wpinv_get_template( 'invoice/billing-address.php', compact( 'invoice' ) );
802
+function wpinv_display_to_address($invoice = 0) {
803
+    if (!empty($invoice)) {
804
+        wpinv_get_template('invoice/billing-address.php', compact('invoice'));
805 805
     }
806 806
 }
807
-add_action( 'getpaid_invoice_details_left', 'wpinv_display_to_address', 40 );
807
+add_action('getpaid_invoice_details_left', 'wpinv_display_to_address', 40);
808 808
 
809 809
 
810 810
 /**
811 811
  * Displays invoice line items.
812 812
  */
813
-function wpinv_display_line_items( $invoice_id = 0 ) {
813
+function wpinv_display_line_items($invoice_id = 0) {
814 814
 
815 815
     // Prepare the invoice.
816
-    $invoice = new WPInv_Invoice( $invoice_id );
816
+    $invoice = new WPInv_Invoice($invoice_id);
817 817
 
818 818
     // Abort if there is no invoice.
819
-    if ( 0 == $invoice->get_id() ) {
819
+    if (0 == $invoice->get_id()) {
820 820
         return;
821 821
     }
822 822
 
823 823
     // Line item columns.
824
-    $columns = getpaid_invoice_item_columns( $invoice );
825
-    $columns = apply_filters( 'getpaid_invoice_line_items_table_columns', $columns, $invoice );
824
+    $columns = getpaid_invoice_item_columns($invoice);
825
+    $columns = apply_filters('getpaid_invoice_line_items_table_columns', $columns, $invoice);
826 826
 
827
-    wpinv_get_template( 'invoice/line-items.php', compact( 'invoice', 'columns' ) );
827
+    wpinv_get_template('invoice/line-items.php', compact('invoice', 'columns'));
828 828
 }
829
-add_action( 'getpaid_invoice_line_items', 'wpinv_display_line_items', 10 );
829
+add_action('getpaid_invoice_line_items', 'wpinv_display_line_items', 10);
830 830
 
831 831
 /**
832 832
  * Displays invoice subscriptions.
833 833
  *
834 834
  * @param WPInv_Invoice $invoice
835 835
  */
836
-function getpaid_display_invoice_subscriptions( $invoice ) {
836
+function getpaid_display_invoice_subscriptions($invoice) {
837 837
 
838 838
     // Subscriptions.
839
-	$subscriptions = getpaid_get_invoice_subscriptions( $invoice );
839
+	$subscriptions = getpaid_get_invoice_subscriptions($invoice);
840 840
 
841
-    if ( empty( $subscriptions ) || ! $invoice->is_recurring() ) {
841
+    if (empty($subscriptions) || !$invoice->is_recurring()) {
842 842
         return;
843 843
     }
844 844
 
845
-    $main_subscription = getpaid_get_invoice_subscription( $invoice );
845
+    $main_subscription = getpaid_get_invoice_subscription($invoice);
846 846
 
847 847
     // Display related subscriptions.
848
-    if ( is_array( $subscriptions ) ) {
849
-        printf( '<h2 class="mt-5 mb-1 h4">%s</h2>', esc_html__( 'Related Subscriptions', 'invoicing' ) );
850
-        getpaid_admin_subscription_related_subscriptions_metabox( $main_subscription, false );
848
+    if (is_array($subscriptions)) {
849
+        printf('<h2 class="mt-5 mb-1 h4">%s</h2>', esc_html__('Related Subscriptions', 'invoicing'));
850
+        getpaid_admin_subscription_related_subscriptions_metabox($main_subscription, false);
851 851
     }
852 852
 
853
-    if ( $main_subscription->get_total_payments() > 1 ) {
854
-        printf( '<h2 class="mt-5 mb-1 h4">%s</h2>', esc_html__( 'Related Invoices', 'invoicing' ) );
855
-        getpaid_admin_subscription_invoice_details_metabox( $main_subscription, false );
853
+    if ($main_subscription->get_total_payments() > 1) {
854
+        printf('<h2 class="mt-5 mb-1 h4">%s</h2>', esc_html__('Related Invoices', 'invoicing'));
855
+        getpaid_admin_subscription_invoice_details_metabox($main_subscription, false);
856 856
     }
857 857
 
858 858
 }
859
-add_action( 'getpaid_invoice_line_items', 'getpaid_display_invoice_subscriptions', 55 );
860
-add_action( 'wpinv_receipt_end', 'getpaid_display_invoice_subscriptions', 11 );
859
+add_action('getpaid_invoice_line_items', 'getpaid_display_invoice_subscriptions', 55);
860
+add_action('wpinv_receipt_end', 'getpaid_display_invoice_subscriptions', 11);
861 861
 
862 862
 /**
863 863
  * Displays invoice notices on invoices.
864 864
  */
865 865
 function wpinv_display_invoice_notice() {
866 866
 
867
-    $label  = wpinv_get_option( 'vat_invoice_notice_label' );
868
-    $notice = wpinv_get_option( 'vat_invoice_notice' );
867
+    $label  = wpinv_get_option('vat_invoice_notice_label');
868
+    $notice = wpinv_get_option('vat_invoice_notice');
869 869
 
870
-    if ( empty( $label ) && empty( $notice ) ) {
870
+    if (empty($label) && empty($notice)) {
871 871
         return;
872 872
     }
873 873
 
874 874
     echo '<div class="mt-4 mb-4 wpinv-vat-notice">';
875 875
 
876
-    if ( ! empty( $label ) ) {
877
-        echo "<h5>" . esc_html( $label ) . "</h5>";
876
+    if (!empty($label)) {
877
+        echo "<h5>" . esc_html($label) . "</h5>";
878 878
     }
879 879
 
880
-    if ( ! empty( $notice ) ) {
881
-        echo '<small class="form-text text-muted">' . wp_kses_post( wpautop( wptexturize( $notice ) ) ) . '</small>';
880
+    if (!empty($notice)) {
881
+        echo '<small class="form-text text-muted">' . wp_kses_post(wpautop(wptexturize($notice))) . '</small>';
882 882
     }
883 883
 
884 884
     echo '</div>';
885 885
 }
886
-add_action( 'getpaid_invoice_line_items', 'wpinv_display_invoice_notice', 100 );
886
+add_action('getpaid_invoice_line_items', 'wpinv_display_invoice_notice', 100);
887 887
 
888 888
 /**
889 889
  * @param WPInv_Invoice $invoice
890 890
  */
891
-function wpinv_display_invoice_notes( $invoice ) {
891
+function wpinv_display_invoice_notes($invoice) {
892 892
 
893 893
     // Retrieve the notes.
894
-    $notes = wpinv_get_invoice_notes( $invoice->get_id(), 'customer' );
894
+    $notes = wpinv_get_invoice_notes($invoice->get_id(), 'customer');
895 895
 
896 896
     // Abort if we have non.
897
-    if ( empty( $notes ) ) {
897
+    if (empty($notes)) {
898 898
         return;
899 899
     }
900 900
 
901 901
     // Echo the note.
902 902
     echo '<div class="getpaid-invoice-notes-wrapper position-relative my-4">';
903
-    echo '<h2 class="getpaid-invoice-notes-title mb-1 p-0 h4">' . esc_html__( 'Notes', 'invoicing' ) . '</h2>';
903
+    echo '<h2 class="getpaid-invoice-notes-title mb-1 p-0 h4">' . esc_html__('Notes', 'invoicing') . '</h2>';
904 904
     echo '<ul class="getpaid-invoice-notes text-break overflow-auto list-unstyled p-0 m-0">';
905 905
 
906
-    foreach ( $notes as $note ) {
907
-        wpinv_get_invoice_note_line_item( $note );
906
+    foreach ($notes as $note) {
907
+        wpinv_get_invoice_note_line_item($note);
908 908
     }
909 909
 
910 910
     echo '</ul>';
911 911
     echo '</div>';
912 912
 }
913
-add_action( 'getpaid_invoice_line_items', 'wpinv_display_invoice_notes', 60 );
913
+add_action('getpaid_invoice_line_items', 'wpinv_display_invoice_notes', 60);
914 914
 
915 915
 /**
916 916
  * Loads scripts on our invoice templates.
@@ -918,37 +918,37 @@  discard block
 block discarded – undo
918 918
 function wpinv_display_style() {
919 919
 
920 920
     // Make sure that all scripts have been loaded.
921
-    if ( ! did_action( 'wp_enqueue_scripts' ) ) {
922
-        do_action( 'wp_enqueue_scripts' );
921
+    if (!did_action('wp_enqueue_scripts')) {
922
+        do_action('wp_enqueue_scripts');
923 923
     }
924 924
 
925 925
     // Add global styles.
926
-    if ( wp_is_block_theme() ) {
927
-        wp_print_styles( 'global-styles' );
926
+    if (wp_is_block_theme()) {
927
+        wp_print_styles('global-styles');
928 928
     }
929 929
 
930 930
     // Register the invoices style.
931
-    wp_register_style( 'wpinv-single-style', WPINV_PLUGIN_URL . 'assets/css/invoice.css', array(), filemtime( WPINV_PLUGIN_DIR . 'assets/css/invoice.css' ) );
931
+    wp_register_style('wpinv-single-style', WPINV_PLUGIN_URL . 'assets/css/invoice.css', array(), filemtime(WPINV_PLUGIN_DIR . 'assets/css/invoice.css'));
932 932
 
933 933
     // Load required styles
934
-    wp_print_styles( 'wpinv-single-style' );
935
-    wp_print_styles( 'ayecode-ui' );
934
+    wp_print_styles('wpinv-single-style');
935
+    wp_print_styles('ayecode-ui');
936 936
 
937 937
     // Maybe load custom css.
938
-    $custom_css = wpinv_get_option( 'template_custom_css' );
938
+    $custom_css = wpinv_get_option('template_custom_css');
939 939
 
940
-    if ( isset( $custom_css ) && ! empty( $custom_css ) ) {
941
-        $custom_css     = wp_kses( $custom_css, array( '\'', '\"' ) );
942
-        $custom_css     = str_replace( '&gt;', '>', $custom_css );
940
+    if (isset($custom_css) && !empty($custom_css)) {
941
+        $custom_css     = wp_kses($custom_css, array('\'', '\"'));
942
+        $custom_css     = str_replace('&gt;', '>', $custom_css);
943 943
         echo '<style type="text/css">';
944
-        echo wp_kses_post( $custom_css );
944
+        echo wp_kses_post($custom_css);
945 945
         echo '</style>';
946 946
     }
947 947
 
948 948
     wp_site_icon();
949 949
 }
950
-add_action( 'wpinv_invoice_print_head', 'wpinv_display_style' );
951
-add_action( 'wpinv_invalid_invoice_head', 'wpinv_display_style' );
950
+add_action('wpinv_invoice_print_head', 'wpinv_display_style');
951
+add_action('wpinv_invalid_invoice_head', 'wpinv_display_style');
952 952
 
953 953
 
954 954
 /**
@@ -960,41 +960,41 @@  discard block
 block discarded – undo
960 960
     // Retrieve the current invoice.
961 961
     $invoice_id = getpaid_get_current_invoice_id();
962 962
 
963
-    if ( empty( $invoice_id ) ) {
963
+    if (empty($invoice_id)) {
964 964
 
965 965
         return aui()->alert(
966 966
             array(
967 967
                 'type'    => 'warning',
968
-                'content' => __( 'Invalid invoice', 'invoicing' ),
968
+                'content' => __('Invalid invoice', 'invoicing'),
969 969
             )
970 970
         );
971 971
 
972 972
     }
973 973
 
974 974
     // Can the user view this invoice?
975
-    if ( ! wpinv_user_can_view_invoice( $invoice_id ) ) {
975
+    if (!wpinv_user_can_view_invoice($invoice_id)) {
976 976
 
977 977
         return aui()->alert(
978 978
             array(
979 979
                 'type'    => 'warning',
980
-                'content' => __( 'You are not allowed to view this invoice', 'invoicing' ),
980
+                'content' => __('You are not allowed to view this invoice', 'invoicing'),
981 981
             )
982 982
         );
983 983
 
984 984
     }
985 985
 
986 986
     // Ensure that it is not yet paid for.
987
-    $invoice = new WPInv_Invoice( $invoice_id );
987
+    $invoice = new WPInv_Invoice($invoice_id);
988 988
 
989 989
     // Maybe mark it as viewed.
990
-    getpaid_maybe_mark_invoice_as_viewed( $invoice );
990
+    getpaid_maybe_mark_invoice_as_viewed($invoice);
991 991
 
992
-    if ( $invoice->is_paid() ) {
992
+    if ($invoice->is_paid()) {
993 993
 
994 994
         return aui()->alert(
995 995
             array(
996 996
                 'type'    => 'success',
997
-                'content' => __( 'This invoice has already been paid.', 'invoicing' ),
997
+                'content' => __('This invoice has already been paid.', 'invoicing'),
998 998
             )
999 999
         );
1000 1000
 
@@ -1004,15 +1004,15 @@  discard block
 block discarded – undo
1004 1004
     $wpi_checkout_id = $invoice_id;
1005 1005
 
1006 1006
     // Retrieve appropriate payment form.
1007
-    $payment_form = new GetPaid_Payment_Form( wpinv_translate_post_id( $invoice->get_meta( 'force_payment_form' ) ) );
1008
-    $payment_form = $payment_form->exists() ? $payment_form : new GetPaid_Payment_Form( wpinv_get_default_payment_form() );
1007
+    $payment_form = new GetPaid_Payment_Form(wpinv_translate_post_id($invoice->get_meta('force_payment_form')));
1008
+    $payment_form = $payment_form->exists() ? $payment_form : new GetPaid_Payment_Form(wpinv_get_default_payment_form());
1009 1009
 
1010
-    if ( ! $payment_form->exists() ) {
1010
+    if (!$payment_form->exists()) {
1011 1011
 
1012 1012
         return aui()->alert(
1013 1013
             array(
1014 1014
                 'type'    => 'warning',
1015
-                'content' => __( 'Error loading the payment form', 'invoicing' ),
1015
+                'content' => __('Error loading the payment form', 'invoicing'),
1016 1016
             )
1017 1017
         );
1018 1018
 
@@ -1021,29 +1021,29 @@  discard block
 block discarded – undo
1021 1021
     // Set the invoice.
1022 1022
     $payment_form->invoice = $invoice;
1023 1023
 
1024
-    if ( ! $payment_form->is_default() ) {
1024
+    if (!$payment_form->is_default()) {
1025 1025
 
1026 1026
         $items    = array();
1027 1027
         $item_ids = array();
1028 1028
 
1029
-        foreach ( $invoice->get_items() as $item ) {
1030
-            if ( ! in_array( $item->get_id(), $item_ids ) ) {
1029
+        foreach ($invoice->get_items() as $item) {
1030
+            if (!in_array($item->get_id(), $item_ids)) {
1031 1031
                 $item_ids[] = $item->get_id();
1032 1032
                 $items[]    = $item;
1033 1033
             }
1034 1034
         }
1035 1035
 
1036
-        foreach ( $payment_form->get_items() as $item ) {
1037
-            if ( ! in_array( $item->get_id(), $item_ids ) ) {
1036
+        foreach ($payment_form->get_items() as $item) {
1037
+            if (!in_array($item->get_id(), $item_ids)) {
1038 1038
                 $item_ids[] = $item->get_id();
1039 1039
                 $items[]    = $item;
1040 1040
             }
1041 1041
         }
1042 1042
 
1043
-        $payment_form->set_items( $items );
1043
+        $payment_form->set_items($items);
1044 1044
 
1045 1045
     } else {
1046
-        $payment_form->set_items( $invoice->get_items() );
1046
+        $payment_form->set_items($invoice->get_items());
1047 1047
     }
1048 1048
 
1049 1049
     // Generate the html.
@@ -1052,7 +1052,7 @@  discard block
 block discarded – undo
1052 1052
 }
1053 1053
 
1054 1054
 function wpinv_empty_cart_message() {
1055
-	return apply_filters( 'wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __( 'Your cart is empty.', 'invoicing' ) . '</span>' );
1055
+	return apply_filters('wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __('Your cart is empty.', 'invoicing') . '</span>');
1056 1056
 }
1057 1057
 
1058 1058
 /**
@@ -1070,76 +1070,76 @@  discard block
 block discarded – undo
1070 1070
         true
1071 1071
     );
1072 1072
 }
1073
-add_action( 'wpinv_cart_empty', 'wpinv_empty_checkout_cart' );
1073
+add_action('wpinv_cart_empty', 'wpinv_empty_checkout_cart');
1074 1074
 
1075 1075
 /**
1076 1076
  * Filters the receipt page.
1077 1077
  */
1078
-function wpinv_filter_success_page_content( $content ) {
1078
+function wpinv_filter_success_page_content($content) {
1079 1079
 
1080 1080
     // Maybe abort early.
1081
-    if ( is_admin() || ! is_singular() || ! in_the_loop() || ! is_main_query() || is_preview() ) {
1081
+    if (is_admin() || !is_singular() || !in_the_loop() || !is_main_query() || is_preview()) {
1082 1082
         return $content;
1083 1083
     }
1084 1084
 
1085 1085
     // Ensure this is our page.
1086
-    if ( isset( $_GET['payment-confirm'] ) && wpinv_is_success_page() ) {
1086
+    if (isset($_GET['payment-confirm']) && wpinv_is_success_page()) {
1087 1087
 
1088
-        $gateway = sanitize_text_field( $_GET['payment-confirm'] );
1089
-        return apply_filters( "wpinv_payment_confirm_$gateway", $content );
1088
+        $gateway = sanitize_text_field($_GET['payment-confirm']);
1089
+        return apply_filters("wpinv_payment_confirm_$gateway", $content);
1090 1090
 
1091 1091
     }
1092 1092
 
1093 1093
     return $content;
1094 1094
 }
1095
-add_filter( 'the_content', 'wpinv_filter_success_page_content', 99999 );
1095
+add_filter('the_content', 'wpinv_filter_success_page_content', 99999);
1096 1096
 
1097
-function wpinv_invoice_link( $invoice_id ) {
1098
-    $invoice = wpinv_get_invoice( $invoice_id );
1097
+function wpinv_invoice_link($invoice_id) {
1098
+    $invoice = wpinv_get_invoice($invoice_id);
1099 1099
 
1100
-    if ( empty( $invoice ) ) {
1100
+    if (empty($invoice)) {
1101 1101
         return null;
1102 1102
     }
1103 1103
 
1104
-    $invoice_link = '<a href="' . esc_url( $invoice->get_view_url() ) . '">' . $invoice->get_number() . '</a>';
1104
+    $invoice_link = '<a href="' . esc_url($invoice->get_view_url()) . '">' . $invoice->get_number() . '</a>';
1105 1105
 
1106
-    return apply_filters( 'wpinv_get_invoice_link', $invoice_link, $invoice );
1106
+    return apply_filters('wpinv_get_invoice_link', $invoice_link, $invoice);
1107 1107
 }
1108 1108
 
1109
-function wpinv_get_invoice_note_line_item( $note, $echo = true ) {
1110
-    if ( empty( $note ) ) {
1109
+function wpinv_get_invoice_note_line_item($note, $echo = true) {
1110
+    if (empty($note)) {
1111 1111
         return null;
1112 1112
     }
1113 1113
 
1114
-    if ( is_int( $note ) ) {
1115
-        $note = get_comment( $note );
1114
+    if (is_int($note)) {
1115
+        $note = get_comment($note);
1116 1116
     }
1117 1117
 
1118
-    if ( ! ( is_object( $note ) && is_a( $note, 'WP_Comment' ) ) ) {
1118
+    if (!(is_object($note) && is_a($note, 'WP_Comment'))) {
1119 1119
         return null;
1120 1120
     }
1121 1121
 
1122
-    $note_classes   = array( 'note' );
1123
-    $note_classes[] = get_comment_meta( $note->comment_ID, '_wpi_customer_note', true ) ? 'customer-note' : '';
1122
+    $note_classes   = array('note');
1123
+    $note_classes[] = get_comment_meta($note->comment_ID, '_wpi_customer_note', true) ? 'customer-note' : '';
1124 1124
     $note_classes[] = $note->comment_author === 'System' ? 'system-note' : '';
1125
-    $note_classes   = apply_filters( 'wpinv_invoice_note_class', array_filter( $note_classes ), $note );
1126
-    $note_classes   = ! empty( $note_classes ) ? implode( ' ', $note_classes ) : '';
1125
+    $note_classes   = apply_filters('wpinv_invoice_note_class', array_filter($note_classes), $note);
1126
+    $note_classes   = !empty($note_classes) ? implode(' ', $note_classes) : '';
1127 1127
 
1128 1128
     ob_start();
1129 1129
     ?>
1130
-    <li rel="<?php echo absint( $note->comment_ID ); ?>" class="<?php echo esc_attr( $note_classes ); ?> mb-2">
1130
+    <li rel="<?php echo absint($note->comment_ID); ?>" class="<?php echo esc_attr($note_classes); ?> mb-2">
1131 1131
         <div class="note_content">
1132 1132
 
1133
-            <?php echo wp_kses_post( wptexturize( $note->comment_content ) ); ?>
1133
+            <?php echo wp_kses_post(wptexturize($note->comment_content)); ?>
1134 1134
 
1135
-            <?php if ( ! is_admin() ) : ?>
1135
+            <?php if (!is_admin()) : ?>
1136 1136
                 <em class="small form-text text-muted mt-0">
1137 1137
                     <?php
1138 1138
                         printf(
1139
-                            esc_html__( '%1$s - %2$s at %3$s', 'invoicing' ),
1140
-                            esc_html( $note->comment_author ),
1141
-                            esc_html( getpaid_format_date_value( $note->comment_date ) ),
1142
-                            esc_html( date_i18n( get_option( 'time_format' ), strtotime( $note->comment_date ) ) )
1139
+                            esc_html__('%1$s - %2$s at %3$s', 'invoicing'),
1140
+                            esc_html($note->comment_author),
1141
+                            esc_html(getpaid_format_date_value($note->comment_date)),
1142
+                            esc_html(date_i18n(get_option('time_format'), strtotime($note->comment_date)))
1143 1143
                         );
1144 1144
                     ?>
1145 1145
                 </em>
@@ -1147,21 +1147,21 @@  discard block
 block discarded – undo
1147 1147
 
1148 1148
         </div>
1149 1149
 
1150
-        <?php if ( is_admin() ) : ?>
1150
+        <?php if (is_admin()) : ?>
1151 1151
 
1152 1152
             <p class="meta px-4 py-2">
1153
-                <abbr class="exact-date" title="<?php echo esc_attr( $note->comment_date ); ?>">
1153
+                <abbr class="exact-date" title="<?php echo esc_attr($note->comment_date); ?>">
1154 1154
                     <?php
1155 1155
                         printf(
1156
-                            esc_html__( '%1$s - %2$s at %3$s', 'invoicing' ),
1157
-                            esc_html( $note->comment_author ),
1158
-                            esc_html( getpaid_format_date_value( $note->comment_date ) ),
1159
-                            esc_html( date_i18n( get_option( 'time_format' ), strtotime( $note->comment_date ) ) )
1156
+                            esc_html__('%1$s - %2$s at %3$s', 'invoicing'),
1157
+                            esc_html($note->comment_author),
1158
+                            esc_html(getpaid_format_date_value($note->comment_date)),
1159
+                            esc_html(date_i18n(get_option('time_format'), strtotime($note->comment_date)))
1160 1160
                         );
1161 1161
                     ?>
1162 1162
                 </abbr>&nbsp;&nbsp;
1163
-                <?php if ( $note->comment_author !== 'System' && wpinv_current_user_can_manage_invoicing() ) { ?>
1164
-                    <a href="#" class="delete_note" data-id="<?php echo esc_attr( $note->comment_ID ); ?>"><?php esc_html_e( 'Delete note', 'invoicing' ); ?></a>
1163
+                <?php if ($note->comment_author !== 'System' && wpinv_current_user_can_manage_invoicing()) { ?>
1164
+                    <a href="#" class="delete_note" data-id="<?php echo esc_attr($note->comment_ID); ?>"><?php esc_html_e('Delete note', 'invoicing'); ?></a>
1165 1165
                 <?php } ?>
1166 1166
             </p>
1167 1167
 
@@ -1170,10 +1170,10 @@  discard block
 block discarded – undo
1170 1170
     </li>
1171 1171
     <?php
1172 1172
     $note_content = ob_get_clean();
1173
-    $note_content = apply_filters( 'wpinv_get_invoice_note_line_item', $note_content, $note, $echo );
1173
+    $note_content = apply_filters('wpinv_get_invoice_note_line_item', $note_content, $note, $echo);
1174 1174
 
1175
-    if ( $echo ) {
1176
-        echo wp_kses_post( $note_content );
1175
+    if ($echo) {
1176
+        echo wp_kses_post($note_content);
1177 1177
     } else {
1178 1178
         return $note_content;
1179 1179
     }
@@ -1186,43 +1186,43 @@  discard block
 block discarded – undo
1186 1186
  * @return string
1187 1187
  */
1188 1188
 function wpinv_get_policy_text() {
1189
-    $privacy_page_id = get_option( 'wp_page_for_privacy_policy', 0 );
1189
+    $privacy_page_id = get_option('wp_page_for_privacy_policy', 0);
1190 1190
 
1191
-    $text = wpinv_get_option( 'invoicing_privacy_checkout_message', sprintf( __( 'Your personal data will be used to process your invoice, payment and for other purposes described in our %s.', 'invoicing' ), '[wpinv_privacy_policy]' ) );
1191
+    $text = wpinv_get_option('invoicing_privacy_checkout_message', sprintf(__('Your personal data will be used to process your invoice, payment and for other purposes described in our %s.', 'invoicing'), '[wpinv_privacy_policy]'));
1192 1192
 
1193
-    if ( ! $privacy_page_id ) {
1194
-        $privacy_page_id = wpinv_get_option( 'privacy_page', 0 );
1193
+    if (!$privacy_page_id) {
1194
+        $privacy_page_id = wpinv_get_option('privacy_page', 0);
1195 1195
     }
1196 1196
 
1197
-    $privacy_link    = $privacy_page_id ? '<a href="' . esc_url( get_permalink( $privacy_page_id ) ) . '" class="wpinv-privacy-policy-link" target="_blank">' . __( 'privacy policy', 'invoicing' ) . '</a>' : __( 'privacy policy', 'invoicing' );
1197
+    $privacy_link = $privacy_page_id ? '<a href="' . esc_url(get_permalink($privacy_page_id)) . '" class="wpinv-privacy-policy-link" target="_blank">' . __('privacy policy', 'invoicing') . '</a>' : __('privacy policy', 'invoicing');
1198 1198
 
1199 1199
     $find_replace = array(
1200 1200
         '[wpinv_privacy_policy]' => $privacy_link,
1201 1201
     );
1202 1202
 
1203
-    $privacy_text = str_replace( array_keys( $find_replace ), array_values( $find_replace ), $text );
1203
+    $privacy_text = str_replace(array_keys($find_replace), array_values($find_replace), $text);
1204 1204
 
1205
-    return wp_kses_post( wpautop( $privacy_text ) );
1205
+    return wp_kses_post(wpautop($privacy_text));
1206 1206
 }
1207 1207
 
1208 1208
 function wpinv_oxygen_fix_conflict() {
1209 1209
     global $ct_ignore_post_types;
1210 1210
 
1211
-    if ( ! is_array( $ct_ignore_post_types ) ) {
1211
+    if (!is_array($ct_ignore_post_types)) {
1212 1212
         $ct_ignore_post_types = array();
1213 1213
     }
1214 1214
 
1215
-    $post_types = array( 'wpi_discount', 'wpi_invoice', 'wpi_item', 'wpi_payment_form' );
1215
+    $post_types = array('wpi_discount', 'wpi_invoice', 'wpi_item', 'wpi_payment_form');
1216 1216
 
1217
-    foreach ( $post_types as $post_type ) {
1217
+    foreach ($post_types as $post_type) {
1218 1218
         $ct_ignore_post_types[] = $post_type;
1219 1219
 
1220 1220
         // Ignore post type
1221
-        add_filter( 'pre_option_oxygen_vsb_ignore_post_type_' . $post_type, '__return_true', 999 );
1221
+        add_filter('pre_option_oxygen_vsb_ignore_post_type_' . $post_type, '__return_true', 999);
1222 1222
     }
1223 1223
 
1224
-    remove_filter( 'template_include', 'wpinv_template', 10, 1 );
1225
-    add_filter( 'template_include', 'wpinv_template', 999, 1 );
1224
+    remove_filter('template_include', 'wpinv_template', 10, 1);
1225
+    add_filter('template_include', 'wpinv_template', 999, 1);
1226 1226
 }
1227 1227
 
1228 1228
 /**
@@ -1230,10 +1230,10 @@  discard block
 block discarded – undo
1230 1230
  *
1231 1231
  * @param GetPaid_Payment_Form $form
1232 1232
  */
1233
-function getpaid_display_payment_form( $form ) {
1233
+function getpaid_display_payment_form($form) {
1234 1234
 
1235
-    if ( is_numeric( $form ) ) {
1236
-        $form = new GetPaid_Payment_Form( wpinv_translate_post_id( $form ) );
1235
+    if (is_numeric($form)) {
1236
+        $form = new GetPaid_Payment_Form(wpinv_translate_post_id($form));
1237 1237
     }
1238 1238
 
1239 1239
     $form->display();
@@ -1243,61 +1243,61 @@  discard block
 block discarded – undo
1243 1243
 /**
1244 1244
  * Helper function to display a item payment form on the frontend.
1245 1245
  */
1246
-function getpaid_display_item_payment_form( $items ) {
1246
+function getpaid_display_item_payment_form($items) {
1247 1247
 
1248
-    $form = new GetPaid_Payment_Form( wpinv_get_default_payment_form() );
1249
-    $form->set_items( $items );
1248
+    $form = new GetPaid_Payment_Form(wpinv_get_default_payment_form());
1249
+    $form->set_items($items);
1250 1250
 
1251
-    if ( 0 == count( $form->get_items() ) ) {
1251
+    if (0 == count($form->get_items())) {
1252 1252
         aui()->alert(
1253 1253
 			array(
1254 1254
 				'type'    => 'warning',
1255
-				'content' => __( 'No published items found', 'invoicing' ),
1255
+				'content' => __('No published items found', 'invoicing'),
1256 1256
             ),
1257 1257
             true
1258 1258
         );
1259 1259
         return;
1260 1260
     }
1261 1261
 
1262
-    $extra_items     = esc_attr( getpaid_convert_items_to_string( $items ) );
1263
-    $extra_items_key = md5( NONCE_KEY . AUTH_KEY . $extra_items );
1262
+    $extra_items     = esc_attr(getpaid_convert_items_to_string($items));
1263
+    $extra_items_key = md5(NONCE_KEY . AUTH_KEY . $extra_items);
1264 1264
     $extra_items     = "<input type='hidden' name='getpaid-form-items' value='$extra_items' />";
1265 1265
     $extra_items    .= "<input type='hidden' name='getpaid-form-items-key' value='$extra_items_key' />";
1266 1266
 
1267
-    $form->display( $extra_items );
1267
+    $form->display($extra_items);
1268 1268
 }
1269 1269
 
1270 1270
 /**
1271 1271
  * Helper function to display an invoice payment form on the frontend.
1272 1272
  */
1273
-function getpaid_display_invoice_payment_form( $invoice_id ) {
1273
+function getpaid_display_invoice_payment_form($invoice_id) {
1274 1274
 
1275
-    $invoice = wpinv_get_invoice( $invoice_id );
1275
+    $invoice = wpinv_get_invoice($invoice_id);
1276 1276
 
1277
-    if ( empty( $invoice ) ) {
1277
+    if (empty($invoice)) {
1278 1278
 		aui()->alert(
1279 1279
 			array(
1280 1280
 				'type'    => 'warning',
1281
-				'content' => __( 'Invoice not found', 'invoicing' ),
1281
+				'content' => __('Invoice not found', 'invoicing'),
1282 1282
             ),
1283 1283
             true
1284 1284
         );
1285 1285
         return;
1286 1286
     }
1287 1287
 
1288
-    if ( $invoice->is_paid() ) {
1288
+    if ($invoice->is_paid()) {
1289 1289
 		aui()->alert(
1290 1290
 			array(
1291 1291
 				'type'    => 'warning',
1292
-				'content' => __( 'Invoice has already been paid', 'invoicing' ),
1292
+				'content' => __('Invoice has already been paid', 'invoicing'),
1293 1293
             ),
1294 1294
             true
1295 1295
         );
1296 1296
         return;
1297 1297
     }
1298 1298
 
1299
-    $form = new GetPaid_Payment_Form( wpinv_get_default_payment_form() );
1300
-    $form->set_items( $invoice->get_items() );
1299
+    $form = new GetPaid_Payment_Form(wpinv_get_default_payment_form());
1300
+    $form->set_items($invoice->get_items());
1301 1301
 
1302 1302
     $form->display();
1303 1303
 }
@@ -1305,24 +1305,24 @@  discard block
 block discarded – undo
1305 1305
 /**
1306 1306
  * Helper function to convert item string to array.
1307 1307
  */
1308
-function getpaid_convert_items_to_array( $items ) {
1309
-    $items    = array_filter( array_map( 'trim', explode( ',', $items ) ) );
1308
+function getpaid_convert_items_to_array($items) {
1309
+    $items    = array_filter(array_map('trim', explode(',', $items)));
1310 1310
     $prepared = array();
1311 1311
 
1312
-    foreach ( $items as $item ) {
1313
-        $data = array_map( 'trim', explode( '|', $item ) );
1312
+    foreach ($items as $item) {
1313
+        $data = array_map('trim', explode('|', $item));
1314 1314
 
1315
-        if ( empty( $data[0] ) || ! is_numeric( $data[0] ) ) {
1315
+        if (empty($data[0]) || !is_numeric($data[0])) {
1316 1316
             continue;
1317 1317
         }
1318 1318
 
1319 1319
         $quantity = 1;
1320
-        if ( isset( $data[1] ) && is_numeric( $data[1] ) ) {
1320
+        if (isset($data[1]) && is_numeric($data[1])) {
1321 1321
             $quantity = (float) $data[1];
1322 1322
         }
1323 1323
 
1324 1324
         // WPML support.
1325
-        $prepared[ wpinv_translate_post_id( $data[0] ) ] = $quantity;
1325
+        $prepared[wpinv_translate_post_id($data[0])] = $quantity;
1326 1326
 
1327 1327
     }
1328 1328
 
@@ -1332,13 +1332,13 @@  discard block
 block discarded – undo
1332 1332
 /**
1333 1333
  * Helper function to convert item array to string.
1334 1334
  */
1335
-function getpaid_convert_items_to_string( $items ) {
1335
+function getpaid_convert_items_to_string($items) {
1336 1336
     $prepared = array();
1337 1337
 
1338
-    foreach ( $items as $item => $quantity ) {
1338
+    foreach ($items as $item => $quantity) {
1339 1339
         $prepared[] = "$item|$quantity";
1340 1340
     }
1341
-    return implode( ',', $prepared );
1341
+    return implode(',', $prepared);
1342 1342
 }
1343 1343
 
1344 1344
 /**
@@ -1346,21 +1346,21 @@  discard block
 block discarded – undo
1346 1346
  *
1347 1347
  * Provide a label and one of $form, $items or $invoice.
1348 1348
  */
1349
-function getpaid_get_payment_button( $label, $form = null, $items = null, $invoice = null ) {
1350
-    $label = sanitize_text_field( $label );
1349
+function getpaid_get_payment_button($label, $form = null, $items = null, $invoice = null) {
1350
+    $label = sanitize_text_field($label);
1351 1351
 
1352
-    if ( ! empty( $form ) ) {
1353
-        $form  = esc_attr( $form );
1352
+    if (!empty($form)) {
1353
+        $form = esc_attr($form);
1354 1354
         return "<button class='btn btn-primary getpaid-payment-button' type='button' data-form='$form'>$label</button>";
1355 1355
     }
1356 1356
 
1357
-	if ( ! empty( $items ) ) {
1358
-        $items  = esc_attr( $items );
1357
+	if (!empty($items)) {
1358
+        $items = esc_attr($items);
1359 1359
         return "<button class='btn btn-primary getpaid-payment-button' type='button' data-item='$items'>$label</button>";
1360 1360
     }
1361 1361
 
1362
-    if ( ! empty( $invoice ) ) {
1363
-        $invoice  = esc_attr( $invoice );
1362
+    if (!empty($invoice)) {
1363
+        $invoice = esc_attr($invoice);
1364 1364
         return "<button class='btn btn-primary getpaid-payment-button' type='button' data-invoice='$invoice'>$label</button>";
1365 1365
     }
1366 1366
 
@@ -1371,17 +1371,17 @@  discard block
 block discarded – undo
1371 1371
  *
1372 1372
  * @param WPInv_Invoice $invoice
1373 1373
  */
1374
-function getpaid_the_invoice_description( $invoice ) {
1374
+function getpaid_the_invoice_description($invoice) {
1375 1375
     $description = $invoice->get_description();
1376 1376
 
1377
-    if ( empty( $description ) ) {
1377
+    if (empty($description)) {
1378 1378
         return;
1379 1379
     }
1380 1380
 
1381
-    echo "<small class='getpaid-invoice-description text-dark pl-2 ps-2 form-text' style='margin-bottom:20px;border-left:2px solid #2196F3;display:block;padding-left:.5rem'><em>" . wp_kses_post( wpautop( $description ) ) . "</em></small>";
1381
+    echo "<small class='getpaid-invoice-description text-dark pl-2 ps-2 form-text' style='margin-bottom:20px;border-left:2px solid #2196F3;display:block;padding-left:.5rem'><em>" . wp_kses_post(wpautop($description)) . "</em></small>";
1382 1382
 }
1383
-add_action( 'getpaid_invoice_line_items', 'getpaid_the_invoice_description', 100 );
1384
-add_action( 'wpinv_email_billing_details', 'getpaid_the_invoice_description', 100 );
1383
+add_action('getpaid_invoice_line_items', 'getpaid_the_invoice_description', 100);
1384
+add_action('wpinv_email_billing_details', 'getpaid_the_invoice_description', 100);
1385 1385
 
1386 1386
 /**
1387 1387
  * Render element on a form.
@@ -1389,86 +1389,86 @@  discard block
 block discarded – undo
1389 1389
  * @param array $element
1390 1390
  * @param GetPaid_Payment_Form $form
1391 1391
  */
1392
-function getpaid_payment_form_element( $element, $form ) {
1393
-    $translatable = array( 'text', 'label', 'input_label', 'button_label', 'description' );
1392
+function getpaid_payment_form_element($element, $form) {
1393
+    $translatable = array('text', 'label', 'input_label', 'button_label', 'description');
1394 1394
 
1395
-    foreach ( $translatable as $string ) {
1396
-        if ( ! empty( $element[ $string ] ) && is_scalar( $element[ $string ] ) ) {
1397
-            $element[ $string ] = __( $element[ $string ], 'invoicing' );
1395
+    foreach ($translatable as $string) {
1396
+        if (!empty($element[$string]) && is_scalar($element[$string])) {
1397
+            $element[$string] = __($element[$string], 'invoicing');
1398 1398
         }
1399 1399
     }
1400 1400
 
1401 1401
     // Set up the args.
1402
-    $element_type    = trim( $element['type'] );
1402
+    $element_type    = trim($element['type']);
1403 1403
     $element['form'] = $form;
1404
-    extract( $element ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
1404
+    extract($element); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
1405 1405
 
1406 1406
     // Try to locate the appropriate template.
1407
-    $located = wpinv_locate_template( "payment-forms/elements/$element_type.php" );
1407
+    $located = wpinv_locate_template("payment-forms/elements/$element_type.php");
1408 1408
 
1409 1409
     // Abort if this is not our element.
1410
-    if ( empty( $located ) || ! file_exists( $located ) ) {
1410
+    if (empty($located) || !file_exists($located)) {
1411 1411
         return;
1412 1412
     }
1413 1413
 
1414 1414
     // Generate the class and id of the element.
1415
-    $wrapper_class = 'getpaid-payment-form-element-' . trim( esc_attr( $element_type ) );
1416
-    $id            = isset( $id ) ? $id : uniqid( 'gp' );
1415
+    $wrapper_class = 'getpaid-payment-form-element-' . trim(esc_attr($element_type));
1416
+    $id            = isset($id) ? $id : uniqid('gp');
1417 1417
 
1418
-    $element_id    = ! empty( $element['label'] ) ? sanitize_title( $element['label'] ) : $id;
1419
-    $query_value   = isset( $_GET[ $element_id ] ) ? wpinv_clean( urldecode_deep( $_GET[ $element_id ] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
1418
+    $element_id    = !empty($element['label']) ? sanitize_title($element['label']) : $id;
1419
+    $query_value   = isset($_GET[$element_id]) ? wpinv_clean(urldecode_deep($_GET[$element_id])) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
1420 1420
 
1421 1421
     $element_id    = 'getpaid-' . $element_id;
1422
-    if ( ! empty( $GLOBALS['rendered_getpaid_forms'][ $form->get_id() ] ) ) {
1423
-        $element_id = $element_id . '-' . $GLOBALS['rendered_getpaid_forms'][ $form->get_id() ];
1422
+    if (!empty($GLOBALS['rendered_getpaid_forms'][$form->get_id()])) {
1423
+        $element_id = $element_id . '-' . $GLOBALS['rendered_getpaid_forms'][$form->get_id()];
1424 1424
     }
1425 1425
 
1426 1426
     // Echo the opening wrapper.
1427
-    echo "<div class='getpaid-payment-form-element " . esc_attr( $wrapper_class ) . "'>";
1427
+    echo "<div class='getpaid-payment-form-element " . esc_attr($wrapper_class) . "'>";
1428 1428
 
1429 1429
     // Fires before displaying a given element type's content.
1430
-    do_action( "getpaid_before_payment_form_{$element_type}_element", $element, $form );
1430
+    do_action("getpaid_before_payment_form_{$element_type}_element", $element, $form);
1431 1431
 
1432 1432
     // Include the template for the element.
1433 1433
     include $located;
1434 1434
 
1435 1435
     // Fires after displaying a given element type's content.
1436
-    do_action( "getpaid_payment_form_{$element_type}_element", $element, $form );
1436
+    do_action("getpaid_payment_form_{$element_type}_element", $element, $form);
1437 1437
 
1438 1438
     // Echo the closing wrapper.
1439 1439
     echo '</div>';
1440 1440
 }
1441
-add_action( 'getpaid_payment_form_element', 'getpaid_payment_form_element', 10, 2 );
1441
+add_action('getpaid_payment_form_element', 'getpaid_payment_form_element', 10, 2);
1442 1442
 
1443 1443
 /**
1444 1444
  * Render an element's edit page.
1445 1445
  *
1446 1446
  * @param WP_Post $post
1447 1447
  */
1448
-function getpaid_payment_form_edit_element_template( $post ) {
1448
+function getpaid_payment_form_edit_element_template($post) {
1449 1449
 
1450 1450
     // Retrieve all elements.
1451
-    $all_elements = wp_list_pluck( wpinv_get_data( 'payment-form-elements' ), 'type' );
1451
+    $all_elements = wp_list_pluck(wpinv_get_data('payment-form-elements'), 'type');
1452 1452
 
1453
-    foreach ( $all_elements as $element ) {
1453
+    foreach ($all_elements as $element) {
1454 1454
 
1455 1455
         // Try to locate the appropriate template.
1456
-        $element = esc_attr( sanitize_key( $element ) );
1457
-        $located = wpinv_locate_template( "payment-forms-admin/edit/$element.php" );
1456
+        $element = esc_attr(sanitize_key($element));
1457
+        $located = wpinv_locate_template("payment-forms-admin/edit/$element.php");
1458 1458
 
1459 1459
         // Continue if this is not our element.
1460
-        if ( empty( $located ) || ! file_exists( $located ) ) {
1460
+        if (empty($located) || !file_exists($located)) {
1461 1461
             continue;
1462 1462
         }
1463 1463
 
1464 1464
         // Include the template for the element.
1465
-        echo "<div v-if=\"active_form_element.type=='" . esc_attr( $element ) . "'\">";
1465
+        echo "<div v-if=\"active_form_element.type=='" . esc_attr($element) . "'\">";
1466 1466
         include $located;
1467 1467
         echo '</div>';
1468 1468
     }
1469 1469
 
1470 1470
 }
1471
-add_action( 'getpaid_payment_form_edit_element_template', 'getpaid_payment_form_edit_element_template' );
1471
+add_action('getpaid_payment_form_edit_element_template', 'getpaid_payment_form_edit_element_template');
1472 1472
 
1473 1473
 /**
1474 1474
  * Render an element's preview.
@@ -1477,27 +1477,27 @@  discard block
 block discarded – undo
1477 1477
 function getpaid_payment_form_render_element_preview_template() {
1478 1478
 
1479 1479
     // Retrieve all elements.
1480
-    $all_elements = wp_list_pluck( wpinv_get_data( 'payment-form-elements' ), 'type' );
1480
+    $all_elements = wp_list_pluck(wpinv_get_data('payment-form-elements'), 'type');
1481 1481
 
1482
-    foreach ( $all_elements as $element ) {
1482
+    foreach ($all_elements as $element) {
1483 1483
 
1484 1484
         // Try to locate the appropriate template.
1485
-        $element = sanitize_key( $element );
1486
-        $located = wpinv_locate_template( "payment-forms-admin/previews/$element.php" );
1485
+        $element = sanitize_key($element);
1486
+        $located = wpinv_locate_template("payment-forms-admin/previews/$element.php");
1487 1487
 
1488 1488
         // Continue if this is not our element.
1489
-        if ( empty( $located ) || ! file_exists( $located ) ) {
1489
+        if (empty($located) || !file_exists($located)) {
1490 1490
             continue;
1491 1491
         }
1492 1492
 
1493 1493
         // Include the template for the element.
1494
-        echo "<div v-if=\"form_element.type=='" . esc_html( $element ) . "'\">";
1494
+        echo "<div v-if=\"form_element.type=='" . esc_html($element) . "'\">";
1495 1495
         include $located;
1496 1496
         echo '</div>';
1497 1497
     }
1498 1498
 
1499 1499
 }
1500
-add_action( 'wpinv_payment_form_render_element_template', 'getpaid_payment_form_render_element_preview_template' );
1500
+add_action('wpinv_payment_form_render_element_template', 'getpaid_payment_form_render_element_preview_template');
1501 1501
 
1502 1502
 /**
1503 1503
  * Shows a list of gateways that support recurring payments.
@@ -1505,17 +1505,17 @@  discard block
 block discarded – undo
1505 1505
 function wpinv_get_recurring_gateways_text() {
1506 1506
     $gateways = array();
1507 1507
 
1508
-    foreach ( wpinv_get_payment_gateways() as $key => $gateway ) {
1509
-        if ( wpinv_gateway_support_subscription( $key ) ) {
1510
-            $gateways[] = sanitize_text_field( $gateway['admin_label'] );
1508
+    foreach (wpinv_get_payment_gateways() as $key => $gateway) {
1509
+        if (wpinv_gateway_support_subscription($key)) {
1510
+            $gateways[] = sanitize_text_field($gateway['admin_label']);
1511 1511
         }
1512 1512
     }
1513 1513
 
1514
-    if ( empty( $gateways ) ) {
1515
-        return "<span class='form-text text-danger'>" . __( 'No active gateways support subscription payments.', 'invoicing' ) . '</span>';
1514
+    if (empty($gateways)) {
1515
+        return "<span class='form-text text-danger'>" . __('No active gateways support subscription payments.', 'invoicing') . '</span>';
1516 1516
     }
1517 1517
 
1518
-    return "<span class='form-text text-muted'>" . wp_sprintf( __( 'Subscription payments only supported by: %s', 'invoicing' ), implode( ', ', $gateways ) ) . '</span>';
1518
+    return "<span class='form-text text-muted'>" . wp_sprintf(__('Subscription payments only supported by: %s', 'invoicing'), implode(', ', $gateways)) . '</span>';
1519 1519
 
1520 1520
 }
1521 1521
 
@@ -1525,7 +1525,7 @@  discard block
 block discarded – undo
1525 1525
  * @return GetPaid_Template
1526 1526
  */
1527 1527
 function getpaid_template() {
1528
-    return getpaid()->get( 'template' );
1528
+    return getpaid()->get('template');
1529 1529
 }
1530 1530
 
1531 1531
 /**
@@ -1534,8 +1534,8 @@  discard block
 block discarded – undo
1534 1534
  * @param array args
1535 1535
  * @return string
1536 1536
  */
1537
-function getpaid_paginate_links( $args ) {
1538
-    return str_replace( 'page-link dots', 'page-link text-dark', aui()->pagination( $args ) );
1537
+function getpaid_paginate_links($args) {
1538
+    return str_replace('page-link dots', 'page-link text-dark', aui()->pagination($args));
1539 1539
 }
1540 1540
 
1541 1541
 /**
@@ -1545,22 +1545,22 @@  discard block
 block discarded – undo
1545 1545
  * @param string state
1546 1546
  * @return string
1547 1547
  */
1548
-function getpaid_get_states_select_markup( $country, $state, $placeholder, $label, $help_text, $required = false, $wrapper_class = 'col-12', $field_name = 'wpinv_state', $echo = false ) {
1548
+function getpaid_get_states_select_markup($country, $state, $placeholder, $label, $help_text, $required = false, $wrapper_class = 'col-12', $field_name = 'wpinv_state', $echo = false) {
1549 1549
 
1550
-    $states = wpinv_get_country_states( $country );
1551
-    $uniqid = uniqid( '_' );
1550
+    $states = wpinv_get_country_states($country);
1551
+    $uniqid = uniqid('_');
1552 1552
 
1553
-    if ( ! empty( $states ) ) {
1553
+    if (!empty($states)) {
1554 1554
 
1555 1555
         return aui()->select(
1556 1556
             array(
1557 1557
 				'options'          => $states,
1558
-				'name'             => esc_attr( $field_name ),
1559
-				'id'               => sanitize_html_class( $field_name ) . $uniqid,
1560
-				'value'            => sanitize_text_field( $state ),
1558
+				'name'             => esc_attr($field_name),
1559
+				'id'               => sanitize_html_class($field_name) . $uniqid,
1560
+				'value'            => sanitize_text_field($state),
1561 1561
 				'placeholder'      => $placeholder,
1562 1562
 				'required'         => $required,
1563
-				'label'            => wp_kses_post( $label ),
1563
+				'label'            => wp_kses_post($label),
1564 1564
 				'label_type'       => 'vertical',
1565 1565
 				'help_text'        => $help_text,
1566 1566
 				'class'            => 'getpaid-address-field wpinv_state',
@@ -1577,14 +1577,14 @@  discard block
 block discarded – undo
1577 1577
 
1578 1578
     return aui()->input(
1579 1579
         array(
1580
-            'name'             => esc_attr( $field_name ),
1581
-            'id'               => sanitize_html_class( $field_name ) . $uniqid,
1580
+            'name'             => esc_attr($field_name),
1581
+            'id'               => sanitize_html_class($field_name) . $uniqid,
1582 1582
             'placeholder'      => $placeholder,
1583 1583
             'required'         => $required,
1584
-            'label'            => wp_kses_post( $label ),
1584
+            'label'            => wp_kses_post($label),
1585 1585
             'label_type'       => 'vertical',
1586 1586
             'help_text'        => $help_text,
1587
-            'value'            => sanitize_text_field( $state ),
1587
+            'value'            => sanitize_text_field($state),
1588 1588
             'class'            => 'getpaid-address-field wpinv_state',
1589 1589
             'wrap_class'       => "$wrapper_class getpaid-address-field-wrapper__state",
1590 1590
             'label_class'      => 'getpaid-address-field-label getpaid-address-field-label__state',
@@ -1603,16 +1603,16 @@  discard block
 block discarded – undo
1603 1603
  * @param array $element
1604 1604
  * @return string
1605 1605
  */
1606
-function getpaid_get_form_element_grid_class( $element ) {
1606
+function getpaid_get_form_element_grid_class($element) {
1607 1607
 
1608 1608
     $class = 'col-12';
1609
-    $width = empty( $element['grid_width'] ) ? 'full' : $element['grid_width'];
1609
+    $width = empty($element['grid_width']) ? 'full' : $element['grid_width'];
1610 1610
 
1611
-    if ( $width == 'half' ) {
1611
+    if ($width == 'half') {
1612 1612
         $class .= ' col-md-6';
1613 1613
     }
1614 1614
 
1615
-    if ( $width == 'third' ) {
1615
+    if ($width == 'third') {
1616 1616
         $class .= ' col-md-4';
1617 1617
     }
1618 1618
 
@@ -1627,15 +1627,15 @@  discard block
 block discarded – undo
1627 1627
  *
1628 1628
  * @return string
1629 1629
  */
1630
-function getpaid_embed_url( $payment_form = false, $items = false ) {
1630
+function getpaid_embed_url($payment_form = false, $items = false) {
1631 1631
 
1632 1632
     return add_query_arg(
1633 1633
         array(
1634 1634
             'getpaid_embed' => 1,
1635
-            'form'          => $payment_form ? absint( $payment_form ) : false,
1636
-            'item'          => $items ? urlencode( $items ) : false,
1635
+            'form'          => $payment_form ? absint($payment_form) : false,
1636
+            'item'          => $items ? urlencode($items) : false,
1637 1637
         ),
1638
-        home_url( 'index.php' )
1638
+        home_url('index.php')
1639 1639
     );
1640 1640
 
1641 1641
 }
@@ -1645,16 +1645,16 @@  discard block
 block discarded – undo
1645 1645
  *
1646 1646
  * @return string
1647 1647
  */
1648
-function getpaid_filter_embed_template( $template ) {
1648
+function getpaid_filter_embed_template($template) {
1649 1649
 
1650
-    if ( isset( $_GET['getpaid_embed'] ) ) {
1651
-        wpinv_get_template( 'payment-forms/embed.php' );
1650
+    if (isset($_GET['getpaid_embed'])) {
1651
+        wpinv_get_template('payment-forms/embed.php');
1652 1652
         exit;
1653 1653
     }
1654 1654
 
1655 1655
     return $template;
1656 1656
 }
1657
-add_filter( 'template_include', 'getpaid_filter_embed_template' );
1657
+add_filter('template_include', 'getpaid_filter_embed_template');
1658 1658
 
1659 1659
 /**
1660 1660
  * Get the payment forms custom fields.
@@ -1666,25 +1666,25 @@  discard block
 block discarded – undo
1666 1666
 function getpaid_get_payment_form_custom_fields() {
1667 1667
 	global $wpdb, $payment_form_meta_fields;
1668 1668
 
1669
-	if ( ! empty( $payment_form_meta_fields ) ) {
1669
+	if (!empty($payment_form_meta_fields)) {
1670 1670
 		return $payment_form_meta_fields;
1671 1671
 	}
1672 1672
 
1673
-	$results = $wpdb->get_results( "SELECT `pm`.`meta_value` FROM `{$wpdb->postmeta}` AS pm LEFT JOIN `{$wpdb->posts}` AS p ON p.ID = pm.post_id WHERE `pm`.`meta_key` = 'wpinv_form_elements' AND `p`.`post_type` = 'wpi_payment_form'" );
1673
+	$results = $wpdb->get_results("SELECT `pm`.`meta_value` FROM `{$wpdb->postmeta}` AS pm LEFT JOIN `{$wpdb->posts}` AS p ON p.ID = pm.post_id WHERE `pm`.`meta_key` = 'wpinv_form_elements' AND `p`.`post_type` = 'wpi_payment_form'");
1674 1674
 
1675 1675
 	$meta_fields = array();
1676 1676
 
1677
-	if ( ! empty( $results ) ) {
1678
-		foreach ( $results as $row ) {
1679
-			$fields = maybe_unserialize( $row->meta_value );
1677
+	if (!empty($results)) {
1678
+		foreach ($results as $row) {
1679
+			$fields = maybe_unserialize($row->meta_value);
1680 1680
 
1681
-			if ( ! empty( $fields ) && is_array( $fields ) ) {
1682
-				foreach ( $fields as $field ) {
1683
-					$label = ! empty( $field['add_meta'] ) && ! empty( $field['label'] ) ? wpinv_clean( wp_unslash( $field['label'] ) ) : '';
1681
+			if (!empty($fields) && is_array($fields)) {
1682
+				foreach ($fields as $field) {
1683
+					$label = !empty($field['add_meta']) && !empty($field['label']) ? wpinv_clean(wp_unslash($field['label'])) : '';
1684 1684
 
1685
-					if ( $label ) {
1686
-						$field_key = '_' . str_replace( array( ' ', "'", '"', ',' ), array( '_', '', '', '_' ), getpaid_strtolower( $label ) );
1687
-						$meta_fields[ $field_key ] = $label;
1685
+					if ($label) {
1686
+						$field_key = '_' . str_replace(array(' ', "'", '"', ','), array('_', '', '', '_'), getpaid_strtolower($label));
1687
+						$meta_fields[$field_key] = $label;
1688 1688
 					}
1689 1689
 				}
1690 1690
 			}
Please login to merge, or discard this patch.
includes/admin/class-getpaid-post-types-admin.php 2 patches
Indentation   +813 added lines, -813 removed lines patch added patch discarded remove patch
@@ -13,756 +13,756 @@  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 ( wpinv_get_default_payment_form() === $post->ID ) {
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
-			$actions['reset'] = sprintf(
131
-				'<a href="%1$s" style="color: #800">%2$s</a>',
132
-				esc_url(
133
-					wp_nonce_url(
134
-						add_query_arg(
135
-							array(
136
-								'getpaid-admin-action' => 'reset_form_stats',
137
-								'form_id'              => $post->ID,
138
-							)
139
-						),
140
-						'getpaid-nonce',
141
-						'getpaid-nonce'
142
-					)
143
-				),
144
-				esc_html( __( 'Reset Stats', 'invoicing' ) )
145
-			);
146
-		}
147
-
148
-		// Link to item payment form.
149
-		if ( 'wpi_item' == $post->post_type ) {
150
-			if ( getpaid_item_type_supports( get_post_meta( $post->ID, '_wpinv_type', true ), 'buy_now' ) ) {
151
-				$actions['buy'] = sprintf(
152
-					'<a href="%1$s">%2$s</a>',
153
-					esc_url( getpaid_embed_url( false, $post->ID . '|0' ) ),
154
-					esc_html( __( 'Buy', 'invoicing' ) )
155
-				);
156
-			}
157
-		}
158
-
159
-		return $actions;
160
-	}
161
-
162
-	/**
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 ( wpinv_get_default_payment_form() === $post->ID ) {
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
+            $actions['reset'] = sprintf(
131
+                '<a href="%1$s" style="color: #800">%2$s</a>',
132
+                esc_url(
133
+                    wp_nonce_url(
134
+                        add_query_arg(
135
+                            array(
136
+                                'getpaid-admin-action' => 'reset_form_stats',
137
+                                'form_id'              => $post->ID,
138
+                            )
139
+                        ),
140
+                        'getpaid-nonce',
141
+                        'getpaid-nonce'
142
+                    )
143
+                ),
144
+                esc_html( __( 'Reset Stats', 'invoicing' ) )
145
+            );
146
+        }
147
+
148
+        // Link to item payment form.
149
+        if ( 'wpi_item' == $post->post_type ) {
150
+            if ( getpaid_item_type_supports( get_post_meta( $post->ID, '_wpinv_type', true ), 'buy_now' ) ) {
151
+                $actions['buy'] = sprintf(
152
+                    '<a href="%1$s">%2$s</a>',
153
+                    esc_url( getpaid_embed_url( false, $post->ID . '|0' ) ),
154
+                    esc_html( __( 'Buy', 'invoicing' ) )
155
+                );
156
+            }
157
+        }
158
+
159
+        return $actions;
160
+    }
161
+
162
+    /**
163 163
      * Remove bulk edit option from admin side quote listing
164 164
      *
165 165
      * @since    1.0.0
166 166
      * @param array $actions post actions
167
-	 * @param WP_Post $post
167
+     * @param WP_Post $post
168 168
      * @return array $actions actions without edit option
169 169
      */
170 170
     public static function filter_invoice_row_actions( $actions, $post ) {
171 171
 
172 172
         if ( getpaid_is_invoice_post_type( $post->post_type ) ) {
173 173
 
174
-			$actions = array();
175
-			$invoice = new WPInv_Invoice( $post );
176
-
177
-			$actions['edit'] = sprintf(
178
-				'<a href="%1$s">%2$s</a>',
179
-				esc_url( get_edit_post_link( $invoice->get_id() ) ),
180
-				esc_html( __( 'Edit', 'invoicing' ) )
181
-			);
182
-
183
-			if ( ! $invoice->is_draft() ) {
184
-
185
-				$actions['view'] = sprintf(
186
-					'<a href="%1$s">%2$s</a>',
187
-					esc_url( $invoice->get_view_url() ),
188
-					sprintf(
189
-						// translators: %s is the invoice type
190
-						esc_html__( 'View %s', 'invoicing' ),
191
-						getpaid_get_post_type_label( $invoice->get_post_type(), false )
192
-					)
193
-				);
194
-
195
-				$actions['send'] = sprintf(
196
-					'<a href="%1$s">%2$s</a>',
197
-					esc_url(
198
-						wp_nonce_url(
199
-							add_query_arg(
200
-								array(
201
-									'getpaid-admin-action' => 'send_invoice',
202
-									'invoice_id'           => $invoice->get_id(),
203
-								)
204
-							),
205
-							'getpaid-nonce',
206
-							'getpaid-nonce'
207
-						)
208
-					),
209
-					esc_html( __( 'Send to Customer', 'invoicing' ) )
210
-				);
211
-
212
-			}
213
-
214
-			$actions['duplicate'] = sprintf(
215
-				'<a href="%1$s">%2$s</a>',
216
-				esc_url(
217
-					wp_nonce_url(
218
-						add_query_arg(
219
-							array(
220
-								'getpaid-admin-action' => 'duplicate_invoice',
221
-								'invoice_id'           => $post->ID,
222
-							)
223
-						),
224
-						'getpaid-nonce',
225
-						'getpaid-nonce'
226
-					)
227
-				),
228
-				esc_html( __( 'Duplicate', 'invoicing' ) )
229
-			);
174
+            $actions = array();
175
+            $invoice = new WPInv_Invoice( $post );
176
+
177
+            $actions['edit'] = sprintf(
178
+                '<a href="%1$s">%2$s</a>',
179
+                esc_url( get_edit_post_link( $invoice->get_id() ) ),
180
+                esc_html( __( 'Edit', 'invoicing' ) )
181
+            );
182
+
183
+            if ( ! $invoice->is_draft() ) {
184
+
185
+                $actions['view'] = sprintf(
186
+                    '<a href="%1$s">%2$s</a>',
187
+                    esc_url( $invoice->get_view_url() ),
188
+                    sprintf(
189
+                        // translators: %s is the invoice type
190
+                        esc_html__( 'View %s', 'invoicing' ),
191
+                        getpaid_get_post_type_label( $invoice->get_post_type(), false )
192
+                    )
193
+                );
194
+
195
+                $actions['send'] = sprintf(
196
+                    '<a href="%1$s">%2$s</a>',
197
+                    esc_url(
198
+                        wp_nonce_url(
199
+                            add_query_arg(
200
+                                array(
201
+                                    'getpaid-admin-action' => 'send_invoice',
202
+                                    'invoice_id'           => $invoice->get_id(),
203
+                                )
204
+                            ),
205
+                            'getpaid-nonce',
206
+                            'getpaid-nonce'
207
+                        )
208
+                    ),
209
+                    esc_html( __( 'Send to Customer', 'invoicing' ) )
210
+                );
211
+
212
+            }
213
+
214
+            $actions['duplicate'] = sprintf(
215
+                '<a href="%1$s">%2$s</a>',
216
+                esc_url(
217
+                    wp_nonce_url(
218
+                        add_query_arg(
219
+                            array(
220
+                                'getpaid-admin-action' => 'duplicate_invoice',
221
+                                'invoice_id'           => $post->ID,
222
+                            )
223
+                        ),
224
+                        'getpaid-nonce',
225
+                        'getpaid-nonce'
226
+                    )
227
+                ),
228
+                esc_html( __( 'Duplicate', 'invoicing' ) )
229
+            );
230 230
 
231 231
         }
232 232
 
233 233
         return $actions;
234
-	}
235
-
236
-	/**
237
-	 * Returns an array of invoice table columns.
238
-	 */
239
-	public static function invoice_columns( $columns ) {
240
-
241
-		$columns = array(
242
-			'cb'           => $columns['cb'],
243
-			'number'       => __( 'Invoice', 'invoicing' ),
244
-			'customer'     => __( 'Customer', 'invoicing' ),
245
-			'invoice_date' => __( 'Created', 'invoicing' ),
246
-			'payment_date' => __( 'Completed', 'invoicing' ),
247
-			'amount'       => __( 'Amount', 'invoicing' ),
248
-			'recurring'    => __( 'Recurring', 'invoicing' ),
249
-			'status'       => __( 'Status', 'invoicing' ),
250
-		);
251
-
252
-		return apply_filters( 'wpi_invoice_table_columns', $columns );
253
-	}
254
-
255
-	/**
256
-	 * Displays invoice table columns.
257
-	 */
258
-	public static function display_invoice_columns( $column_name, $post_id ) {
259
-
260
-		$invoice = new WPInv_Invoice( $post_id );
261
-
262
-		switch ( $column_name ) {
263
-
264
-			case 'invoice_date':
265
-				$date_time = esc_attr( $invoice->get_created_date() );
266
-				$date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
267
-				echo wp_kses_post( "<span title='$date_time'>$date</span>" );
268
-				break;
269
-
270
-			case 'payment_date':
271
-				if ( $invoice->is_paid() || $invoice->is_refunded() ) {
272
-					$date_time = esc_attr( $invoice->get_completed_date() );
273
-					$date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
274
-					echo wp_kses_post( "<span title='$date_time'>$date</span>" );
275
-
276
-					if ( $_gateway = $invoice->get_gateway() ) {
277
-						$gateway_label = wpinv_get_gateway_admin_label( $_gateway );
278
-
279
-						if ( $transaction_url = $invoice->get_transaction_url() ) {
280
-							$gateway_label = '<a href="' . esc_url( $transaction_url ) . '" target="_blank" title="' . esc_attr__( 'Open transaction link', 'invoicing' ) . '">' . $gateway_label . '</a>';
281
-						}
282
-
283
-						$gateway = '<small class="meta bsui"><span class="fs-xs text-muted fst-normal">' . wp_sprintf( _x( 'Via %s', 'Paid via gateway', 'invoicing' ), $gateway_label ) . '</span></small>';
284
-					} else {
285
-						$gateway = '';
286
-					}
287
-
288
-					$gateway = apply_filters( 'getpaid_admin_invoices_list_table_gateway', $gateway, $invoice );
289
-
290
-					if ( $gateway ) {
291
-						echo wp_kses_post( $gateway ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
292
-					}
293
-				} else {
294
-					echo '&mdash;';
295
-				}
296
-
297
-				break;
298
-
299
-			case 'amount':
300
-				$amount = $invoice->get_total();
301
-				$formated_amount = wp_kses_post( wpinv_price( $amount, $invoice->get_currency() ) );
302
-
303
-				if ( $invoice->is_refunded() ) {
304
-					$refunded_amount = wpinv_price( 0, $invoice->get_currency() );
305
-					echo wp_kses_post( "<del>$formated_amount</del>&nbsp;<ins>$refunded_amount</ins>" );
306
-				} else {
307
-
308
-					$discount = $invoice->get_total_discount();
309
-
310
-					if ( ! empty( $discount ) ) {
311
-						$new_amount = wpinv_price( $amount + $discount, $invoice->get_currency() );
312
-						echo wp_kses_post( "<del>$new_amount</del>&nbsp;<ins>$formated_amount</ins>" );
313
-					} else {
314
-						echo wp_kses_post( $formated_amount );
315
-					}
316
-				}
317
-
318
-				break;
319
-
320
-			case 'status':
321
-				$status       = esc_html( $invoice->get_status() );
322
-				$status_label = esc_html( $invoice->get_status_nicename() );
323
-
324
-				// If it is paid, show the gateway title.
325
-				if ( $invoice->is_paid() ) {
326
-					$gateway = esc_html( $invoice->get_gateway_title() );
327
-					$gateway = wp_sprintf( esc_attr__( 'Paid via %s', 'invoicing' ), esc_html( $gateway ) );
328
-
329
-					echo wp_kses_post( "<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>" );
330
-				} else {
331
-					echo wp_kses_post( "<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>" );
332
-				}
333
-
334
-				// If it is not paid, display the overdue and view status.
335
-				if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
336
-
337
-					// Invoice view status.
338
-					if ( wpinv_is_invoice_viewed( $invoice->get_id() ) ) {
339
-						echo '&nbsp;&nbsp;<i class="fa fa-eye wpi-help-tip" title="' . esc_attr__( 'Viewed by Customer', 'invoicing' ) . '"></i>';
340
-					} else {
341
-						echo '&nbsp;&nbsp;<i class="fa fa-eye-slash wpi-help-tip" title="' . esc_attr__( 'Not Viewed by Customer', 'invoicing' ) . '"></i>';
342
-					}
343
-
344
-					// Display the overview status.
345
-					if ( wpinv_get_option( 'overdue_active' ) ) {
346
-						$due_date = $invoice->get_due_date();
347
-						$fomatted = getpaid_format_date( $due_date );
348
-
349
-						if ( ! empty( $fomatted ) ) {
350
-							$date = wp_sprintf(
351
-								// translators: %s is the due date.
352
-								__( 'Due %s', 'invoicing' ),
353
-								$fomatted
354
-							);
355
-							echo wp_kses_post( "<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>" );
356
-						}
357
-					}
358
-				}
359
-
360
-				break;
361
-
362
-			case 'recurring':
363
-				if ( $invoice->is_recurring() ) {
364
-					echo '<i class="fa fa-check" style="color:#43850a;"></i>';
365
-				} else {
366
-					echo '<i class="fa fa-times" style="color:#616161;"></i>';
367
-				}
368
-				break;
369
-
370
-			case 'number':
371
-				$edit_link       = esc_url( get_edit_post_link( $invoice->get_id() ) );
372
-				$invoice_number  = esc_html( $invoice->get_number() );
373
-				$invoice_details = esc_attr__( 'View Invoice Details', 'invoicing' );
374
-
375
-				echo wp_kses_post( "<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>" );
376
-
377
-				do_action( 'getpaid_admin_table_invoice_number_column', $invoice );
378
-				break;
379
-
380
-			case 'customer':
381
-				$customer_name = $invoice->get_user_full_name();
382
-
383
-				if ( empty( $customer_name ) ) {
384
-					$customer_name = $invoice->get_email();
385
-				}
386
-
387
-				if ( ! empty( $customer_name ) ) {
388
-					$customer_details = esc_attr__( 'View Customer Details', 'invoicing' );
389
-					$view_link        = esc_url( add_query_arg( 'user_id', $invoice->get_user_id(), admin_url( 'user-edit.php' ) ) );
390
-					echo wp_kses_post( "<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>" );
391
-				} else {
392
-					echo '<div>&mdash;</div>';
393
-				}
394
-
395
-				break;
396
-
397
-		}
398
-
399
-	}
400
-
401
-	/**
402
-	 * Displays invoice bulk actions.
403
-	 */
404
-	public static function invoice_bulk_actions( $actions ) {
405
-		$actions['resend-invoice'] = __( 'Send to Customer', 'invoicing' );
406
-		return $actions;
407
-	}
408
-
409
-	/**
410
-	 * Processes invoice bulk actions.
411
-	 */
412
-	public static function handle_invoice_bulk_actions( $redirect_url, $action, $post_ids ) {
413
-
414
-		if ( 'resend-invoice' === $action ) {
415
-			foreach ( $post_ids as $post_id ) {
416
-				getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $post_id ), true );
417
-			}
418
-		}
419
-
420
-		return $redirect_url;
421
-
422
-	}
423
-
424
-	/**
425
-	 * Returns an array of payment forms table columns.
426
-	 */
427
-	public static function payment_form_columns( $columns ) {
428
-
429
-		$columns = array(
430
-			'cb'        => $columns['cb'],
431
-			'title'     => __( 'Name', 'invoicing' ),
432
-			'shortcode' => __( 'Shortcode', 'invoicing' ),
433
-			'earnings'  => __( 'Revenue', 'invoicing' ),
434
-			'refunds'   => __( 'Refunded', 'invoicing' ),
435
-			'items'     => __( 'Items', 'invoicing' ),
436
-			'date'      => __( 'Date', 'invoicing' ),
437
-		);
438
-
439
-		return apply_filters( 'wpi_payment_form_table_columns', $columns );
440
-
441
-	}
442
-
443
-	/**
444
-	 * Displays payment form table columns.
445
-	 */
446
-	public static function display_payment_form_columns( $column_name, $post_id ) {
447
-
448
-		// Retrieve the payment form.
449
-		$form = new GetPaid_Payment_Form( $post_id );
450
-
451
-		switch ( $column_name ) {
452
-
453
-			case 'earnings':
454
-				echo wp_kses_post( wpinv_price( $form->get_earned() ) );
455
-				break;
456
-
457
-			case 'refunds':
458
-				echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
459
-				break;
460
-
461
-			case 'refunds':
462
-				echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
463
-				break;
464
-
465
-			case 'shortcode':
466
-				if ( $form->is_default() ) {
467
-					echo '&mdash;';
468
-				} else {
469
-					echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr( $form->get_id() ) . ']" style="width: 100%;" readonly/>';
470
-				}
471
-
472
-				break;
234
+    }
235
+
236
+    /**
237
+     * Returns an array of invoice table columns.
238
+     */
239
+    public static function invoice_columns( $columns ) {
240
+
241
+        $columns = array(
242
+            'cb'           => $columns['cb'],
243
+            'number'       => __( 'Invoice', 'invoicing' ),
244
+            'customer'     => __( 'Customer', 'invoicing' ),
245
+            'invoice_date' => __( 'Created', 'invoicing' ),
246
+            'payment_date' => __( 'Completed', 'invoicing' ),
247
+            'amount'       => __( 'Amount', 'invoicing' ),
248
+            'recurring'    => __( 'Recurring', 'invoicing' ),
249
+            'status'       => __( 'Status', 'invoicing' ),
250
+        );
251
+
252
+        return apply_filters( 'wpi_invoice_table_columns', $columns );
253
+    }
254
+
255
+    /**
256
+     * Displays invoice table columns.
257
+     */
258
+    public static function display_invoice_columns( $column_name, $post_id ) {
259
+
260
+        $invoice = new WPInv_Invoice( $post_id );
261
+
262
+        switch ( $column_name ) {
263
+
264
+            case 'invoice_date':
265
+                $date_time = esc_attr( $invoice->get_created_date() );
266
+                $date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
267
+                echo wp_kses_post( "<span title='$date_time'>$date</span>" );
268
+                break;
269
+
270
+            case 'payment_date':
271
+                if ( $invoice->is_paid() || $invoice->is_refunded() ) {
272
+                    $date_time = esc_attr( $invoice->get_completed_date() );
273
+                    $date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
274
+                    echo wp_kses_post( "<span title='$date_time'>$date</span>" );
275
+
276
+                    if ( $_gateway = $invoice->get_gateway() ) {
277
+                        $gateway_label = wpinv_get_gateway_admin_label( $_gateway );
278
+
279
+                        if ( $transaction_url = $invoice->get_transaction_url() ) {
280
+                            $gateway_label = '<a href="' . esc_url( $transaction_url ) . '" target="_blank" title="' . esc_attr__( 'Open transaction link', 'invoicing' ) . '">' . $gateway_label . '</a>';
281
+                        }
282
+
283
+                        $gateway = '<small class="meta bsui"><span class="fs-xs text-muted fst-normal">' . wp_sprintf( _x( 'Via %s', 'Paid via gateway', 'invoicing' ), $gateway_label ) . '</span></small>';
284
+                    } else {
285
+                        $gateway = '';
286
+                    }
287
+
288
+                    $gateway = apply_filters( 'getpaid_admin_invoices_list_table_gateway', $gateway, $invoice );
289
+
290
+                    if ( $gateway ) {
291
+                        echo wp_kses_post( $gateway ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
292
+                    }
293
+                } else {
294
+                    echo '&mdash;';
295
+                }
296
+
297
+                break;
298
+
299
+            case 'amount':
300
+                $amount = $invoice->get_total();
301
+                $formated_amount = wp_kses_post( wpinv_price( $amount, $invoice->get_currency() ) );
302
+
303
+                if ( $invoice->is_refunded() ) {
304
+                    $refunded_amount = wpinv_price( 0, $invoice->get_currency() );
305
+                    echo wp_kses_post( "<del>$formated_amount</del>&nbsp;<ins>$refunded_amount</ins>" );
306
+                } else {
307
+
308
+                    $discount = $invoice->get_total_discount();
309
+
310
+                    if ( ! empty( $discount ) ) {
311
+                        $new_amount = wpinv_price( $amount + $discount, $invoice->get_currency() );
312
+                        echo wp_kses_post( "<del>$new_amount</del>&nbsp;<ins>$formated_amount</ins>" );
313
+                    } else {
314
+                        echo wp_kses_post( $formated_amount );
315
+                    }
316
+                }
317
+
318
+                break;
319
+
320
+            case 'status':
321
+                $status       = esc_html( $invoice->get_status() );
322
+                $status_label = esc_html( $invoice->get_status_nicename() );
323
+
324
+                // If it is paid, show the gateway title.
325
+                if ( $invoice->is_paid() ) {
326
+                    $gateway = esc_html( $invoice->get_gateway_title() );
327
+                    $gateway = wp_sprintf( esc_attr__( 'Paid via %s', 'invoicing' ), esc_html( $gateway ) );
328
+
329
+                    echo wp_kses_post( "<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>" );
330
+                } else {
331
+                    echo wp_kses_post( "<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>" );
332
+                }
333
+
334
+                // If it is not paid, display the overdue and view status.
335
+                if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
336
+
337
+                    // Invoice view status.
338
+                    if ( wpinv_is_invoice_viewed( $invoice->get_id() ) ) {
339
+                        echo '&nbsp;&nbsp;<i class="fa fa-eye wpi-help-tip" title="' . esc_attr__( 'Viewed by Customer', 'invoicing' ) . '"></i>';
340
+                    } else {
341
+                        echo '&nbsp;&nbsp;<i class="fa fa-eye-slash wpi-help-tip" title="' . esc_attr__( 'Not Viewed by Customer', 'invoicing' ) . '"></i>';
342
+                    }
343
+
344
+                    // Display the overview status.
345
+                    if ( wpinv_get_option( 'overdue_active' ) ) {
346
+                        $due_date = $invoice->get_due_date();
347
+                        $fomatted = getpaid_format_date( $due_date );
348
+
349
+                        if ( ! empty( $fomatted ) ) {
350
+                            $date = wp_sprintf(
351
+                                // translators: %s is the due date.
352
+                                __( 'Due %s', 'invoicing' ),
353
+                                $fomatted
354
+                            );
355
+                            echo wp_kses_post( "<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>" );
356
+                        }
357
+                    }
358
+                }
359
+
360
+                break;
361
+
362
+            case 'recurring':
363
+                if ( $invoice->is_recurring() ) {
364
+                    echo '<i class="fa fa-check" style="color:#43850a;"></i>';
365
+                } else {
366
+                    echo '<i class="fa fa-times" style="color:#616161;"></i>';
367
+                }
368
+                break;
369
+
370
+            case 'number':
371
+                $edit_link       = esc_url( get_edit_post_link( $invoice->get_id() ) );
372
+                $invoice_number  = esc_html( $invoice->get_number() );
373
+                $invoice_details = esc_attr__( 'View Invoice Details', 'invoicing' );
374
+
375
+                echo wp_kses_post( "<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>" );
376
+
377
+                do_action( 'getpaid_admin_table_invoice_number_column', $invoice );
378
+                break;
379
+
380
+            case 'customer':
381
+                $customer_name = $invoice->get_user_full_name();
382
+
383
+                if ( empty( $customer_name ) ) {
384
+                    $customer_name = $invoice->get_email();
385
+                }
386
+
387
+                if ( ! empty( $customer_name ) ) {
388
+                    $customer_details = esc_attr__( 'View Customer Details', 'invoicing' );
389
+                    $view_link        = esc_url( add_query_arg( 'user_id', $invoice->get_user_id(), admin_url( 'user-edit.php' ) ) );
390
+                    echo wp_kses_post( "<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>" );
391
+                } else {
392
+                    echo '<div>&mdash;</div>';
393
+                }
394
+
395
+                break;
473 396
 
474
-			case 'items':
475
-				$items = $form->get_items();
476
-
477
-				if ( $form->is_default() || empty( $items ) ) {
478
-					echo '&mdash;';
479
-					return;
480
-				}
481
-
482
-				$_items = array();
483
-
484
-				foreach ( $items as $item ) {
485
-					$url = $item->get_edit_url();
486
-
487
-					if ( empty( $url ) ) {
488
-						$_items[] = esc_html( $item->get_name() );
489
-					} else {
490
-						$_items[] = sprintf(
491
-							'<a href="%s">%s</a>',
492
-							esc_url( $url ),
493
-							esc_html( $item->get_name() )
494
-						);
495
-					}
397
+        }
398
+
399
+    }
400
+
401
+    /**
402
+     * Displays invoice bulk actions.
403
+     */
404
+    public static function invoice_bulk_actions( $actions ) {
405
+        $actions['resend-invoice'] = __( 'Send to Customer', 'invoicing' );
406
+        return $actions;
407
+    }
408
+
409
+    /**
410
+     * Processes invoice bulk actions.
411
+     */
412
+    public static function handle_invoice_bulk_actions( $redirect_url, $action, $post_ids ) {
413
+
414
+        if ( 'resend-invoice' === $action ) {
415
+            foreach ( $post_ids as $post_id ) {
416
+                getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $post_id ), true );
417
+            }
418
+        }
419
+
420
+        return $redirect_url;
421
+
422
+    }
423
+
424
+    /**
425
+     * Returns an array of payment forms table columns.
426
+     */
427
+    public static function payment_form_columns( $columns ) {
428
+
429
+        $columns = array(
430
+            'cb'        => $columns['cb'],
431
+            'title'     => __( 'Name', 'invoicing' ),
432
+            'shortcode' => __( 'Shortcode', 'invoicing' ),
433
+            'earnings'  => __( 'Revenue', 'invoicing' ),
434
+            'refunds'   => __( 'Refunded', 'invoicing' ),
435
+            'items'     => __( 'Items', 'invoicing' ),
436
+            'date'      => __( 'Date', 'invoicing' ),
437
+        );
438
+
439
+        return apply_filters( 'wpi_payment_form_table_columns', $columns );
440
+
441
+    }
442
+
443
+    /**
444
+     * Displays payment form table columns.
445
+     */
446
+    public static function display_payment_form_columns( $column_name, $post_id ) {
447
+
448
+        // Retrieve the payment form.
449
+        $form = new GetPaid_Payment_Form( $post_id );
450
+
451
+        switch ( $column_name ) {
452
+
453
+            case 'earnings':
454
+                echo wp_kses_post( wpinv_price( $form->get_earned() ) );
455
+                break;
456
+
457
+            case 'refunds':
458
+                echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
459
+                break;
460
+
461
+            case 'refunds':
462
+                echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
463
+                break;
464
+
465
+            case 'shortcode':
466
+                if ( $form->is_default() ) {
467
+                    echo '&mdash;';
468
+                } else {
469
+                    echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr( $form->get_id() ) . ']" style="width: 100%;" readonly/>';
470
+                }
471
+
472
+                break;
473
+
474
+            case 'items':
475
+                $items = $form->get_items();
476
+
477
+                if ( $form->is_default() || empty( $items ) ) {
478
+                    echo '&mdash;';
479
+                    return;
480
+                }
481
+
482
+                $_items = array();
483
+
484
+                foreach ( $items as $item ) {
485
+                    $url = $item->get_edit_url();
486
+
487
+                    if ( empty( $url ) ) {
488
+                        $_items[] = esc_html( $item->get_name() );
489
+                    } else {
490
+                        $_items[] = sprintf(
491
+                            '<a href="%s">%s</a>',
492
+                            esc_url( $url ),
493
+                            esc_html( $item->get_name() )
494
+                        );
495
+                    }
496 496
 }
497 497
 
498
-				echo wp_kses_post( implode( '<br>', $_items ) );
498
+                echo wp_kses_post( implode( '<br>', $_items ) );
499
+
500
+                break;
501
+
502
+        }
503
+
504
+    }
505
+
506
+    /**
507
+     * Filters post states.
508
+     */
509
+    public static function filter_payment_form_state( $post_states, $post ) {
510
+
511
+        if ( 'wpi_payment_form' === $post->post_type && wpinv_get_default_payment_form() === $post->ID ) {
512
+            $post_states['default_form'] = __( 'Default Payment Form', 'invoicing' );
513
+        }
514
+
515
+        return $post_states;
516
+
517
+    }
518
+
519
+    /**
520
+     * Returns an array of coupon table columns.
521
+     */
522
+    public static function discount_columns( $columns ) {
523
+
524
+        $columns = array(
525
+            'cb'          => $columns['cb'],
526
+            'title'       => __( 'Name', 'invoicing' ),
527
+            'code'        => __( 'Code', 'invoicing' ),
528
+            'amount'      => __( 'Amount', 'invoicing' ),
529
+            'usage'       => __( 'Usage / Limit', 'invoicing' ),
530
+            'start_date'  => __( 'Start Date', 'invoicing' ),
531
+            'expiry_date' => __( 'Expiry Date', 'invoicing' ),
532
+        );
533
+
534
+        return apply_filters( 'wpi_discount_table_columns', $columns );
535
+    }
499 536
 
500
-				break;
537
+    /**
538
+     * Filters post states.
539
+     */
540
+    public static function filter_discount_state( $post_states, $post ) {
501 541
 
502
-		}
542
+        if ( 'wpi_discount' === $post->post_type ) {
503 543
 
504
-	}
544
+            $discount = new WPInv_Discount( $post );
505 545
 
506
-	/**
507
-	 * Filters post states.
508
-	 */
509
-	public static function filter_payment_form_state( $post_states, $post ) {
546
+            $status = $discount->is_expired() ? 'expired' : $discount->get_status();
510 547
 
511
-		if ( 'wpi_payment_form' === $post->post_type && wpinv_get_default_payment_form() === $post->ID ) {
512
-			$post_states['default_form'] = __( 'Default Payment Form', 'invoicing' );
513
-		}
548
+            if ( 'publish' !== $status ) {
549
+                return array(
550
+                    'discount_status' => wpinv_discount_status( $status ),
551
+                );
552
+            }
553
+
554
+            return array();
555
+
556
+        }
557
+
558
+        return $post_states;
514 559
 
515
-		return $post_states;
560
+    }
516 561
 
517
-	}
562
+    /**
563
+     * Returns an array of items table columns.
564
+     */
565
+    public static function item_columns( $columns ) {
566
+
567
+        $columns = array(
568
+            'cb'        => $columns['cb'],
569
+            'title'     => __( 'Name', 'invoicing' ),
570
+            'price'     => __( 'Price', 'invoicing' ),
571
+            'vat_rule'  => __( 'Tax Rule', 'invoicing' ),
572
+            'vat_class' => __( 'Tax Class', 'invoicing' ),
573
+            'type'      => __( 'Type', 'invoicing' ),
574
+            'shortcode' => __( 'Shortcode', 'invoicing' ),
575
+        );
576
+
577
+        if ( ! wpinv_use_taxes() ) {
578
+            unset( $columns['vat_rule'] );
579
+            unset( $columns['vat_class'] );
580
+        }
518 581
 
519
-	/**
520
-	 * Returns an array of coupon table columns.
521
-	 */
522
-	public static function discount_columns( $columns ) {
582
+        return apply_filters( 'wpi_item_table_columns', $columns );
583
+    }
523 584
 
524
-		$columns = array(
525
-			'cb'          => $columns['cb'],
526
-			'title'       => __( 'Name', 'invoicing' ),
527
-			'code'        => __( 'Code', 'invoicing' ),
528
-			'amount'      => __( 'Amount', 'invoicing' ),
529
-			'usage'       => __( 'Usage / Limit', 'invoicing' ),
530
-			'start_date'  => __( 'Start Date', 'invoicing' ),
531
-			'expiry_date' => __( 'Expiry Date', 'invoicing' ),
532
-		);
585
+    /**
586
+     * Returns an array of sortable items table columns.
587
+     */
588
+    public static function sortable_item_columns( $columns ) {
589
+
590
+        return array_merge(
591
+            $columns,
592
+            array(
593
+                'price'     => 'price',
594
+                'vat_rule'  => 'vat_rule',
595
+                'vat_class' => 'vat_class',
596
+                'type'      => 'type',
597
+            )
598
+        );
533 599
 
534
-		return apply_filters( 'wpi_discount_table_columns', $columns );
535
-	}
600
+    }
536 601
 
537
-	/**
538
-	 * Filters post states.
539
-	 */
540
-	public static function filter_discount_state( $post_states, $post ) {
602
+    /**
603
+     * Displays items table columns.
604
+     */
605
+    public static function display_item_columns( $column_name, $post_id ) {
541 606
 
542
-		if ( 'wpi_discount' === $post->post_type ) {
607
+        $item = new WPInv_Item( $post_id );
543 608
 
544
-			$discount = new WPInv_Discount( $post );
609
+        switch ( $column_name ) {
545 610
 
546
-			$status = $discount->is_expired() ? 'expired' : $discount->get_status();
611
+            case 'price':
612
+                if ( ! $item->is_recurring() ) {
613
+                    echo wp_kses_post( $item->get_the_price() );
614
+                    break;
615
+                }
547 616
 
548
-			if ( 'publish' !== $status ) {
549
-				return array(
550
-					'discount_status' => wpinv_discount_status( $status ),
551
-				);
552
-			}
617
+                $price = wp_sprintf(
618
+                    __( '%1$s / %2$s', 'invoicing' ),
619
+                    $item->get_the_price(),
620
+                    getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' )
621
+                );
553 622
 
554
-			return array();
623
+                if ( $item->get_the_price() == $item->get_the_initial_price() ) {
624
+                    echo wp_kses_post( $price );
625
+                    break;
626
+                }
555 627
 
556
-		}
628
+                echo wp_kses_post( $item->get_the_initial_price() );
557 629
 
558
-		return $post_states;
630
+                echo '<span class="meta">' . wp_sprintf( esc_html__( 'then %s', 'invoicing' ), wp_kses_post( $price ) ) . '</span>';
631
+                break;
559 632
 
560
-	}
633
+            case 'vat_rule':
634
+                echo wp_kses_post( getpaid_get_tax_rule_label( $item->get_vat_rule() ) );
635
+                break;
561 636
 
562
-	/**
563
-	 * Returns an array of items table columns.
564
-	 */
565
-	public static function item_columns( $columns ) {
637
+            case 'vat_class':
638
+                echo wp_kses_post( getpaid_get_tax_class_label( $item->get_vat_class() ) );
639
+                break;
566 640
 
567
-		$columns = array(
568
-			'cb'        => $columns['cb'],
569
-			'title'     => __( 'Name', 'invoicing' ),
570
-			'price'     => __( 'Price', 'invoicing' ),
571
-			'vat_rule'  => __( 'Tax Rule', 'invoicing' ),
572
-			'vat_class' => __( 'Tax Class', 'invoicing' ),
573
-			'type'      => __( 'Type', 'invoicing' ),
574
-			'shortcode' => __( 'Shortcode', 'invoicing' ),
575
-		);
641
+            case 'shortcode':
642
+                if ( $item->is_type( array( '', 'fee', 'custom' ) ) ) {
643
+                    echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr( $item->get_id() ) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>';
644
+                } else {
645
+                    echo '&mdash;';
646
+                }
576 647
 
577
-		if ( ! wpinv_use_taxes() ) {
578
-			unset( $columns['vat_rule'] );
579
-			unset( $columns['vat_class'] );
580
-		}
648
+                break;
581 649
 
582
-		return apply_filters( 'wpi_item_table_columns', $columns );
583
-	}
650
+            case 'type':
651
+                echo wp_kses_post( wpinv_item_type( $item->get_id() ) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>' );
652
+                break;
584 653
 
585
-	/**
586
-	 * Returns an array of sortable items table columns.
587
-	 */
588
-	public static function sortable_item_columns( $columns ) {
589
-
590
-		return array_merge(
591
-			$columns,
592
-			array(
593
-				'price'     => 'price',
594
-				'vat_rule'  => 'vat_rule',
595
-				'vat_class' => 'vat_class',
596
-				'type'      => 'type',
597
-			)
598
-		);
599
-
600
-	}
601
-
602
-	/**
603
-	 * Displays items table columns.
604
-	 */
605
-	public static function display_item_columns( $column_name, $post_id ) {
606
-
607
-		$item = new WPInv_Item( $post_id );
608
-
609
-		switch ( $column_name ) {
610
-
611
-			case 'price':
612
-				if ( ! $item->is_recurring() ) {
613
-					echo wp_kses_post( $item->get_the_price() );
614
-					break;
615
-				}
616
-
617
-				$price = wp_sprintf(
618
-					__( '%1$s / %2$s', 'invoicing' ),
619
-					$item->get_the_price(),
620
-					getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' )
621
-				);
622
-
623
-				if ( $item->get_the_price() == $item->get_the_initial_price() ) {
624
-					echo wp_kses_post( $price );
625
-					break;
626
-				}
627
-
628
-				echo wp_kses_post( $item->get_the_initial_price() );
629
-
630
-				echo '<span class="meta">' . wp_sprintf( esc_html__( 'then %s', 'invoicing' ), wp_kses_post( $price ) ) . '</span>';
631
-				break;
632
-
633
-			case 'vat_rule':
634
-				echo wp_kses_post( getpaid_get_tax_rule_label( $item->get_vat_rule() ) );
635
-				break;
636
-
637
-			case 'vat_class':
638
-				echo wp_kses_post( getpaid_get_tax_class_label( $item->get_vat_class() ) );
639
-				break;
640
-
641
-			case 'shortcode':
642
-				if ( $item->is_type( array( '', 'fee', 'custom' ) ) ) {
643
-					echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr( $item->get_id() ) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>';
644
-				} else {
645
-					echo '&mdash;';
646
-				}
647
-
648
-				break;
649
-
650
-			case 'type':
651
-				echo wp_kses_post( wpinv_item_type( $item->get_id() ) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>' );
652
-				break;
653
-
654
-		}
655
-
656
-	}
657
-
658
-	/**
659
-	 * Lets users filter items using taxes.
660
-	 */
661
-	public static function add_item_filters( $post_type ) {
662
-
663
-		// Abort if we're not dealing with items.
664
-		if ( 'wpi_item' !== $post_type ) {
665
-			return;
666
-		}
667
-
668
-		// Filter by vat rules.
669
-		if ( wpinv_use_taxes() ) {
670
-
671
-			// Sanitize selected vat rule.
672
-			$vat_rule   = '';
673
-			$vat_rules  = getpaid_get_tax_rules();
674
-			if ( isset( $_GET['vat_rule'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
675
-				$vat_rule   = sanitize_text_field( $_GET['vat_rule'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
676
-			}
677
-
678
-			// Filter by VAT rule.
679
-			wpinv_html_select(
680
-				array(
681
-					'options'          => array_merge(
682
-						array(
683
-							'' => __( 'All Tax Rules', 'invoicing' ),
684
-						),
685
-						$vat_rules
686
-					),
687
-					'name'             => 'vat_rule',
688
-					'id'               => 'vat_rule',
689
-					'selected'         => in_array( $vat_rule, array_keys( $vat_rules ), true ) ? $vat_rule : '',
690
-					'show_option_all'  => false,
691
-					'show_option_none' => false,
692
-				)
693
-			);
694
-
695
-			// Filter by VAT class.
696
-
697
-			// Sanitize selected vat rule.
698
-			$vat_class   = '';
699
-			$vat_classes = getpaid_get_tax_classes();
700
-			if ( isset( $_GET['vat_class'] ) ) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
701
-				$vat_class   = sanitize_text_field( $_GET['vat_class'] );  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
702
-			}
703
-
704
-			wpinv_html_select(
705
-				array(
706
-					'options'          => array_merge(
707
-						array(
708
-							'' => __( 'All Tax Classes', 'invoicing' ),
709
-						),
710
-						$vat_classes
711
-					),
712
-					'name'             => 'vat_class',
713
-					'id'               => 'vat_class',
714
-					'selected'         => in_array( $vat_class, array_keys( $vat_classes ), true ) ? $vat_class : '',
715
-					'show_option_all'  => false,
716
-					'show_option_none' => false,
717
-				)
718
-			);
719
-
720
-		}
721
-
722
-		// Filter by item type.
723
-		$type   = '';
724
-		if ( isset( $_GET['type'] ) ) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
725
-			$type   = sanitize_text_field( $_GET['type'] );  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
726
-		}
727
-
728
-		wpinv_html_select(
729
-			array(
730
-				'options'          => array_merge(
731
-					array(
732
-						'' => __( 'All item types', 'invoicing' ),
733
-					),
734
-					wpinv_get_item_types()
735
-				),
736
-				'name'             => 'type',
737
-				'id'               => 'type',
738
-				'selected'         => in_array( $type, wpinv_item_types(), true ) ? $type : '',
739
-				'show_option_all'  => false,
740
-				'show_option_none' => false,
741
-			)
742
-		);
743
-
744
-	}
745
-
746
-	/**
747
-	 * Filters the item query.
748
-	 */
749
-	public static function filter_item_query( $query ) {
750
-
751
-		// modify the query only if it admin and main query.
752
-		if ( ! ( is_admin() && $query->is_main_query() ) ) {
753
-			return $query;
754
-		}
755
-
756
-		// we want to modify the query for our items.
757
-		if ( empty( $query->query['post_type'] ) || 'wpi_item' !== $query->query['post_type'] ) {
758
-			return $query;
759
-		}
760
-
761
-		if ( empty( $query->query_vars['meta_query'] ) ) {
762
-			$query->query_vars['meta_query'] = array();
763
-		}
764
-
765
-		// Filter vat rule type
654
+        }
655
+
656
+    }
657
+
658
+    /**
659
+     * Lets users filter items using taxes.
660
+     */
661
+    public static function add_item_filters( $post_type ) {
662
+
663
+        // Abort if we're not dealing with items.
664
+        if ( 'wpi_item' !== $post_type ) {
665
+            return;
666
+        }
667
+
668
+        // Filter by vat rules.
669
+        if ( wpinv_use_taxes() ) {
670
+
671
+            // Sanitize selected vat rule.
672
+            $vat_rule   = '';
673
+            $vat_rules  = getpaid_get_tax_rules();
674
+            if ( isset( $_GET['vat_rule'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
675
+                $vat_rule   = sanitize_text_field( $_GET['vat_rule'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
676
+            }
677
+
678
+            // Filter by VAT rule.
679
+            wpinv_html_select(
680
+                array(
681
+                    'options'          => array_merge(
682
+                        array(
683
+                            '' => __( 'All Tax Rules', 'invoicing' ),
684
+                        ),
685
+                        $vat_rules
686
+                    ),
687
+                    'name'             => 'vat_rule',
688
+                    'id'               => 'vat_rule',
689
+                    'selected'         => in_array( $vat_rule, array_keys( $vat_rules ), true ) ? $vat_rule : '',
690
+                    'show_option_all'  => false,
691
+                    'show_option_none' => false,
692
+                )
693
+            );
694
+
695
+            // Filter by VAT class.
696
+
697
+            // Sanitize selected vat rule.
698
+            $vat_class   = '';
699
+            $vat_classes = getpaid_get_tax_classes();
700
+            if ( isset( $_GET['vat_class'] ) ) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
701
+                $vat_class   = sanitize_text_field( $_GET['vat_class'] );  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
702
+            }
703
+
704
+            wpinv_html_select(
705
+                array(
706
+                    'options'          => array_merge(
707
+                        array(
708
+                            '' => __( 'All Tax Classes', 'invoicing' ),
709
+                        ),
710
+                        $vat_classes
711
+                    ),
712
+                    'name'             => 'vat_class',
713
+                    'id'               => 'vat_class',
714
+                    'selected'         => in_array( $vat_class, array_keys( $vat_classes ), true ) ? $vat_class : '',
715
+                    'show_option_all'  => false,
716
+                    'show_option_none' => false,
717
+                )
718
+            );
719
+
720
+        }
721
+
722
+        // Filter by item type.
723
+        $type   = '';
724
+        if ( isset( $_GET['type'] ) ) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
725
+            $type   = sanitize_text_field( $_GET['type'] );  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
726
+        }
727
+
728
+        wpinv_html_select(
729
+            array(
730
+                'options'          => array_merge(
731
+                    array(
732
+                        '' => __( 'All item types', 'invoicing' ),
733
+                    ),
734
+                    wpinv_get_item_types()
735
+                ),
736
+                'name'             => 'type',
737
+                'id'               => 'type',
738
+                'selected'         => in_array( $type, wpinv_item_types(), true ) ? $type : '',
739
+                'show_option_all'  => false,
740
+                'show_option_none' => false,
741
+            )
742
+        );
743
+
744
+    }
745
+
746
+    /**
747
+     * Filters the item query.
748
+     */
749
+    public static function filter_item_query( $query ) {
750
+
751
+        // modify the query only if it admin and main query.
752
+        if ( ! ( is_admin() && $query->is_main_query() ) ) {
753
+            return $query;
754
+        }
755
+
756
+        // we want to modify the query for our items.
757
+        if ( empty( $query->query['post_type'] ) || 'wpi_item' !== $query->query['post_type'] ) {
758
+            return $query;
759
+        }
760
+
761
+        if ( empty( $query->query_vars['meta_query'] ) ) {
762
+            $query->query_vars['meta_query'] = array();
763
+        }
764
+
765
+        // Filter vat rule type
766 766
         if ( ! empty( $_GET['vat_rule'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
767 767
             $query->query_vars['meta_query'][] = array(
768 768
                 'key'     => '_wpinv_vat_rule',
@@ -787,101 +787,101 @@  discard block
 block discarded – undo
787 787
                 'value'   => sanitize_text_field( $_GET['type'] ), // phpcs:ignore WordPress.Security.NonceVerification.Recommended
788 788
                 'compare' => '=',
789 789
             );
790
-		}
791
-
792
-		$query->query_vars['meta_query'][] = array(
793
-			'key'     => '_wpinv_one_time',
794
-			'compare' => 'NOT EXISTS',
795
-		);
796
-	}
797
-
798
-	/**
799
-	 * Reorders items.
800
-	 */
801
-	public static function reorder_items( $vars ) {
802
-		global $typenow;
803
-
804
-		if ( 'wpi_item' !== $typenow || empty( $vars['orderby'] ) ) {
805
-			return $vars;
806
-		}
807
-
808
-		// By item type.
809
-		if ( 'type' === $vars['orderby'] ) {
810
-			return array_merge(
811
-				$vars,
812
-				array(
813
-					'meta_key' => '_wpinv_type',
814
-					'orderby'  => 'meta_value',
815
-				)
816
-			);
817
-		}
818
-
819
-		// By vat class.
820
-		if ( 'vat_class' === $vars['orderby'] ) {
821
-			return array_merge(
822
-				$vars,
823
-				array(
824
-					'meta_key' => '_wpinv_vat_class',
825
-					'orderby'  => 'meta_value',
826
-				)
827
-			);
828
-		}
829
-
830
-		// By vat rule.
831
-		if ( 'vat_rule' === $vars['orderby'] ) {
832
-			return array_merge(
833
-				$vars,
834
-				array(
835
-					'meta_key' => '_wpinv_vat_rule',
836
-					'orderby'  => 'meta_value',
837
-				)
838
-			);
839
-		}
840
-
841
-		// By price.
842
-		if ( 'price' === $vars['orderby'] ) {
843
-			return array_merge(
844
-				$vars,
845
-				array(
846
-					'meta_key' => '_wpinv_price',
847
-					'orderby'  => 'meta_value_num',
848
-				)
849
-			);
850
-		}
851
-
852
-		return $vars;
853
-
854
-	}
855
-
856
-	/**
857
-	 * Fired when deleting a post.
858
-	 */
859
-	public static function delete_post( $post_id ) {
860
-
861
-		switch ( get_post_type( $post_id ) ) {
862
-
863
-			case 'wpi_item':
864
-				do_action( 'getpaid_before_delete_item', new WPInv_Item( $post_id ) );
865
-				break;
866
-
867
-			case 'wpi_payment_form':
868
-				do_action( 'getpaid_before_delete_payment_form', new GetPaid_Payment_Form( $post_id ) );
869
-				break;
870
-
871
-			case 'wpi_discount':
872
-				do_action( 'getpaid_before_delete_discount', new WPInv_Discount( $post_id ) );
873
-				break;
874
-
875
-			case 'wpi_invoice':
876
-				$invoice = new WPInv_Invoice( $post_id );
877
-				do_action( 'getpaid_before_delete_invoice', $invoice );
878
-				$invoice->get_data_store()->delete_items( $invoice );
879
-				$invoice->get_data_store()->delete_special_fields( $invoice );
880
-				break;
881
-		}
882
-	}
883
-
884
-	/**
790
+        }
791
+
792
+        $query->query_vars['meta_query'][] = array(
793
+            'key'     => '_wpinv_one_time',
794
+            'compare' => 'NOT EXISTS',
795
+        );
796
+    }
797
+
798
+    /**
799
+     * Reorders items.
800
+     */
801
+    public static function reorder_items( $vars ) {
802
+        global $typenow;
803
+
804
+        if ( 'wpi_item' !== $typenow || empty( $vars['orderby'] ) ) {
805
+            return $vars;
806
+        }
807
+
808
+        // By item type.
809
+        if ( 'type' === $vars['orderby'] ) {
810
+            return array_merge(
811
+                $vars,
812
+                array(
813
+                    'meta_key' => '_wpinv_type',
814
+                    'orderby'  => 'meta_value',
815
+                )
816
+            );
817
+        }
818
+
819
+        // By vat class.
820
+        if ( 'vat_class' === $vars['orderby'] ) {
821
+            return array_merge(
822
+                $vars,
823
+                array(
824
+                    'meta_key' => '_wpinv_vat_class',
825
+                    'orderby'  => 'meta_value',
826
+                )
827
+            );
828
+        }
829
+
830
+        // By vat rule.
831
+        if ( 'vat_rule' === $vars['orderby'] ) {
832
+            return array_merge(
833
+                $vars,
834
+                array(
835
+                    'meta_key' => '_wpinv_vat_rule',
836
+                    'orderby'  => 'meta_value',
837
+                )
838
+            );
839
+        }
840
+
841
+        // By price.
842
+        if ( 'price' === $vars['orderby'] ) {
843
+            return array_merge(
844
+                $vars,
845
+                array(
846
+                    'meta_key' => '_wpinv_price',
847
+                    'orderby'  => 'meta_value_num',
848
+                )
849
+            );
850
+        }
851
+
852
+        return $vars;
853
+
854
+    }
855
+
856
+    /**
857
+     * Fired when deleting a post.
858
+     */
859
+    public static function delete_post( $post_id ) {
860
+
861
+        switch ( get_post_type( $post_id ) ) {
862
+
863
+            case 'wpi_item':
864
+                do_action( 'getpaid_before_delete_item', new WPInv_Item( $post_id ) );
865
+                break;
866
+
867
+            case 'wpi_payment_form':
868
+                do_action( 'getpaid_before_delete_payment_form', new GetPaid_Payment_Form( $post_id ) );
869
+                break;
870
+
871
+            case 'wpi_discount':
872
+                do_action( 'getpaid_before_delete_discount', new WPInv_Discount( $post_id ) );
873
+                break;
874
+
875
+            case 'wpi_invoice':
876
+                $invoice = new WPInv_Invoice( $post_id );
877
+                do_action( 'getpaid_before_delete_invoice', $invoice );
878
+                $invoice->get_data_store()->delete_items( $invoice );
879
+                $invoice->get_data_store()->delete_special_fields( $invoice );
880
+                break;
881
+        }
882
+    }
883
+
884
+    /**
885 885
      * Add a post display state for special GetPaid pages in the page list table.
886 886
      *
887 887
      * @param array   $post_states An array of post display states.
@@ -895,21 +895,21 @@  discard block
 block discarded – undo
895 895
             $post_states['getpaid_success_page'] = __( 'GetPaid Receipt Page', 'invoicing' );
896 896
         }
897 897
 
898
-		foreach ( getpaid_get_invoice_post_types() as $post_type => $label ) {
898
+        foreach ( getpaid_get_invoice_post_types() as $post_type => $label ) {
899 899
 
900
-			if ( wpinv_get_option( "{$post_type}_history_page", 0 ) == $post->ID ) {
901
-				$post_states[ "getpaid_{$post_type}_history_page" ] = sprintf(
902
-					__( 'GetPaid %s History Page', 'invoicing' ),
903
-					$label
904
-				);
905
-			}
900
+            if ( wpinv_get_option( "{$post_type}_history_page", 0 ) == $post->ID ) {
901
+                $post_states[ "getpaid_{$post_type}_history_page" ] = sprintf(
902
+                    __( 'GetPaid %s History Page', 'invoicing' ),
903
+                    $label
904
+                );
905
+            }
906 906
 }
907 907
 
908
-		if ( wpinv_get_option( 'invoice_subscription_page', 0 ) == $post->ID ) {
908
+        if ( wpinv_get_option( 'invoice_subscription_page', 0 ) == $post->ID ) {
909 909
             $post_states['getpaid_invoice_subscription_page'] = __( 'GetPaid Subscription Page', 'invoicing' );
910 910
         }
911 911
 
912
-		if ( wpinv_get_option( 'checkout_page', 0 ) == $post->ID ) {
912
+        if ( wpinv_get_option( 'checkout_page', 0 ) == $post->ID ) {
913 913
             $post_states['getpaid_checkout_page'] = __( 'GetPaid Checkout Page', 'invoicing' );
914 914
         }
915 915
 
Please login to merge, or discard this patch.
Spacing   +253 added lines, -253 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 ( wpinv_get_default_payment_form() === $post->ID ) {
109
-				unset( $actions['trash'] );
110
-				unset( $actions['inline hide-if-no-js'] );
108
+			if (wpinv_get_default_payment_form() === $post->ID) {
109
+				unset($actions['trash']);
110
+				unset($actions['inline hide-if-no-js']);
111 111
 			}
112 112
 
113 113
 			$actions['duplicate'] = sprintf(
@@ -124,7 +124,7 @@  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
 			$actions['reset'] = sprintf(
@@ -141,17 +141,17 @@  discard block
 block discarded – undo
141 141
 						'getpaid-nonce'
142 142
 					)
143 143
 				),
144
-				esc_html( __( 'Reset Stats', 'invoicing' ) )
144
+				esc_html(__('Reset Stats', 'invoicing'))
145 145
 			);
146 146
 		}
147 147
 
148 148
 		// Link to item payment form.
149
-		if ( 'wpi_item' == $post->post_type ) {
150
-			if ( getpaid_item_type_supports( get_post_meta( $post->ID, '_wpinv_type', true ), 'buy_now' ) ) {
149
+		if ('wpi_item' == $post->post_type) {
150
+			if (getpaid_item_type_supports(get_post_meta($post->ID, '_wpinv_type', true), 'buy_now')) {
151 151
 				$actions['buy'] = sprintf(
152 152
 					'<a href="%1$s">%2$s</a>',
153
-					esc_url( getpaid_embed_url( false, $post->ID . '|0' ) ),
154
-					esc_html( __( 'Buy', 'invoicing' ) )
153
+					esc_url(getpaid_embed_url(false, $post->ID . '|0')),
154
+					esc_html(__('Buy', 'invoicing'))
155 155
 				);
156 156
 			}
157 157
 		}
@@ -167,28 +167,28 @@  discard block
 block discarded – undo
167 167
 	 * @param WP_Post $post
168 168
      * @return array $actions actions without edit option
169 169
      */
170
-    public static function filter_invoice_row_actions( $actions, $post ) {
170
+    public static function filter_invoice_row_actions($actions, $post) {
171 171
 
172
-        if ( getpaid_is_invoice_post_type( $post->post_type ) ) {
172
+        if (getpaid_is_invoice_post_type($post->post_type)) {
173 173
 
174 174
 			$actions = array();
175
-			$invoice = new WPInv_Invoice( $post );
175
+			$invoice = new WPInv_Invoice($post);
176 176
 
177 177
 			$actions['edit'] = sprintf(
178 178
 				'<a href="%1$s">%2$s</a>',
179
-				esc_url( get_edit_post_link( $invoice->get_id() ) ),
180
-				esc_html( __( 'Edit', 'invoicing' ) )
179
+				esc_url(get_edit_post_link($invoice->get_id())),
180
+				esc_html(__('Edit', 'invoicing'))
181 181
 			);
182 182
 
183
-			if ( ! $invoice->is_draft() ) {
183
+			if (!$invoice->is_draft()) {
184 184
 
185 185
 				$actions['view'] = sprintf(
186 186
 					'<a href="%1$s">%2$s</a>',
187
-					esc_url( $invoice->get_view_url() ),
187
+					esc_url($invoice->get_view_url()),
188 188
 					sprintf(
189 189
 						// translators: %s is the invoice type
190
-						esc_html__( 'View %s', 'invoicing' ),
191
-						getpaid_get_post_type_label( $invoice->get_post_type(), false )
190
+						esc_html__('View %s', 'invoicing'),
191
+						getpaid_get_post_type_label($invoice->get_post_type(), false)
192 192
 					)
193 193
 				);
194 194
 
@@ -206,7 +206,7 @@  discard block
 block discarded – undo
206 206
 							'getpaid-nonce'
207 207
 						)
208 208
 					),
209
-					esc_html( __( 'Send to Customer', 'invoicing' ) )
209
+					esc_html(__('Send to Customer', 'invoicing'))
210 210
 				);
211 211
 
212 212
 			}
@@ -225,7 +225,7 @@  discard block
 block discarded – undo
225 225
 						'getpaid-nonce'
226 226
 					)
227 227
 				),
228
-				esc_html( __( 'Duplicate', 'invoicing' ) )
228
+				esc_html(__('Duplicate', 'invoicing'))
229 229
 			);
230 230
 
231 231
         }
@@ -236,59 +236,59 @@  discard block
 block discarded – undo
236 236
 	/**
237 237
 	 * Returns an array of invoice table columns.
238 238
 	 */
239
-	public static function invoice_columns( $columns ) {
239
+	public static function invoice_columns($columns) {
240 240
 
241 241
 		$columns = array(
242 242
 			'cb'           => $columns['cb'],
243
-			'number'       => __( 'Invoice', 'invoicing' ),
244
-			'customer'     => __( 'Customer', 'invoicing' ),
245
-			'invoice_date' => __( 'Created', 'invoicing' ),
246
-			'payment_date' => __( 'Completed', 'invoicing' ),
247
-			'amount'       => __( 'Amount', 'invoicing' ),
248
-			'recurring'    => __( 'Recurring', 'invoicing' ),
249
-			'status'       => __( 'Status', 'invoicing' ),
243
+			'number'       => __('Invoice', 'invoicing'),
244
+			'customer'     => __('Customer', 'invoicing'),
245
+			'invoice_date' => __('Created', 'invoicing'),
246
+			'payment_date' => __('Completed', 'invoicing'),
247
+			'amount'       => __('Amount', 'invoicing'),
248
+			'recurring'    => __('Recurring', 'invoicing'),
249
+			'status'       => __('Status', 'invoicing'),
250 250
 		);
251 251
 
252
-		return apply_filters( 'wpi_invoice_table_columns', $columns );
252
+		return apply_filters('wpi_invoice_table_columns', $columns);
253 253
 	}
254 254
 
255 255
 	/**
256 256
 	 * Displays invoice table columns.
257 257
 	 */
258
-	public static function display_invoice_columns( $column_name, $post_id ) {
258
+	public static function display_invoice_columns($column_name, $post_id) {
259 259
 
260
-		$invoice = new WPInv_Invoice( $post_id );
260
+		$invoice = new WPInv_Invoice($post_id);
261 261
 
262
-		switch ( $column_name ) {
262
+		switch ($column_name) {
263 263
 
264 264
 			case 'invoice_date':
265
-				$date_time = esc_attr( $invoice->get_created_date() );
266
-				$date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
267
-				echo wp_kses_post( "<span title='$date_time'>$date</span>" );
265
+				$date_time = esc_attr($invoice->get_created_date());
266
+				$date      = esc_html(getpaid_format_date_value($date_time, '&mdash;', true));
267
+				echo wp_kses_post("<span title='$date_time'>$date</span>");
268 268
 				break;
269 269
 
270 270
 			case 'payment_date':
271
-				if ( $invoice->is_paid() || $invoice->is_refunded() ) {
272
-					$date_time = esc_attr( $invoice->get_completed_date() );
273
-					$date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
274
-					echo wp_kses_post( "<span title='$date_time'>$date</span>" );
271
+				if ($invoice->is_paid() || $invoice->is_refunded()) {
272
+					$date_time = esc_attr($invoice->get_completed_date());
273
+					$date      = esc_html(getpaid_format_date_value($date_time, '&mdash;', true));
274
+					echo wp_kses_post("<span title='$date_time'>$date</span>");
275 275
 
276
-					if ( $_gateway = $invoice->get_gateway() ) {
277
-						$gateway_label = wpinv_get_gateway_admin_label( $_gateway );
276
+					if ($_gateway = $invoice->get_gateway()) {
277
+						$gateway_label = wpinv_get_gateway_admin_label($_gateway);
278 278
 
279
-						if ( $transaction_url = $invoice->get_transaction_url() ) {
280
-							$gateway_label = '<a href="' . esc_url( $transaction_url ) . '" target="_blank" title="' . esc_attr__( 'Open transaction link', 'invoicing' ) . '">' . $gateway_label . '</a>';
279
+						if ($transaction_url = $invoice->get_transaction_url()) {
280
+							$gateway_label = '<a href="' . esc_url($transaction_url) . '" target="_blank" title="' . esc_attr__('Open transaction link', 'invoicing') . '">' . $gateway_label . '</a>';
281 281
 						}
282 282
 
283
-						$gateway = '<small class="meta bsui"><span class="fs-xs text-muted fst-normal">' . wp_sprintf( _x( 'Via %s', 'Paid via gateway', 'invoicing' ), $gateway_label ) . '</span></small>';
283
+						$gateway = '<small class="meta bsui"><span class="fs-xs text-muted fst-normal">' . wp_sprintf(_x('Via %s', 'Paid via gateway', 'invoicing'), $gateway_label) . '</span></small>';
284 284
 					} else {
285 285
 						$gateway = '';
286 286
 					}
287 287
 
288
-					$gateway = apply_filters( 'getpaid_admin_invoices_list_table_gateway', $gateway, $invoice );
288
+					$gateway = apply_filters('getpaid_admin_invoices_list_table_gateway', $gateway, $invoice);
289 289
 
290
-					if ( $gateway ) {
291
-						echo wp_kses_post( $gateway ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
290
+					if ($gateway) {
291
+						echo wp_kses_post($gateway); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
292 292
 					}
293 293
 				} else {
294 294
 					echo '&mdash;';
@@ -298,61 +298,61 @@  discard block
 block discarded – undo
298 298
 
299 299
 			case 'amount':
300 300
 				$amount = $invoice->get_total();
301
-				$formated_amount = wp_kses_post( wpinv_price( $amount, $invoice->get_currency() ) );
301
+				$formated_amount = wp_kses_post(wpinv_price($amount, $invoice->get_currency()));
302 302
 
303
-				if ( $invoice->is_refunded() ) {
304
-					$refunded_amount = wpinv_price( 0, $invoice->get_currency() );
305
-					echo wp_kses_post( "<del>$formated_amount</del>&nbsp;<ins>$refunded_amount</ins>" );
303
+				if ($invoice->is_refunded()) {
304
+					$refunded_amount = wpinv_price(0, $invoice->get_currency());
305
+					echo wp_kses_post("<del>$formated_amount</del>&nbsp;<ins>$refunded_amount</ins>");
306 306
 				} else {
307 307
 
308 308
 					$discount = $invoice->get_total_discount();
309 309
 
310
-					if ( ! empty( $discount ) ) {
311
-						$new_amount = wpinv_price( $amount + $discount, $invoice->get_currency() );
312
-						echo wp_kses_post( "<del>$new_amount</del>&nbsp;<ins>$formated_amount</ins>" );
310
+					if (!empty($discount)) {
311
+						$new_amount = wpinv_price($amount + $discount, $invoice->get_currency());
312
+						echo wp_kses_post("<del>$new_amount</del>&nbsp;<ins>$formated_amount</ins>");
313 313
 					} else {
314
-						echo wp_kses_post( $formated_amount );
314
+						echo wp_kses_post($formated_amount);
315 315
 					}
316 316
 				}
317 317
 
318 318
 				break;
319 319
 
320 320
 			case 'status':
321
-				$status       = esc_html( $invoice->get_status() );
322
-				$status_label = esc_html( $invoice->get_status_nicename() );
321
+				$status       = esc_html($invoice->get_status());
322
+				$status_label = esc_html($invoice->get_status_nicename());
323 323
 
324 324
 				// If it is paid, show the gateway title.
325
-				if ( $invoice->is_paid() ) {
326
-					$gateway = esc_html( $invoice->get_gateway_title() );
327
-					$gateway = wp_sprintf( esc_attr__( 'Paid via %s', 'invoicing' ), esc_html( $gateway ) );
325
+				if ($invoice->is_paid()) {
326
+					$gateway = esc_html($invoice->get_gateway_title());
327
+					$gateway = wp_sprintf(esc_attr__('Paid via %s', 'invoicing'), esc_html($gateway));
328 328
 
329
-					echo wp_kses_post( "<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>" );
329
+					echo wp_kses_post("<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>");
330 330
 				} else {
331
-					echo wp_kses_post( "<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>" );
331
+					echo wp_kses_post("<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>");
332 332
 				}
333 333
 
334 334
 				// If it is not paid, display the overdue and view status.
335
-				if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
335
+				if (!$invoice->is_paid() && !$invoice->is_refunded()) {
336 336
 
337 337
 					// Invoice view status.
338
-					if ( wpinv_is_invoice_viewed( $invoice->get_id() ) ) {
339
-						echo '&nbsp;&nbsp;<i class="fa fa-eye wpi-help-tip" title="' . esc_attr__( 'Viewed by Customer', 'invoicing' ) . '"></i>';
338
+					if (wpinv_is_invoice_viewed($invoice->get_id())) {
339
+						echo '&nbsp;&nbsp;<i class="fa fa-eye wpi-help-tip" title="' . esc_attr__('Viewed by Customer', 'invoicing') . '"></i>';
340 340
 					} else {
341
-						echo '&nbsp;&nbsp;<i class="fa fa-eye-slash wpi-help-tip" title="' . esc_attr__( 'Not Viewed by Customer', 'invoicing' ) . '"></i>';
341
+						echo '&nbsp;&nbsp;<i class="fa fa-eye-slash wpi-help-tip" title="' . esc_attr__('Not Viewed by Customer', 'invoicing') . '"></i>';
342 342
 					}
343 343
 
344 344
 					// Display the overview status.
345
-					if ( wpinv_get_option( 'overdue_active' ) ) {
345
+					if (wpinv_get_option('overdue_active')) {
346 346
 						$due_date = $invoice->get_due_date();
347
-						$fomatted = getpaid_format_date( $due_date );
347
+						$fomatted = getpaid_format_date($due_date);
348 348
 
349
-						if ( ! empty( $fomatted ) ) {
349
+						if (!empty($fomatted)) {
350 350
 							$date = wp_sprintf(
351 351
 								// translators: %s is the due date.
352
-								__( 'Due %s', 'invoicing' ),
352
+								__('Due %s', 'invoicing'),
353 353
 								$fomatted
354 354
 							);
355
-							echo wp_kses_post( "<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>" );
355
+							echo wp_kses_post("<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>");
356 356
 						}
357 357
 					}
358 358
 				}
@@ -360,7 +360,7 @@  discard block
 block discarded – undo
360 360
 				break;
361 361
 
362 362
 			case 'recurring':
363
-				if ( $invoice->is_recurring() ) {
363
+				if ($invoice->is_recurring()) {
364 364
 					echo '<i class="fa fa-check" style="color:#43850a;"></i>';
365 365
 				} else {
366 366
 					echo '<i class="fa fa-times" style="color:#616161;"></i>';
@@ -368,26 +368,26 @@  discard block
 block discarded – undo
368 368
 				break;
369 369
 
370 370
 			case 'number':
371
-				$edit_link       = esc_url( get_edit_post_link( $invoice->get_id() ) );
372
-				$invoice_number  = esc_html( $invoice->get_number() );
373
-				$invoice_details = esc_attr__( 'View Invoice Details', 'invoicing' );
371
+				$edit_link       = esc_url(get_edit_post_link($invoice->get_id()));
372
+				$invoice_number  = esc_html($invoice->get_number());
373
+				$invoice_details = esc_attr__('View Invoice Details', 'invoicing');
374 374
 
375
-				echo wp_kses_post( "<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>" );
375
+				echo wp_kses_post("<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>");
376 376
 
377
-				do_action( 'getpaid_admin_table_invoice_number_column', $invoice );
377
+				do_action('getpaid_admin_table_invoice_number_column', $invoice);
378 378
 				break;
379 379
 
380 380
 			case 'customer':
381 381
 				$customer_name = $invoice->get_user_full_name();
382 382
 
383
-				if ( empty( $customer_name ) ) {
383
+				if (empty($customer_name)) {
384 384
 					$customer_name = $invoice->get_email();
385 385
 				}
386 386
 
387
-				if ( ! empty( $customer_name ) ) {
388
-					$customer_details = esc_attr__( 'View Customer Details', 'invoicing' );
389
-					$view_link        = esc_url( add_query_arg( 'user_id', $invoice->get_user_id(), admin_url( 'user-edit.php' ) ) );
390
-					echo wp_kses_post( "<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>" );
387
+				if (!empty($customer_name)) {
388
+					$customer_details = esc_attr__('View Customer Details', 'invoicing');
389
+					$view_link        = esc_url(add_query_arg('user_id', $invoice->get_user_id(), admin_url('user-edit.php')));
390
+					echo wp_kses_post("<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>");
391 391
 				} else {
392 392
 					echo '<div>&mdash;</div>';
393 393
 				}
@@ -401,19 +401,19 @@  discard block
 block discarded – undo
401 401
 	/**
402 402
 	 * Displays invoice bulk actions.
403 403
 	 */
404
-	public static function invoice_bulk_actions( $actions ) {
405
-		$actions['resend-invoice'] = __( 'Send to Customer', 'invoicing' );
404
+	public static function invoice_bulk_actions($actions) {
405
+		$actions['resend-invoice'] = __('Send to Customer', 'invoicing');
406 406
 		return $actions;
407 407
 	}
408 408
 
409 409
 	/**
410 410
 	 * Processes invoice bulk actions.
411 411
 	 */
412
-	public static function handle_invoice_bulk_actions( $redirect_url, $action, $post_ids ) {
412
+	public static function handle_invoice_bulk_actions($redirect_url, $action, $post_ids) {
413 413
 
414
-		if ( 'resend-invoice' === $action ) {
415
-			foreach ( $post_ids as $post_id ) {
416
-				getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $post_id ), true );
414
+		if ('resend-invoice' === $action) {
415
+			foreach ($post_ids as $post_id) {
416
+				getpaid()->get('invoice_emails')->user_invoice(new WPInv_Invoice($post_id), true);
417 417
 			}
418 418
 		}
419 419
 
@@ -424,49 +424,49 @@  discard block
 block discarded – undo
424 424
 	/**
425 425
 	 * Returns an array of payment forms table columns.
426 426
 	 */
427
-	public static function payment_form_columns( $columns ) {
427
+	public static function payment_form_columns($columns) {
428 428
 
429 429
 		$columns = array(
430 430
 			'cb'        => $columns['cb'],
431
-			'title'     => __( 'Name', 'invoicing' ),
432
-			'shortcode' => __( 'Shortcode', 'invoicing' ),
433
-			'earnings'  => __( 'Revenue', 'invoicing' ),
434
-			'refunds'   => __( 'Refunded', 'invoicing' ),
435
-			'items'     => __( 'Items', 'invoicing' ),
436
-			'date'      => __( 'Date', 'invoicing' ),
431
+			'title'     => __('Name', 'invoicing'),
432
+			'shortcode' => __('Shortcode', 'invoicing'),
433
+			'earnings'  => __('Revenue', 'invoicing'),
434
+			'refunds'   => __('Refunded', 'invoicing'),
435
+			'items'     => __('Items', 'invoicing'),
436
+			'date'      => __('Date', 'invoicing'),
437 437
 		);
438 438
 
439
-		return apply_filters( 'wpi_payment_form_table_columns', $columns );
439
+		return apply_filters('wpi_payment_form_table_columns', $columns);
440 440
 
441 441
 	}
442 442
 
443 443
 	/**
444 444
 	 * Displays payment form table columns.
445 445
 	 */
446
-	public static function display_payment_form_columns( $column_name, $post_id ) {
446
+	public static function display_payment_form_columns($column_name, $post_id) {
447 447
 
448 448
 		// Retrieve the payment form.
449
-		$form = new GetPaid_Payment_Form( $post_id );
449
+		$form = new GetPaid_Payment_Form($post_id);
450 450
 
451
-		switch ( $column_name ) {
451
+		switch ($column_name) {
452 452
 
453 453
 			case 'earnings':
454
-				echo wp_kses_post( wpinv_price( $form->get_earned() ) );
454
+				echo wp_kses_post(wpinv_price($form->get_earned()));
455 455
 				break;
456 456
 
457 457
 			case 'refunds':
458
-				echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
458
+				echo wp_kses_post(wpinv_price($form->get_refunded()));
459 459
 				break;
460 460
 
461 461
 			case 'refunds':
462
-				echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
462
+				echo wp_kses_post(wpinv_price($form->get_refunded()));
463 463
 				break;
464 464
 
465 465
 			case 'shortcode':
466
-				if ( $form->is_default() ) {
466
+				if ($form->is_default()) {
467 467
 					echo '&mdash;';
468 468
 				} else {
469
-					echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr( $form->get_id() ) . ']" style="width: 100%;" readonly/>';
469
+					echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr($form->get_id()) . ']" style="width: 100%;" readonly/>';
470 470
 				}
471 471
 
472 472
 				break;
@@ -474,28 +474,28 @@  discard block
 block discarded – undo
474 474
 			case 'items':
475 475
 				$items = $form->get_items();
476 476
 
477
-				if ( $form->is_default() || empty( $items ) ) {
477
+				if ($form->is_default() || empty($items)) {
478 478
 					echo '&mdash;';
479 479
 					return;
480 480
 				}
481 481
 
482 482
 				$_items = array();
483 483
 
484
-				foreach ( $items as $item ) {
484
+				foreach ($items as $item) {
485 485
 					$url = $item->get_edit_url();
486 486
 
487
-					if ( empty( $url ) ) {
488
-						$_items[] = esc_html( $item->get_name() );
487
+					if (empty($url)) {
488
+						$_items[] = esc_html($item->get_name());
489 489
 					} else {
490 490
 						$_items[] = sprintf(
491 491
 							'<a href="%s">%s</a>',
492
-							esc_url( $url ),
493
-							esc_html( $item->get_name() )
492
+							esc_url($url),
493
+							esc_html($item->get_name())
494 494
 						);
495 495
 					}
496 496
 }
497 497
 
498
-				echo wp_kses_post( implode( '<br>', $_items ) );
498
+				echo wp_kses_post(implode('<br>', $_items));
499 499
 
500 500
 				break;
501 501
 
@@ -506,10 +506,10 @@  discard block
 block discarded – undo
506 506
 	/**
507 507
 	 * Filters post states.
508 508
 	 */
509
-	public static function filter_payment_form_state( $post_states, $post ) {
509
+	public static function filter_payment_form_state($post_states, $post) {
510 510
 
511
-		if ( 'wpi_payment_form' === $post->post_type && wpinv_get_default_payment_form() === $post->ID ) {
512
-			$post_states['default_form'] = __( 'Default Payment Form', 'invoicing' );
511
+		if ('wpi_payment_form' === $post->post_type && wpinv_get_default_payment_form() === $post->ID) {
512
+			$post_states['default_form'] = __('Default Payment Form', 'invoicing');
513 513
 		}
514 514
 
515 515
 		return $post_states;
@@ -519,35 +519,35 @@  discard block
 block discarded – undo
519 519
 	/**
520 520
 	 * Returns an array of coupon table columns.
521 521
 	 */
522
-	public static function discount_columns( $columns ) {
522
+	public static function discount_columns($columns) {
523 523
 
524 524
 		$columns = array(
525 525
 			'cb'          => $columns['cb'],
526
-			'title'       => __( 'Name', 'invoicing' ),
527
-			'code'        => __( 'Code', 'invoicing' ),
528
-			'amount'      => __( 'Amount', 'invoicing' ),
529
-			'usage'       => __( 'Usage / Limit', 'invoicing' ),
530
-			'start_date'  => __( 'Start Date', 'invoicing' ),
531
-			'expiry_date' => __( 'Expiry Date', 'invoicing' ),
526
+			'title'       => __('Name', 'invoicing'),
527
+			'code'        => __('Code', 'invoicing'),
528
+			'amount'      => __('Amount', 'invoicing'),
529
+			'usage'       => __('Usage / Limit', 'invoicing'),
530
+			'start_date'  => __('Start Date', 'invoicing'),
531
+			'expiry_date' => __('Expiry Date', 'invoicing'),
532 532
 		);
533 533
 
534
-		return apply_filters( 'wpi_discount_table_columns', $columns );
534
+		return apply_filters('wpi_discount_table_columns', $columns);
535 535
 	}
536 536
 
537 537
 	/**
538 538
 	 * Filters post states.
539 539
 	 */
540
-	public static function filter_discount_state( $post_states, $post ) {
540
+	public static function filter_discount_state($post_states, $post) {
541 541
 
542
-		if ( 'wpi_discount' === $post->post_type ) {
542
+		if ('wpi_discount' === $post->post_type) {
543 543
 
544
-			$discount = new WPInv_Discount( $post );
544
+			$discount = new WPInv_Discount($post);
545 545
 
546 546
 			$status = $discount->is_expired() ? 'expired' : $discount->get_status();
547 547
 
548
-			if ( 'publish' !== $status ) {
548
+			if ('publish' !== $status) {
549 549
 				return array(
550
-					'discount_status' => wpinv_discount_status( $status ),
550
+					'discount_status' => wpinv_discount_status($status),
551 551
 				);
552 552
 			}
553 553
 
@@ -562,30 +562,30 @@  discard block
 block discarded – undo
562 562
 	/**
563 563
 	 * Returns an array of items table columns.
564 564
 	 */
565
-	public static function item_columns( $columns ) {
565
+	public static function item_columns($columns) {
566 566
 
567 567
 		$columns = array(
568 568
 			'cb'        => $columns['cb'],
569
-			'title'     => __( 'Name', 'invoicing' ),
570
-			'price'     => __( 'Price', 'invoicing' ),
571
-			'vat_rule'  => __( 'Tax Rule', 'invoicing' ),
572
-			'vat_class' => __( 'Tax Class', 'invoicing' ),
573
-			'type'      => __( 'Type', 'invoicing' ),
574
-			'shortcode' => __( 'Shortcode', 'invoicing' ),
569
+			'title'     => __('Name', 'invoicing'),
570
+			'price'     => __('Price', 'invoicing'),
571
+			'vat_rule'  => __('Tax Rule', 'invoicing'),
572
+			'vat_class' => __('Tax Class', 'invoicing'),
573
+			'type'      => __('Type', 'invoicing'),
574
+			'shortcode' => __('Shortcode', 'invoicing'),
575 575
 		);
576 576
 
577
-		if ( ! wpinv_use_taxes() ) {
578
-			unset( $columns['vat_rule'] );
579
-			unset( $columns['vat_class'] );
577
+		if (!wpinv_use_taxes()) {
578
+			unset($columns['vat_rule']);
579
+			unset($columns['vat_class']);
580 580
 		}
581 581
 
582
-		return apply_filters( 'wpi_item_table_columns', $columns );
582
+		return apply_filters('wpi_item_table_columns', $columns);
583 583
 	}
584 584
 
585 585
 	/**
586 586
 	 * Returns an array of sortable items table columns.
587 587
 	 */
588
-	public static function sortable_item_columns( $columns ) {
588
+	public static function sortable_item_columns($columns) {
589 589
 
590 590
 		return array_merge(
591 591
 			$columns,
@@ -602,45 +602,45 @@  discard block
 block discarded – undo
602 602
 	/**
603 603
 	 * Displays items table columns.
604 604
 	 */
605
-	public static function display_item_columns( $column_name, $post_id ) {
605
+	public static function display_item_columns($column_name, $post_id) {
606 606
 
607
-		$item = new WPInv_Item( $post_id );
607
+		$item = new WPInv_Item($post_id);
608 608
 
609
-		switch ( $column_name ) {
609
+		switch ($column_name) {
610 610
 
611 611
 			case 'price':
612
-				if ( ! $item->is_recurring() ) {
613
-					echo wp_kses_post( $item->get_the_price() );
612
+				if (!$item->is_recurring()) {
613
+					echo wp_kses_post($item->get_the_price());
614 614
 					break;
615 615
 				}
616 616
 
617 617
 				$price = wp_sprintf(
618
-					__( '%1$s / %2$s', 'invoicing' ),
618
+					__('%1$s / %2$s', 'invoicing'),
619 619
 					$item->get_the_price(),
620
-					getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' )
620
+					getpaid_get_subscription_period_label($item->get_recurring_period(), $item->get_recurring_interval(), '')
621 621
 				);
622 622
 
623
-				if ( $item->get_the_price() == $item->get_the_initial_price() ) {
624
-					echo wp_kses_post( $price );
623
+				if ($item->get_the_price() == $item->get_the_initial_price()) {
624
+					echo wp_kses_post($price);
625 625
 					break;
626 626
 				}
627 627
 
628
-				echo wp_kses_post( $item->get_the_initial_price() );
628
+				echo wp_kses_post($item->get_the_initial_price());
629 629
 
630
-				echo '<span class="meta">' . wp_sprintf( esc_html__( 'then %s', 'invoicing' ), wp_kses_post( $price ) ) . '</span>';
630
+				echo '<span class="meta">' . wp_sprintf(esc_html__('then %s', 'invoicing'), wp_kses_post($price)) . '</span>';
631 631
 				break;
632 632
 
633 633
 			case 'vat_rule':
634
-				echo wp_kses_post( getpaid_get_tax_rule_label( $item->get_vat_rule() ) );
634
+				echo wp_kses_post(getpaid_get_tax_rule_label($item->get_vat_rule()));
635 635
 				break;
636 636
 
637 637
 			case 'vat_class':
638
-				echo wp_kses_post( getpaid_get_tax_class_label( $item->get_vat_class() ) );
638
+				echo wp_kses_post(getpaid_get_tax_class_label($item->get_vat_class()));
639 639
 				break;
640 640
 
641 641
 			case 'shortcode':
642
-				if ( $item->is_type( array( '', 'fee', 'custom' ) ) ) {
643
-					echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr( $item->get_id() ) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>';
642
+				if ($item->is_type(array('', 'fee', 'custom'))) {
643
+					echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr($item->get_id()) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>';
644 644
 				} else {
645 645
 					echo '&mdash;';
646 646
 				}
@@ -648,7 +648,7 @@  discard block
 block discarded – undo
648 648
 				break;
649 649
 
650 650
 			case 'type':
651
-				echo wp_kses_post( wpinv_item_type( $item->get_id() ) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>' );
651
+				echo wp_kses_post(wpinv_item_type($item->get_id()) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>');
652 652
 				break;
653 653
 
654 654
 		}
@@ -658,21 +658,21 @@  discard block
 block discarded – undo
658 658
 	/**
659 659
 	 * Lets users filter items using taxes.
660 660
 	 */
661
-	public static function add_item_filters( $post_type ) {
661
+	public static function add_item_filters($post_type) {
662 662
 
663 663
 		// Abort if we're not dealing with items.
664
-		if ( 'wpi_item' !== $post_type ) {
664
+		if ('wpi_item' !== $post_type) {
665 665
 			return;
666 666
 		}
667 667
 
668 668
 		// Filter by vat rules.
669
-		if ( wpinv_use_taxes() ) {
669
+		if (wpinv_use_taxes()) {
670 670
 
671 671
 			// Sanitize selected vat rule.
672 672
 			$vat_rule   = '';
673 673
 			$vat_rules  = getpaid_get_tax_rules();
674
-			if ( isset( $_GET['vat_rule'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
675
-				$vat_rule   = sanitize_text_field( $_GET['vat_rule'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
674
+			if (isset($_GET['vat_rule'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
675
+				$vat_rule = sanitize_text_field($_GET['vat_rule']); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
676 676
 			}
677 677
 
678 678
 			// Filter by VAT rule.
@@ -680,13 +680,13 @@  discard block
 block discarded – undo
680 680
 				array(
681 681
 					'options'          => array_merge(
682 682
 						array(
683
-							'' => __( 'All Tax Rules', 'invoicing' ),
683
+							'' => __('All Tax Rules', 'invoicing'),
684 684
 						),
685 685
 						$vat_rules
686 686
 					),
687 687
 					'name'             => 'vat_rule',
688 688
 					'id'               => 'vat_rule',
689
-					'selected'         => in_array( $vat_rule, array_keys( $vat_rules ), true ) ? $vat_rule : '',
689
+					'selected'         => in_array($vat_rule, array_keys($vat_rules), true) ? $vat_rule : '',
690 690
 					'show_option_all'  => false,
691 691
 					'show_option_none' => false,
692 692
 				)
@@ -697,21 +697,21 @@  discard block
 block discarded – undo
697 697
 			// Sanitize selected vat rule.
698 698
 			$vat_class   = '';
699 699
 			$vat_classes = getpaid_get_tax_classes();
700
-			if ( isset( $_GET['vat_class'] ) ) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
701
-				$vat_class   = sanitize_text_field( $_GET['vat_class'] );  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
700
+			if (isset($_GET['vat_class'])) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
701
+				$vat_class = sanitize_text_field($_GET['vat_class']); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
702 702
 			}
703 703
 
704 704
 			wpinv_html_select(
705 705
 				array(
706 706
 					'options'          => array_merge(
707 707
 						array(
708
-							'' => __( 'All Tax Classes', 'invoicing' ),
708
+							'' => __('All Tax Classes', 'invoicing'),
709 709
 						),
710 710
 						$vat_classes
711 711
 					),
712 712
 					'name'             => 'vat_class',
713 713
 					'id'               => 'vat_class',
714
-					'selected'         => in_array( $vat_class, array_keys( $vat_classes ), true ) ? $vat_class : '',
714
+					'selected'         => in_array($vat_class, array_keys($vat_classes), true) ? $vat_class : '',
715 715
 					'show_option_all'  => false,
716 716
 					'show_option_none' => false,
717 717
 				)
@@ -720,22 +720,22 @@  discard block
 block discarded – undo
720 720
 		}
721 721
 
722 722
 		// Filter by item type.
723
-		$type   = '';
724
-		if ( isset( $_GET['type'] ) ) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
725
-			$type   = sanitize_text_field( $_GET['type'] );  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
723
+		$type = '';
724
+		if (isset($_GET['type'])) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
725
+			$type = sanitize_text_field($_GET['type']); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
726 726
 		}
727 727
 
728 728
 		wpinv_html_select(
729 729
 			array(
730 730
 				'options'          => array_merge(
731 731
 					array(
732
-						'' => __( 'All item types', 'invoicing' ),
732
+						'' => __('All item types', 'invoicing'),
733 733
 					),
734 734
 					wpinv_get_item_types()
735 735
 				),
736 736
 				'name'             => 'type',
737 737
 				'id'               => 'type',
738
-				'selected'         => in_array( $type, wpinv_item_types(), true ) ? $type : '',
738
+				'selected'         => in_array($type, wpinv_item_types(), true) ? $type : '',
739 739
 				'show_option_all'  => false,
740 740
 				'show_option_none' => false,
741 741
 			)
@@ -746,45 +746,45 @@  discard block
 block discarded – undo
746 746
 	/**
747 747
 	 * Filters the item query.
748 748
 	 */
749
-	public static function filter_item_query( $query ) {
749
+	public static function filter_item_query($query) {
750 750
 
751 751
 		// modify the query only if it admin and main query.
752
-		if ( ! ( is_admin() && $query->is_main_query() ) ) {
752
+		if (!(is_admin() && $query->is_main_query())) {
753 753
 			return $query;
754 754
 		}
755 755
 
756 756
 		// we want to modify the query for our items.
757
-		if ( empty( $query->query['post_type'] ) || 'wpi_item' !== $query->query['post_type'] ) {
757
+		if (empty($query->query['post_type']) || 'wpi_item' !== $query->query['post_type']) {
758 758
 			return $query;
759 759
 		}
760 760
 
761
-		if ( empty( $query->query_vars['meta_query'] ) ) {
761
+		if (empty($query->query_vars['meta_query'])) {
762 762
 			$query->query_vars['meta_query'] = array();
763 763
 		}
764 764
 
765 765
 		// Filter vat rule type
766
-        if ( ! empty( $_GET['vat_rule'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
766
+        if (!empty($_GET['vat_rule'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
767 767
             $query->query_vars['meta_query'][] = array(
768 768
                 'key'     => '_wpinv_vat_rule',
769
-                'value'   => sanitize_text_field( $_GET['vat_rule'] ), // phpcs:ignore WordPress.Security.NonceVerification.Recommended
769
+                'value'   => sanitize_text_field($_GET['vat_rule']), // phpcs:ignore WordPress.Security.NonceVerification.Recommended
770 770
                 'compare' => '=',
771 771
             );
772 772
         }
773 773
 
774 774
         // Filter vat class
775
-        if ( ! empty( $_GET['vat_class'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
775
+        if (!empty($_GET['vat_class'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
776 776
             $query->query_vars['meta_query'][] = array(
777 777
                 'key'     => '_wpinv_vat_class',
778
-                'value'   => sanitize_text_field( $_GET['vat_class'] ), // phpcs:ignore WordPress.Security.NonceVerification.Recommended
778
+                'value'   => sanitize_text_field($_GET['vat_class']), // phpcs:ignore WordPress.Security.NonceVerification.Recommended
779 779
                 'compare' => '=',
780 780
             );
781 781
         }
782 782
 
783 783
         // Filter item type
784
-        if ( ! empty( $_GET['type'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
784
+        if (!empty($_GET['type'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
785 785
             $query->query_vars['meta_query'][] = array(
786 786
                 'key'     => '_wpinv_type',
787
-                'value'   => sanitize_text_field( $_GET['type'] ), // phpcs:ignore WordPress.Security.NonceVerification.Recommended
787
+                'value'   => sanitize_text_field($_GET['type']), // phpcs:ignore WordPress.Security.NonceVerification.Recommended
788 788
                 'compare' => '=',
789 789
             );
790 790
 		}
@@ -798,15 +798,15 @@  discard block
 block discarded – undo
798 798
 	/**
799 799
 	 * Reorders items.
800 800
 	 */
801
-	public static function reorder_items( $vars ) {
801
+	public static function reorder_items($vars) {
802 802
 		global $typenow;
803 803
 
804
-		if ( 'wpi_item' !== $typenow || empty( $vars['orderby'] ) ) {
804
+		if ('wpi_item' !== $typenow || empty($vars['orderby'])) {
805 805
 			return $vars;
806 806
 		}
807 807
 
808 808
 		// By item type.
809
-		if ( 'type' === $vars['orderby'] ) {
809
+		if ('type' === $vars['orderby']) {
810 810
 			return array_merge(
811 811
 				$vars,
812 812
 				array(
@@ -817,7 +817,7 @@  discard block
 block discarded – undo
817 817
 		}
818 818
 
819 819
 		// By vat class.
820
-		if ( 'vat_class' === $vars['orderby'] ) {
820
+		if ('vat_class' === $vars['orderby']) {
821 821
 			return array_merge(
822 822
 				$vars,
823 823
 				array(
@@ -828,7 +828,7 @@  discard block
 block discarded – undo
828 828
 		}
829 829
 
830 830
 		// By vat rule.
831
-		if ( 'vat_rule' === $vars['orderby'] ) {
831
+		if ('vat_rule' === $vars['orderby']) {
832 832
 			return array_merge(
833 833
 				$vars,
834 834
 				array(
@@ -839,7 +839,7 @@  discard block
 block discarded – undo
839 839
 		}
840 840
 
841 841
 		// By price.
842
-		if ( 'price' === $vars['orderby'] ) {
842
+		if ('price' === $vars['orderby']) {
843 843
 			return array_merge(
844 844
 				$vars,
845 845
 				array(
@@ -856,27 +856,27 @@  discard block
 block discarded – undo
856 856
 	/**
857 857
 	 * Fired when deleting a post.
858 858
 	 */
859
-	public static function delete_post( $post_id ) {
859
+	public static function delete_post($post_id) {
860 860
 
861
-		switch ( get_post_type( $post_id ) ) {
861
+		switch (get_post_type($post_id)) {
862 862
 
863 863
 			case 'wpi_item':
864
-				do_action( 'getpaid_before_delete_item', new WPInv_Item( $post_id ) );
864
+				do_action('getpaid_before_delete_item', new WPInv_Item($post_id));
865 865
 				break;
866 866
 
867 867
 			case 'wpi_payment_form':
868
-				do_action( 'getpaid_before_delete_payment_form', new GetPaid_Payment_Form( $post_id ) );
868
+				do_action('getpaid_before_delete_payment_form', new GetPaid_Payment_Form($post_id));
869 869
 				break;
870 870
 
871 871
 			case 'wpi_discount':
872
-				do_action( 'getpaid_before_delete_discount', new WPInv_Discount( $post_id ) );
872
+				do_action('getpaid_before_delete_discount', new WPInv_Discount($post_id));
873 873
 				break;
874 874
 
875 875
 			case 'wpi_invoice':
876
-				$invoice = new WPInv_Invoice( $post_id );
877
-				do_action( 'getpaid_before_delete_invoice', $invoice );
878
-				$invoice->get_data_store()->delete_items( $invoice );
879
-				$invoice->get_data_store()->delete_special_fields( $invoice );
876
+				$invoice = new WPInv_Invoice($post_id);
877
+				do_action('getpaid_before_delete_invoice', $invoice);
878
+				$invoice->get_data_store()->delete_items($invoice);
879
+				$invoice->get_data_store()->delete_special_fields($invoice);
880 880
 				break;
881 881
 		}
882 882
 	}
@@ -889,28 +889,28 @@  discard block
 block discarded – undo
889 889
      *
890 890
      * @return mixed
891 891
      */
892
-    public static function add_display_post_states( $post_states, $post ) {
892
+    public static function add_display_post_states($post_states, $post) {
893 893
 
894
-        if ( wpinv_get_option( 'success_page', 0 ) == $post->ID ) {
895
-            $post_states['getpaid_success_page'] = __( 'GetPaid Receipt Page', 'invoicing' );
894
+        if (wpinv_get_option('success_page', 0) == $post->ID) {
895
+            $post_states['getpaid_success_page'] = __('GetPaid Receipt Page', 'invoicing');
896 896
         }
897 897
 
898
-		foreach ( getpaid_get_invoice_post_types() as $post_type => $label ) {
898
+		foreach (getpaid_get_invoice_post_types() as $post_type => $label) {
899 899
 
900
-			if ( wpinv_get_option( "{$post_type}_history_page", 0 ) == $post->ID ) {
901
-				$post_states[ "getpaid_{$post_type}_history_page" ] = sprintf(
902
-					__( 'GetPaid %s History Page', 'invoicing' ),
900
+			if (wpinv_get_option("{$post_type}_history_page", 0) == $post->ID) {
901
+				$post_states["getpaid_{$post_type}_history_page"] = sprintf(
902
+					__('GetPaid %s History Page', 'invoicing'),
903 903
 					$label
904 904
 				);
905 905
 			}
906 906
 }
907 907
 
908
-		if ( wpinv_get_option( 'invoice_subscription_page', 0 ) == $post->ID ) {
909
-            $post_states['getpaid_invoice_subscription_page'] = __( 'GetPaid Subscription Page', 'invoicing' );
908
+		if (wpinv_get_option('invoice_subscription_page', 0) == $post->ID) {
909
+            $post_states['getpaid_invoice_subscription_page'] = __('GetPaid Subscription Page', 'invoicing');
910 910
         }
911 911
 
912
-		if ( wpinv_get_option( 'checkout_page', 0 ) == $post->ID ) {
913
-            $post_states['getpaid_checkout_page'] = __( 'GetPaid Checkout Page', 'invoicing' );
912
+		if (wpinv_get_option('checkout_page', 0) == $post->ID) {
913
+            $post_states['getpaid_checkout_page'] = __('GetPaid Checkout Page', 'invoicing');
914 914
         }
915 915
 
916 916
         return $post_states;
Please login to merge, or discard this patch.