Passed
Push — master ( 249f07...65bd19 )
by Brian
04:54
created
templates/payment-forms-admin/edit/textarea.php 1 patch
Spacing   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -7,49 +7,49 @@
 block discarded – undo
7 7
  * @version 1.0.19
8 8
  */
9 9
 
10
-defined( 'ABSPATH' ) || exit;
10
+defined('ABSPATH') || exit;
11 11
 
12 12
 ?>
13 13
 
14 14
 <div class='form-group mb-3'>
15 15
     <label class="form-label d-block">
16
-        <span><?php esc_html_e( 'Field Label', 'invoicing' ); ?></span>
16
+        <span><?php esc_html_e('Field Label', 'invoicing'); ?></span>
17 17
         <input v-model='active_form_element.label' class='form-control' type="text"/>
18 18
     </label>
19 19
 </div>
20 20
 
21 21
 <div class='form-group mb-3'>
22 22
     <label class="form-label d-block">
23
-        <span><?php esc_html_e( 'Placeholder text', 'invoicing' ); ?></span>
23
+        <span><?php esc_html_e('Placeholder text', 'invoicing'); ?></span>
24 24
         <input v-model='active_form_element.placeholder' class='form-control' type="text"/>
25 25
     </label>
26 26
 </div>
27 27
 
28 28
 <div class='form-group mb-3'>
29 29
     <label class="form-label d-block">
30
-        <span><?php esc_html_e( 'Help Text', 'invoicing' ); ?></span>
31
-        <textarea placeholder='<?php esc_attr_e( 'Add some help text for this field', 'invoicing' ); ?>' v-model='active_form_element.description' class='form-control' rows='3'></textarea>
32
-        <small class="form-text text-muted"><?php esc_html_e( 'HTML is allowed', 'invoicing' ); ?></small>
30
+        <span><?php esc_html_e('Help Text', 'invoicing'); ?></span>
31
+        <textarea placeholder='<?php esc_attr_e('Add some help text for this field', 'invoicing'); ?>' v-model='active_form_element.description' class='form-control' rows='3'></textarea>
32
+        <small class="form-text text-muted"><?php esc_html_e('HTML is allowed', 'invoicing'); ?></small>
33 33
     </label>
34 34
 </div>
35 35
 
36 36
 <div class='form-group mb-3 form-check'>
37 37
     <input :id="active_form_element.id + '_edit'" v-model='active_form_element.required' type='checkbox' class='form-check-input' />
38
-    <label class='form-check-label' :for="active_form_element.id + '_edit'"><?php esc_html_e( 'Is this field required?', 'invoicing' ); ?></label>
38
+    <label class='form-check-label' :for="active_form_element.id + '_edit'"><?php esc_html_e('Is this field required?', 'invoicing'); ?></label>
39 39
 </div>
40 40
 
41 41
 <div class='form-group mb-3 form-check'>
42 42
     <input :id="active_form_element.id + '_add_meta'" v-model='active_form_element.add_meta' type='checkbox' class='form-check-input' />
43
-    <label class='form-check-label' :for="active_form_element.id + '_add_meta'"><?php esc_html_e( 'Show this field in receipts and emails?', 'invoicing' ); ?></label>
43
+    <label class='form-check-label' :for="active_form_element.id + '_add_meta'"><?php esc_html_e('Show this field in receipts and emails?', 'invoicing'); ?></label>
44 44
 </div>
45 45
 
46 46
 <hr class='featurette-divider mt-4'>
47 47
 
48 48
 <div class='form-group mb-3'>
49 49
     <label class="form-label d-block">
50
-        <span><?php esc_html_e( 'Email Merge Tag', 'invoicing' ); ?></span>
50
+        <span><?php esc_html_e('Email Merge Tag', 'invoicing'); ?></span>
51 51
         <input :value='active_form_element.label | formatMergeTag' class='form-control bg-white' type="text" readonly onclick="this.select()" />
52
-        <span class="form-text text-muted"><?php esc_html_e( 'You can use this merge tag in notification emails', 'invoicing' ); ?></span>
52
+        <span class="form-text text-muted"><?php esc_html_e('You can use this merge tag in notification emails', 'invoicing'); ?></span>
53 53
     </label>
54 54
 </div>
55 55
 
Please login to merge, or discard this patch.
templates/frontend-footer.php 1 patch
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -7,7 +7,7 @@  discard block
 block discarded – undo
7 7
  * @version 1.0.19
8 8
  */
9 9
 
10
-defined( 'ABSPATH' ) || exit;
10
+defined('ABSPATH') || exit;
11 11
 
12 12
 ?>
13 13
 
@@ -16,8 +16,8 @@  discard block
 block discarded – undo
16 16
 		<div class="modal-dialog modal-dialog-centered modal-lg" role="checkout" style="max-width: 650px;">
17 17
 			<div class="modal-content">
18 18
 				<div class="modal-body">
19
-					<button type="button" class=" btn-close p-2 getpaid-payment-modal-close d-sm-none" data-dismiss="modal" aria-label="<?php esc_attr__( 'Close', 'invoicing' ); ?>">
20
-						<?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
19
+					<button type="button" class=" btn-close p-2 getpaid-payment-modal-close d-sm-none" data-dismiss="modal" aria-label="<?php esc_attr__('Close', 'invoicing'); ?>">
20
+						<?php if (empty($GLOBALS['aui_bs5'])) : ?>
21 21
                             <span aria-hidden="true">×</span>
22 22
                         <?php endif; ?>
23 23
 					</button>
Please login to merge, or discard this patch.
templates/payment-forms-admin/previews/alert.php 1 patch
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -7,14 +7,14 @@
 block discarded – undo
7 7
  * @version 1.0.19
8 8
  */
9 9
 
10
-defined( 'ABSPATH' ) || exit;
10
+defined('ABSPATH') || exit;
11 11
 
12 12
 ?>
13 13
 
14 14
 <div class='alert mb-0' :class='form_element.class' role='alert'>
15 15
     <span v-html='form_element.text'></span>
16 16
     <button v-if='form_element.dismissible' type='button' class='close btn-close' @click.prevent='' style="margin-top: -4px;">
17
-        <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
17
+        <?php if (empty($GLOBALS['aui_bs5'])) : ?>
18 18
             <span aria-hidden="true">×</span>
19 19
         <?php endif; ?>
20 20
     </button>
Please login to merge, or discard this patch.
includes/admin/views/html-tax-rule-edit.php 1 patch
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -5,38 +5,38 @@
 block discarded – undo
5 5
  * @var array $tax_rule
6 6
  */
7 7
 
8
-defined( 'ABSPATH' ) || exit;
8
+defined('ABSPATH') || exit;
9 9
 
10 10
 ?>
11 11
 
12 12
 <tr>
13 13
 
14 14
     <td class="wpinv-tax-rule-key">
15
-        <input type="text" name="tax_rules[<?php echo esc_attr( $tax_rule['key'] ); ?>][key]" value="<?php echo esc_attr( $tax_rule['key'] ); ?>" required/>
15
+        <input type="text" name="tax_rules[<?php echo esc_attr($tax_rule['key']); ?>][key]" value="<?php echo esc_attr($tax_rule['key']); ?>" required/>
16 16
     </td>
17 17
 
18 18
     <td class="wpinv-tax-rule-label">
19
-        <input type="text" name="tax_rules[<?php echo esc_attr( $tax_rule['key'] ); ?>][label]" value="<?php echo esc_attr( $tax_rule['label'] ); ?>" required/>
19
+        <input type="text" name="tax_rules[<?php echo esc_attr($tax_rule['key']); ?>][label]" value="<?php echo esc_attr($tax_rule['label']); ?>" required/>
20 20
     </td>
21 21
 
22 22
     <td class="wpinv-tax-rule-base-address">
23
-        <select name="tax_rules[<?php echo esc_attr( $tax_rule['key'] ); ?>][tax_base]" class="getpaid-tax-rule-base-address" required>
24
-            <option value="billing" <?php selected( $tax_rule['tax_base'], 'billing' ); ?>><?php esc_html_e( 'Customer billing address', 'invoicing' ); ?></option>
25
-            <option value="base" <?php selected( $tax_rule['tax_base'], 'base' ); ?>><?php esc_html_e( 'Shop base address', 'invoicing' ); ?></option>
23
+        <select name="tax_rules[<?php echo esc_attr($tax_rule['key']); ?>][tax_base]" class="getpaid-tax-rule-base-address" required>
24
+            <option value="billing" <?php selected($tax_rule['tax_base'], 'billing'); ?>><?php esc_html_e('Customer billing address', 'invoicing'); ?></option>
25
+            <option value="base" <?php selected($tax_rule['tax_base'], 'base'); ?>><?php esc_html_e('Shop base address', 'invoicing'); ?></option>
26 26
         </select>
27 27
     </td>
28 28
 
29 29
     <!-- <td class="wpinv-tax-rule-same-country">
30
-        <select name="tax_rules[<?php echo esc_attr( $tax_rule['key'] ); ?>][same_country_rule]" class="getpaid-tax-rule-same-country" required>
31
-            <option value="no" <?php selected( $tax_rule['same_country_rule'], 'no' ); ?>><?php esc_html_e( 'Do not charge tax', 'invoicing' ); ?></option>
32
-            <option value="always" <?php selected( $tax_rule['same_country_rule'], 'always' ); ?>><?php esc_html_e( 'Charge tax unless vat number is validated', 'invoicing' ); ?></option>
33
-            <option value="vat_too" <?php selected( $tax_rule['same_country_rule'], 'vat_too' ); ?>><?php esc_html_e( 'Charge tax even if vat number is validated', 'invoicing' ); ?></option>
30
+        <select name="tax_rules[<?php echo esc_attr($tax_rule['key']); ?>][same_country_rule]" class="getpaid-tax-rule-same-country" required>
31
+            <option value="no" <?php selected($tax_rule['same_country_rule'], 'no'); ?>><?php esc_html_e('Do not charge tax', 'invoicing'); ?></option>
32
+            <option value="always" <?php selected($tax_rule['same_country_rule'], 'always'); ?>><?php esc_html_e('Charge tax unless vat number is validated', 'invoicing'); ?></option>
33
+            <option value="vat_too" <?php selected($tax_rule['same_country_rule'], 'vat_too'); ?>><?php esc_html_e('Charge tax even if vat number is validated', 'invoicing'); ?></option>
34 34
         </select>
35 35
     </td> -->
36 36
 
37 37
     <td class="wpinv_tax_remove">
38
-        <button type="button" class="close btn-close wpinv_remove_tax_rule" aria-label="<?php esc_attr_e( 'Delete', 'invoicing' ); ?>" title="<?php esc_attr_e( 'Delete', 'invoicing' ); ?>">
39
-            <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
38
+        <button type="button" class="close btn-close wpinv_remove_tax_rule" aria-label="<?php esc_attr_e('Delete', 'invoicing'); ?>" title="<?php esc_attr_e('Delete', 'invoicing'); ?>">
39
+            <?php if (empty($GLOBALS['aui_bs5'])) : ?>
40 40
                 <span aria-hidden="true">×</span>
41 41
             <?php endif; ?>
42 42
         </button>
Please login to merge, or discard this patch.
includes/admin/views/html-tax-rate-edit.php 1 patch
Spacing   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @var array $tax_rate
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 ?>
12 12
 
@@ -18,13 +18,13 @@  discard block
 block discarded – undo
18 18
             aui()->select(
19 19
                 array(
20 20
                     'options' => array_merge(
21
-                        array( '' => __( 'All Countries', 'invoicing' ) ),
21
+                        array('' => __('All Countries', 'invoicing')),
22 22
                         wpinv_get_country_list()
23 23
                     ),
24 24
                     'name'    => "tax_rates[$key][country]",
25
-                    'id'      => uniqid( 'tax_rate_country' ),
26
-                    'value'   => esc_html( $tax_rate['country'] ),
27
-                    'label'   => __( 'Country', 'invoicing' ),
25
+                    'id'      => uniqid('tax_rate_country'),
26
+                    'value'   => esc_html($tax_rate['country']),
27
+                    'label'   => __('Country', 'invoicing'),
28 28
                     'class'   => 'wpinv_country',
29 29
                     'no_wrap' => true,
30 30
                 ),
@@ -37,36 +37,36 @@  discard block
 block discarded – undo
37 37
     <td class="wpinv_tax_state">
38 38
 
39 39
         <label class="w-100">
40
-            <span class="screen-reader-text"><?php esc_html_e( 'States', 'invoicing' ); ?></span>
41
-            <input type="text" placeholder="<?php esc_attr_e( 'Apply to whole country', 'invoicing' ); ?>" name="tax_rates[<?php echo esc_attr( $key ); ?>][state]" value="<?php echo empty( $tax_rate['global'] ) ? esc_attr( $tax_rate['state'] ) : ''; ?>"/>
40
+            <span class="screen-reader-text"><?php esc_html_e('States', 'invoicing'); ?></span>
41
+            <input type="text" placeholder="<?php esc_attr_e('Apply to whole country', 'invoicing'); ?>" name="tax_rates[<?php echo esc_attr($key); ?>][state]" value="<?php echo empty($tax_rate['global']) ? esc_attr($tax_rate['state']) : ''; ?>"/>
42 42
         </label>
43 43
 
44 44
     </td>
45 45
 
46 46
     <td class="wpinv_standard_rate">
47 47
         <label class="w-100">
48
-            <span class="screen-reader-text"><?php esc_html_e( 'Standard Rate', 'invoicing' ); ?></span>
49
-            <input type="number" step="any" min="0" max="99" name="tax_rates[<?php echo esc_attr( $key ); ?>][rate]" value="<?php echo esc_attr( $tax_rate['rate'] ); ?>"/>
48
+            <span class="screen-reader-text"><?php esc_html_e('Standard Rate', 'invoicing'); ?></span>
49
+            <input type="number" step="any" min="0" max="99" name="tax_rates[<?php echo esc_attr($key); ?>][rate]" value="<?php echo esc_attr($tax_rate['rate']); ?>"/>
50 50
         </label>
51 51
     </td>
52 52
 
53 53
     <td class="wpinv_reduced_rate">
54 54
         <label class="w-100">
55
-            <span class="screen-reader-text"><?php esc_html_e( 'Reduced Rate', 'invoicing' ); ?></span>
56
-            <input type="number" step="any" min="0" max="99" name="tax_rates[<?php echo esc_attr( $key ); ?>][reduced_rate]" value="<?php echo esc_attr( $tax_rate['reduced_rate'] ); ?>"/>
55
+            <span class="screen-reader-text"><?php esc_html_e('Reduced Rate', 'invoicing'); ?></span>
56
+            <input type="number" step="any" min="0" max="99" name="tax_rates[<?php echo esc_attr($key); ?>][reduced_rate]" value="<?php echo esc_attr($tax_rate['reduced_rate']); ?>"/>
57 57
         </label>
58 58
     </td>
59 59
 
60 60
     <td class="wpinv_tax_name">
61 61
         <label class="w-100">
62
-            <span class="screen-reader-text"><?php esc_html_e( 'Tax Name', 'invoicing' ); ?></span>
63
-            <input type="text" name="tax_rates[<?php echo esc_attr( $key ); ?>][name]" value="<?php echo esc_attr( $tax_rate['name'] ); ?>"/>
62
+            <span class="screen-reader-text"><?php esc_html_e('Tax Name', 'invoicing'); ?></span>
63
+            <input type="text" name="tax_rates[<?php echo esc_attr($key); ?>][name]" value="<?php echo esc_attr($tax_rate['name']); ?>"/>
64 64
         </label>
65 65
     </td>
66 66
 
67 67
     <td class="wpinv_tax_remove">
68
-        <button type="button" class="close btn-close wpinv_remove_tax_rate" aria-label="<?php esc_attr_e( 'Delete', 'invoicing' ); ?>" title="<?php esc_attr_e( 'Delete', 'invoicing' ); ?>">
69
-            <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
68
+        <button type="button" class="close btn-close wpinv_remove_tax_rate" aria-label="<?php esc_attr_e('Delete', 'invoicing'); ?>" title="<?php esc_attr_e('Delete', 'invoicing'); ?>">
69
+            <?php if (empty($GLOBALS['aui_bs5'])) : ?>
70 70
                 <span aria-hidden="true">×</span>
71 71
             <?php endif; ?>
72 72
         </button>
Please login to merge, or discard this patch.
includes/wpinv-helper-functions.php 2 patches
Indentation   +65 added lines, -65 removed lines patch added patch discarded remove patch
@@ -136,13 +136,13 @@  discard block
 block discarded – undo
136 136
  */
137 137
 function wpinv_get_invoice_statuses( $draft = false, $trashed = false, $invoice = false ) {
138 138
 
139
-	$invoice_statuses = array(
140
-		'wpi-pending'    => _x( 'Pending payment', 'Invoice status', 'invoicing' ),
139
+    $invoice_statuses = array(
140
+        'wpi-pending'    => _x( 'Pending payment', 'Invoice status', 'invoicing' ),
141 141
         'publish'        => _x( 'Paid', 'Invoice status', 'invoicing' ),
142 142
         'wpi-processing' => _x( 'Processing', 'Invoice status', 'invoicing' ),
143
-		'wpi-onhold'     => _x( 'On hold', 'Invoice status', 'invoicing' ),
144
-		'wpi-cancelled'  => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
145
-		'wpi-refunded'   => _x( 'Refunded', 'Invoice status', 'invoicing' ),
143
+        'wpi-onhold'     => _x( 'On hold', 'Invoice status', 'invoicing' ),
144
+        'wpi-cancelled'  => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
145
+        'wpi-refunded'   => _x( 'Refunded', 'Invoice status', 'invoicing' ),
146 146
         'wpi-failed'     => _x( 'Failed', 'Invoice status', 'invoicing' ),
147 147
         'wpi-renewal'    => _x( 'Renewal Payment', 'Invoice status', 'invoicing' ),
148 148
     );
@@ -159,7 +159,7 @@  discard block
 block discarded – undo
159 159
         $invoice = $invoice->get_post_type();
160 160
     }
161 161
 
162
-	return apply_filters( 'wpinv_statuses', $invoice_statuses, $invoice );
162
+    return apply_filters( 'wpinv_statuses', $invoice_statuses, $invoice );
163 163
 }
164 164
 
165 165
 /**
@@ -277,25 +277,25 @@  discard block
 block discarded – undo
277 277
  * @return string
278 278
  */
279 279
 function getpaid_get_price_format() {
280
-	$currency_pos = wpinv_currency_position();
281
-	$format       = '%1$s%2$s';
282
-
283
-	switch ( $currency_pos ) {
284
-		case 'left':
285
-			$format = '%1$s%2$s';
286
-			break;
287
-		case 'right':
288
-			$format = '%2$s%1$s';
289
-			break;
290
-		case 'left_space':
291
-			$format = '%1$s&nbsp;%2$s';
292
-			break;
293
-		case 'right_space':
294
-			$format = '%2$s&nbsp;%1$s';
295
-			break;
296
-	}
297
-
298
-	return apply_filters( 'getpaid_price_format', $format, $currency_pos );
280
+    $currency_pos = wpinv_currency_position();
281
+    $format       = '%1$s%2$s';
282
+
283
+    switch ( $currency_pos ) {
284
+        case 'left':
285
+            $format = '%1$s%2$s';
286
+            break;
287
+        case 'right':
288
+            $format = '%2$s%1$s';
289
+            break;
290
+        case 'left_space':
291
+            $format = '%1$s&nbsp;%2$s';
292
+            break;
293
+        case 'right_space':
294
+            $format = '%2$s&nbsp;%1$s';
295
+            break;
296
+    }
297
+
298
+    return apply_filters( 'getpaid_price_format', $format, $currency_pos );
299 299
 }
300 300
 
301 301
 /**
@@ -401,13 +401,13 @@  discard block
 block discarded – undo
401 401
  * @param mixed  $value Value.
402 402
  */
403 403
 function getpaid_maybe_define_constant( $name, $value ) {
404
-	if ( ! defined( $name ) ) {
405
-		define( $name, $value );
406
-	}
404
+    if ( ! defined( $name ) ) {
405
+        define( $name, $value );
406
+    }
407 407
 }
408 408
 
409 409
 function wpinv_get_php_arg_separator_output() {
410
-	return ini_get( 'arg_separator.output' );
410
+    return ini_get( 'arg_separator.output' );
411 411
 }
412 412
 
413 413
 function wpinv_rgb_from_hex( $color ) {
@@ -718,16 +718,16 @@  discard block
 block discarded – undo
718 718
     return wp_kses(
719 719
         html_entity_decode( $var ),
720 720
         array(
721
-			'br'     => array(),
722
-			'em'     => array(),
723
-			'strong' => array(),
724
-			'b'      => array(),
725
-			'small'  => array(),
726
-			'span'   => array(),
727
-			'ul'     => array(),
728
-			'li'     => array(),
729
-			'ol'     => array(),
730
-			'p'      => array(),
721
+            'br'     => array(),
722
+            'em'     => array(),
723
+            'strong' => array(),
724
+            'b'      => array(),
725
+            'small'  => array(),
726
+            'span'   => array(),
727
+            'ul'     => array(),
728
+            'li'     => array(),
729
+            'ol'     => array(),
730
+            'p'      => array(),
731 731
         )
732 732
     );
733 733
 }
@@ -778,11 +778,11 @@  discard block
 block discarded – undo
778 778
         $list = array();
779 779
     }
780 780
 
781
-	if ( ! is_array( $list ) ) {
782
-		return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );
783
-	}
781
+    if ( ! is_array( $list ) ) {
782
+        return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );
783
+    }
784 784
 
785
-	return $list;
785
+    return $list;
786 786
 }
787 787
 
788 788
 /**
@@ -823,17 +823,17 @@  discard block
 block discarded – undo
823 823
  */
824 824
 function wpinv_clean( $var ) {
825 825
 
826
-	if ( is_array( $var ) ) {
827
-		return array_map( 'wpinv_clean', $var );
826
+    if ( is_array( $var ) ) {
827
+        return array_map( 'wpinv_clean', $var );
828 828
     }
829 829
 
830 830
     if ( is_object( $var ) ) {
831
-		$object_vars = get_object_vars( $var );
832
-		foreach ( $object_vars as $property_name => $property_value ) {
833
-			$var->$property_name = wpinv_clean( $property_value );
831
+        $object_vars = get_object_vars( $var );
832
+        foreach ( $object_vars as $property_name => $property_value ) {
833
+            $var->$property_name = wpinv_clean( $property_value );
834 834
         }
835 835
         return $var;
836
-	}
836
+    }
837 837
 
838 838
     return is_string( $var ) ? sanitize_text_field( stripslashes( $var ) ) : $var;
839 839
 }
@@ -846,7 +846,7 @@  discard block
 block discarded – undo
846 846
  */
847 847
 function getpaid_convert_price_string_to_options( $str ) {
848 848
 
849
-	$raw_options = array_map( 'trim', explode( ',', $str ) );
849
+    $raw_options = array_map( 'trim', explode( ',', $str ) );
850 850
     $options     = array();
851 851
 
852 852
     foreach ( $raw_options as $option ) {
@@ -935,7 +935,7 @@  discard block
 block discarded – undo
935 935
  * @return string
936 936
  */
937 937
 function getpaid_date_format() {
938
-	return apply_filters( 'getpaid_date_format', get_option( 'date_format' ) );
938
+    return apply_filters( 'getpaid_date_format', get_option( 'date_format' ) );
939 939
 }
940 940
 
941 941
 /**
@@ -944,7 +944,7 @@  discard block
 block discarded – undo
944 944
  * @return string
945 945
  */
946 946
 function getpaid_time_format() {
947
-	return apply_filters( 'getpaid_time_format', get_option( 'time_format' ) );
947
+    return apply_filters( 'getpaid_time_format', get_option( 'time_format' ) );
948 948
 }
949 949
 
950 950
 /**
@@ -957,15 +957,15 @@  discard block
 block discarded – undo
957 957
 function getpaid_limit_length( $string, $limit ) {
958 958
     $str_limit = $limit - 3;
959 959
 
960
-	if ( function_exists( 'mb_strimwidth' ) ) {
961
-		if ( mb_strlen( $string ) > $limit ) {
962
-			$string = mb_strimwidth( $string, 0, $str_limit ) . '...';
963
-		}
964
-	} else {
965
-		if ( strlen( $string ) > $limit ) {
966
-			$string = substr( $string, 0, $str_limit ) . '...';
967
-		}
968
-	}
960
+    if ( function_exists( 'mb_strimwidth' ) ) {
961
+        if ( mb_strlen( $string ) > $limit ) {
962
+            $string = mb_strimwidth( $string, 0, $str_limit ) . '...';
963
+        }
964
+    } else {
965
+        if ( strlen( $string ) > $limit ) {
966
+            $string = substr( $string, 0, $str_limit ) . '...';
967
+        }
968
+    }
969 969
     return $string;
970 970
 
971 971
 }
@@ -1095,12 +1095,12 @@  discard block
 block discarded – undo
1095 1095
     $types = get_allowed_mime_types();
1096 1096
 
1097 1097
     if ( isset( $types['htm|html'] ) ) {
1098
-		unset( $types['htm|html'] );
1099
-	}
1098
+        unset( $types['htm|html'] );
1099
+    }
1100 1100
 
1101 1101
     if ( isset( $types['js'] ) ) {
1102
-		unset( $types['js'] );
1103
-	}
1102
+        unset( $types['js'] );
1103
+    }
1104 1104
 
1105 1105
     return $types;
1106 1106
 
Please login to merge, or discard this patch.
Spacing   +285 added lines, -285 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @package Invoicing
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * Are we supporting item quantities?
@@ -20,35 +20,35 @@  discard block
 block discarded – undo
20 20
  */
21 21
 function wpinv_get_ip() {
22 22
 
23
-    if ( isset( $_SERVER['HTTP_X_REAL_IP'] ) ) {
24
-        return sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_REAL_IP'] ) );
23
+    if (isset($_SERVER['HTTP_X_REAL_IP'])) {
24
+        return sanitize_text_field(wp_unslash($_SERVER['HTTP_X_REAL_IP']));
25 25
     }
26 26
 
27
-    if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
27
+    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
28 28
         // Proxy servers can send through this header like this: X-Forwarded-For: client1, proxy1, proxy2
29 29
         // Make sure we always only send through the first IP in the list which should always be the client IP.
30
-        return (string) rest_is_ip_address( trim( current( preg_split( '/,/', sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) ) ) ) );
30
+        return (string) rest_is_ip_address(trim(current(preg_split('/,/', sanitize_text_field(wp_unslash($_SERVER['HTTP_X_FORWARDED_FOR']))))));
31 31
     }
32 32
 
33
-    if ( isset( $_SERVER['HTTP_CLIENT_IP'] ) ) {
34
-        return sanitize_text_field( wp_unslash( $_SERVER['HTTP_CLIENT_IP'] ) );
33
+    if (isset($_SERVER['HTTP_CLIENT_IP'])) {
34
+        return sanitize_text_field(wp_unslash($_SERVER['HTTP_CLIENT_IP']));
35 35
     }
36 36
 
37
-    if ( isset( $_SERVER['REMOTE_ADDR'] ) ) {
38
-        return sanitize_text_field( wp_unslash( $_SERVER['REMOTE_ADDR'] ) );
37
+    if (isset($_SERVER['REMOTE_ADDR'])) {
38
+        return sanitize_text_field(wp_unslash($_SERVER['REMOTE_ADDR']));
39 39
     }
40 40
 
41 41
     return '';
42 42
 }
43 43
 
44 44
 function wpinv_get_user_agent() {
45
-    if ( ! empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
46
-        $user_agent = sanitize_text_field( $_SERVER['HTTP_USER_AGENT'] );
45
+    if (!empty($_SERVER['HTTP_USER_AGENT'])) {
46
+        $user_agent = sanitize_text_field($_SERVER['HTTP_USER_AGENT']);
47 47
     } else {
48 48
         $user_agent = '';
49 49
     }
50 50
 
51
-    return apply_filters( 'wpinv_get_user_agent', $user_agent );
51
+    return apply_filters('wpinv_get_user_agent', $user_agent);
52 52
 }
53 53
 
54 54
 /**
@@ -57,16 +57,16 @@  discard block
 block discarded – undo
57 57
  * @param string $amount The amount to sanitize.
58 58
  * @return float
59 59
  */
60
-function getpaid_standardize_amount( $amount ) {
60
+function getpaid_standardize_amount($amount) {
61 61
 
62
-    $amount = str_replace( wpinv_thousands_separator(), '', $amount );
63
-    $amount = str_replace( wpinv_decimal_separator(), '.', $amount );
64
-    if ( is_numeric( $amount ) ) {
65
-        return floatval( $amount );
62
+    $amount = str_replace(wpinv_thousands_separator(), '', $amount);
63
+    $amount = str_replace(wpinv_decimal_separator(), '.', $amount);
64
+    if (is_numeric($amount)) {
65
+        return floatval($amount);
66 66
     }
67 67
 
68 68
     // Cast the remaining to a float.
69
-    return wpinv_round_amount( preg_replace( '/[^0-9\.\-]/', '', $amount ) );
69
+    return wpinv_round_amount(preg_replace('/[^0-9\.\-]/', '', $amount));
70 70
 
71 71
 }
72 72
 
@@ -75,8 +75,8 @@  discard block
 block discarded – undo
75 75
  *
76 76
  * @param string $amount The amount to sanitize.
77 77
  */
78
-function getpaid_unstandardize_amount( $amount ) {
79
-    return str_replace( '.', wpinv_decimal_separator(), $amount );
78
+function getpaid_unstandardize_amount($amount) {
79
+    return str_replace('.', wpinv_decimal_separator(), $amount);
80 80
 }
81 81
 
82 82
 /**
@@ -84,23 +84,23 @@  discard block
 block discarded – undo
84 84
  *
85 85
  * @param string $amount The amount to sanitize.
86 86
  */
87
-function wpinv_sanitize_amount( $amount ) {
87
+function wpinv_sanitize_amount($amount) {
88 88
 
89
-    if ( is_numeric( $amount ) ) {
90
-        return floatval( $amount );
89
+    if (is_numeric($amount)) {
90
+        return floatval($amount);
91 91
     }
92 92
 
93 93
     // Separate the decimals and thousands.
94
-    $amount    = explode( wpinv_decimal_separator(), $amount );
94
+    $amount    = explode(wpinv_decimal_separator(), $amount);
95 95
 
96 96
     // Remove thousands.
97
-    $amount[0] = str_replace( wpinv_thousands_separator(), '', $amount[0] );
97
+    $amount[0] = str_replace(wpinv_thousands_separator(), '', $amount[0]);
98 98
 
99 99
     // Convert back to string.
100
-    $amount = count( $amount ) > 1 ? "{$amount[0]}.{$amount[1]}" : $amount[0];
100
+    $amount = count($amount) > 1 ? "{$amount[0]}.{$amount[1]}" : $amount[0];
101 101
 
102 102
     // Cast the remaining to a float.
103
-    return (float) preg_replace( '/[^0-9\.\-]/', '', $amount );
103
+    return (float) preg_replace('/[^0-9\.\-]/', '', $amount);
104 104
 
105 105
 }
106 106
 
@@ -110,19 +110,19 @@  discard block
 block discarded – undo
110 110
  * @param float $amount
111 111
  * @param float|string|int|null $decimals
112 112
  */
113
-function wpinv_round_amount( $amount, $decimals = null, $use_sprintf = false ) {
113
+function wpinv_round_amount($amount, $decimals = null, $use_sprintf = false) {
114 114
 
115
-    if ( $decimals === null ) {
115
+    if ($decimals === null) {
116 116
         $decimals = wpinv_decimals();
117 117
     }
118 118
 
119
-    if ( $use_sprintf ) {
120
-        $amount = sprintf( "%.{$decimals}f", (float) $amount );
119
+    if ($use_sprintf) {
120
+        $amount = sprintf("%.{$decimals}f", (float) $amount);
121 121
     } else {
122
-        $amount = round( (float) $amount, absint( $decimals ) );
122
+        $amount = round((float) $amount, absint($decimals));
123 123
     }
124 124
 
125
-    return apply_filters( 'wpinv_round_amount', $amount, $decimals );
125
+    return apply_filters('wpinv_round_amount', $amount, $decimals);
126 126
 }
127 127
 
128 128
 /**
@@ -134,32 +134,32 @@  discard block
 block discarded – undo
134 134
  * @param string|WPInv_Invoice $invoice The invoice object|post type|type
135 135
  * @return array
136 136
  */
137
-function wpinv_get_invoice_statuses( $draft = false, $trashed = false, $invoice = false ) {
137
+function wpinv_get_invoice_statuses($draft = false, $trashed = false, $invoice = false) {
138 138
 
139 139
 	$invoice_statuses = array(
140
-		'wpi-pending'    => _x( 'Pending payment', 'Invoice status', 'invoicing' ),
141
-        'publish'        => _x( 'Paid', 'Invoice status', 'invoicing' ),
142
-        'wpi-processing' => _x( 'Processing', 'Invoice status', 'invoicing' ),
143
-		'wpi-onhold'     => _x( 'On hold', 'Invoice status', 'invoicing' ),
144
-		'wpi-cancelled'  => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
145
-		'wpi-refunded'   => _x( 'Refunded', 'Invoice status', 'invoicing' ),
146
-        'wpi-failed'     => _x( 'Failed', 'Invoice status', 'invoicing' ),
147
-        'wpi-renewal'    => _x( 'Renewal Payment', 'Invoice status', 'invoicing' ),
140
+		'wpi-pending'    => _x('Pending payment', 'Invoice status', 'invoicing'),
141
+        'publish'        => _x('Paid', 'Invoice status', 'invoicing'),
142
+        'wpi-processing' => _x('Processing', 'Invoice status', 'invoicing'),
143
+		'wpi-onhold'     => _x('On hold', 'Invoice status', 'invoicing'),
144
+		'wpi-cancelled'  => _x('Cancelled', 'Invoice status', 'invoicing'),
145
+		'wpi-refunded'   => _x('Refunded', 'Invoice status', 'invoicing'),
146
+        'wpi-failed'     => _x('Failed', 'Invoice status', 'invoicing'),
147
+        'wpi-renewal'    => _x('Renewal Payment', 'Invoice status', 'invoicing'),
148 148
     );
149 149
 
150
-    if ( $draft ) {
151
-        $invoice_statuses['draft'] = __( 'Draft', 'invoicing' );
150
+    if ($draft) {
151
+        $invoice_statuses['draft'] = __('Draft', 'invoicing');
152 152
     }
153 153
 
154
-    if ( $trashed ) {
155
-        $invoice_statuses['trash'] = __( 'Trash', 'invoicing' );
154
+    if ($trashed) {
155
+        $invoice_statuses['trash'] = __('Trash', 'invoicing');
156 156
     }
157 157
 
158
-    if ( $invoice instanceof WPInv_Invoice ) {
158
+    if ($invoice instanceof WPInv_Invoice) {
159 159
         $invoice = $invoice->get_post_type();
160 160
     }
161 161
 
162
-	return apply_filters( 'wpinv_statuses', $invoice_statuses, $invoice );
162
+	return apply_filters('wpinv_statuses', $invoice_statuses, $invoice);
163 163
 }
164 164
 
165 165
 /**
@@ -168,11 +168,11 @@  discard block
 block discarded – undo
168 168
  * @param string $status The raw status
169 169
  * @param string|WPInv_Invoice $invoice The invoice object|post type|type
170 170
  */
171
-function wpinv_status_nicename( $status, $invoice = false ) {
172
-    $statuses = wpinv_get_invoice_statuses( true, true, $invoice );
173
-    $status   = isset( $statuses[ $status ] ) ? $statuses[ $status ] : $status;
171
+function wpinv_status_nicename($status, $invoice = false) {
172
+    $statuses = wpinv_get_invoice_statuses(true, true, $invoice);
173
+    $status   = isset($statuses[$status]) ? $statuses[$status] : $status;
174 174
 
175
-    return sanitize_text_field( $status );
175
+    return sanitize_text_field($status);
176 176
 }
177 177
 
178 178
 /**
@@ -180,13 +180,13 @@  discard block
 block discarded – undo
180 180
  *
181 181
  * @param string $current
182 182
  */
183
-function wpinv_get_currency( $current = '' ) {
183
+function wpinv_get_currency($current = '') {
184 184
 
185
-    if ( empty( $current ) ) {
186
-        $current = apply_filters( 'wpinv_currency', wpinv_get_option( 'currency', 'USD' ) );
185
+    if (empty($current)) {
186
+        $current = apply_filters('wpinv_currency', wpinv_get_option('currency', 'USD'));
187 187
     }
188 188
 
189
-    return trim( strtoupper( $current ) );
189
+    return trim(strtoupper($current));
190 190
 }
191 191
 
192 192
 /**
@@ -194,25 +194,25 @@  discard block
 block discarded – undo
194 194
  *
195 195
  * @param string|null $currency The currency code. Defaults to the default currency.
196 196
  */
197
-function wpinv_currency_symbol( $currency = null ) {
197
+function wpinv_currency_symbol($currency = null) {
198 198
 
199 199
     // Prepare the currency.
200
-    $currency = empty( $currency ) ? wpinv_get_currency() : wpinv_clean( $currency );
200
+    $currency = empty($currency) ? wpinv_get_currency() : wpinv_clean($currency);
201 201
 
202 202
     // Fetch all symbols.
203 203
     $symbols = wpinv_get_currency_symbols();
204 204
 
205 205
     // Fetch this currencies symbol.
206
-    $currency_symbol = isset( $symbols[ $currency ] ) ? $symbols[ $currency ] : $currency;
206
+    $currency_symbol = isset($symbols[$currency]) ? $symbols[$currency] : $currency;
207 207
 
208 208
     // Filter the symbol.
209
-    return apply_filters( 'wpinv_currency_symbol', $currency_symbol, $currency );
209
+    return apply_filters('wpinv_currency_symbol', $currency_symbol, $currency);
210 210
 }
211 211
 
212 212
 function wpinv_currency_position() {
213
-    $position = wpinv_get_option( 'currency_position', 'left' );
213
+    $position = wpinv_get_option('currency_position', 'left');
214 214
 
215
-    return apply_filters( 'wpinv_currency_position', $position );
215
+    return apply_filters('wpinv_currency_position', $position);
216 216
 }
217 217
 
218 218
 /**
@@ -220,13 +220,13 @@  discard block
 block discarded – undo
220 220
  *
221 221
  * @param $string|null $current
222 222
  */
223
-function wpinv_thousands_separator( $current = null ) {
223
+function wpinv_thousands_separator($current = null) {
224 224
 
225
-    if ( null == $current ) {
226
-        $current = wpinv_get_option( 'thousands_separator', ',' );
225
+    if (null == $current) {
226
+        $current = wpinv_get_option('thousands_separator', ',');
227 227
     }
228 228
 
229
-    return trim( $current );
229
+    return trim($current);
230 230
 }
231 231
 
232 232
 /**
@@ -234,13 +234,13 @@  discard block
 block discarded – undo
234 234
  *
235 235
  * @param $string|null $current
236 236
  */
237
-function wpinv_decimal_separator( $current = null ) {
237
+function wpinv_decimal_separator($current = null) {
238 238
 
239
-    if ( null == $current ) {
240
-        $current = wpinv_get_option( 'decimal_separator', '.' );
239
+    if (null == $current) {
240
+        $current = wpinv_get_option('decimal_separator', '.');
241 241
     }
242 242
 
243
-    return trim( $current );
243
+    return trim($current);
244 244
 }
245 245
 
246 246
 /**
@@ -248,27 +248,27 @@  discard block
 block discarded – undo
248 248
  *
249 249
  * @param $string|null $current
250 250
  */
251
-function wpinv_decimals( $current = null ) {
251
+function wpinv_decimals($current = null) {
252 252
 
253
-    if ( null == $current ) {
254
-        $current = wpinv_get_option( 'decimals', 2 );
253
+    if (null == $current) {
254
+        $current = wpinv_get_option('decimals', 2);
255 255
     }
256 256
 
257
-    return absint( $current );
257
+    return absint($current);
258 258
 }
259 259
 
260 260
 /**
261 261
  * Retrieves a list of all supported currencies.
262 262
  */
263 263
 function wpinv_get_currencies() {
264
-    return apply_filters( 'wpinv_currencies', wpinv_get_data( 'currencies' ) );
264
+    return apply_filters('wpinv_currencies', wpinv_get_data('currencies'));
265 265
 }
266 266
 
267 267
 /**
268 268
  * Retrieves a list of all currency symbols.
269 269
  */
270 270
 function wpinv_get_currency_symbols() {
271
-    return apply_filters( 'wpinv_currency_symbols', wpinv_get_data( 'currency-symbols' ) );
271
+    return apply_filters('wpinv_currency_symbols', wpinv_get_data('currency-symbols'));
272 272
 }
273 273
 
274 274
 /**
@@ -280,7 +280,7 @@  discard block
 block discarded – undo
280 280
 	$currency_pos = wpinv_currency_position();
281 281
 	$format       = '%1$s%2$s';
282 282
 
283
-	switch ( $currency_pos ) {
283
+	switch ($currency_pos) {
284 284
 		case 'left':
285 285
 			$format = '%1$s%2$s';
286 286
 			break;
@@ -295,7 +295,7 @@  discard block
 block discarded – undo
295 295
 			break;
296 296
 	}
297 297
 
298
-	return apply_filters( 'getpaid_price_format', $format, $currency_pos );
298
+	return apply_filters('getpaid_price_format', $format, $currency_pos);
299 299
 }
300 300
 
301 301
 /**
@@ -305,8 +305,8 @@  discard block
 block discarded – undo
305 305
  * @param  string $currency Currency.
306 306
  * @return string
307 307
  */
308
-function wpinv_the_price( $amount = 0, $currency = '' ) {
309
-    echo wp_kses_post( wpinv_price( $amount, $currency ) );
308
+function wpinv_the_price($amount = 0, $currency = '') {
309
+    echo wp_kses_post(wpinv_price($amount, $currency));
310 310
 }
311 311
 
312 312
 /**
@@ -316,25 +316,25 @@  discard block
 block discarded – undo
316 316
  * @param  string $currency Currency.
317 317
  * @return string
318 318
  */
319
-function wpinv_price( $amount = 0, $currency = '' ) {
319
+function wpinv_price($amount = 0, $currency = '') {
320 320
 
321 321
     // Backwards compatibility.
322
-    $amount             = wpinv_sanitize_amount( $amount );
322
+    $amount             = wpinv_sanitize_amount($amount);
323 323
 
324 324
     // Prepare variables.
325
-    $currency           = wpinv_get_currency( $currency );
325
+    $currency           = wpinv_get_currency($currency);
326 326
     $amount             = (float) $amount;
327 327
     $unformatted_amount = $amount;
328 328
     $negative           = $amount < 0;
329
-    $amount             = apply_filters( 'getpaid_raw_amount', floatval( $negative ? $amount * -1 : $amount ) );
330
-    $amount             = wpinv_format_amount( $amount );
329
+    $amount             = apply_filters('getpaid_raw_amount', floatval($negative ? $amount * -1 : $amount));
330
+    $amount             = wpinv_format_amount($amount);
331 331
 
332 332
     // Format the amount.
333 333
     $format             = getpaid_get_price_format();
334
-    $formatted_amount   = ( $negative ? '-' : '' ) . sprintf( $format, '<span class="getpaid-currency__symbol">' . wpinv_currency_symbol( $currency ) . '</span>', $amount );
334
+    $formatted_amount   = ($negative ? '-' : '') . sprintf($format, '<span class="getpaid-currency__symbol">' . wpinv_currency_symbol($currency) . '</span>', $amount);
335 335
 
336 336
     // Filter the formatting.
337
-    return apply_filters( 'wpinv_price', $formatted_amount, $amount, $currency, $unformatted_amount );
337
+    return apply_filters('wpinv_price', $formatted_amount, $amount, $currency, $unformatted_amount);
338 338
 }
339 339
 
340 340
 /**
@@ -345,25 +345,25 @@  discard block
 block discarded – undo
345 345
  * @param  bool     $calculate Whether or not to apply separators.
346 346
  * @return string
347 347
  */
348
-function wpinv_format_amount( $amount, $decimals = null, $calculate = false ) {
348
+function wpinv_format_amount($amount, $decimals = null, $calculate = false) {
349 349
     $thousands_sep = wpinv_thousands_separator();
350 350
     $decimal_sep   = wpinv_decimal_separator();
351
-    $decimals      = wpinv_decimals( $decimals );
352
-    $amount        = wpinv_sanitize_amount( $amount );
351
+    $decimals      = wpinv_decimals($decimals);
352
+    $amount        = wpinv_sanitize_amount($amount);
353 353
 
354
-    if ( $calculate ) {
354
+    if ($calculate) {
355 355
         return $amount;
356 356
     }
357 357
 
358 358
     // Fomart the amount.
359
-    return number_format( $amount, $decimals, $decimal_sep, $thousands_sep );
359
+    return number_format($amount, $decimals, $decimal_sep, $thousands_sep);
360 360
 }
361 361
 
362
-function wpinv_sanitize_key( $key ) {
362
+function wpinv_sanitize_key($key) {
363 363
     $raw_key = $key;
364
-    $key = preg_replace( '/[^a-zA-Z0-9_\-\.\:\/]/', '', $key );
364
+    $key = preg_replace('/[^a-zA-Z0-9_\-\.\:\/]/', '', $key);
365 365
 
366
-    return apply_filters( 'wpinv_sanitize_key', $key, $raw_key );
366
+    return apply_filters('wpinv_sanitize_key', $key, $raw_key);
367 367
 }
368 368
 
369 369
 /**
@@ -371,8 +371,8 @@  discard block
 block discarded – undo
371 371
  *
372 372
  * @param $str the file whose extension should be retrieved.
373 373
  */
374
-function wpinv_get_file_extension( $str ) {
375
-    $filetype = wp_check_filetype( $str );
374
+function wpinv_get_file_extension($str) {
375
+    $filetype = wp_check_filetype($str);
376 376
     return $filetype['ext'];
377 377
 }
378 378
 
@@ -381,16 +381,16 @@  discard block
 block discarded – undo
381 381
  *
382 382
  * @param string $string
383 383
  */
384
-function wpinv_string_is_image_url( $string ) {
385
-    $extension = strtolower( wpinv_get_file_extension( $string ) );
386
-    return in_array( $extension, array( 'jpeg', 'jpg', 'png', 'gif', 'ico' ), true );
384
+function wpinv_string_is_image_url($string) {
385
+    $extension = strtolower(wpinv_get_file_extension($string));
386
+    return in_array($extension, array('jpeg', 'jpg', 'png', 'gif', 'ico'), true);
387 387
 }
388 388
 
389 389
 /**
390 390
  * Returns the current URL.
391 391
  */
392 392
 function wpinv_get_current_page_url() {
393
-    return esc_url( add_query_arg( array() ) );
393
+    return esc_url(add_query_arg(array()));
394 394
 }
395 395
 
396 396
 /**
@@ -400,46 +400,46 @@  discard block
 block discarded – undo
400 400
  * @param string $name  Constant name.
401 401
  * @param mixed  $value Value.
402 402
  */
403
-function getpaid_maybe_define_constant( $name, $value ) {
404
-	if ( ! defined( $name ) ) {
405
-		define( $name, $value );
403
+function getpaid_maybe_define_constant($name, $value) {
404
+	if (!defined($name)) {
405
+		define($name, $value);
406 406
 	}
407 407
 }
408 408
 
409 409
 function wpinv_get_php_arg_separator_output() {
410
-	return ini_get( 'arg_separator.output' );
410
+	return ini_get('arg_separator.output');
411 411
 }
412 412
 
413
-function wpinv_rgb_from_hex( $color ) {
414
-    $color = str_replace( '#', '', $color );
413
+function wpinv_rgb_from_hex($color) {
414
+    $color = str_replace('#', '', $color);
415 415
 
416 416
     // Convert shorthand colors to full format, e.g. "FFF" -> "FFFFFF"
417
-    $color = preg_replace( '~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color );
418
-    if ( empty( $color ) ) {
417
+    $color = preg_replace('~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color);
418
+    if (empty($color)) {
419 419
         return null;
420 420
     }
421 421
 
422
-    $color = str_split( $color );
422
+    $color = str_split($color);
423 423
 
424 424
     $rgb      = array();
425
-    $rgb['R'] = hexdec( $color[0] . $color[1] );
426
-    $rgb['G'] = hexdec( $color[2] . $color[3] );
427
-    $rgb['B'] = hexdec( $color[4] . $color[5] );
425
+    $rgb['R'] = hexdec($color[0] . $color[1]);
426
+    $rgb['G'] = hexdec($color[2] . $color[3]);
427
+    $rgb['B'] = hexdec($color[4] . $color[5]);
428 428
 
429 429
     return $rgb;
430 430
 }
431 431
 
432
-function wpinv_hex_darker( $color, $factor = 30 ) {
433
-    $base  = wpinv_rgb_from_hex( $color );
432
+function wpinv_hex_darker($color, $factor = 30) {
433
+    $base  = wpinv_rgb_from_hex($color);
434 434
     $color = '#';
435 435
 
436
-    foreach ( $base as $k => $v ) {
436
+    foreach ($base as $k => $v) {
437 437
         $amount      = $v / 100;
438
-        $amount      = round( $amount * $factor );
438
+        $amount      = round($amount * $factor);
439 439
         $new_decimal = $v - $amount;
440 440
 
441
-        $new_hex_component = dechex( $new_decimal );
442
-        if ( strlen( $new_hex_component ) < 2 ) {
441
+        $new_hex_component = dechex($new_decimal);
442
+        if (strlen($new_hex_component) < 2) {
443 443
             $new_hex_component = '0' . $new_hex_component;
444 444
         }
445 445
         $color .= $new_hex_component;
@@ -448,18 +448,18 @@  discard block
 block discarded – undo
448 448
     return $color;
449 449
 }
450 450
 
451
-function wpinv_hex_lighter( $color, $factor = 30 ) {
452
-    $base  = wpinv_rgb_from_hex( $color );
451
+function wpinv_hex_lighter($color, $factor = 30) {
452
+    $base  = wpinv_rgb_from_hex($color);
453 453
     $color = '#';
454 454
 
455
-    foreach ( $base as $k => $v ) {
455
+    foreach ($base as $k => $v) {
456 456
         $amount      = 255 - $v;
457 457
         $amount      = $amount / 100;
458
-        $amount      = round( $amount * $factor );
458
+        $amount      = round($amount * $factor);
459 459
         $new_decimal = $v + $amount;
460 460
 
461
-        $new_hex_component = dechex( $new_decimal );
462
-        if ( strlen( $new_hex_component ) < 2 ) {
461
+        $new_hex_component = dechex($new_decimal);
462
+        if (strlen($new_hex_component) < 2) {
463 463
             $new_hex_component = '0' . $new_hex_component;
464 464
         }
465 465
         $color .= $new_hex_component;
@@ -468,22 +468,22 @@  discard block
 block discarded – undo
468 468
     return $color;
469 469
 }
470 470
 
471
-function wpinv_light_or_dark( $color, $dark = '#000000', $light = '#FFFFFF' ) {
472
-    $hex = str_replace( '#', '', $color );
471
+function wpinv_light_or_dark($color, $dark = '#000000', $light = '#FFFFFF') {
472
+    $hex = str_replace('#', '', $color);
473 473
 
474
-    $c_r = hexdec( substr( $hex, 0, 2 ) );
475
-    $c_g = hexdec( substr( $hex, 2, 2 ) );
476
-    $c_b = hexdec( substr( $hex, 4, 2 ) );
474
+    $c_r = hexdec(substr($hex, 0, 2));
475
+    $c_g = hexdec(substr($hex, 2, 2));
476
+    $c_b = hexdec(substr($hex, 4, 2));
477 477
 
478
-    $brightness = ( ( $c_r * 299 ) + ( $c_g * 587 ) + ( $c_b * 114 ) ) / 1000;
478
+    $brightness = (($c_r * 299) + ($c_g * 587) + ($c_b * 114)) / 1000;
479 479
 
480 480
     return $brightness > 155 ? $dark : $light;
481 481
 }
482 482
 
483
-function wpinv_format_hex( $hex ) {
484
-    $hex = trim( str_replace( '#', '', $hex ) );
483
+function wpinv_format_hex($hex) {
484
+    $hex = trim(str_replace('#', '', $hex));
485 485
 
486
-    if ( strlen( $hex ) == 3 ) {
486
+    if (strlen($hex) == 3) {
487 487
         $hex = $hex[0] . $hex[0] . $hex[1] . $hex[1] . $hex[2] . $hex[2];
488 488
     }
489 489
 
@@ -503,12 +503,12 @@  discard block
 block discarded – undo
503 503
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
504 504
  * @return string
505 505
  */
506
-function wpinv_utf8_strimwidth( $str, $start, $width, $trimmaker = '', $encoding = 'UTF-8' ) {
507
-    if ( function_exists( 'mb_strimwidth' ) ) {
508
-        return mb_strimwidth( $str, $start, $width, $trimmaker, $encoding );
506
+function wpinv_utf8_strimwidth($str, $start, $width, $trimmaker = '', $encoding = 'UTF-8') {
507
+    if (function_exists('mb_strimwidth')) {
508
+        return mb_strimwidth($str, $start, $width, $trimmaker, $encoding);
509 509
     }
510 510
 
511
-    return wpinv_utf8_substr( $str, $start, $width, $encoding ) . $trimmaker;
511
+    return wpinv_utf8_substr($str, $start, $width, $encoding) . $trimmaker;
512 512
 }
513 513
 
514 514
 /**
@@ -520,28 +520,28 @@  discard block
 block discarded – undo
520 520
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
521 521
  * @return int Returns the number of characters in string.
522 522
  */
523
-function wpinv_utf8_strlen( $str, $encoding = 'UTF-8' ) {
524
-    if ( function_exists( 'mb_strlen' ) ) {
525
-        return mb_strlen( $str, $encoding );
523
+function wpinv_utf8_strlen($str, $encoding = 'UTF-8') {
524
+    if (function_exists('mb_strlen')) {
525
+        return mb_strlen($str, $encoding);
526 526
     }
527 527
 
528
-    return strlen( $str );
528
+    return strlen($str);
529 529
 }
530 530
 
531
-function wpinv_utf8_strtolower( $str, $encoding = 'UTF-8' ) {
532
-    if ( function_exists( 'mb_strtolower' ) ) {
533
-        return mb_strtolower( $str, $encoding );
531
+function wpinv_utf8_strtolower($str, $encoding = 'UTF-8') {
532
+    if (function_exists('mb_strtolower')) {
533
+        return mb_strtolower($str, $encoding);
534 534
     }
535 535
 
536
-    return strtolower( $str );
536
+    return strtolower($str);
537 537
 }
538 538
 
539
-function wpinv_utf8_strtoupper( $str, $encoding = 'UTF-8' ) {
540
-    if ( function_exists( 'mb_strtoupper' ) ) {
541
-        return mb_strtoupper( $str, $encoding );
539
+function wpinv_utf8_strtoupper($str, $encoding = 'UTF-8') {
540
+    if (function_exists('mb_strtoupper')) {
541
+        return mb_strtoupper($str, $encoding);
542 542
     }
543 543
 
544
-    return strtoupper( $str );
544
+    return strtoupper($str);
545 545
 }
546 546
 
547 547
 /**
@@ -555,12 +555,12 @@  discard block
 block discarded – undo
555 555
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
556 556
  * @return int Returns the position of the first occurrence of search in the string.
557 557
  */
558
-function wpinv_utf8_strpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) {
559
-    if ( function_exists( 'mb_strpos' ) ) {
560
-        return mb_strpos( $str, $find, $offset, $encoding );
558
+function wpinv_utf8_strpos($str, $find, $offset = 0, $encoding = 'UTF-8') {
559
+    if (function_exists('mb_strpos')) {
560
+        return mb_strpos($str, $find, $offset, $encoding);
561 561
     }
562 562
 
563
-    return strpos( $str, $find, $offset );
563
+    return strpos($str, $find, $offset);
564 564
 }
565 565
 
566 566
 /**
@@ -574,12 +574,12 @@  discard block
 block discarded – undo
574 574
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
575 575
  * @return int Returns the position of the last occurrence of search.
576 576
  */
577
-function wpinv_utf8_strrpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) {
578
-    if ( function_exists( 'mb_strrpos' ) ) {
579
-        return mb_strrpos( $str, $find, $offset, $encoding );
577
+function wpinv_utf8_strrpos($str, $find, $offset = 0, $encoding = 'UTF-8') {
578
+    if (function_exists('mb_strrpos')) {
579
+        return mb_strrpos($str, $find, $offset, $encoding);
580 580
     }
581 581
 
582
-    return strrpos( $str, $find, $offset );
582
+    return strrpos($str, $find, $offset);
583 583
 }
584 584
 
585 585
 /**
@@ -594,16 +594,16 @@  discard block
 block discarded – undo
594 594
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
595 595
  * @return string
596 596
  */
597
-function wpinv_utf8_substr( $str, $start, $length = null, $encoding = 'UTF-8' ) {
598
-    if ( function_exists( 'mb_substr' ) ) {
599
-        if ( null === $length ) {
600
-            return mb_substr( $str, $start, wpinv_utf8_strlen( $str, $encoding ), $encoding );
597
+function wpinv_utf8_substr($str, $start, $length = null, $encoding = 'UTF-8') {
598
+    if (function_exists('mb_substr')) {
599
+        if (null === $length) {
600
+            return mb_substr($str, $start, wpinv_utf8_strlen($str, $encoding), $encoding);
601 601
         } else {
602
-            return mb_substr( $str, $start, $length, $encoding );
602
+            return mb_substr($str, $start, $length, $encoding);
603 603
         }
604 604
     }
605 605
 
606
-    return substr( $str, $start, $length );
606
+    return substr($str, $start, $length);
607 607
 }
608 608
 
609 609
 /**
@@ -615,48 +615,48 @@  discard block
 block discarded – undo
615 615
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
616 616
  * @return string The width of string.
617 617
  */
618
-function wpinv_utf8_strwidth( $str, $encoding = 'UTF-8' ) {
619
-    if ( function_exists( 'mb_strwidth' ) ) {
620
-        return mb_strwidth( $str, $encoding );
618
+function wpinv_utf8_strwidth($str, $encoding = 'UTF-8') {
619
+    if (function_exists('mb_strwidth')) {
620
+        return mb_strwidth($str, $encoding);
621 621
     }
622 622
 
623
-    return wpinv_utf8_strlen( $str, $encoding );
623
+    return wpinv_utf8_strlen($str, $encoding);
624 624
 }
625 625
 
626
-function wpinv_utf8_ucfirst( $str, $lower_str_end = false, $encoding = 'UTF-8' ) {
627
-    if ( function_exists( 'mb_strlen' ) ) {
628
-        $first_letter = wpinv_utf8_strtoupper( wpinv_utf8_substr( $str, 0, 1, $encoding ), $encoding );
626
+function wpinv_utf8_ucfirst($str, $lower_str_end = false, $encoding = 'UTF-8') {
627
+    if (function_exists('mb_strlen')) {
628
+        $first_letter = wpinv_utf8_strtoupper(wpinv_utf8_substr($str, 0, 1, $encoding), $encoding);
629 629
         $str_end = '';
630 630
 
631
-        if ( $lower_str_end ) {
632
-            $str_end = wpinv_utf8_strtolower( wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding ), $encoding );
631
+        if ($lower_str_end) {
632
+            $str_end = wpinv_utf8_strtolower(wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding), $encoding);
633 633
         } else {
634
-            $str_end = wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding );
634
+            $str_end = wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding);
635 635
         }
636 636
 
637 637
         return $first_letter . $str_end;
638 638
     }
639 639
 
640
-    return ucfirst( $str );
640
+    return ucfirst($str);
641 641
 }
642 642
 
643
-function wpinv_utf8_ucwords( $str, $encoding = 'UTF-8' ) {
644
-    if ( function_exists( 'mb_convert_case' ) ) {
645
-        return mb_convert_case( $str, MB_CASE_TITLE, $encoding );
643
+function wpinv_utf8_ucwords($str, $encoding = 'UTF-8') {
644
+    if (function_exists('mb_convert_case')) {
645
+        return mb_convert_case($str, MB_CASE_TITLE, $encoding);
646 646
     }
647 647
 
648
-    return ucwords( $str );
648
+    return ucwords($str);
649 649
 }
650 650
 
651
-function wpinv_period_in_days( $period, $unit ) {
652
-    $period = absint( $period );
651
+function wpinv_period_in_days($period, $unit) {
652
+    $period = absint($period);
653 653
 
654
-    if ( $period > 0 ) {
655
-        if ( in_array( strtolower( $unit ), array( 'w', 'week', 'weeks' ) ) ) {
654
+    if ($period > 0) {
655
+        if (in_array(strtolower($unit), array('w', 'week', 'weeks'))) {
656 656
             $period = $period * 7;
657
-        } elseif ( in_array( strtolower( $unit ), array( 'm', 'month', 'months' ) ) ) {
657
+        } elseif (in_array(strtolower($unit), array('m', 'month', 'months'))) {
658 658
             $period = $period * 30;
659
-        } elseif ( in_array( strtolower( $unit ), array( 'y', 'year', 'years' ) ) ) {
659
+        } elseif (in_array(strtolower($unit), array('y', 'year', 'years'))) {
660 660
             $period = $period * 365;
661 661
         }
662 662
     }
@@ -664,14 +664,14 @@  discard block
 block discarded – undo
664 664
     return $period;
665 665
 }
666 666
 
667
-function wpinv_cal_days_in_month( $calendar, $month, $year ) {
668
-    if ( function_exists( 'cal_days_in_month' ) ) {
669
-        return cal_days_in_month( $calendar, $month, $year );
667
+function wpinv_cal_days_in_month($calendar, $month, $year) {
668
+    if (function_exists('cal_days_in_month')) {
669
+        return cal_days_in_month($calendar, $month, $year);
670 670
     }
671 671
 
672 672
     // Fallback in case the calendar extension is not loaded in PHP
673 673
     // Only supports Gregorian calendar
674
-    return gmdate( 't', mktime( 0, 0, 0, $month, 1, $year ) );
674
+    return gmdate('t', mktime(0, 0, 0, $month, 1, $year));
675 675
 }
676 676
 
677 677
 /**
@@ -682,27 +682,27 @@  discard block
 block discarded – undo
682 682
  *
683 683
  * @return string
684 684
  */
685
-function wpi_help_tip( $tip, $allow_html = false, $is_vue = false, $echo = false ) {
685
+function wpi_help_tip($tip, $allow_html = false, $is_vue = false, $echo = false) {
686 686
 
687
-    if ( $allow_html ) {
688
-        $tip = wpi_sanitize_tooltip( $tip );
687
+    if ($allow_html) {
688
+        $tip = wpi_sanitize_tooltip($tip);
689 689
     } else {
690
-        $tip = strip_tags( $tip );
690
+        $tip = strip_tags($tip);
691 691
     }
692 692
 
693
-    if ( $is_vue ) {
693
+    if ($is_vue) {
694 694
 
695
-        if ( $echo ) {
696
-            echo '<span class="dashicons dashicons-editor-help" title="' . esc_attr( $tip ) . '"></span>';
695
+        if ($echo) {
696
+            echo '<span class="dashicons dashicons-editor-help" title="' . esc_attr($tip) . '"></span>';
697 697
         } else {
698
-            return '<span class="dashicons dashicons-editor-help" title="' . esc_attr( $tip ) . '"></span>';
698
+            return '<span class="dashicons dashicons-editor-help" title="' . esc_attr($tip) . '"></span>';
699 699
         }
700 700
 }
701 701
 
702
-    if ( $echo ) {
703
-        echo '<span class="wpi-help-tip dashicons dashicons-editor-help" title="' . esc_attr( $tip ) . '"></span>';
702
+    if ($echo) {
703
+        echo '<span class="wpi-help-tip dashicons dashicons-editor-help" title="' . esc_attr($tip) . '"></span>';
704 704
     } else {
705
-        return '<span class="wpi-help-tip dashicons dashicons-editor-help" title="' . esc_attr( $tip ) . '"></span>';
705
+        return '<span class="wpi-help-tip dashicons dashicons-editor-help" title="' . esc_attr($tip) . '"></span>';
706 706
     }
707 707
 }
708 708
 
@@ -714,9 +714,9 @@  discard block
 block discarded – undo
714 714
  * @param string $var
715 715
  * @return string
716 716
  */
717
-function wpi_sanitize_tooltip( $var ) {
717
+function wpi_sanitize_tooltip($var) {
718 718
     return wp_kses(
719
-        html_entity_decode( $var ),
719
+        html_entity_decode($var),
720 720
         array(
721 721
 			'br'     => array(),
722 722
 			'em'     => array(),
@@ -739,7 +739,7 @@  discard block
 block discarded – undo
739 739
  */
740 740
 function wpinv_get_screen_ids() {
741 741
 
742
-    $screen_id = sanitize_title( __( 'Invoicing', 'invoicing' ) );
742
+    $screen_id = sanitize_title(__('Invoicing', 'invoicing'));
743 743
 
744 744
     $screen_ids = array(
745 745
         'toplevel_page_' . $screen_id,
@@ -761,7 +761,7 @@  discard block
 block discarded – undo
761 761
         'gp-setup', // setup wizard
762 762
     );
763 763
 
764
-    return apply_filters( 'wpinv_screen_ids', $screen_ids );
764
+    return apply_filters('wpinv_screen_ids', $screen_ids);
765 765
 }
766 766
 
767 767
 /**
@@ -772,14 +772,14 @@  discard block
 block discarded – undo
772 772
  * @param array|string $list List of values.
773 773
  * @return array Sanitized array of values.
774 774
  */
775
-function wpinv_parse_list( $list ) {
775
+function wpinv_parse_list($list) {
776 776
 
777
-    if ( empty( $list ) ) {
777
+    if (empty($list)) {
778 778
         $list = array();
779 779
     }
780 780
 
781
-	if ( ! is_array( $list ) ) {
782
-		return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );
781
+	if (!is_array($list)) {
782
+		return preg_split('/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY);
783 783
 	}
784 784
 
785 785
 	return $list;
@@ -793,8 +793,8 @@  discard block
 block discarded – undo
793 793
  * @param string $key Type of data to fetch.
794 794
  * @return mixed Fetched data.
795 795
  */
796
-function wpinv_get_data( $key ) {
797
-    return apply_filters( "wpinv_get_$key", include WPINV_PLUGIN_DIR . "includes/data/$key.php" );
796
+function wpinv_get_data($key) {
797
+    return apply_filters("wpinv_get_$key", include WPINV_PLUGIN_DIR . "includes/data/$key.php");
798 798
 }
799 799
 
800 800
 /**
@@ -806,10 +806,10 @@  discard block
 block discarded – undo
806 806
  * @param bool $first_empty Whether or not the first item in the list should be empty
807 807
  * @return mixed Fetched data.
808 808
  */
809
-function wpinv_maybe_add_empty_option( $options, $first_empty ) {
809
+function wpinv_maybe_add_empty_option($options, $first_empty) {
810 810
 
811
-    if ( ! empty( $options ) && $first_empty ) {
812
-        return array_merge( array( '' => '' ), $options );
811
+    if (!empty($options) && $first_empty) {
812
+        return array_merge(array('' => ''), $options);
813 813
     }
814 814
     return $options;
815 815
 
@@ -821,21 +821,21 @@  discard block
 block discarded – undo
821 821
  * @param mixed $var Data to sanitize.
822 822
  * @return string|array
823 823
  */
824
-function wpinv_clean( $var ) {
824
+function wpinv_clean($var) {
825 825
 
826
-	if ( is_array( $var ) ) {
827
-		return array_map( 'wpinv_clean', $var );
826
+	if (is_array($var)) {
827
+		return array_map('wpinv_clean', $var);
828 828
     }
829 829
 
830
-    if ( is_object( $var ) ) {
831
-		$object_vars = get_object_vars( $var );
832
-		foreach ( $object_vars as $property_name => $property_value ) {
833
-			$var->$property_name = wpinv_clean( $property_value );
830
+    if (is_object($var)) {
831
+		$object_vars = get_object_vars($var);
832
+		foreach ($object_vars as $property_name => $property_value) {
833
+			$var->$property_name = wpinv_clean($property_value);
834 834
         }
835 835
         return $var;
836 836
 	}
837 837
 
838
-    return is_string( $var ) ? sanitize_text_field( stripslashes( $var ) ) : $var;
838
+    return is_string($var) ? sanitize_text_field(stripslashes($var)) : $var;
839 839
 }
840 840
 
841 841
 /**
@@ -844,43 +844,43 @@  discard block
 block discarded – undo
844 844
  * @param string $str Data to convert.
845 845
  * @return string|array
846 846
  */
847
-function getpaid_convert_price_string_to_options( $str ) {
847
+function getpaid_convert_price_string_to_options($str) {
848 848
 
849
-	$raw_options = array_map( 'trim', explode( ',', $str ) );
850
-    $options     = array();
849
+	$raw_options = array_map('trim', explode(',', $str));
850
+    $options = array();
851 851
 
852
-    foreach ( $raw_options as $option ) {
852
+    foreach ($raw_options as $option) {
853 853
 
854
-        if ( '' == $option ) {
854
+        if ('' == $option) {
855 855
             continue;
856 856
         }
857 857
 
858
-        $option = array_map( 'trim', explode( '|', $option ) );
858
+        $option = array_map('trim', explode('|', $option));
859 859
 
860 860
         $price = null;
861 861
         $label = null;
862 862
 
863
-        if ( isset( $option[0] ) && '' != $option[0] ) {
864
-            $label  = $option[0];
863
+        if (isset($option[0]) && '' != $option[0]) {
864
+            $label = $option[0];
865 865
         }
866 866
 
867
-        if ( isset( $option[1] ) && '' != $option[1] ) {
867
+        if (isset($option[1]) && '' != $option[1]) {
868 868
             $price = $option[1];
869 869
         }
870 870
 
871
-        if ( ! isset( $price ) ) {
871
+        if (!isset($price)) {
872 872
             $price = $label;
873 873
         }
874 874
 
875
-        if ( ! isset( $price ) || ! is_numeric( $price ) ) {
875
+        if (!isset($price) || !is_numeric($price)) {
876 876
             continue;
877 877
         }
878 878
 
879
-        if ( ! isset( $label ) ) {
879
+        if (!isset($label)) {
880 880
             $label = $price;
881 881
         }
882 882
 
883
-        $options[ "$label|$price" ] = $label;
883
+        $options["$label|$price"] = $label;
884 884
     }
885 885
 
886 886
     return $options;
@@ -889,14 +889,14 @@  discard block
 block discarded – undo
889 889
 /**
890 890
  * Returns the help tip.
891 891
  */
892
-function getpaid_get_help_tip( $tip, $additional_classes = '', $echo = false ) {
892
+function getpaid_get_help_tip($tip, $additional_classes = '', $echo = false) {
893 893
     $classes = 'wpi-help-tip dashicons dashicons-editor-help ' . $additional_classes;
894
-    $tip     = esc_attr( $tip );
894
+    $tip     = esc_attr($tip);
895 895
 
896
-    if ( $echo ) {
897
-        echo '<span class="' . esc_attr( $classes ) . '" data-tip="' . esc_attr( $tip ) . '"></span>';
896
+    if ($echo) {
897
+        echo '<span class="' . esc_attr($classes) . '" data-tip="' . esc_attr($tip) . '"></span>';
898 898
     } else {
899
-        return '<span class="' . esc_attr( $classes ) . '" data-tip="' . esc_attr( $tip ) . '"></span>';
899
+        return '<span class="' . esc_attr($classes) . '" data-tip="' . esc_attr($tip) . '"></span>';
900 900
     }
901 901
 
902 902
 }
@@ -904,18 +904,18 @@  discard block
 block discarded – undo
904 904
 /**
905 905
  * Formats a date
906 906
  */
907
-function getpaid_format_date( $date, $with_time = false ) {
907
+function getpaid_format_date($date, $with_time = false) {
908 908
 
909
-    if ( empty( $date ) || $date == '0000-00-00 00:00:00' ) {
909
+    if (empty($date) || $date == '0000-00-00 00:00:00') {
910 910
         return '';
911 911
     }
912 912
 
913 913
     $format = getpaid_date_format();
914 914
 
915
-    if ( $with_time ) {
915
+    if ($with_time) {
916 916
         $format .= ' ' . getpaid_time_format();
917 917
     }
918
-    return date_i18n( $format, strtotime( $date ) );
918
+    return date_i18n($format, strtotime($date));
919 919
 
920 920
 }
921 921
 
@@ -924,9 +924,9 @@  discard block
 block discarded – undo
924 924
  *
925 925
  * @return string
926 926
  */
927
-function getpaid_format_date_value( $date, $default = '&mdash;', $with_time = false ) {
928
-    $date = getpaid_format_date( $date, $with_time );
929
-    return empty( $date ) ? $default : $date;
927
+function getpaid_format_date_value($date, $default = '&mdash;', $with_time = false) {
928
+    $date = getpaid_format_date($date, $with_time);
929
+    return empty($date) ? $default : $date;
930 930
 }
931 931
 
932 932
 /**
@@ -935,7 +935,7 @@  discard block
 block discarded – undo
935 935
  * @return string
936 936
  */
937 937
 function getpaid_date_format() {
938
-	return apply_filters( 'getpaid_date_format', get_option( 'date_format' ) );
938
+	return apply_filters('getpaid_date_format', get_option('date_format'));
939 939
 }
940 940
 
941 941
 /**
@@ -944,7 +944,7 @@  discard block
 block discarded – undo
944 944
  * @return string
945 945
  */
946 946
 function getpaid_time_format() {
947
-	return apply_filters( 'getpaid_time_format', get_option( 'time_format' ) );
947
+	return apply_filters('getpaid_time_format', get_option('time_format'));
948 948
 }
949 949
 
950 950
 /**
@@ -954,16 +954,16 @@  discard block
 block discarded – undo
954 954
  * @param  integer $limit Limit size in characters.
955 955
  * @return string
956 956
  */
957
-function getpaid_limit_length( $string, $limit ) {
957
+function getpaid_limit_length($string, $limit) {
958 958
     $str_limit = $limit - 3;
959 959
 
960
-	if ( function_exists( 'mb_strimwidth' ) ) {
961
-		if ( mb_strlen( $string ) > $limit ) {
962
-			$string = mb_strimwidth( $string, 0, $str_limit ) . '...';
960
+	if (function_exists('mb_strimwidth')) {
961
+		if (mb_strlen($string) > $limit) {
962
+			$string = mb_strimwidth($string, 0, $str_limit) . '...';
963 963
 		}
964 964
 	} else {
965
-		if ( strlen( $string ) > $limit ) {
966
-			$string = substr( $string, 0, $str_limit ) . '...';
965
+		if (strlen($string) > $limit) {
966
+			$string = substr($string, 0, $str_limit) . '...';
967 967
 		}
968 968
 	}
969 969
     return $string;
@@ -977,7 +977,7 @@  discard block
 block discarded – undo
977 977
  * @since 1.0.19
978 978
  */
979 979
 function getpaid_api() {
980
-    return getpaid()->get( 'api' );
980
+    return getpaid()->get('api');
981 981
 }
982 982
 
983 983
 /**
@@ -987,7 +987,7 @@  discard block
 block discarded – undo
987 987
  * @since 1.0.19
988 988
  */
989 989
 function getpaid_post_types() {
990
-    return getpaid()->get( 'post_types' );
990
+    return getpaid()->get('post_types');
991 991
 }
992 992
 
993 993
 /**
@@ -997,7 +997,7 @@  discard block
 block discarded – undo
997 997
  * @since 1.0.19
998 998
  */
999 999
 function getpaid_session() {
1000
-    return getpaid()->get( 'session' );
1000
+    return getpaid()->get('session');
1001 1001
 }
1002 1002
 
1003 1003
 /**
@@ -1007,7 +1007,7 @@  discard block
 block discarded – undo
1007 1007
  * @since 1.0.19
1008 1008
  */
1009 1009
 function getpaid_notes() {
1010
-    return getpaid()->get( 'notes' );
1010
+    return getpaid()->get('notes');
1011 1011
 }
1012 1012
 
1013 1013
 /**
@@ -1016,7 +1016,7 @@  discard block
 block discarded – undo
1016 1016
  * @return GetPaid_Admin
1017 1017
  */
1018 1018
 function getpaid_admin() {
1019
-    return getpaid()->get( 'admin' );
1019
+    return getpaid()->get('admin');
1020 1020
 }
1021 1021
 
1022 1022
 /**
@@ -1026,8 +1026,8 @@  discard block
 block discarded – undo
1026 1026
  * @param string $base the base url
1027 1027
  * @return string
1028 1028
  */
1029
-function getpaid_get_authenticated_action_url( $action, $base = false ) {
1030
-    return wp_nonce_url( add_query_arg( 'getpaid-action', $action, $base ), 'getpaid-nonce', 'getpaid-nonce' );
1029
+function getpaid_get_authenticated_action_url($action, $base = false) {
1030
+    return wp_nonce_url(add_query_arg('getpaid-action', $action, $base), 'getpaid-nonce', 'getpaid-nonce');
1031 1031
 }
1032 1032
 
1033 1033
 /**
@@ -1035,11 +1035,11 @@  discard block
 block discarded – undo
1035 1035
  *
1036 1036
  * @return string
1037 1037
  */
1038
-function getpaid_get_post_type_label( $post_type, $plural = true ) {
1038
+function getpaid_get_post_type_label($post_type, $plural = true) {
1039 1039
 
1040
-    $post_type = get_post_type_object( $post_type );
1040
+    $post_type = get_post_type_object($post_type);
1041 1041
 
1042
-    if ( ! is_object( $post_type ) ) {
1042
+    if (!is_object($post_type)) {
1043 1043
         return null;
1044 1044
     }
1045 1045
 
@@ -1052,18 +1052,18 @@  discard block
 block discarded – undo
1052 1052
  *
1053 1053
  * @return mixed|null
1054 1054
  */
1055
-function getpaid_get_array_field( $array, $key, $secondary_key = null ) {
1055
+function getpaid_get_array_field($array, $key, $secondary_key = null) {
1056 1056
 
1057
-    if ( ! is_array( $array ) ) {
1057
+    if (!is_array($array)) {
1058 1058
         return null;
1059 1059
     }
1060 1060
 
1061
-    if ( ! empty( $secondary_key ) ) {
1062
-        $array = isset( $array[ $secondary_key ] ) ? $array[ $secondary_key ] : array();
1063
-        return getpaid_get_array_field( $array, $key );
1061
+    if (!empty($secondary_key)) {
1062
+        $array = isset($array[$secondary_key]) ? $array[$secondary_key] : array();
1063
+        return getpaid_get_array_field($array, $key);
1064 1064
     }
1065 1065
 
1066
-    return isset( $array[ $key ] ) ? $array[ $key ] : null;
1066
+    return isset($array[$key]) ? $array[$key] : null;
1067 1067
 
1068 1068
 }
1069 1069
 
@@ -1072,12 +1072,12 @@  discard block
 block discarded – undo
1072 1072
  *
1073 1073
  * @return array
1074 1074
  */
1075
-function getpaid_array_merge_if_empty( $args, $defaults ) {
1075
+function getpaid_array_merge_if_empty($args, $defaults) {
1076 1076
 
1077
-    foreach ( $defaults as $key => $value ) {
1077
+    foreach ($defaults as $key => $value) {
1078 1078
 
1079
-        if ( empty( $args[ $key ] ) ) {
1080
-            $args[ $key ] = $value;
1079
+        if (empty($args[$key])) {
1080
+            $args[$key] = $value;
1081 1081
         }
1082 1082
     }
1083 1083
 
@@ -1094,12 +1094,12 @@  discard block
 block discarded – undo
1094 1094
 
1095 1095
     $types = get_allowed_mime_types();
1096 1096
 
1097
-    if ( isset( $types['htm|html'] ) ) {
1098
-		unset( $types['htm|html'] );
1097
+    if (isset($types['htm|html'])) {
1098
+		unset($types['htm|html']);
1099 1099
 	}
1100 1100
 
1101
-    if ( isset( $types['js'] ) ) {
1102
-		unset( $types['js'] );
1101
+    if (isset($types['js'])) {
1102
+		unset($types['js']);
1103 1103
 	}
1104 1104
 
1105 1105
     return $types;
@@ -1107,21 +1107,21 @@  discard block
 block discarded – undo
1107 1107
 }
1108 1108
 
1109 1109
 
1110
-function getpaid_user_delete_invoice( $data ) {
1110
+function getpaid_user_delete_invoice($data) {
1111 1111
 
1112 1112
     // Ensure there is an invoice to delete.
1113
-    if ( empty( $data['invoice_id'] ) ) {
1113
+    if (empty($data['invoice_id'])) {
1114 1114
         return;
1115 1115
     }
1116 1116
 
1117
-    $invoice = new WPInv_Invoice( (int) $data['invoice_id'] );
1117
+    $invoice = new WPInv_Invoice((int) $data['invoice_id']);
1118 1118
 
1119 1119
     // Ensure that it exists and that it belongs to the current user.
1120
-    if ( ! $invoice->exists() || $invoice->get_customer_id() != get_current_user_id() ) {
1120
+    if (!$invoice->exists() || $invoice->get_customer_id() != get_current_user_id()) {
1121 1121
         $notice = 'perm_delete_invoice';
1122 1122
 
1123 1123
     // Can it be deleted?
1124
-    } elseif ( ! $invoice->needs_payment() ) {
1124
+    } elseif (!$invoice->needs_payment()) {
1125 1125
         $notice = 'cannot_delete_invoice';
1126 1126
 
1127 1127
     // Delete it.
@@ -1140,8 +1140,8 @@  discard block
 block discarded – undo
1140 1140
         )
1141 1141
     );
1142 1142
 
1143
-    wp_safe_redirect( $redirect );
1143
+    wp_safe_redirect($redirect);
1144 1144
     exit;
1145 1145
 
1146 1146
 }
1147
-add_action( 'getpaid_authenticated_action_delete_invoice', 'getpaid_user_delete_invoice' );
1147
+add_action('getpaid_authenticated_action_delete_invoice', 'getpaid_user_delete_invoice');
Please login to merge, or discard this patch.
includes/class-getpaid-invoice-notification-emails.php 2 patches
Indentation   +468 added lines, -468 removed lines patch added patch discarded remove patch
@@ -12,491 +12,491 @@
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Invoice_Notification_Emails {
14 14
 
15
-	/**
16
-	 * The array of invoice email actions.
17
-	 *
18
-	 * @param array
19
-	 */
20
-	public $invoice_actions;
21
-
22
-	/**
23
-	 * Class constructor
24
-	 *
25
-	 */
26
-	public function __construct() {
27
-
28
-		$this->invoice_actions = apply_filters(
29
-			'getpaid_notification_email_invoice_triggers',
30
-			array(
31
-				'getpaid_new_invoice'                   => array( 'new_invoice', 'user_invoice' ),
32
-				'getpaid_invoice_status_wpi-cancelled'  => 'cancelled_invoice',
33
-				'getpaid_invoice_status_wpi-failed'     => 'failed_invoice',
34
-				'getpaid_invoice_status_wpi-onhold'     => 'onhold_invoice',
35
-				'getpaid_invoice_status_wpi-processing' => 'processing_invoice',
36
-				'getpaid_invoice_status_publish'        => 'completed_invoice',
37
-				'getpaid_invoice_status_wpi-renewal'    => 'completed_invoice',
38
-				'getpaid_invoice_status_wpi-refunded'   => 'refunded_invoice',
39
-				'getpaid_new_customer_note'             => 'user_note',
40
-				'getpaid_daily_maintenance'             => 'overdue',
41
-			)
42
-		);
43
-
44
-		$this->init_hooks();
45
-
46
-	}
47
-
48
-	/**
49
-	 * Registers email hooks.
50
-	 */
51
-	public function init_hooks() {
52
-
53
-		add_filter( 'getpaid_get_email_merge_tags', array( $this, 'invoice_merge_tags' ), 10, 2 );
54
-		add_filter( 'getpaid_invoice_email_recipients', array( $this, 'filter_email_recipients' ), 10, 2 );
55
-
56
-		foreach ( $this->invoice_actions as $hook => $email_type ) {
57
-			$this->init_email_type_hook( $hook, $email_type );
58
-		}
59
-	}
60
-
61
-	/**
62
-	 * Registers an email hook for an invoice action.
63
-	 *
64
-	 * @param string $hook
65
-	 * @param string|array $email_type
66
-	 */
67
-	public function init_email_type_hook( $hook, $email_type ) {
68
-
69
-		$email_type = wpinv_parse_list( $email_type );
70
-
71
-		foreach ( $email_type as $type ) {
72
-
73
-			$email = new GetPaid_Notification_Email( $type );
74
-
75
-			// Abort if it is not active.
76
-			if ( ! $email->is_active() ) {
77
-				continue;
78
-			}
79
-
80
-			if ( method_exists( $this, $type ) ) {
81
-				add_action( $hook, array( $this, $type ), 100, 2 );
82
-				continue;
83
-			}
84
-
85
-			do_action( 'getpaid_invoice_init_email_type_hook', $type, $hook );
86
-		}
87
-
88
-	}
89
-
90
-	/**
91
-	 * Filters invoice merge tags.
92
-	 *
93
-	 * @param array $merge_tags
94
-	 * @param mixed|WPInv_Invoice|WPInv_Subscription $object
95
-	 */
96
-	public function invoice_merge_tags( $merge_tags, $object ) {
97
-
98
-		if ( is_a( $object, 'WPInv_Invoice' ) ) {
99
-			return array_merge(
100
-				$merge_tags,
101
-				$this->get_invoice_merge_tags( $object )
102
-			);
103
-		}
104
-
105
-		if ( is_a( $object, 'WPInv_Subscription' ) ) {
106
-			return array_merge(
107
-				$merge_tags,
108
-				$this->get_invoice_merge_tags( $object->get_parent_payment() )
109
-			);
110
-		}
111
-
112
-		return $merge_tags;
113
-
114
-	}
115
-
116
-	/**
117
-	 * Generates invoice merge tags.
118
-	 *
119
-	 * @param WPInv_Invoice $invoice
120
-	 * @return array
121
-	 */
122
-	public function get_invoice_merge_tags( $invoice ) {
123
-
124
-		// Abort if it does not exist.
125
-		if ( ! $invoice->get_id() ) {
126
-			return array();
127
-		}
128
-
129
-		$merge_tags = array(
130
-			'{name}'                 => sanitize_text_field( $invoice->get_user_full_name() ),
131
-			'{full_name}'            => sanitize_text_field( $invoice->get_user_full_name() ),
132
-			'{first_name}'           => sanitize_text_field( $invoice->get_first_name() ),
133
-			'{last_name}'            => sanitize_text_field( $invoice->get_last_name() ),
134
-			'{email}'                => sanitize_email( $invoice->get_email() ),
135
-			'{invoice_number}'       => sanitize_text_field( $invoice->get_number() ),
136
-			'{invoice_currency}'     => sanitize_text_field( $invoice->get_currency() ),
137
-			'{invoice_total}'        => sanitize_text_field( wpinv_price( $invoice->get_total(), $invoice->get_currency() ) ),
138
-			'{invoice_link}'         => esc_url( $invoice->get_view_url() ),
139
-			'{invoice_pay_link}'     => esc_url( $invoice->get_checkout_payment_url() ),
140
-			'{invoice_receipt_link}' => esc_url( $invoice->get_receipt_url() ),
141
-			'{invoice_date}'         => getpaid_format_date_value( $invoice->get_date_created() ),
142
-			'{invoice_due_date}'     => getpaid_format_date_value( $invoice->get_due_date(), __( 'on receipt', 'invoicing' ) ),
143
-			'{invoice_quote}'        => sanitize_text_field( strtolower( $invoice->get_label() ) ),
144
-			'{invoice_label}'        => sanitize_text_field( ucfirst( $invoice->get_label() ) ),
145
-			'{invoice_description}'  => wp_kses_post( $invoice->get_description() ),
146
-			'{subscription_name}'    => wp_kses_post( $invoice->get_subscription_name() ),
147
-			'{is_was}'               => strtotime( $invoice->get_due_date() ) < current_time( 'timestamp' ) ? __( 'was', 'invoicing' ) : __( 'is', 'invoicing' ),
148
-		);
149
-
150
-		$payment_form_data = $invoice->get_meta( 'payment_form_data', true );
151
-
152
-		if ( is_array( $payment_form_data ) ) {
153
-
154
-			foreach ( $payment_form_data as $label => $value ) {
155
-
156
-				$label = preg_replace( '/[^a-z0-9]+/', '_', strtolower( $label ) );
157
-				$value = is_array( $value ) ? implode( ', ', $value ) : $value;
158
-
159
-				if ( is_scalar( $value ) ) {
160
-					$merge_tags[ "{{$label}}" ] = wp_kses_post( $value );
161
-				}
162
-			}
163
-		}
164
-
165
-		return apply_filters( 'getpaid_invoice_email_merge_tags', $merge_tags, $invoice );
166
-	}
167
-
168
-	/**
169
-	 * Helper function to send an email.
170
-	 *
171
-	 * @param WPInv_Invoice $invoice
172
-	 * @param GetPaid_Notification_Email $email
173
-	 * @param string $type
174
-	 * @param string|array $recipients
175
-	 * @param array $extra_args Extra template args.
176
-	 */
177
-	public function send_email( $invoice, $email, $type, $recipients, $extra_args = array() ) {
178
-
179
-		do_action( 'getpaid_before_send_invoice_notification', $type, $invoice, $email );
180
-
181
-		$skip = $invoice->is_free() && wpinv_get_option( 'skip_email_free_invoice' );
182
-		if ( apply_filters( 'getpaid_skip_invoice_email', $skip, $type, $invoice ) ) {
183
-			return;
184
-		}
185
-
186
-		$mailer     = new GetPaid_Notification_Email_Sender();
187
-		$merge_tags = $email->get_merge_tags();
188
-
189
-		$result = $mailer->send(
190
-			apply_filters( 'getpaid_invoice_email_recipients', wpinv_parse_list( $recipients ), $email ),
191
-			$email->add_merge_tags( $email->get_subject(), $merge_tags ),
192
-			$email->get_content( $merge_tags, $extra_args ),
193
-			$email->get_attachments()
194
-		);
195
-
196
-		// Maybe send a copy to the admin.
197
-		if ( $email->include_admin_bcc() ) {
198
-			$mailer->send(
199
-				wpinv_get_admin_email(),
200
-				$email->add_merge_tags( $email->get_subject() . __( ' - ADMIN BCC COPY', 'invoicing' ), $merge_tags ),
201
-				$email->get_content( $merge_tags ),
202
-				$email->get_attachments()
203
-			);
204
-		}
205
-
206
-		if ( $result ) {
207
-			$invoice->add_system_note(
208
-				sprintf(
209
-					// translators: %1 is the email type, %2 is the invoice recipient.
210
-					__( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ),
211
-					sanitize_key( $type ),
212
-					$email->is_admin_email() ? __( 'admin', 'invoicing' ) : __( 'the customer', 'invoicing' )
213
-				)
214
-			);
215
-		} else {
216
-			$invoice->add_system_note(
217
-				sprintf(
218
-					// translators: %1 is the email type, %2 is the invoice recipient.
219
-					__( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ),
220
-					sanitize_key( $type ),
221
-					$email->is_admin_email() ? __( 'admin', 'invoicing' ) : __( 'the customer', 'invoicing' )
222
-				)
223
-			);
224
-		}
225
-
226
-		do_action( 'getpaid_after_send_invoice_notification', $type, $invoice, $email );
227
-
228
-		return $result;
229
-	}
230
-
231
-	/**
232
-	 * Also send emails to any cc users.
233
-	 *
234
-	 * @param array $recipients
235
-	 * @param GetPaid_Notification_Email $email
236
-	 */
237
-	public function filter_email_recipients( $recipients, $email ) {
238
-
239
-		if ( ! $email->is_admin_email() ) {
240
-			$cc   = $email->object->get_email_cc();
241
-			$cc_2 = get_user_meta( $email->object->get_user_id(), '_wpinv_email_cc', true );
242
-
243
-			if ( ! empty( $cc ) ) {
244
-				$cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) );
245
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) );
246
-			}
247
-
248
-			if ( ! empty( $cc_2 ) ) {
249
-				$cc_2 = array_map( 'sanitize_email', wpinv_parse_list( $cc_2 ) );
250
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc_2 ) ) );
251
-			}
252
-		}
253
-
254
-		return $recipients;
255
-
256
-	}
257
-
258
-	/**
259
-	 * Sends a new invoice notification.
260
-	 *
261
-	 * @param WPInv_Invoice $invoice
262
-	 */
263
-	public function new_invoice( $invoice ) {
264
-
265
-		// Only send this email for invoices created via the admin page.
266
-		if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_paid() || $this->is_payment_form_invoice( $invoice->get_id() ) ) {
267
-			return;
268
-		}
269
-
270
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
271
-		$recipient = wpinv_get_admin_email();
272
-
273
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
274
-
275
-	}
276
-
277
-	/**
278
-	 * Sends a cancelled invoice notification.
279
-	 *
280
-	 * @param WPInv_Invoice $invoice
281
-	 */
282
-	public function cancelled_invoice( $invoice ) {
283
-
284
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
285
-		$recipient = $invoice->get_email();
286
-
287
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
288
-	}
289
-
290
-	/**
291
-	 * Sends a failed invoice notification.
292
-	 *
293
-	 * @param WPInv_Invoice $invoice
294
-	 */
295
-	public function failed_invoice( $invoice ) {
296
-
297
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
298
-		$recipient = wpinv_get_admin_email();
299
-
300
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
301
-
302
-	}
303
-
304
-	/**
305
-	 * Sends a notification whenever an invoice is put on hold.
306
-	 *
307
-	 * @param WPInv_Invoice $invoice
308
-	 */
309
-	public function onhold_invoice( $invoice ) {
310
-
311
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
312
-		$recipient = $invoice->get_email();
313
-
314
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
315
-
316
-	}
317
-
318
-	/**
319
-	 * Sends a notification whenever an invoice is marked as processing payment.
320
-	 *
321
-	 * @param WPInv_Invoice $invoice
322
-	 */
323
-	public function processing_invoice( $invoice ) {
324
-
325
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
326
-		$recipient = $invoice->get_email();
327
-
328
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
329
-
330
-	}
331
-
332
-	/**
333
-	 * Sends a notification whenever an invoice is paid.
334
-	 *
335
-	 * @param WPInv_Invoice $invoice
336
-	 */
337
-	public function completed_invoice( $invoice ) {
338
-
339
-		// (Maybe) abort if it is a renewal invoice.
340
-		if ( $invoice->is_renewal() && ! wpinv_get_option( 'email_completed_invoice_renewal_active', false ) ) {
341
-			return;
342
-		}
343
-
344
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
345
-		$recipient = $invoice->get_email();
346
-
347
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
348
-
349
-	}
15
+    /**
16
+     * The array of invoice email actions.
17
+     *
18
+     * @param array
19
+     */
20
+    public $invoice_actions;
21
+
22
+    /**
23
+     * Class constructor
24
+     *
25
+     */
26
+    public function __construct() {
27
+
28
+        $this->invoice_actions = apply_filters(
29
+            'getpaid_notification_email_invoice_triggers',
30
+            array(
31
+                'getpaid_new_invoice'                   => array( 'new_invoice', 'user_invoice' ),
32
+                'getpaid_invoice_status_wpi-cancelled'  => 'cancelled_invoice',
33
+                'getpaid_invoice_status_wpi-failed'     => 'failed_invoice',
34
+                'getpaid_invoice_status_wpi-onhold'     => 'onhold_invoice',
35
+                'getpaid_invoice_status_wpi-processing' => 'processing_invoice',
36
+                'getpaid_invoice_status_publish'        => 'completed_invoice',
37
+                'getpaid_invoice_status_wpi-renewal'    => 'completed_invoice',
38
+                'getpaid_invoice_status_wpi-refunded'   => 'refunded_invoice',
39
+                'getpaid_new_customer_note'             => 'user_note',
40
+                'getpaid_daily_maintenance'             => 'overdue',
41
+            )
42
+        );
43
+
44
+        $this->init_hooks();
45
+
46
+    }
47
+
48
+    /**
49
+     * Registers email hooks.
50
+     */
51
+    public function init_hooks() {
52
+
53
+        add_filter( 'getpaid_get_email_merge_tags', array( $this, 'invoice_merge_tags' ), 10, 2 );
54
+        add_filter( 'getpaid_invoice_email_recipients', array( $this, 'filter_email_recipients' ), 10, 2 );
55
+
56
+        foreach ( $this->invoice_actions as $hook => $email_type ) {
57
+            $this->init_email_type_hook( $hook, $email_type );
58
+        }
59
+    }
60
+
61
+    /**
62
+     * Registers an email hook for an invoice action.
63
+     *
64
+     * @param string $hook
65
+     * @param string|array $email_type
66
+     */
67
+    public function init_email_type_hook( $hook, $email_type ) {
68
+
69
+        $email_type = wpinv_parse_list( $email_type );
70
+
71
+        foreach ( $email_type as $type ) {
72
+
73
+            $email = new GetPaid_Notification_Email( $type );
74
+
75
+            // Abort if it is not active.
76
+            if ( ! $email->is_active() ) {
77
+                continue;
78
+            }
79
+
80
+            if ( method_exists( $this, $type ) ) {
81
+                add_action( $hook, array( $this, $type ), 100, 2 );
82
+                continue;
83
+            }
84
+
85
+            do_action( 'getpaid_invoice_init_email_type_hook', $type, $hook );
86
+        }
87
+
88
+    }
89
+
90
+    /**
91
+     * Filters invoice merge tags.
92
+     *
93
+     * @param array $merge_tags
94
+     * @param mixed|WPInv_Invoice|WPInv_Subscription $object
95
+     */
96
+    public function invoice_merge_tags( $merge_tags, $object ) {
97
+
98
+        if ( is_a( $object, 'WPInv_Invoice' ) ) {
99
+            return array_merge(
100
+                $merge_tags,
101
+                $this->get_invoice_merge_tags( $object )
102
+            );
103
+        }
104
+
105
+        if ( is_a( $object, 'WPInv_Subscription' ) ) {
106
+            return array_merge(
107
+                $merge_tags,
108
+                $this->get_invoice_merge_tags( $object->get_parent_payment() )
109
+            );
110
+        }
111
+
112
+        return $merge_tags;
113
+
114
+    }
115
+
116
+    /**
117
+     * Generates invoice merge tags.
118
+     *
119
+     * @param WPInv_Invoice $invoice
120
+     * @return array
121
+     */
122
+    public function get_invoice_merge_tags( $invoice ) {
123
+
124
+        // Abort if it does not exist.
125
+        if ( ! $invoice->get_id() ) {
126
+            return array();
127
+        }
128
+
129
+        $merge_tags = array(
130
+            '{name}'                 => sanitize_text_field( $invoice->get_user_full_name() ),
131
+            '{full_name}'            => sanitize_text_field( $invoice->get_user_full_name() ),
132
+            '{first_name}'           => sanitize_text_field( $invoice->get_first_name() ),
133
+            '{last_name}'            => sanitize_text_field( $invoice->get_last_name() ),
134
+            '{email}'                => sanitize_email( $invoice->get_email() ),
135
+            '{invoice_number}'       => sanitize_text_field( $invoice->get_number() ),
136
+            '{invoice_currency}'     => sanitize_text_field( $invoice->get_currency() ),
137
+            '{invoice_total}'        => sanitize_text_field( wpinv_price( $invoice->get_total(), $invoice->get_currency() ) ),
138
+            '{invoice_link}'         => esc_url( $invoice->get_view_url() ),
139
+            '{invoice_pay_link}'     => esc_url( $invoice->get_checkout_payment_url() ),
140
+            '{invoice_receipt_link}' => esc_url( $invoice->get_receipt_url() ),
141
+            '{invoice_date}'         => getpaid_format_date_value( $invoice->get_date_created() ),
142
+            '{invoice_due_date}'     => getpaid_format_date_value( $invoice->get_due_date(), __( 'on receipt', 'invoicing' ) ),
143
+            '{invoice_quote}'        => sanitize_text_field( strtolower( $invoice->get_label() ) ),
144
+            '{invoice_label}'        => sanitize_text_field( ucfirst( $invoice->get_label() ) ),
145
+            '{invoice_description}'  => wp_kses_post( $invoice->get_description() ),
146
+            '{subscription_name}'    => wp_kses_post( $invoice->get_subscription_name() ),
147
+            '{is_was}'               => strtotime( $invoice->get_due_date() ) < current_time( 'timestamp' ) ? __( 'was', 'invoicing' ) : __( 'is', 'invoicing' ),
148
+        );
149
+
150
+        $payment_form_data = $invoice->get_meta( 'payment_form_data', true );
151
+
152
+        if ( is_array( $payment_form_data ) ) {
153
+
154
+            foreach ( $payment_form_data as $label => $value ) {
155
+
156
+                $label = preg_replace( '/[^a-z0-9]+/', '_', strtolower( $label ) );
157
+                $value = is_array( $value ) ? implode( ', ', $value ) : $value;
158
+
159
+                if ( is_scalar( $value ) ) {
160
+                    $merge_tags[ "{{$label}}" ] = wp_kses_post( $value );
161
+                }
162
+            }
163
+        }
164
+
165
+        return apply_filters( 'getpaid_invoice_email_merge_tags', $merge_tags, $invoice );
166
+    }
350 167
 
351
-	/**
352
-	 * Sends a notification whenever an invoice is refunded.
353
-	 *
354
-	 * @param WPInv_Invoice $invoice
355
-	 */
356
-	public function refunded_invoice( $invoice ) {
357
-
358
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
359
-		$recipient = $invoice->get_email();
360
-
361
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
362
-
363
-	}
168
+    /**
169
+     * Helper function to send an email.
170
+     *
171
+     * @param WPInv_Invoice $invoice
172
+     * @param GetPaid_Notification_Email $email
173
+     * @param string $type
174
+     * @param string|array $recipients
175
+     * @param array $extra_args Extra template args.
176
+     */
177
+    public function send_email( $invoice, $email, $type, $recipients, $extra_args = array() ) {
364 178
 
365
-	/**
366
-	 * Notifies a user about new invoices
367
-	 *
368
-	 * @param WPInv_Invoice $invoice
369
-	 * @param bool $force
370
-	 */
371
-	public function user_invoice( $invoice, $force = false ) {
179
+        do_action( 'getpaid_before_send_invoice_notification', $type, $invoice, $email );
372 180
 
373
-		if ( ! $force && ! empty( $GLOBALS['wpinv_skip_invoice_notification'] ) ) {
374
-			return;
375
-		}
376
-
377
-		// Only send this email for invoices created via the admin page.
378
-		if ( ! $invoice->is_type( 'invoice' ) || ( empty( $force ) && $invoice->is_paid() ) || ( empty( $force ) && $this->is_payment_form_invoice( $invoice->get_id() ) ) ) {
379
-			return;
380
-		}
381
-
382
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
383
-		$recipient = $invoice->get_email();
384
-
385
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
386
-
387
-	}
388
-
389
-	/**
390
-	 * Checks if an invoice is a payment form invoice.
391
-	 *
392
-	 * @param int $invoice
393
-	 * @return bool
394
-	 */
395
-	public function is_payment_form_invoice( $invoice ) {
396
-		$created_via             = get_post_meta( $invoice, 'wpinv_created_via', true );
397
-		$is_payment_form_invoice = 'payment_form' === $created_via || 'geodirectory' === $created_via;
398
-		$is_payment_form_invoice = apply_filters( 'getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice );
399
-		return empty( $_GET['getpaid-admin-action'] ) && $is_payment_form_invoice;
400
-	}
401
-
402
-	/**
403
-	 * Notifies admin about new invoice notes
404
-	 *
405
-	 * @param WPInv_Invoice $invoice
406
-	 * @param string $note
407
-	 */
408
-	public function user_note( $invoice, $note ) {
409
-
410
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
411
-		$recipient = $invoice->get_email();
412
-
413
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient, array( 'customer_note' => $note ) );
414
-
415
-	}
416
-
417
-	/**
418
-	 * (Force) Sends overdue notices.
419
-	 *
420
-	 * @param WPInv_Invoice $invoice
421
-	 */
422
-	public function force_send_overdue_notice( $invoice ) {
423
-		$email = new GetPaid_Notification_Email( 'overdue', $invoice );
424
-		return $this->send_email( $invoice, $email, 'overdue', $invoice->get_email() );
425
-	}
426
-
427
-	/**
428
-	 * Sends overdue notices.
429
-	 *
430
-	 * @TODO: Create an invoices query class.
431
-	 */
432
-	public function overdue() {
433
-		global $wpdb;
434
-
435
-		$email = new GetPaid_Notification_Email( __FUNCTION__ );
436
-
437
-		// Fetch reminder days.
438
-		$reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
439
-
440
-		// Abort if non is set.
441
-		if ( empty( $reminder_days ) ) {
442
-			return;
443
-		}
444
-
445
-		// Retrieve date query.
446
-		$date_query = $this->get_date_query( $reminder_days );
447
-
448
-		// Invoices table.
449
-		$table = $wpdb->prefix . 'getpaid_invoices';
450
-
451
-		// Fetch invoices.
452
-		$invoices  = $wpdb->get_col(
453
-			"SELECT posts.ID FROM $wpdb->posts as posts
181
+        $skip = $invoice->is_free() && wpinv_get_option( 'skip_email_free_invoice' );
182
+        if ( apply_filters( 'getpaid_skip_invoice_email', $skip, $type, $invoice ) ) {
183
+            return;
184
+        }
185
+
186
+        $mailer     = new GetPaid_Notification_Email_Sender();
187
+        $merge_tags = $email->get_merge_tags();
188
+
189
+        $result = $mailer->send(
190
+            apply_filters( 'getpaid_invoice_email_recipients', wpinv_parse_list( $recipients ), $email ),
191
+            $email->add_merge_tags( $email->get_subject(), $merge_tags ),
192
+            $email->get_content( $merge_tags, $extra_args ),
193
+            $email->get_attachments()
194
+        );
195
+
196
+        // Maybe send a copy to the admin.
197
+        if ( $email->include_admin_bcc() ) {
198
+            $mailer->send(
199
+                wpinv_get_admin_email(),
200
+                $email->add_merge_tags( $email->get_subject() . __( ' - ADMIN BCC COPY', 'invoicing' ), $merge_tags ),
201
+                $email->get_content( $merge_tags ),
202
+                $email->get_attachments()
203
+            );
204
+        }
205
+
206
+        if ( $result ) {
207
+            $invoice->add_system_note(
208
+                sprintf(
209
+                    // translators: %1 is the email type, %2 is the invoice recipient.
210
+                    __( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ),
211
+                    sanitize_key( $type ),
212
+                    $email->is_admin_email() ? __( 'admin', 'invoicing' ) : __( 'the customer', 'invoicing' )
213
+                )
214
+            );
215
+        } else {
216
+            $invoice->add_system_note(
217
+                sprintf(
218
+                    // translators: %1 is the email type, %2 is the invoice recipient.
219
+                    __( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ),
220
+                    sanitize_key( $type ),
221
+                    $email->is_admin_email() ? __( 'admin', 'invoicing' ) : __( 'the customer', 'invoicing' )
222
+                )
223
+            );
224
+        }
225
+
226
+        do_action( 'getpaid_after_send_invoice_notification', $type, $invoice, $email );
227
+
228
+        return $result;
229
+    }
230
+
231
+    /**
232
+     * Also send emails to any cc users.
233
+     *
234
+     * @param array $recipients
235
+     * @param GetPaid_Notification_Email $email
236
+     */
237
+    public function filter_email_recipients( $recipients, $email ) {
238
+
239
+        if ( ! $email->is_admin_email() ) {
240
+            $cc   = $email->object->get_email_cc();
241
+            $cc_2 = get_user_meta( $email->object->get_user_id(), '_wpinv_email_cc', true );
242
+
243
+            if ( ! empty( $cc ) ) {
244
+                $cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) );
245
+                $recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) );
246
+            }
247
+
248
+            if ( ! empty( $cc_2 ) ) {
249
+                $cc_2 = array_map( 'sanitize_email', wpinv_parse_list( $cc_2 ) );
250
+                $recipients = array_filter( array_unique( array_merge( $recipients, $cc_2 ) ) );
251
+            }
252
+        }
253
+
254
+        return $recipients;
255
+
256
+    }
257
+
258
+    /**
259
+     * Sends a new invoice notification.
260
+     *
261
+     * @param WPInv_Invoice $invoice
262
+     */
263
+    public function new_invoice( $invoice ) {
264
+
265
+        // Only send this email for invoices created via the admin page.
266
+        if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_paid() || $this->is_payment_form_invoice( $invoice->get_id() ) ) {
267
+            return;
268
+        }
269
+
270
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
271
+        $recipient = wpinv_get_admin_email();
272
+
273
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
274
+
275
+    }
276
+
277
+    /**
278
+     * Sends a cancelled invoice notification.
279
+     *
280
+     * @param WPInv_Invoice $invoice
281
+     */
282
+    public function cancelled_invoice( $invoice ) {
283
+
284
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
285
+        $recipient = $invoice->get_email();
286
+
287
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
288
+    }
289
+
290
+    /**
291
+     * Sends a failed invoice notification.
292
+     *
293
+     * @param WPInv_Invoice $invoice
294
+     */
295
+    public function failed_invoice( $invoice ) {
296
+
297
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
298
+        $recipient = wpinv_get_admin_email();
299
+
300
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
301
+
302
+    }
303
+
304
+    /**
305
+     * Sends a notification whenever an invoice is put on hold.
306
+     *
307
+     * @param WPInv_Invoice $invoice
308
+     */
309
+    public function onhold_invoice( $invoice ) {
310
+
311
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
312
+        $recipient = $invoice->get_email();
313
+
314
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
315
+
316
+    }
317
+
318
+    /**
319
+     * Sends a notification whenever an invoice is marked as processing payment.
320
+     *
321
+     * @param WPInv_Invoice $invoice
322
+     */
323
+    public function processing_invoice( $invoice ) {
324
+
325
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
326
+        $recipient = $invoice->get_email();
327
+
328
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
329
+
330
+    }
331
+
332
+    /**
333
+     * Sends a notification whenever an invoice is paid.
334
+     *
335
+     * @param WPInv_Invoice $invoice
336
+     */
337
+    public function completed_invoice( $invoice ) {
338
+
339
+        // (Maybe) abort if it is a renewal invoice.
340
+        if ( $invoice->is_renewal() && ! wpinv_get_option( 'email_completed_invoice_renewal_active', false ) ) {
341
+            return;
342
+        }
343
+
344
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
345
+        $recipient = $invoice->get_email();
346
+
347
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
348
+
349
+    }
350
+
351
+    /**
352
+     * Sends a notification whenever an invoice is refunded.
353
+     *
354
+     * @param WPInv_Invoice $invoice
355
+     */
356
+    public function refunded_invoice( $invoice ) {
357
+
358
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
359
+        $recipient = $invoice->get_email();
360
+
361
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
362
+
363
+    }
364
+
365
+    /**
366
+     * Notifies a user about new invoices
367
+     *
368
+     * @param WPInv_Invoice $invoice
369
+     * @param bool $force
370
+     */
371
+    public function user_invoice( $invoice, $force = false ) {
372
+
373
+        if ( ! $force && ! empty( $GLOBALS['wpinv_skip_invoice_notification'] ) ) {
374
+            return;
375
+        }
376
+
377
+        // Only send this email for invoices created via the admin page.
378
+        if ( ! $invoice->is_type( 'invoice' ) || ( empty( $force ) && $invoice->is_paid() ) || ( empty( $force ) && $this->is_payment_form_invoice( $invoice->get_id() ) ) ) {
379
+            return;
380
+        }
381
+
382
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
383
+        $recipient = $invoice->get_email();
384
+
385
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
386
+
387
+    }
388
+
389
+    /**
390
+     * Checks if an invoice is a payment form invoice.
391
+     *
392
+     * @param int $invoice
393
+     * @return bool
394
+     */
395
+    public function is_payment_form_invoice( $invoice ) {
396
+        $created_via             = get_post_meta( $invoice, 'wpinv_created_via', true );
397
+        $is_payment_form_invoice = 'payment_form' === $created_via || 'geodirectory' === $created_via;
398
+        $is_payment_form_invoice = apply_filters( 'getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice );
399
+        return empty( $_GET['getpaid-admin-action'] ) && $is_payment_form_invoice;
400
+    }
401
+
402
+    /**
403
+     * Notifies admin about new invoice notes
404
+     *
405
+     * @param WPInv_Invoice $invoice
406
+     * @param string $note
407
+     */
408
+    public function user_note( $invoice, $note ) {
409
+
410
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
411
+        $recipient = $invoice->get_email();
412
+
413
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient, array( 'customer_note' => $note ) );
414
+
415
+    }
416
+
417
+    /**
418
+     * (Force) Sends overdue notices.
419
+     *
420
+     * @param WPInv_Invoice $invoice
421
+     */
422
+    public function force_send_overdue_notice( $invoice ) {
423
+        $email = new GetPaid_Notification_Email( 'overdue', $invoice );
424
+        return $this->send_email( $invoice, $email, 'overdue', $invoice->get_email() );
425
+    }
426
+
427
+    /**
428
+     * Sends overdue notices.
429
+     *
430
+     * @TODO: Create an invoices query class.
431
+     */
432
+    public function overdue() {
433
+        global $wpdb;
434
+
435
+        $email = new GetPaid_Notification_Email( __FUNCTION__ );
436
+
437
+        // Fetch reminder days.
438
+        $reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
439
+
440
+        // Abort if non is set.
441
+        if ( empty( $reminder_days ) ) {
442
+            return;
443
+        }
444
+
445
+        // Retrieve date query.
446
+        $date_query = $this->get_date_query( $reminder_days );
447
+
448
+        // Invoices table.
449
+        $table = $wpdb->prefix . 'getpaid_invoices';
450
+
451
+        // Fetch invoices.
452
+        $invoices  = $wpdb->get_col(
453
+            "SELECT posts.ID FROM $wpdb->posts as posts
454 454
 			LEFT JOIN $table as invoices ON invoices.post_id = posts.ID
455 455
 			WHERE posts.post_type = 'wpi_invoice' AND posts.post_status = 'wpi-pending' $date_query"
456 456
         );
457 457
 
458
-		foreach ( $invoices as $invoice ) {
458
+        foreach ( $invoices as $invoice ) {
459 459
 
460
-			// Only send this email for invoices created via the admin page.
461
-			if ( ! $this->is_payment_form_invoice( $invoice ) ) {
462
-				$invoice       = new WPInv_Invoice( $invoice );
463
-				$email->object = $invoice;
460
+            // Only send this email for invoices created via the admin page.
461
+            if ( ! $this->is_payment_form_invoice( $invoice ) ) {
462
+                $invoice       = new WPInv_Invoice( $invoice );
463
+                $email->object = $invoice;
464 464
 
465
-				if ( $invoice->needs_payment() && ! $invoice->is_renewal() ) {
466
-					$this->send_email( $invoice, $email, __FUNCTION__, $invoice->get_email() );
467
-				}
468
-			}
469
-		}
465
+                if ( $invoice->needs_payment() && ! $invoice->is_renewal() ) {
466
+                    $this->send_email( $invoice, $email, __FUNCTION__, $invoice->get_email() );
467
+                }
468
+            }
469
+        }
470 470
 
471
-	}
471
+    }
472 472
 
473
-	/**
474
-	 * Calculates the date query for an invoices query
475
-	 *
476
-	 * @param array $reminder_days
477
-	 * @return string
478
-	 */
479
-	public function get_date_query( $reminder_days ) {
473
+    /**
474
+     * Calculates the date query for an invoices query
475
+     *
476
+     * @param array $reminder_days
477
+     * @return string
478
+     */
479
+    public function get_date_query( $reminder_days ) {
480 480
 
481
-		$date_query = array(
482
-			'relation' => 'OR',
483
-		);
481
+        $date_query = array(
482
+            'relation' => 'OR',
483
+        );
484 484
 
485
-		foreach ( $reminder_days as $days ) {
486
-			$date = date_parse( date( 'Y-m-d', strtotime( "-$days days", current_time( 'timestamp' ) ) ) );
485
+        foreach ( $reminder_days as $days ) {
486
+            $date = date_parse( date( 'Y-m-d', strtotime( "-$days days", current_time( 'timestamp' ) ) ) );
487 487
 
488
-			$date_query[] = array(
489
-				'year'  => $date['year'],
490
-				'month' => $date['month'],
491
-				'day'   => $date['day'],
492
-			);
488
+            $date_query[] = array(
489
+                'year'  => $date['year'],
490
+                'month' => $date['month'],
491
+                'day'   => $date['day'],
492
+            );
493 493
 
494
-		}
494
+        }
495 495
 
496
-		$date_query = new WP_Date_Query( $date_query, 'invoices.due_date' );
496
+        $date_query = new WP_Date_Query( $date_query, 'invoices.due_date' );
497 497
 
498
-		return $date_query->get_sql();
498
+        return $date_query->get_sql();
499 499
 
500
-	}
500
+    }
501 501
 
502 502
 }
Please login to merge, or discard this patch.
Spacing   +126 added lines, -126 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
  * This class handles invoice notificaiton emails.
@@ -28,7 +28,7 @@  discard block
 block discarded – undo
28 28
 		$this->invoice_actions = apply_filters(
29 29
 			'getpaid_notification_email_invoice_triggers',
30 30
 			array(
31
-				'getpaid_new_invoice'                   => array( 'new_invoice', 'user_invoice' ),
31
+				'getpaid_new_invoice'                   => array('new_invoice', 'user_invoice'),
32 32
 				'getpaid_invoice_status_wpi-cancelled'  => 'cancelled_invoice',
33 33
 				'getpaid_invoice_status_wpi-failed'     => 'failed_invoice',
34 34
 				'getpaid_invoice_status_wpi-onhold'     => 'onhold_invoice',
@@ -50,11 +50,11 @@  discard block
 block discarded – undo
50 50
 	 */
51 51
 	public function init_hooks() {
52 52
 
53
-		add_filter( 'getpaid_get_email_merge_tags', array( $this, 'invoice_merge_tags' ), 10, 2 );
54
-		add_filter( 'getpaid_invoice_email_recipients', array( $this, 'filter_email_recipients' ), 10, 2 );
53
+		add_filter('getpaid_get_email_merge_tags', array($this, 'invoice_merge_tags'), 10, 2);
54
+		add_filter('getpaid_invoice_email_recipients', array($this, 'filter_email_recipients'), 10, 2);
55 55
 
56
-		foreach ( $this->invoice_actions as $hook => $email_type ) {
57
-			$this->init_email_type_hook( $hook, $email_type );
56
+		foreach ($this->invoice_actions as $hook => $email_type) {
57
+			$this->init_email_type_hook($hook, $email_type);
58 58
 		}
59 59
 	}
60 60
 
@@ -64,25 +64,25 @@  discard block
 block discarded – undo
64 64
 	 * @param string $hook
65 65
 	 * @param string|array $email_type
66 66
 	 */
67
-	public function init_email_type_hook( $hook, $email_type ) {
67
+	public function init_email_type_hook($hook, $email_type) {
68 68
 
69
-		$email_type = wpinv_parse_list( $email_type );
69
+		$email_type = wpinv_parse_list($email_type);
70 70
 
71
-		foreach ( $email_type as $type ) {
71
+		foreach ($email_type as $type) {
72 72
 
73
-			$email = new GetPaid_Notification_Email( $type );
73
+			$email = new GetPaid_Notification_Email($type);
74 74
 
75 75
 			// Abort if it is not active.
76
-			if ( ! $email->is_active() ) {
76
+			if (!$email->is_active()) {
77 77
 				continue;
78 78
 			}
79 79
 
80
-			if ( method_exists( $this, $type ) ) {
81
-				add_action( $hook, array( $this, $type ), 100, 2 );
80
+			if (method_exists($this, $type)) {
81
+				add_action($hook, array($this, $type), 100, 2);
82 82
 				continue;
83 83
 			}
84 84
 
85
-			do_action( 'getpaid_invoice_init_email_type_hook', $type, $hook );
85
+			do_action('getpaid_invoice_init_email_type_hook', $type, $hook);
86 86
 		}
87 87
 
88 88
 	}
@@ -93,19 +93,19 @@  discard block
 block discarded – undo
93 93
 	 * @param array $merge_tags
94 94
 	 * @param mixed|WPInv_Invoice|WPInv_Subscription $object
95 95
 	 */
96
-	public function invoice_merge_tags( $merge_tags, $object ) {
96
+	public function invoice_merge_tags($merge_tags, $object) {
97 97
 
98
-		if ( is_a( $object, 'WPInv_Invoice' ) ) {
98
+		if (is_a($object, 'WPInv_Invoice')) {
99 99
 			return array_merge(
100 100
 				$merge_tags,
101
-				$this->get_invoice_merge_tags( $object )
101
+				$this->get_invoice_merge_tags($object)
102 102
 			);
103 103
 		}
104 104
 
105
-		if ( is_a( $object, 'WPInv_Subscription' ) ) {
105
+		if (is_a($object, 'WPInv_Subscription')) {
106 106
 			return array_merge(
107 107
 				$merge_tags,
108
-				$this->get_invoice_merge_tags( $object->get_parent_payment() )
108
+				$this->get_invoice_merge_tags($object->get_parent_payment())
109 109
 			);
110 110
 		}
111 111
 
@@ -119,50 +119,50 @@  discard block
 block discarded – undo
119 119
 	 * @param WPInv_Invoice $invoice
120 120
 	 * @return array
121 121
 	 */
122
-	public function get_invoice_merge_tags( $invoice ) {
122
+	public function get_invoice_merge_tags($invoice) {
123 123
 
124 124
 		// Abort if it does not exist.
125
-		if ( ! $invoice->get_id() ) {
125
+		if (!$invoice->get_id()) {
126 126
 			return array();
127 127
 		}
128 128
 
129 129
 		$merge_tags = array(
130
-			'{name}'                 => sanitize_text_field( $invoice->get_user_full_name() ),
131
-			'{full_name}'            => sanitize_text_field( $invoice->get_user_full_name() ),
132
-			'{first_name}'           => sanitize_text_field( $invoice->get_first_name() ),
133
-			'{last_name}'            => sanitize_text_field( $invoice->get_last_name() ),
134
-			'{email}'                => sanitize_email( $invoice->get_email() ),
135
-			'{invoice_number}'       => sanitize_text_field( $invoice->get_number() ),
136
-			'{invoice_currency}'     => sanitize_text_field( $invoice->get_currency() ),
137
-			'{invoice_total}'        => sanitize_text_field( wpinv_price( $invoice->get_total(), $invoice->get_currency() ) ),
138
-			'{invoice_link}'         => esc_url( $invoice->get_view_url() ),
139
-			'{invoice_pay_link}'     => esc_url( $invoice->get_checkout_payment_url() ),
140
-			'{invoice_receipt_link}' => esc_url( $invoice->get_receipt_url() ),
141
-			'{invoice_date}'         => getpaid_format_date_value( $invoice->get_date_created() ),
142
-			'{invoice_due_date}'     => getpaid_format_date_value( $invoice->get_due_date(), __( 'on receipt', 'invoicing' ) ),
143
-			'{invoice_quote}'        => sanitize_text_field( strtolower( $invoice->get_label() ) ),
144
-			'{invoice_label}'        => sanitize_text_field( ucfirst( $invoice->get_label() ) ),
145
-			'{invoice_description}'  => wp_kses_post( $invoice->get_description() ),
146
-			'{subscription_name}'    => wp_kses_post( $invoice->get_subscription_name() ),
147
-			'{is_was}'               => strtotime( $invoice->get_due_date() ) < current_time( 'timestamp' ) ? __( 'was', 'invoicing' ) : __( 'is', 'invoicing' ),
130
+			'{name}'                 => sanitize_text_field($invoice->get_user_full_name()),
131
+			'{full_name}'            => sanitize_text_field($invoice->get_user_full_name()),
132
+			'{first_name}'           => sanitize_text_field($invoice->get_first_name()),
133
+			'{last_name}'            => sanitize_text_field($invoice->get_last_name()),
134
+			'{email}'                => sanitize_email($invoice->get_email()),
135
+			'{invoice_number}'       => sanitize_text_field($invoice->get_number()),
136
+			'{invoice_currency}'     => sanitize_text_field($invoice->get_currency()),
137
+			'{invoice_total}'        => sanitize_text_field(wpinv_price($invoice->get_total(), $invoice->get_currency())),
138
+			'{invoice_link}'         => esc_url($invoice->get_view_url()),
139
+			'{invoice_pay_link}'     => esc_url($invoice->get_checkout_payment_url()),
140
+			'{invoice_receipt_link}' => esc_url($invoice->get_receipt_url()),
141
+			'{invoice_date}'         => getpaid_format_date_value($invoice->get_date_created()),
142
+			'{invoice_due_date}'     => getpaid_format_date_value($invoice->get_due_date(), __('on receipt', 'invoicing')),
143
+			'{invoice_quote}'        => sanitize_text_field(strtolower($invoice->get_label())),
144
+			'{invoice_label}'        => sanitize_text_field(ucfirst($invoice->get_label())),
145
+			'{invoice_description}'  => wp_kses_post($invoice->get_description()),
146
+			'{subscription_name}'    => wp_kses_post($invoice->get_subscription_name()),
147
+			'{is_was}'               => strtotime($invoice->get_due_date()) < current_time('timestamp') ? __('was', 'invoicing') : __('is', 'invoicing'),
148 148
 		);
149 149
 
150
-		$payment_form_data = $invoice->get_meta( 'payment_form_data', true );
150
+		$payment_form_data = $invoice->get_meta('payment_form_data', true);
151 151
 
152
-		if ( is_array( $payment_form_data ) ) {
152
+		if (is_array($payment_form_data)) {
153 153
 
154
-			foreach ( $payment_form_data as $label => $value ) {
154
+			foreach ($payment_form_data as $label => $value) {
155 155
 
156
-				$label = preg_replace( '/[^a-z0-9]+/', '_', strtolower( $label ) );
157
-				$value = is_array( $value ) ? implode( ', ', $value ) : $value;
156
+				$label = preg_replace('/[^a-z0-9]+/', '_', strtolower($label));
157
+				$value = is_array($value) ? implode(', ', $value) : $value;
158 158
 
159
-				if ( is_scalar( $value ) ) {
160
-					$merge_tags[ "{{$label}}" ] = wp_kses_post( $value );
159
+				if (is_scalar($value)) {
160
+					$merge_tags["{{$label}}"] = wp_kses_post($value);
161 161
 				}
162 162
 			}
163 163
 		}
164 164
 
165
-		return apply_filters( 'getpaid_invoice_email_merge_tags', $merge_tags, $invoice );
165
+		return apply_filters('getpaid_invoice_email_merge_tags', $merge_tags, $invoice);
166 166
 	}
167 167
 
168 168
 	/**
@@ -174,12 +174,12 @@  discard block
 block discarded – undo
174 174
 	 * @param string|array $recipients
175 175
 	 * @param array $extra_args Extra template args.
176 176
 	 */
177
-	public function send_email( $invoice, $email, $type, $recipients, $extra_args = array() ) {
177
+	public function send_email($invoice, $email, $type, $recipients, $extra_args = array()) {
178 178
 
179
-		do_action( 'getpaid_before_send_invoice_notification', $type, $invoice, $email );
179
+		do_action('getpaid_before_send_invoice_notification', $type, $invoice, $email);
180 180
 
181
-		$skip = $invoice->is_free() && wpinv_get_option( 'skip_email_free_invoice' );
182
-		if ( apply_filters( 'getpaid_skip_invoice_email', $skip, $type, $invoice ) ) {
181
+		$skip = $invoice->is_free() && wpinv_get_option('skip_email_free_invoice');
182
+		if (apply_filters('getpaid_skip_invoice_email', $skip, $type, $invoice)) {
183 183
 			return;
184 184
 		}
185 185
 
@@ -187,43 +187,43 @@  discard block
 block discarded – undo
187 187
 		$merge_tags = $email->get_merge_tags();
188 188
 
189 189
 		$result = $mailer->send(
190
-			apply_filters( 'getpaid_invoice_email_recipients', wpinv_parse_list( $recipients ), $email ),
191
-			$email->add_merge_tags( $email->get_subject(), $merge_tags ),
192
-			$email->get_content( $merge_tags, $extra_args ),
190
+			apply_filters('getpaid_invoice_email_recipients', wpinv_parse_list($recipients), $email),
191
+			$email->add_merge_tags($email->get_subject(), $merge_tags),
192
+			$email->get_content($merge_tags, $extra_args),
193 193
 			$email->get_attachments()
194 194
 		);
195 195
 
196 196
 		// Maybe send a copy to the admin.
197
-		if ( $email->include_admin_bcc() ) {
197
+		if ($email->include_admin_bcc()) {
198 198
 			$mailer->send(
199 199
 				wpinv_get_admin_email(),
200
-				$email->add_merge_tags( $email->get_subject() . __( ' - ADMIN BCC COPY', 'invoicing' ), $merge_tags ),
201
-				$email->get_content( $merge_tags ),
200
+				$email->add_merge_tags($email->get_subject() . __(' - ADMIN BCC COPY', 'invoicing'), $merge_tags),
201
+				$email->get_content($merge_tags),
202 202
 				$email->get_attachments()
203 203
 			);
204 204
 		}
205 205
 
206
-		if ( $result ) {
206
+		if ($result) {
207 207
 			$invoice->add_system_note(
208 208
 				sprintf(
209 209
 					// translators: %1 is the email type, %2 is the invoice recipient.
210
-					__( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ),
211
-					sanitize_key( $type ),
212
-					$email->is_admin_email() ? __( 'admin', 'invoicing' ) : __( 'the customer', 'invoicing' )
210
+					__('Successfully sent %1$s notification email to %2$s.', 'invoicing'),
211
+					sanitize_key($type),
212
+					$email->is_admin_email() ? __('admin', 'invoicing') : __('the customer', 'invoicing')
213 213
 				)
214 214
 			);
215 215
 		} else {
216 216
 			$invoice->add_system_note(
217 217
 				sprintf(
218 218
 					// translators: %1 is the email type, %2 is the invoice recipient.
219
-					__( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ),
220
-					sanitize_key( $type ),
221
-					$email->is_admin_email() ? __( 'admin', 'invoicing' ) : __( 'the customer', 'invoicing' )
219
+					__('Failed sending %1$s notification email to %2$s.', 'invoicing'),
220
+					sanitize_key($type),
221
+					$email->is_admin_email() ? __('admin', 'invoicing') : __('the customer', 'invoicing')
222 222
 				)
223 223
 			);
224 224
 		}
225 225
 
226
-		do_action( 'getpaid_after_send_invoice_notification', $type, $invoice, $email );
226
+		do_action('getpaid_after_send_invoice_notification', $type, $invoice, $email);
227 227
 
228 228
 		return $result;
229 229
 	}
@@ -234,20 +234,20 @@  discard block
 block discarded – undo
234 234
 	 * @param array $recipients
235 235
 	 * @param GetPaid_Notification_Email $email
236 236
 	 */
237
-	public function filter_email_recipients( $recipients, $email ) {
237
+	public function filter_email_recipients($recipients, $email) {
238 238
 
239
-		if ( ! $email->is_admin_email() ) {
239
+		if (!$email->is_admin_email()) {
240 240
 			$cc   = $email->object->get_email_cc();
241
-			$cc_2 = get_user_meta( $email->object->get_user_id(), '_wpinv_email_cc', true );
241
+			$cc_2 = get_user_meta($email->object->get_user_id(), '_wpinv_email_cc', true);
242 242
 
243
-			if ( ! empty( $cc ) ) {
244
-				$cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) );
245
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) );
243
+			if (!empty($cc)) {
244
+				$cc = array_map('sanitize_email', wpinv_parse_list($cc));
245
+				$recipients = array_filter(array_unique(array_merge($recipients, $cc)));
246 246
 			}
247 247
 
248
-			if ( ! empty( $cc_2 ) ) {
249
-				$cc_2 = array_map( 'sanitize_email', wpinv_parse_list( $cc_2 ) );
250
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc_2 ) ) );
248
+			if (!empty($cc_2)) {
249
+				$cc_2 = array_map('sanitize_email', wpinv_parse_list($cc_2));
250
+				$recipients = array_filter(array_unique(array_merge($recipients, $cc_2)));
251 251
 			}
252 252
 		}
253 253
 
@@ -260,17 +260,17 @@  discard block
 block discarded – undo
260 260
 	 *
261 261
 	 * @param WPInv_Invoice $invoice
262 262
 	 */
263
-	public function new_invoice( $invoice ) {
263
+	public function new_invoice($invoice) {
264 264
 
265 265
 		// Only send this email for invoices created via the admin page.
266
-		if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_paid() || $this->is_payment_form_invoice( $invoice->get_id() ) ) {
266
+		if (!$invoice->is_type('invoice') || $invoice->is_paid() || $this->is_payment_form_invoice($invoice->get_id())) {
267 267
 			return;
268 268
 		}
269 269
 
270
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
270
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
271 271
 		$recipient = wpinv_get_admin_email();
272 272
 
273
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
273
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
274 274
 
275 275
 	}
276 276
 
@@ -279,12 +279,12 @@  discard block
 block discarded – undo
279 279
 	 *
280 280
 	 * @param WPInv_Invoice $invoice
281 281
 	 */
282
-	public function cancelled_invoice( $invoice ) {
282
+	public function cancelled_invoice($invoice) {
283 283
 
284
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
284
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
285 285
 		$recipient = $invoice->get_email();
286 286
 
287
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
287
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
288 288
 	}
289 289
 
290 290
 	/**
@@ -292,12 +292,12 @@  discard block
 block discarded – undo
292 292
 	 *
293 293
 	 * @param WPInv_Invoice $invoice
294 294
 	 */
295
-	public function failed_invoice( $invoice ) {
295
+	public function failed_invoice($invoice) {
296 296
 
297
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
297
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
298 298
 		$recipient = wpinv_get_admin_email();
299 299
 
300
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
300
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
301 301
 
302 302
 	}
303 303
 
@@ -306,12 +306,12 @@  discard block
 block discarded – undo
306 306
 	 *
307 307
 	 * @param WPInv_Invoice $invoice
308 308
 	 */
309
-	public function onhold_invoice( $invoice ) {
309
+	public function onhold_invoice($invoice) {
310 310
 
311
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
311
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
312 312
 		$recipient = $invoice->get_email();
313 313
 
314
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
314
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
315 315
 
316 316
 	}
317 317
 
@@ -320,12 +320,12 @@  discard block
 block discarded – undo
320 320
 	 *
321 321
 	 * @param WPInv_Invoice $invoice
322 322
 	 */
323
-	public function processing_invoice( $invoice ) {
323
+	public function processing_invoice($invoice) {
324 324
 
325
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
325
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
326 326
 		$recipient = $invoice->get_email();
327 327
 
328
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
328
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
329 329
 
330 330
 	}
331 331
 
@@ -334,17 +334,17 @@  discard block
 block discarded – undo
334 334
 	 *
335 335
 	 * @param WPInv_Invoice $invoice
336 336
 	 */
337
-	public function completed_invoice( $invoice ) {
337
+	public function completed_invoice($invoice) {
338 338
 
339 339
 		// (Maybe) abort if it is a renewal invoice.
340
-		if ( $invoice->is_renewal() && ! wpinv_get_option( 'email_completed_invoice_renewal_active', false ) ) {
340
+		if ($invoice->is_renewal() && !wpinv_get_option('email_completed_invoice_renewal_active', false)) {
341 341
 			return;
342 342
 		}
343 343
 
344
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
344
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
345 345
 		$recipient = $invoice->get_email();
346 346
 
347
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
347
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
348 348
 
349 349
 	}
350 350
 
@@ -353,12 +353,12 @@  discard block
 block discarded – undo
353 353
 	 *
354 354
 	 * @param WPInv_Invoice $invoice
355 355
 	 */
356
-	public function refunded_invoice( $invoice ) {
356
+	public function refunded_invoice($invoice) {
357 357
 
358
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
358
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
359 359
 		$recipient = $invoice->get_email();
360 360
 
361
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
361
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
362 362
 
363 363
 	}
364 364
 
@@ -368,21 +368,21 @@  discard block
 block discarded – undo
368 368
 	 * @param WPInv_Invoice $invoice
369 369
 	 * @param bool $force
370 370
 	 */
371
-	public function user_invoice( $invoice, $force = false ) {
371
+	public function user_invoice($invoice, $force = false) {
372 372
 
373
-		if ( ! $force && ! empty( $GLOBALS['wpinv_skip_invoice_notification'] ) ) {
373
+		if (!$force && !empty($GLOBALS['wpinv_skip_invoice_notification'])) {
374 374
 			return;
375 375
 		}
376 376
 
377 377
 		// Only send this email for invoices created via the admin page.
378
-		if ( ! $invoice->is_type( 'invoice' ) || ( empty( $force ) && $invoice->is_paid() ) || ( empty( $force ) && $this->is_payment_form_invoice( $invoice->get_id() ) ) ) {
378
+		if (!$invoice->is_type('invoice') || (empty($force) && $invoice->is_paid()) || (empty($force) && $this->is_payment_form_invoice($invoice->get_id()))) {
379 379
 			return;
380 380
 		}
381 381
 
382
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
382
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
383 383
 		$recipient = $invoice->get_email();
384 384
 
385
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
385
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
386 386
 
387 387
 	}
388 388
 
@@ -392,11 +392,11 @@  discard block
 block discarded – undo
392 392
 	 * @param int $invoice
393 393
 	 * @return bool
394 394
 	 */
395
-	public function is_payment_form_invoice( $invoice ) {
396
-		$created_via             = get_post_meta( $invoice, 'wpinv_created_via', true );
395
+	public function is_payment_form_invoice($invoice) {
396
+		$created_via             = get_post_meta($invoice, 'wpinv_created_via', true);
397 397
 		$is_payment_form_invoice = 'payment_form' === $created_via || 'geodirectory' === $created_via;
398
-		$is_payment_form_invoice = apply_filters( 'getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice );
399
-		return empty( $_GET['getpaid-admin-action'] ) && $is_payment_form_invoice;
398
+		$is_payment_form_invoice = apply_filters('getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice);
399
+		return empty($_GET['getpaid-admin-action']) && $is_payment_form_invoice;
400 400
 	}
401 401
 
402 402
 	/**
@@ -405,12 +405,12 @@  discard block
 block discarded – undo
405 405
 	 * @param WPInv_Invoice $invoice
406 406
 	 * @param string $note
407 407
 	 */
408
-	public function user_note( $invoice, $note ) {
408
+	public function user_note($invoice, $note) {
409 409
 
410
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
410
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
411 411
 		$recipient = $invoice->get_email();
412 412
 
413
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient, array( 'customer_note' => $note ) );
413
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient, array('customer_note' => $note));
414 414
 
415 415
 	}
416 416
 
@@ -419,9 +419,9 @@  discard block
 block discarded – undo
419 419
 	 *
420 420
 	 * @param WPInv_Invoice $invoice
421 421
 	 */
422
-	public function force_send_overdue_notice( $invoice ) {
423
-		$email = new GetPaid_Notification_Email( 'overdue', $invoice );
424
-		return $this->send_email( $invoice, $email, 'overdue', $invoice->get_email() );
422
+	public function force_send_overdue_notice($invoice) {
423
+		$email = new GetPaid_Notification_Email('overdue', $invoice);
424
+		return $this->send_email($invoice, $email, 'overdue', $invoice->get_email());
425 425
 	}
426 426
 
427 427
 	/**
@@ -432,38 +432,38 @@  discard block
 block discarded – undo
432 432
 	public function overdue() {
433 433
 		global $wpdb;
434 434
 
435
-		$email = new GetPaid_Notification_Email( __FUNCTION__ );
435
+		$email = new GetPaid_Notification_Email(__FUNCTION__);
436 436
 
437 437
 		// Fetch reminder days.
438
-		$reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
438
+		$reminder_days = array_unique(wp_parse_id_list($email->get_option('days')));
439 439
 
440 440
 		// Abort if non is set.
441
-		if ( empty( $reminder_days ) ) {
441
+		if (empty($reminder_days)) {
442 442
 			return;
443 443
 		}
444 444
 
445 445
 		// Retrieve date query.
446
-		$date_query = $this->get_date_query( $reminder_days );
446
+		$date_query = $this->get_date_query($reminder_days);
447 447
 
448 448
 		// Invoices table.
449 449
 		$table = $wpdb->prefix . 'getpaid_invoices';
450 450
 
451 451
 		// Fetch invoices.
452
-		$invoices  = $wpdb->get_col(
452
+		$invoices = $wpdb->get_col(
453 453
 			"SELECT posts.ID FROM $wpdb->posts as posts
454 454
 			LEFT JOIN $table as invoices ON invoices.post_id = posts.ID
455 455
 			WHERE posts.post_type = 'wpi_invoice' AND posts.post_status = 'wpi-pending' $date_query"
456 456
         );
457 457
 
458
-		foreach ( $invoices as $invoice ) {
458
+		foreach ($invoices as $invoice) {
459 459
 
460 460
 			// Only send this email for invoices created via the admin page.
461
-			if ( ! $this->is_payment_form_invoice( $invoice ) ) {
462
-				$invoice       = new WPInv_Invoice( $invoice );
461
+			if (!$this->is_payment_form_invoice($invoice)) {
462
+				$invoice       = new WPInv_Invoice($invoice);
463 463
 				$email->object = $invoice;
464 464
 
465
-				if ( $invoice->needs_payment() && ! $invoice->is_renewal() ) {
466
-					$this->send_email( $invoice, $email, __FUNCTION__, $invoice->get_email() );
465
+				if ($invoice->needs_payment() && !$invoice->is_renewal()) {
466
+					$this->send_email($invoice, $email, __FUNCTION__, $invoice->get_email());
467 467
 				}
468 468
 			}
469 469
 		}
@@ -476,14 +476,14 @@  discard block
 block discarded – undo
476 476
 	 * @param array $reminder_days
477 477
 	 * @return string
478 478
 	 */
479
-	public function get_date_query( $reminder_days ) {
479
+	public function get_date_query($reminder_days) {
480 480
 
481 481
 		$date_query = array(
482 482
 			'relation' => 'OR',
483 483
 		);
484 484
 
485
-		foreach ( $reminder_days as $days ) {
486
-			$date = date_parse( date( 'Y-m-d', strtotime( "-$days days", current_time( 'timestamp' ) ) ) );
485
+		foreach ($reminder_days as $days) {
486
+			$date = date_parse(date('Y-m-d', strtotime("-$days days", current_time('timestamp'))));
487 487
 
488 488
 			$date_query[] = array(
489 489
 				'year'  => $date['year'],
@@ -493,7 +493,7 @@  discard block
 block discarded – undo
493 493
 
494 494
 		}
495 495
 
496
-		$date_query = new WP_Date_Query( $date_query, 'invoices.due_date' );
496
+		$date_query = new WP_Date_Query($date_query, 'invoices.due_date');
497 497
 
498 498
 		return $date_query->get_sql();
499 499
 
Please login to merge, or discard this patch.
includes/class-wpinv-ajax.php 2 patches
Indentation   +64 added lines, -64 removed lines patch added patch discarded remove patch
@@ -14,70 +14,70 @@  discard block
 block discarded – undo
14 14
 class WPInv_Ajax {
15 15
 
16 16
     /**
17
-	 * Hook in ajax handlers.
18
-	 */
19
-	public static function init() {
20
-		add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 );
21
-		add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 );
22
-		self::add_ajax_events();
17
+     * Hook in ajax handlers.
18
+     */
19
+    public static function init() {
20
+        add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 );
21
+        add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 );
22
+        self::add_ajax_events();
23 23
     }
24 24
 
25 25
     /**
26
-	 * Set GetPaid AJAX constant and headers.
27
-	 */
28
-	public static function define_ajax() {
29
-
30
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
31
-			getpaid_maybe_define_constant( 'DOING_AJAX', true );
32
-			getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true );
33
-			if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) {
34
-				/** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 );
35
-			}
36
-			$GLOBALS['wpdb']->hide_errors();
37
-		}
26
+     * Set GetPaid AJAX constant and headers.
27
+     */
28
+    public static function define_ajax() {
29
+
30
+        if ( ! empty( $_GET['wpinv-ajax'] ) ) {
31
+            getpaid_maybe_define_constant( 'DOING_AJAX', true );
32
+            getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true );
33
+            if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) {
34
+                /** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 );
35
+            }
36
+            $GLOBALS['wpdb']->hide_errors();
37
+        }
38 38
 
39 39
     }
40 40
 
41 41
     /**
42
-	 * Send headers for GetPaid Ajax Requests.
43
-	 *
44
-	 * @since 1.0.18
45
-	 */
46
-	private static function wpinv_ajax_headers() {
47
-		if ( ! headers_sent() ) {
48
-			send_origin_headers();
49
-			send_nosniff_header();
50
-			nocache_headers();
51
-			header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
52
-			header( 'X-Robots-Tag: noindex' );
53
-			status_header( 200 );
54
-		}
42
+     * Send headers for GetPaid Ajax Requests.
43
+     *
44
+     * @since 1.0.18
45
+     */
46
+    private static function wpinv_ajax_headers() {
47
+        if ( ! headers_sent() ) {
48
+            send_origin_headers();
49
+            send_nosniff_header();
50
+            nocache_headers();
51
+            header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
52
+            header( 'X-Robots-Tag: noindex' );
53
+            status_header( 200 );
54
+        }
55 55
     }
56 56
 
57 57
     /**
58
-	 * Check for GetPaid Ajax request and fire action.
59
-	 */
60
-	public static function do_wpinv_ajax() {
61
-		global $wp_query;
58
+     * Check for GetPaid Ajax request and fire action.
59
+     */
60
+    public static function do_wpinv_ajax() {
61
+        global $wp_query;
62 62
 
63
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
64
-			$wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) );
65
-		}
63
+        if ( ! empty( $_GET['wpinv-ajax'] ) ) {
64
+            $wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) );
65
+        }
66 66
 
67
-		$action = $wp_query->get( 'wpinv-ajax' );
67
+        $action = $wp_query->get( 'wpinv-ajax' );
68 68
 
69
-		if ( $action ) {
70
-			self::wpinv_ajax_headers();
71
-			$action = sanitize_text_field( $action );
72
-			do_action( 'wpinv_ajax_' . $action );
73
-			wp_die();
74
-		}
69
+        if ( $action ) {
70
+            self::wpinv_ajax_headers();
71
+            $action = sanitize_text_field( $action );
72
+            do_action( 'wpinv_ajax_' . $action );
73
+            wp_die();
74
+        }
75 75
 
76 76
     }
77 77
 
78 78
     /**
79
-	 * Hook in ajax methods.
80
-	 */
79
+     * Hook in ajax methods.
80
+     */
81 81
     public static function add_ajax_events() {
82 82
 
83 83
         // array( 'event' => is_frontend )
@@ -258,11 +258,11 @@  discard block
 block discarded – undo
258 258
         global $getpaid_force_checkbox;
259 259
 
260 260
         // Is the request set up correctly?
261
-		if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) && empty( $_GET['invoice'] ) ) {
262
-			aui()->alert(
263
-				array(
264
-					'type'    => 'warning',
265
-					'content' => __( 'No payment form or item provided', 'invoicing' ),
261
+        if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) && empty( $_GET['invoice'] ) ) {
262
+            aui()->alert(
263
+                array(
264
+                    'type'    => 'warning',
265
+                    'content' => __( 'No payment form or item provided', 'invoicing' ),
266 266
                 ),
267 267
                 true
268 268
             );
@@ -270,7 +270,7 @@  discard block
 block discarded – undo
270 270
         }
271 271
 
272 272
         // Payment form or button?
273
-		if ( ! empty( $_GET['form'] ) ) {
273
+        if ( ! empty( $_GET['form'] ) ) {
274 274
             $form = sanitize_text_field( urldecode( $_GET['form'] ) );
275 275
 
276 276
             if ( false !== strpos( $form, '|' ) ) {
@@ -323,10 +323,10 @@  discard block
 block discarded – undo
323 323
                 getpaid_display_payment_form( $form );
324 324
             }
325 325
 } elseif ( ! empty( $_GET['invoice'] ) ) {
326
-		    getpaid_display_invoice_payment_form( (int) urldecode( $_GET['invoice'] ) );
326
+            getpaid_display_invoice_payment_form( (int) urldecode( $_GET['invoice'] ) );
327 327
         } else {
328
-			$items = getpaid_convert_items_to_array( sanitize_text_field( urldecode( $_GET['item'] ) ) );
329
-		    getpaid_display_item_payment_form( $items );
328
+            $items = getpaid_convert_items_to_array( sanitize_text_field( urldecode( $_GET['item'] ) ) );
329
+            getpaid_display_item_payment_form( $items );
330 330
         }
331 331
 
332 332
         exit;
@@ -643,7 +643,7 @@  discard block
 block discarded – undo
643 643
         if ( is_wp_error( $error ) ) {
644 644
             $alert = $error->get_error_message();
645 645
             wp_send_json_success( compact( 'alert' ) );
646
-         }
646
+            }
647 647
 
648 648
         // Update totals.
649 649
         $invoice->recalculate_total();
@@ -1072,12 +1072,12 @@  discard block
 block discarded – undo
1072 1072
     }
1073 1073
 
1074 1074
     /**
1075
-	 * Handles file uploads.
1076
-	 *
1077
-	 * @since       1.0.0
1078
-	 * @return      void
1079
-	 */
1080
-	public static function file_upload() {
1075
+     * Handles file uploads.
1076
+     *
1077
+     * @since       1.0.0
1078
+     * @return      void
1079
+     */
1080
+    public static function file_upload() {
1081 1081
 
1082 1082
         // Check nonce.
1083 1083
         check_ajax_referer( 'getpaid_form_nonce' );
@@ -1138,7 +1138,7 @@  discard block
 block discarded – undo
1138 1138
 
1139 1139
         wp_send_json_success( $response );
1140 1140
 
1141
-	}
1141
+    }
1142 1142
 
1143 1143
 }
1144 1144
 
Please login to merge, or discard this patch.
Spacing   +321 added lines, -321 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @package Invoicing
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * WPInv_Ajax class.
@@ -17,8 +17,8 @@  discard block
 block discarded – undo
17 17
 	 * Hook in ajax handlers.
18 18
 	 */
19 19
 	public static function init() {
20
-		add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 );
21
-		add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 );
20
+		add_action('init', array(__CLASS__, 'define_ajax'), 0);
21
+		add_action('template_redirect', array(__CLASS__, 'do_wpinv_ajax'), 0);
22 22
 		self::add_ajax_events();
23 23
     }
24 24
 
@@ -27,11 +27,11 @@  discard block
 block discarded – undo
27 27
 	 */
28 28
 	public static function define_ajax() {
29 29
 
30
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
31
-			getpaid_maybe_define_constant( 'DOING_AJAX', true );
32
-			getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true );
33
-			if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) {
34
-				/** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 );
30
+		if (!empty($_GET['wpinv-ajax'])) {
31
+			getpaid_maybe_define_constant('DOING_AJAX', true);
32
+			getpaid_maybe_define_constant('WPInv_DOING_AJAX', true);
33
+			if (!WP_DEBUG || (WP_DEBUG && !WP_DEBUG_DISPLAY)) {
34
+				/** @scrutinizer ignore-unhandled */ @ini_set('display_errors', 0);
35 35
 			}
36 36
 			$GLOBALS['wpdb']->hide_errors();
37 37
 		}
@@ -44,13 +44,13 @@  discard block
 block discarded – undo
44 44
 	 * @since 1.0.18
45 45
 	 */
46 46
 	private static function wpinv_ajax_headers() {
47
-		if ( ! headers_sent() ) {
47
+		if (!headers_sent()) {
48 48
 			send_origin_headers();
49 49
 			send_nosniff_header();
50 50
 			nocache_headers();
51
-			header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
52
-			header( 'X-Robots-Tag: noindex' );
53
-			status_header( 200 );
51
+			header('Content-Type: text/html; charset=' . get_option('blog_charset'));
52
+			header('X-Robots-Tag: noindex');
53
+			status_header(200);
54 54
 		}
55 55
     }
56 56
 
@@ -60,16 +60,16 @@  discard block
 block discarded – undo
60 60
 	public static function do_wpinv_ajax() {
61 61
 		global $wp_query;
62 62
 
63
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
64
-			$wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) );
63
+		if (!empty($_GET['wpinv-ajax'])) {
64
+			$wp_query->set('wpinv-ajax', sanitize_text_field(wp_unslash($_GET['wpinv-ajax'])));
65 65
 		}
66 66
 
67
-		$action = $wp_query->get( 'wpinv-ajax' );
67
+		$action = $wp_query->get('wpinv-ajax');
68 68
 
69
-		if ( $action ) {
69
+		if ($action) {
70 70
 			self::wpinv_ajax_headers();
71
-			$action = sanitize_text_field( $action );
72
-			do_action( 'wpinv_ajax_' . $action );
71
+			$action = sanitize_text_field($action);
72
+			do_action('wpinv_ajax_' . $action);
73 73
 			wp_die();
74 74
 		}
75 75
 
@@ -106,36 +106,36 @@  discard block
 block discarded – undo
106 106
             'file_upload'                   => true,
107 107
         );
108 108
 
109
-        foreach ( $ajax_events as $ajax_event => $nopriv ) {
110
-            add_action( 'wp_ajax_wpinv_' . $ajax_event, array( __CLASS__, $ajax_event ) );
111
-            add_action( 'wp_ajax_getpaid_' . $ajax_event, array( __CLASS__, $ajax_event ) );
109
+        foreach ($ajax_events as $ajax_event => $nopriv) {
110
+            add_action('wp_ajax_wpinv_' . $ajax_event, array(__CLASS__, $ajax_event));
111
+            add_action('wp_ajax_getpaid_' . $ajax_event, array(__CLASS__, $ajax_event));
112 112
 
113
-            if ( $nopriv ) {
114
-                add_action( 'wp_ajax_nopriv_wpinv_' . $ajax_event, array( __CLASS__, $ajax_event ) );
115
-                add_action( 'wp_ajax_nopriv_getpaid_' . $ajax_event, array( __CLASS__, $ajax_event ) );
116
-                add_action( 'wpinv_ajax_' . $ajax_event, array( __CLASS__, $ajax_event ) );
113
+            if ($nopriv) {
114
+                add_action('wp_ajax_nopriv_wpinv_' . $ajax_event, array(__CLASS__, $ajax_event));
115
+                add_action('wp_ajax_nopriv_getpaid_' . $ajax_event, array(__CLASS__, $ajax_event));
116
+                add_action('wpinv_ajax_' . $ajax_event, array(__CLASS__, $ajax_event));
117 117
             }
118 118
         }
119 119
     }
120 120
 
121 121
     public static function add_note() {
122
-        check_ajax_referer( 'add-invoice-note', '_nonce' );
122
+        check_ajax_referer('add-invoice-note', '_nonce');
123 123
 
124
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
124
+        if (!wpinv_current_user_can_manage_invoicing()) {
125 125
             die( -1 );
126 126
         }
127 127
 
128
-        $post_id   = absint( $_POST['post_id'] );
129
-        $note      = wp_kses_post( trim( stripslashes( $_POST['note'] ) ) );
130
-        $note_type = sanitize_text_field( $_POST['note_type'] );
128
+        $post_id   = absint($_POST['post_id']);
129
+        $note      = wp_kses_post(trim(stripslashes($_POST['note'])));
130
+        $note_type = sanitize_text_field($_POST['note_type']);
131 131
 
132 132
         $is_customer_note = $note_type == 'customer' ? 1 : 0;
133 133
 
134
-        if ( $post_id > 0 ) {
135
-            $note_id = wpinv_insert_payment_note( $post_id, $note, $is_customer_note );
134
+        if ($post_id > 0) {
135
+            $note_id = wpinv_insert_payment_note($post_id, $note, $is_customer_note);
136 136
 
137
-            if ( $note_id > 0 && ! is_wp_error( $note_id ) ) {
138
-                wpinv_get_invoice_note_line_item( $note_id );
137
+            if ($note_id > 0 && !is_wp_error($note_id)) {
138
+                wpinv_get_invoice_note_line_item($note_id);
139 139
             }
140 140
         }
141 141
 
@@ -143,16 +143,16 @@  discard block
 block discarded – undo
143 143
     }
144 144
 
145 145
     public static function delete_note() {
146
-        check_ajax_referer( 'delete-invoice-note', '_nonce' );
146
+        check_ajax_referer('delete-invoice-note', '_nonce');
147 147
 
148
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
148
+        if (!wpinv_current_user_can_manage_invoicing()) {
149 149
             die( -1 );
150 150
         }
151 151
 
152
-        $note_id = (int)$_POST['note_id'];
152
+        $note_id = (int) $_POST['note_id'];
153 153
 
154
-        if ( $note_id > 0 ) {
155
-            wp_delete_comment( $note_id, true );
154
+        if ($note_id > 0) {
155
+            wp_delete_comment($note_id, true);
156 156
         }
157 157
 
158 158
         die();
@@ -170,34 +170,34 @@  discard block
 block discarded – undo
170 170
     public static function get_billing_details() {
171 171
 
172 172
         // Verify nonce.
173
-        check_ajax_referer( 'wpinv-nonce' );
173
+        check_ajax_referer('wpinv-nonce');
174 174
 
175 175
         // Can the user manage the plugin?
176
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
176
+        if (!wpinv_current_user_can_manage_invoicing()) {
177 177
             die( -1 );
178 178
         }
179 179
 
180 180
         // Do we have a user id?
181 181
         $user_id = (int) $_GET['user_id'];
182 182
 
183
-        if ( empty( $user_id ) || ! is_numeric( $user_id ) ) {
183
+        if (empty($user_id) || !is_numeric($user_id)) {
184 184
             die( -1 );
185 185
         }
186 186
 
187 187
         // Fetch the billing details.
188
-        $billing_details    = wpinv_get_user_address( $user_id );
189
-        $billing_details    = apply_filters( 'wpinv_ajax_billing_details', $billing_details, $user_id );
188
+        $billing_details    = wpinv_get_user_address($user_id);
189
+        $billing_details    = apply_filters('wpinv_ajax_billing_details', $billing_details, $user_id);
190 190
 
191 191
         // unset the user id and email.
192
-        $to_ignore = array( 'user_id', 'email' );
192
+        $to_ignore = array('user_id', 'email');
193 193
 
194
-        foreach ( $to_ignore as $key ) {
195
-            if ( isset( $billing_details[ $key ] ) ) {
196
-                unset( $billing_details[ $key ] );
194
+        foreach ($to_ignore as $key) {
195
+            if (isset($billing_details[$key])) {
196
+                unset($billing_details[$key]);
197 197
             }
198 198
         }
199 199
 
200
-        wp_send_json_success( $billing_details );
200
+        wp_send_json_success($billing_details);
201 201
 
202 202
     }
203 203
 
@@ -207,47 +207,47 @@  discard block
 block discarded – undo
207 207
     public static function check_new_user_email() {
208 208
 
209 209
         // Verify nonce.
210
-        check_ajax_referer( 'wpinv-nonce' );
210
+        check_ajax_referer('wpinv-nonce');
211 211
 
212 212
         // Can the user manage the plugin?
213
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
213
+        if (!wpinv_current_user_can_manage_invoicing()) {
214 214
             die( -1 );
215 215
         }
216 216
 
217 217
         // We need an email address.
218
-        if ( empty( $_GET['email'] ) ) {
219
-            esc_html_e( "Provide the new user's email address", 'invoicing' );
218
+        if (empty($_GET['email'])) {
219
+            esc_html_e("Provide the new user's email address", 'invoicing');
220 220
             exit;
221 221
         }
222 222
 
223 223
         // Ensure the email is valid.
224
-        $email = sanitize_email( $_GET['email'] );
225
-        if ( ! is_email( $email ) ) {
226
-            esc_html_e( 'Invalid email address', 'invoicing' );
224
+        $email = sanitize_email($_GET['email']);
225
+        if (!is_email($email)) {
226
+            esc_html_e('Invalid email address', 'invoicing');
227 227
             exit;
228 228
         }
229 229
 
230 230
         // And it does not exist.
231
-        $id = email_exists( $email );
232
-        if ( $id ) {
233
-            wp_send_json_success( compact( 'id' ) );
231
+        $id = email_exists($email);
232
+        if ($id) {
233
+            wp_send_json_success(compact('id'));
234 234
         }
235 235
 
236
-        wp_send_json_success( true );
236
+        wp_send_json_success(true);
237 237
     }
238 238
 
239 239
     public static function run_tool() {
240
-        check_ajax_referer( 'wpinv-nonce', '_nonce' );
241
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
240
+        check_ajax_referer('wpinv-nonce', '_nonce');
241
+        if (!wpinv_current_user_can_manage_invoicing()) {
242 242
             die( -1 );
243 243
         }
244 244
 
245
-        $tool = sanitize_text_field( $_POST['tool'] );
245
+        $tool = sanitize_text_field($_POST['tool']);
246 246
 
247
-        do_action( 'wpinv_run_tool' );
247
+        do_action('wpinv_run_tool');
248 248
 
249
-        if ( ! empty( $tool ) ) {
250
-            do_action( 'wpinv_tool_' . $tool );
249
+        if (!empty($tool)) {
250
+            do_action('wpinv_tool_' . $tool);
251 251
         }
252 252
     }
253 253
 
@@ -258,11 +258,11 @@  discard block
 block discarded – undo
258 258
         global $getpaid_force_checkbox;
259 259
 
260 260
         // Is the request set up correctly?
261
-		if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) && empty( $_GET['invoice'] ) ) {
261
+		if (empty($_GET['form']) && empty($_GET['item']) && empty($_GET['invoice'])) {
262 262
 			aui()->alert(
263 263
 				array(
264 264
 					'type'    => 'warning',
265
-					'content' => __( 'No payment form or item provided', 'invoicing' ),
265
+					'content' => __('No payment form or item provided', 'invoicing'),
266 266
                 ),
267 267
                 true
268 268
             );
@@ -270,29 +270,29 @@  discard block
 block discarded – undo
270 270
         }
271 271
 
272 272
         // Payment form or button?
273
-		if ( ! empty( $_GET['form'] ) ) {
274
-            $form = sanitize_text_field( urldecode( $_GET['form'] ) );
273
+		if (!empty($_GET['form'])) {
274
+            $form = sanitize_text_field(urldecode($_GET['form']));
275 275
 
276
-            if ( false !== strpos( $form, '|' ) ) {
277
-                $form_pos = strpos( $form, '|' );
278
-                $_items   = getpaid_convert_items_to_array( substr( $form, $form_pos + 1 ) );
279
-                $form     = substr( $form, 0, $form_pos );
276
+            if (false !== strpos($form, '|')) {
277
+                $form_pos = strpos($form, '|');
278
+                $_items   = getpaid_convert_items_to_array(substr($form, $form_pos + 1));
279
+                $form     = substr($form, 0, $form_pos);
280 280
 
281 281
                 // Retrieve appropriate payment form.
282
-                $payment_form = new GetPaid_Payment_Form( $form );
283
-                $payment_form = $payment_form->exists() ? $payment_form : new GetPaid_Payment_Form( wpinv_get_default_payment_form() );
282
+                $payment_form = new GetPaid_Payment_Form($form);
283
+                $payment_form = $payment_form->exists() ? $payment_form : new GetPaid_Payment_Form(wpinv_get_default_payment_form());
284 284
 
285 285
                 $items    = array();
286 286
                 $item_ids = array();
287 287
 
288
-                foreach ( $_items as $item_id => $qty ) {
289
-                    if ( ! in_array( $item_id, $item_ids ) ) {
290
-                        $item = new GetPaid_Form_Item( $item_id );
291
-                        $item->set_quantity( $qty );
288
+                foreach ($_items as $item_id => $qty) {
289
+                    if (!in_array($item_id, $item_ids)) {
290
+                        $item = new GetPaid_Form_Item($item_id);
291
+                        $item->set_quantity($qty);
292 292
 
293
-                        if ( 0 == $qty ) {
294
-                            $item->set_allow_quantities( true );
295
-                            $item->set_is_required( false );
293
+                        if (0 == $qty) {
294
+                            $item->set_allow_quantities(true);
295
+                            $item->set_is_required(false);
296 296
                             $getpaid_force_checkbox = true;
297 297
                         }
298 298
 
@@ -301,32 +301,32 @@  discard block
 block discarded – undo
301 301
                     }
302 302
                 }
303 303
 
304
-                if ( ! $payment_form->is_default() ) {
304
+                if (!$payment_form->is_default()) {
305 305
 
306
-                    foreach ( $payment_form->get_items() as $item ) {
307
-                        if ( ! in_array( $item->get_id(), $item_ids ) ) {
306
+                    foreach ($payment_form->get_items() as $item) {
307
+                        if (!in_array($item->get_id(), $item_ids)) {
308 308
                             $item_ids[] = $item->get_id();
309 309
                             $items[]    = $item;
310 310
                         }
311 311
                     }
312 312
                 }
313 313
 
314
-                $payment_form->set_items( $items );
315
-                $extra_items     = esc_attr( getpaid_convert_items_to_string( $_items ) );
316
-                $extra_items_key = md5( NONCE_KEY . AUTH_KEY . $extra_items );
314
+                $payment_form->set_items($items);
315
+                $extra_items     = esc_attr(getpaid_convert_items_to_string($_items));
316
+                $extra_items_key = md5(NONCE_KEY . AUTH_KEY . $extra_items);
317 317
                 $extra_items     = "<input type='hidden' name='getpaid-form-items' value='$extra_items' />";
318 318
                 $extra_items    .= "<input type='hidden' name='getpaid-form-items-key' value='$extra_items_key' />";
319
-                $payment_form->display( $extra_items );
319
+                $payment_form->display($extra_items);
320 320
                 $getpaid_force_checkbox = false;
321 321
 
322 322
             } else {
323
-                getpaid_display_payment_form( $form );
323
+                getpaid_display_payment_form($form);
324 324
             }
325
-} elseif ( ! empty( $_GET['invoice'] ) ) {
326
-		    getpaid_display_invoice_payment_form( (int) urldecode( $_GET['invoice'] ) );
325
+} elseif (!empty($_GET['invoice'])) {
326
+		    getpaid_display_invoice_payment_form((int) urldecode($_GET['invoice']));
327 327
         } else {
328
-			$items = getpaid_convert_items_to_array( sanitize_text_field( urldecode( $_GET['item'] ) ) );
329
-		    getpaid_display_item_payment_form( $items );
328
+			$items = getpaid_convert_items_to_array(sanitize_text_field(urldecode($_GET['item'])));
329
+		    getpaid_display_item_payment_form($items);
330 330
         }
331 331
 
332 332
         exit;
@@ -341,14 +341,14 @@  discard block
 block discarded – undo
341 341
     public static function payment_form() {
342 342
 
343 343
         // ... form fields...
344
-        if ( empty( $_POST['getpaid_payment_form_submission'] ) ) {
345
-            esc_html_e( 'Error: Reload the page and try again.', 'invoicing' );
344
+        if (empty($_POST['getpaid_payment_form_submission'])) {
345
+            esc_html_e('Error: Reload the page and try again.', 'invoicing');
346 346
             exit;
347 347
         }
348 348
 
349 349
         // Process the payment form.
350
-        $checkout_class = apply_filters( 'getpaid_checkout_class', 'GetPaid_Checkout' );
351
-        $checkout       = new $checkout_class( new GetPaid_Payment_Form_Submission() );
350
+        $checkout_class = apply_filters('getpaid_checkout_class', 'GetPaid_Checkout');
351
+        $checkout       = new $checkout_class(new GetPaid_Payment_Form_Submission());
352 352
         $checkout->process_checkout();
353 353
 
354 354
         exit;
@@ -361,55 +361,55 @@  discard block
 block discarded – undo
361 361
      */
362 362
     public static function get_payment_form_states_field() {
363 363
 
364
-        if ( empty( $_GET['country'] ) || empty( $_GET['form'] ) ) {
364
+        if (empty($_GET['country']) || empty($_GET['form'])) {
365 365
             exit;
366 366
         }
367 367
 
368
-        $elements = getpaid_get_payment_form_elements( (int) $_GET['form'] );
368
+        $elements = getpaid_get_payment_form_elements((int) $_GET['form']);
369 369
 
370
-        if ( empty( $elements ) ) {
370
+        if (empty($elements)) {
371 371
             exit;
372 372
         }
373 373
 
374 374
         $address_fields = array();
375
-        foreach ( $elements as $element ) {
376
-            if ( 'address' === $element['type'] ) {
375
+        foreach ($elements as $element) {
376
+            if ('address' === $element['type']) {
377 377
                 $address_fields = $element;
378 378
                 break;
379 379
             }
380 380
         }
381 381
 
382
-        if ( empty( $address_fields ) ) {
382
+        if (empty($address_fields)) {
383 383
             exit;
384 384
         }
385 385
 
386
-        foreach ( $address_fields['fields'] as $address_field ) {
386
+        foreach ($address_fields['fields'] as $address_field) {
387 387
 
388
-            if ( 'wpinv_state' == $address_field['name'] ) {
388
+            if ('wpinv_state' == $address_field['name']) {
389 389
 
390
-                $wrap_class  = getpaid_get_form_element_grid_class( $address_field );
391
-                $wrap_class  = esc_attr( "$wrap_class getpaid-address-field-wrapper" );
392
-                $placeholder = empty( $address_field['placeholder'] ) ? '' : esc_attr( $address_field['placeholder'] );
393
-                $description = empty( $address_field['description'] ) ? '' : wp_kses_post( $address_field['description'] );
394
-                $value       = is_user_logged_in() ? get_user_meta( get_current_user_id(), '_wpinv_state', true ) : '';
395
-                $label       = empty( $address_field['label'] ) ? '' : wp_kses_post( $address_field['label'] );
390
+                $wrap_class  = getpaid_get_form_element_grid_class($address_field);
391
+                $wrap_class  = esc_attr("$wrap_class getpaid-address-field-wrapper");
392
+                $placeholder = empty($address_field['placeholder']) ? '' : esc_attr($address_field['placeholder']);
393
+                $description = empty($address_field['description']) ? '' : wp_kses_post($address_field['description']);
394
+                $value       = is_user_logged_in() ? get_user_meta(get_current_user_id(), '_wpinv_state', true) : '';
395
+                $label       = empty($address_field['label']) ? '' : wp_kses_post($address_field['label']);
396 396
 
397
-                if ( ! empty( $address_field['required'] ) ) {
397
+                if (!empty($address_field['required'])) {
398 398
                     $label .= "<span class='text-danger'> *</span>";
399 399
                 }
400 400
 
401 401
                 $html = getpaid_get_states_select_markup(
402
-                    sanitize_text_field( $_GET['country'] ),
402
+                    sanitize_text_field($_GET['country']),
403 403
                     $value,
404 404
                     $placeholder,
405 405
                     $label,
406 406
                     $description,
407
-                    ! empty( $address_field['required'] ),
407
+                    !empty($address_field['required']),
408 408
                     $wrap_class,
409
-                    sanitize_text_field( $_GET['name'] )
409
+                    sanitize_text_field($_GET['name'])
410 410
                 );
411 411
 
412
-                wp_send_json_success( $html );
412
+                wp_send_json_success($html);
413 413
                 exit;
414 414
 
415 415
             }
@@ -424,66 +424,66 @@  discard block
 block discarded – undo
424 424
     public static function recalculate_invoice_totals() {
425 425
 
426 426
         // Verify nonce.
427
-        check_ajax_referer( 'wpinv-nonce' );
427
+        check_ajax_referer('wpinv-nonce');
428 428
 
429
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
429
+        if (!wpinv_current_user_can_manage_invoicing()) {
430 430
             exit;
431 431
         }
432 432
 
433 433
         // We need an invoice.
434
-        if ( empty( $_POST['post_id'] ) ) {
434
+        if (empty($_POST['post_id'])) {
435 435
             exit;
436 436
         }
437 437
 
438 438
         // Fetch the invoice.
439
-        $invoice = new WPInv_Invoice( intval( $_POST['post_id'] ) );
439
+        $invoice = new WPInv_Invoice(intval($_POST['post_id']));
440 440
 
441 441
         // Ensure it exists.
442
-        if ( ! $invoice->get_id() ) {
442
+        if (!$invoice->get_id()) {
443 443
             exit;
444 444
         }
445 445
 
446 446
         // Maybe set the country, state, currency.
447
-        foreach ( array( 'country', 'state', 'currency', 'vat_number', 'discount_code' ) as $key ) {
448
-            if ( isset( $_POST[ $key ] ) ) {
447
+        foreach (array('country', 'state', 'currency', 'vat_number', 'discount_code') as $key) {
448
+            if (isset($_POST[$key])) {
449 449
                 $method = "set_$key";
450
-                $invoice->$method( sanitize_text_field( $_POST[ $key ] ) );
450
+                $invoice->$method(sanitize_text_field($_POST[$key]));
451 451
             }
452 452
         }
453 453
 
454 454
         // Maybe disable taxes.
455
-        $invoice->set_disable_taxes( ! empty( $_POST['taxes'] ) );
455
+        $invoice->set_disable_taxes(!empty($_POST['taxes']));
456 456
 
457 457
         // Discount code.
458
-        if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
459
-            $discount = new WPInv_Discount( $invoice->get_discount_code() );
460
-            if ( $discount->exists() ) {
461
-                $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
458
+        if (!$invoice->is_paid() && !$invoice->is_refunded()) {
459
+            $discount = new WPInv_Discount($invoice->get_discount_code());
460
+            if ($discount->exists()) {
461
+                $invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount));
462 462
             } else {
463
-                $invoice->remove_discount( 'discount_code' );
463
+                $invoice->remove_discount('discount_code');
464 464
             }
465 465
         }
466 466
 
467 467
         // Recalculate totals.
468 468
         $invoice->recalculate_total();
469 469
 
470
-        $total        = wpinv_price( $invoice->get_total(), $invoice->get_currency() );
471
-        $suscriptions = getpaid_get_invoice_subscriptions( $invoice );
472
-        if ( is_a( $suscriptions, 'WPInv_Subscription' ) && $invoice->is_recurring() && $invoice->is_parent() && $invoice->get_total() != $invoice->get_recurring_total() ) {
473
-            $recurring_total = wpinv_price( $invoice->get_recurring_total(), $invoice->get_currency() );
474
-            $total          .= '<small class="form-text text-muted">' . sprintf( __( 'Recurring Price: %s', 'invoicing' ), $recurring_total ) . '</small>';
470
+        $total        = wpinv_price($invoice->get_total(), $invoice->get_currency());
471
+        $suscriptions = getpaid_get_invoice_subscriptions($invoice);
472
+        if (is_a($suscriptions, 'WPInv_Subscription') && $invoice->is_recurring() && $invoice->is_parent() && $invoice->get_total() != $invoice->get_recurring_total()) {
473
+            $recurring_total = wpinv_price($invoice->get_recurring_total(), $invoice->get_currency());
474
+            $total          .= '<small class="form-text text-muted">' . sprintf(__('Recurring Price: %s', 'invoicing'), $recurring_total) . '</small>';
475 475
         }
476 476
 
477 477
         $totals = array(
478
-            'subtotal' => wpinv_price( $invoice->get_subtotal(), $invoice->get_currency() ),
479
-            'discount' => wpinv_price( $invoice->get_total_discount(), $invoice->get_currency() ),
480
-            'tax'      => wpinv_price( $invoice->get_total_tax(), $invoice->get_currency() ),
478
+            'subtotal' => wpinv_price($invoice->get_subtotal(), $invoice->get_currency()),
479
+            'discount' => wpinv_price($invoice->get_total_discount(), $invoice->get_currency()),
480
+            'tax'      => wpinv_price($invoice->get_total_tax(), $invoice->get_currency()),
481 481
             'total'    => $total,
482 482
         );
483 483
 
484
-        $totals = apply_filters( 'getpaid_invoice_totals', $totals, $invoice );
484
+        $totals = apply_filters('getpaid_invoice_totals', $totals, $invoice);
485 485
 
486
-        wp_send_json_success( compact( 'totals' ) );
486
+        wp_send_json_success(compact('totals'));
487 487
     }
488 488
 
489 489
     /**
@@ -492,33 +492,33 @@  discard block
 block discarded – undo
492 492
     public static function get_invoice_items() {
493 493
 
494 494
         // Verify nonce.
495
-        check_ajax_referer( 'wpinv-nonce' );
495
+        check_ajax_referer('wpinv-nonce');
496 496
 
497
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
497
+        if (!wpinv_current_user_can_manage_invoicing()) {
498 498
             exit;
499 499
         }
500 500
 
501 501
         // We need an invoice and items.
502
-        if ( empty( $_POST['post_id'] ) ) {
502
+        if (empty($_POST['post_id'])) {
503 503
             exit;
504 504
         }
505 505
 
506 506
         // Fetch the invoice.
507
-        $invoice = new WPInv_Invoice( intval( $_POST['post_id'] ) );
507
+        $invoice = new WPInv_Invoice(intval($_POST['post_id']));
508 508
 
509 509
         // Ensure it exists.
510
-        if ( ! $invoice->get_id() ) {
510
+        if (!$invoice->get_id()) {
511 511
             exit;
512 512
         }
513 513
 
514 514
         // Return an array of invoice items.
515 515
         $items = array();
516 516
 
517
-        foreach ( $invoice->get_items() as $item ) {
518
-            $items[] = $item->prepare_data_for_invoice_edit_ajax( $invoice->get_currency(), $invoice->is_renewal() );
517
+        foreach ($invoice->get_items() as $item) {
518
+            $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency(), $invoice->is_renewal());
519 519
         }
520 520
 
521
-        wp_send_json_success( compact( 'items' ) );
521
+        wp_send_json_success(compact('items'));
522 522
     }
523 523
 
524 524
     /**
@@ -527,50 +527,50 @@  discard block
 block discarded – undo
527 527
     public static function edit_invoice_item() {
528 528
 
529 529
         // Verify nonce.
530
-        check_ajax_referer( 'wpinv-nonce' );
530
+        check_ajax_referer('wpinv-nonce');
531 531
 
532
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
532
+        if (!wpinv_current_user_can_manage_invoicing()) {
533 533
             exit;
534 534
         }
535 535
 
536 536
         // We need an invoice and item details.
537
-        if ( empty( $_POST['post_id'] ) || empty( $_POST['data'] ) ) {
537
+        if (empty($_POST['post_id']) || empty($_POST['data'])) {
538 538
             exit;
539 539
         }
540 540
 
541 541
         // Fetch the invoice.
542
-        $invoice = new WPInv_Invoice( intval( $_POST['post_id'] ) );
542
+        $invoice = new WPInv_Invoice(intval($_POST['post_id']));
543 543
 
544 544
         // Ensure it exists and its not been paid for.
545
-        if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) {
545
+        if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) {
546 546
             exit;
547 547
         }
548 548
 
549 549
         // Format the data.
550
-        $data = wp_kses_post_deep( wp_unslash( wp_list_pluck( $_POST['data'], 'value', 'field' ) ) );
550
+        $data = wp_kses_post_deep(wp_unslash(wp_list_pluck($_POST['data'], 'value', 'field')));
551 551
 
552 552
         // Ensure that we have an item id.
553
-        if ( empty( $data['id'] ) ) {
553
+        if (empty($data['id'])) {
554 554
             exit;
555 555
         }
556 556
 
557 557
         // Abort if the invoice does not have the specified item.
558
-        $item = $invoice->get_item( (int) $data['id'] );
558
+        $item = $invoice->get_item((int) $data['id']);
559 559
 
560
-        if ( empty( $item ) ) {
560
+        if (empty($item)) {
561 561
             exit;
562 562
         }
563 563
 
564 564
         // Update the item.
565
-        $item->set_price( getpaid_standardize_amount( $data['price'] ) );
566
-        $item->set_name( sanitize_text_field( $data['name'] ) );
567
-        $item->set_description( wp_kses_post( $data['description'] ) );
568
-        $item->set_quantity( floatval( $data['quantity'] ) );
565
+        $item->set_price(getpaid_standardize_amount($data['price']));
566
+        $item->set_name(sanitize_text_field($data['name']));
567
+        $item->set_description(wp_kses_post($data['description']));
568
+        $item->set_quantity(floatval($data['quantity']));
569 569
 
570 570
         // Add it to the invoice.
571
-        $error = $invoice->add_item( $item );
571
+        $error = $invoice->add_item($item);
572 572
         $alert = false;
573
-        if ( is_wp_error( $error ) ) {
573
+        if (is_wp_error($error)) {
574 574
             $alert = $error->get_error_message();
575 575
         }
576 576
 
@@ -583,11 +583,11 @@  discard block
 block discarded – undo
583 583
         // Return an array of invoice items.
584 584
         $items = array();
585 585
 
586
-        foreach ( $invoice->get_items() as $item ) {
587
-            $items[] = $item->prepare_data_for_invoice_edit_ajax( $invoice->get_currency() );
586
+        foreach ($invoice->get_items() as $item) {
587
+            $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency());
588 588
         }
589 589
 
590
-        wp_send_json_success( compact( 'items', 'alert' ) );
590
+        wp_send_json_success(compact('items', 'alert'));
591 591
     }
592 592
 
593 593
     /**
@@ -596,53 +596,53 @@  discard block
 block discarded – undo
596 596
     public static function create_invoice_item() {
597 597
 
598 598
         // Verify nonce.
599
-        check_ajax_referer( 'wpinv-nonce' );
599
+        check_ajax_referer('wpinv-nonce');
600 600
 
601
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
601
+        if (!wpinv_current_user_can_manage_invoicing()) {
602 602
             exit;
603 603
         }
604 604
 
605 605
         // We need an invoice and item details.
606
-        if ( empty( $_POST['invoice_id'] ) || empty( $_POST['_wpinv_quick'] ) ) {
606
+        if (empty($_POST['invoice_id']) || empty($_POST['_wpinv_quick'])) {
607 607
             exit;
608 608
         }
609 609
 
610 610
         // Fetch the invoice.
611
-        $invoice = new WPInv_Invoice( intval( $_POST['invoice_id'] ) );
611
+        $invoice = new WPInv_Invoice(intval($_POST['invoice_id']));
612 612
 
613 613
         // Ensure it exists and its not been paid for.
614
-        if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) {
614
+        if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) {
615 615
             exit;
616 616
         }
617 617
 
618 618
         // Format the data.
619
-        $data = wp_kses_post_deep( wp_unslash( $_POST['_wpinv_quick'] ) );
619
+        $data = wp_kses_post_deep(wp_unslash($_POST['_wpinv_quick']));
620 620
 
621 621
         $item = new WPInv_Item();
622
-        $item->set_price( getpaid_standardize_amount( $data['price'] ) );
623
-        $item->set_name( sanitize_text_field( $data['name'] ) );
624
-        $item->set_description( wp_kses_post( $data['description'] ) );
625
-        $item->set_type( sanitize_text_field( $data['type'] ) );
626
-        $item->set_vat_rule( sanitize_text_field( $data['vat_rule'] ) );
627
-        $item->set_vat_class( sanitize_text_field( $data['vat_class'] ) );
628
-        $item->set_status( 'publish' );
622
+        $item->set_price(getpaid_standardize_amount($data['price']));
623
+        $item->set_name(sanitize_text_field($data['name']));
624
+        $item->set_description(wp_kses_post($data['description']));
625
+        $item->set_type(sanitize_text_field($data['type']));
626
+        $item->set_vat_rule(sanitize_text_field($data['vat_rule']));
627
+        $item->set_vat_class(sanitize_text_field($data['vat_class']));
628
+        $item->set_status('publish');
629 629
         $item->save();
630 630
 
631
-        if ( ! $item->exists() ) {
632
-            $alert = __( 'Could not create invoice item. Please try again.', 'invoicing' );
633
-            wp_send_json_success( compact( 'alert' ) );
631
+        if (!$item->exists()) {
632
+            $alert = __('Could not create invoice item. Please try again.', 'invoicing');
633
+            wp_send_json_success(compact('alert'));
634 634
         }
635 635
 
636
-        $item = new GetPaid_Form_Item( $item->get_id() );
637
-        $item->set_quantity( floatval( $data['qty'] ) );
636
+        $item = new GetPaid_Form_Item($item->get_id());
637
+        $item->set_quantity(floatval($data['qty']));
638 638
 
639 639
         // Add it to the invoice.
640
-        $error = $invoice->add_item( $item );
640
+        $error = $invoice->add_item($item);
641 641
         $alert = false;
642 642
 
643
-        if ( is_wp_error( $error ) ) {
643
+        if (is_wp_error($error)) {
644 644
             $alert = $error->get_error_message();
645
-            wp_send_json_success( compact( 'alert' ) );
645
+            wp_send_json_success(compact('alert'));
646 646
          }
647 647
 
648 648
         // Update totals.
@@ -655,9 +655,9 @@  discard block
 block discarded – undo
655 655
         $invoice->recalculate_total();
656 656
         $invoice->save();
657 657
         ob_start();
658
-        GetPaid_Meta_Box_Invoice_Items::output_row( GetPaid_Meta_Box_Invoice_Items::get_columns( $invoice ), $item, $invoice );
658
+        GetPaid_Meta_Box_Invoice_Items::output_row(GetPaid_Meta_Box_Invoice_Items::get_columns($invoice), $item, $invoice);
659 659
         $row = ob_get_clean();
660
-        wp_send_json_success( compact( 'row' ) );
660
+        wp_send_json_success(compact('row'));
661 661
     }
662 662
 
663 663
     /**
@@ -666,33 +666,33 @@  discard block
 block discarded – undo
666 666
     public static function remove_invoice_item() {
667 667
 
668 668
         // Verify nonce.
669
-        check_ajax_referer( 'wpinv-nonce' );
669
+        check_ajax_referer('wpinv-nonce');
670 670
 
671
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
671
+        if (!wpinv_current_user_can_manage_invoicing()) {
672 672
             exit;
673 673
         }
674 674
 
675 675
         // We need an invoice and an item.
676
-        if ( empty( $_POST['post_id'] ) || empty( $_POST['item_id'] ) ) {
676
+        if (empty($_POST['post_id']) || empty($_POST['item_id'])) {
677 677
             exit;
678 678
         }
679 679
 
680 680
         // Fetch the invoice.
681
-        $invoice = new WPInv_Invoice( intval( $_POST['post_id'] ) );
681
+        $invoice = new WPInv_Invoice(intval($_POST['post_id']));
682 682
 
683 683
         // Ensure it exists and its not been paid for.
684
-        if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) {
684
+        if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) {
685 685
             exit;
686 686
         }
687 687
 
688 688
         // Abort if the invoice does not have the specified item.
689
-        $item = $invoice->get_item( (int) $_POST['item_id'] );
689
+        $item = $invoice->get_item((int) $_POST['item_id']);
690 690
 
691
-        if ( empty( $item ) ) {
691
+        if (empty($item)) {
692 692
             exit;
693 693
         }
694 694
 
695
-        $invoice->remove_item( (int) $_POST['item_id'] );
695
+        $invoice->remove_item((int) $_POST['item_id']);
696 696
 
697 697
         // Update totals.
698 698
         $invoice->recalculate_total();
@@ -703,11 +703,11 @@  discard block
 block discarded – undo
703 703
         // Return an array of invoice items.
704 704
         $items = array();
705 705
 
706
-        foreach ( $invoice->get_items() as $item ) {
707
-            $items[] = $item->prepare_data_for_invoice_edit_ajax( $invoice->get_currency() );
706
+        foreach ($invoice->get_items() as $item) {
707
+            $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency());
708 708
         }
709 709
 
710
-        wp_send_json_success( compact( 'items' ) );
710
+        wp_send_json_success(compact('items'));
711 711
     }
712 712
 
713 713
     /**
@@ -716,68 +716,68 @@  discard block
 block discarded – undo
716 716
     public static function recalculate_full_prices() {
717 717
 
718 718
         // Verify nonce.
719
-        check_ajax_referer( 'wpinv-nonce' );
719
+        check_ajax_referer('wpinv-nonce');
720 720
 
721
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
721
+        if (!wpinv_current_user_can_manage_invoicing()) {
722 722
             exit;
723 723
         }
724 724
 
725 725
         // We need an invoice and item.
726
-        if ( empty( $_POST['post_id'] ) ) {
726
+        if (empty($_POST['post_id'])) {
727 727
             exit;
728 728
         }
729 729
 
730 730
         // Fetch the invoice.
731
-        $invoice = new WPInv_Invoice( intval( $_POST['post_id'] ) );
731
+        $invoice = new WPInv_Invoice(intval($_POST['post_id']));
732 732
         $alert   = false;
733 733
 
734 734
         // Ensure it exists and its not been paid for.
735
-        if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) {
735
+        if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) {
736 736
             exit;
737 737
         }
738 738
 
739
-        $invoice->set_items( array() );
739
+        $invoice->set_items(array());
740 740
 
741
-        if ( ! empty( $_POST['getpaid_items'] ) ) {
741
+        if (!empty($_POST['getpaid_items'])) {
742 742
 
743
-            foreach ( wp_kses_post_deep( $_POST['getpaid_items'] ) as $item_id => $args ) {
744
-                $item = new GetPaid_Form_Item( $item_id );
743
+            foreach (wp_kses_post_deep($_POST['getpaid_items']) as $item_id => $args) {
744
+                $item = new GetPaid_Form_Item($item_id);
745 745
 
746
-                if ( $item->exists() ) {
747
-                    $item->set_price( getpaid_standardize_amount( $args['price'] ) );
748
-                    $item->set_quantity( floatval( $args['quantity'] ) );
749
-                    $item->set_name( sanitize_text_field( $args['name'] ) );
750
-                    $item->set_description( wp_kses_post( $args['description'] ) );
751
-                    $invoice->add_item( $item );
746
+                if ($item->exists()) {
747
+                    $item->set_price(getpaid_standardize_amount($args['price']));
748
+                    $item->set_quantity(floatval($args['quantity']));
749
+                    $item->set_name(sanitize_text_field($args['name']));
750
+                    $item->set_description(wp_kses_post($args['description']));
751
+                    $invoice->add_item($item);
752 752
                 }
753 753
             }
754 754
 }
755 755
 
756
-        $invoice->set_disable_taxes( ! empty( $_POST['disable_taxes'] ) );
756
+        $invoice->set_disable_taxes(!empty($_POST['disable_taxes']));
757 757
 
758 758
         // Maybe set the country, state, currency.
759
-        foreach ( array( 'wpinv_country', 'wpinv_state', 'wpinv_currency', 'wpinv_vat_number', 'wpinv_discount_code' ) as $key ) {
760
-            if ( isset( $_POST[ $key ] ) ) {
761
-                $_key   = str_replace( 'wpinv_', '', $key );
759
+        foreach (array('wpinv_country', 'wpinv_state', 'wpinv_currency', 'wpinv_vat_number', 'wpinv_discount_code') as $key) {
760
+            if (isset($_POST[$key])) {
761
+                $_key   = str_replace('wpinv_', '', $key);
762 762
                 $method = "set_$_key";
763
-                $invoice->$method( sanitize_text_field( $_POST[ $key ] ) );
763
+                $invoice->$method(sanitize_text_field($_POST[$key]));
764 764
             }
765 765
         }
766 766
 
767
-        $discount = new WPInv_Discount( $invoice->get_discount_code() );
768
-        if ( $discount->exists() ) {
769
-            $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
767
+        $discount = new WPInv_Discount($invoice->get_discount_code());
768
+        if ($discount->exists()) {
769
+            $invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount));
770 770
         } else {
771
-            $invoice->remove_discount( 'discount_code' );
771
+            $invoice->remove_discount('discount_code');
772 772
         }
773 773
 
774 774
         // Save the invoice.
775 775
         $invoice->recalculate_total();
776 776
         $invoice->save();
777 777
         ob_start();
778
-        GetPaid_Meta_Box_Invoice_Items::output( get_post( $invoice->get_id() ), $invoice );
778
+        GetPaid_Meta_Box_Invoice_Items::output(get_post($invoice->get_id()), $invoice);
779 779
         $table = ob_get_clean();
780
-        wp_send_json_success( compact( 'table' ) );
780
+        wp_send_json_success(compact('table'));
781 781
     }
782 782
 
783 783
     /**
@@ -786,42 +786,42 @@  discard block
 block discarded – undo
786 786
     public static function admin_add_invoice_item() {
787 787
 
788 788
         // Verify nonce.
789
-        check_ajax_referer( 'wpinv-nonce' );
789
+        check_ajax_referer('wpinv-nonce');
790 790
 
791
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
791
+        if (!wpinv_current_user_can_manage_invoicing()) {
792 792
             exit;
793 793
         }
794 794
 
795 795
         // We need an invoice and item.
796
-        if ( empty( $_POST['post_id'] ) || empty( $_POST['item_id'] ) ) {
796
+        if (empty($_POST['post_id']) || empty($_POST['item_id'])) {
797 797
             exit;
798 798
         }
799 799
 
800 800
         // Fetch the invoice.
801
-        $invoice = new WPInv_Invoice( intval( $_POST['post_id'] ) );
801
+        $invoice = new WPInv_Invoice(intval($_POST['post_id']));
802 802
         $alert   = false;
803 803
 
804 804
         // Ensure it exists and its not been paid for.
805
-        if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) {
805
+        if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) {
806 806
             exit;
807 807
         }
808 808
 
809 809
         // Add the item.
810
-        $item  = new GetPaid_Form_Item( (int) $_POST['item_id'] );
811
-        $error = $invoice->add_item( $item );
810
+        $item  = new GetPaid_Form_Item((int) $_POST['item_id']);
811
+        $error = $invoice->add_item($item);
812 812
 
813
-        if ( is_wp_error( $error ) ) {
813
+        if (is_wp_error($error)) {
814 814
             $alert = $error->get_error_message();
815
-            wp_send_json_success( compact( 'alert' ) );
815
+            wp_send_json_success(compact('alert'));
816 816
         }
817 817
 
818 818
         // Save the invoice.
819 819
         $invoice->recalculate_total();
820 820
         $invoice->save();
821 821
         ob_start();
822
-        GetPaid_Meta_Box_Invoice_Items::output_row( GetPaid_Meta_Box_Invoice_Items::get_columns( $invoice ), $item, $invoice );
822
+        GetPaid_Meta_Box_Invoice_Items::output_row(GetPaid_Meta_Box_Invoice_Items::get_columns($invoice), $item, $invoice);
823 823
         $row = ob_get_clean();
824
-        wp_send_json_success( compact( 'row' ) );
824
+        wp_send_json_success(compact('row'));
825 825
     }
826 826
 
827 827
     /**
@@ -830,39 +830,39 @@  discard block
 block discarded – undo
830 830
     public static function add_invoice_items() {
831 831
 
832 832
         // Verify nonce.
833
-        check_ajax_referer( 'wpinv-nonce' );
833
+        check_ajax_referer('wpinv-nonce');
834 834
 
835
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
835
+        if (!wpinv_current_user_can_manage_invoicing()) {
836 836
             exit;
837 837
         }
838 838
 
839 839
         // We need an invoice and items.
840
-        if ( empty( $_POST['post_id'] ) || empty( $_POST['items'] ) ) {
840
+        if (empty($_POST['post_id']) || empty($_POST['items'])) {
841 841
             exit;
842 842
         }
843 843
 
844 844
         // Fetch the invoice.
845
-        $invoice = new WPInv_Invoice( intval( $_POST['post_id'] ) );
845
+        $invoice = new WPInv_Invoice(intval($_POST['post_id']));
846 846
         $alert   = false;
847 847
 
848 848
         // Ensure it exists and its not been paid for.
849
-        if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) {
849
+        if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) {
850 850
             exit;
851 851
         }
852 852
 
853 853
         // Add the items.
854
-        foreach ( wp_kses_post_deep( wp_unslash( $_POST['items'] ) ) as $data ) {
854
+        foreach (wp_kses_post_deep(wp_unslash($_POST['items'])) as $data) {
855 855
 
856
-            $item = new GetPaid_Form_Item( (int) $data['id'] );
856
+            $item = new GetPaid_Form_Item((int) $data['id']);
857 857
 
858
-            if ( is_numeric( $data['qty'] ) && (float) $data['qty'] > 0 ) {
859
-                $item->set_quantity( floatval( $data['qty'] ) );
858
+            if (is_numeric($data['qty']) && (float) $data['qty'] > 0) {
859
+                $item->set_quantity(floatval($data['qty']));
860 860
             }
861 861
 
862
-            if ( $item->get_id() > 0 ) {
863
-                $error = $invoice->add_item( $item );
862
+            if ($item->get_id() > 0) {
863
+                $error = $invoice->add_item($item);
864 864
 
865
-                if ( is_wp_error( $error ) ) {
865
+                if (is_wp_error($error)) {
866 866
                     $alert = $error->get_error_message();
867 867
                 }
868 868
 }
@@ -875,11 +875,11 @@  discard block
 block discarded – undo
875 875
         // Return an array of invoice items.
876 876
         $items = array();
877 877
 
878
-        foreach ( $invoice->get_items() as $item ) {
879
-            $items[] = $item->prepare_data_for_invoice_edit_ajax( $invoice->get_currency() );
878
+        foreach ($invoice->get_items() as $item) {
879
+            $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency());
880 880
         }
881 881
 
882
-        wp_send_json_success( compact( 'items', 'alert' ) );
882
+        wp_send_json_success(compact('items', 'alert'));
883 883
     }
884 884
 
885 885
     /**
@@ -888,15 +888,15 @@  discard block
 block discarded – undo
888 888
     public static function get_invoicing_items() {
889 889
 
890 890
         // Verify nonce.
891
-        check_ajax_referer( 'wpinv-nonce' );
891
+        check_ajax_referer('wpinv-nonce');
892 892
 
893
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
893
+        if (!wpinv_current_user_can_manage_invoicing()) {
894 894
             exit;
895 895
         }
896 896
 
897 897
         // We need a search term.
898
-        if ( empty( $_GET['search'] ) ) {
899
-            wp_send_json_success( array() );
898
+        if (empty($_GET['search'])) {
899
+            wp_send_json_success(array());
900 900
         }
901 901
 
902 902
         // Retrieve items.
@@ -905,8 +905,8 @@  discard block
 block discarded – undo
905 905
             'orderby'        => 'title',
906 906
             'order'          => 'ASC',
907 907
             'posts_per_page' => -1,
908
-            'post_status'    => array( 'publish' ),
909
-            's'              => sanitize_text_field( urldecode( $_GET['search'] ) ),
908
+            'post_status'    => array('publish'),
909
+            's'              => sanitize_text_field(urldecode($_GET['search'])),
910 910
             'meta_query'     => array(
911 911
                 array(
912 912
                     'key'     => '_wpinv_type',
@@ -916,25 +916,25 @@  discard block
 block discarded – undo
916 916
             ),
917 917
         );
918 918
 
919
-        if ( ! empty( $_GET['ignore'] ) ) {
920
-            $item_args['exclude'] = wp_parse_id_list( sanitize_text_field( $_GET['ignore'] ) );
919
+        if (!empty($_GET['ignore'])) {
920
+            $item_args['exclude'] = wp_parse_id_list(sanitize_text_field($_GET['ignore']));
921 921
         }
922 922
 
923
-        $items = get_posts( apply_filters( 'getpaid_ajax_invoice_items_query_args', $item_args ) );
923
+        $items = get_posts(apply_filters('getpaid_ajax_invoice_items_query_args', $item_args));
924 924
         $data  = array();
925 925
 
926
-        $is_payment_form = ( ! empty( $_GET['post_id'] ) && 'wpi_payment_form' == get_post_type( (int) $_GET['post_id'] ) );
926
+        $is_payment_form = (!empty($_GET['post_id']) && 'wpi_payment_form' == get_post_type((int) $_GET['post_id']));
927 927
 
928
-        foreach ( $items as $item ) {
929
-            $item      = new GetPaid_Form_Item( $item );
928
+        foreach ($items as $item) {
929
+            $item = new GetPaid_Form_Item($item);
930 930
             $data[] = array(
931 931
                 'id'        => (int) $item->get_id(),
932
-                'text'      => strip_tags( $item->get_name() ),
933
-                'form_data' => $is_payment_form ? $item->prepare_data_for_use( false ) : '',
932
+                'text'      => strip_tags($item->get_name()),
933
+                'form_data' => $is_payment_form ? $item->prepare_data_for_use(false) : '',
934 934
             );
935 935
         }
936 936
 
937
-        wp_send_json_success( $data );
937
+        wp_send_json_success($data);
938 938
 
939 939
     }
940 940
 
@@ -944,37 +944,37 @@  discard block
 block discarded – undo
944 944
     public static function get_customers() {
945 945
 
946 946
         // Verify nonce.
947
-        check_ajax_referer( 'wpinv-nonce' );
947
+        check_ajax_referer('wpinv-nonce');
948 948
 
949
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
949
+        if (!wpinv_current_user_can_manage_invoicing()) {
950 950
             exit;
951 951
         }
952 952
 
953 953
         // We need a search term.
954
-        if ( empty( $_GET['search'] ) ) {
955
-            wp_send_json_success( array() );
954
+        if (empty($_GET['search'])) {
955
+            wp_send_json_success(array());
956 956
         }
957 957
 
958 958
         // Retrieve customers.
959 959
 
960 960
         $customer_args = array(
961
-            'fields'         => array( 'ID', 'user_email', 'display_name' ),
961
+            'fields'         => array('ID', 'user_email', 'display_name'),
962 962
             'orderby'        => 'display_name',
963
-            'search'         => '*' . sanitize_text_field( $_GET['search'] ) . '*',
964
-            'search_columns' => array( 'user_login', 'user_email', 'display_name' ),
963
+            'search'         => '*' . sanitize_text_field($_GET['search']) . '*',
964
+            'search_columns' => array('user_login', 'user_email', 'display_name'),
965 965
         );
966 966
 
967
-        $customers = get_users( apply_filters( 'getpaid_ajax_invoice_customers_query_args', $customer_args ) );
967
+        $customers = get_users(apply_filters('getpaid_ajax_invoice_customers_query_args', $customer_args));
968 968
         $data      = array();
969 969
 
970
-        foreach ( $customers as $customer ) {
970
+        foreach ($customers as $customer) {
971 971
             $data[] = array(
972 972
                 'id'   => (int) $customer->ID,
973
-                'text' => strip_tags( sprintf( _x( '%1$s (%2$s)', 'user dropdown', 'invoicing' ), $customer->display_name, $customer->user_email ) ),
973
+                'text' => strip_tags(sprintf(_x('%1$s (%2$s)', 'user dropdown', 'invoicing'), $customer->display_name, $customer->user_email)),
974 974
             );
975 975
         }
976 976
 
977
-        wp_send_json_success( $data );
977
+        wp_send_json_success($data);
978 978
 
979 979
     }
980 980
 
@@ -984,25 +984,25 @@  discard block
 block discarded – undo
984 984
     public static function get_aui_states_field() {
985 985
 
986 986
         // We need a country.
987
-        if ( empty( $_GET['country'] ) ) {
987
+        if (empty($_GET['country'])) {
988 988
             exit;
989 989
         }
990 990
 
991
-        $states = wpinv_get_country_states( sanitize_text_field( $_GET['country'] ) );
992
-        $state  = isset( $_GET['state'] ) ? sanitize_text_field( $_GET['state'] ) : wpinv_get_default_state();
993
-        $name   = isset( $_GET['name'] ) ? sanitize_text_field( $_GET['name'] ) : 'wpinv_state';
994
-        $class  = isset( $_GET['class'] ) ? sanitize_text_field( $_GET['class'] ) : 'form-control-sm';
991
+        $states = wpinv_get_country_states(sanitize_text_field($_GET['country']));
992
+        $state  = isset($_GET['state']) ? sanitize_text_field($_GET['state']) : wpinv_get_default_state();
993
+        $name   = isset($_GET['name']) ? sanitize_text_field($_GET['name']) : 'wpinv_state';
994
+        $class  = isset($_GET['class']) ? sanitize_text_field($_GET['class']) : 'form-control-sm';
995 995
 
996
-        if ( empty( $states ) ) {
996
+        if (empty($states)) {
997 997
 
998 998
             $html = aui()->input(
999 999
                 array(
1000 1000
                     'type'        => 'text',
1001 1001
                     'id'          => 'wpinv_state',
1002 1002
                     'name'        => $name,
1003
-                    'label'       => __( 'State', 'invoicing' ),
1003
+                    'label'       => __('State', 'invoicing'),
1004 1004
                     'label_type'  => 'vertical',
1005
-                    'placeholder' => __( 'State', 'invoicing' ),
1005
+                    'placeholder' => __('State', 'invoicing'),
1006 1006
                     'class'       => $class,
1007 1007
                     'value'       => $state,
1008 1008
                 )
@@ -1014,9 +1014,9 @@  discard block
 block discarded – undo
1014 1014
                 array(
1015 1015
                     'id'               => 'wpinv_state',
1016 1016
                     'name'             => $name,
1017
-                    'label'            => __( 'State', 'invoicing' ),
1017
+                    'label'            => __('State', 'invoicing'),
1018 1018
                     'label_type'       => 'vertical',
1019
-                    'placeholder'      => __( 'Select a state', 'invoicing' ),
1019
+                    'placeholder'      => __('Select a state', 'invoicing'),
1020 1020
                     'class'            => $class,
1021 1021
                     'value'            => $state,
1022 1022
                     'options'          => $states,
@@ -1030,7 +1030,7 @@  discard block
 block discarded – undo
1030 1030
         wp_send_json_success(
1031 1031
             array(
1032 1032
                 'html'   => $html,
1033
-                'select' => ! empty( $states ),
1033
+                'select' => !empty($states),
1034 1034
             )
1035 1035
         );
1036 1036
 
@@ -1044,8 +1044,8 @@  discard block
 block discarded – undo
1044 1044
     public static function payment_form_refresh_prices() {
1045 1045
 
1046 1046
         // ... form fields...
1047
-        if ( empty( $_POST['getpaid_payment_form_submission'] ) ) {
1048
-            esc_html_e( 'Error: Reload the page and try again.', 'invoicing' );
1047
+        if (empty($_POST['getpaid_payment_form_submission'])) {
1048
+            esc_html_e('Error: Reload the page and try again.', 'invoicing');
1049 1049
             exit;
1050 1050
         }
1051 1051
 
@@ -1053,7 +1053,7 @@  discard block
 block discarded – undo
1053 1053
         $submission = new GetPaid_Payment_Form_Submission();
1054 1054
 
1055 1055
         // Do we have an error?
1056
-        if ( ! empty( $submission->last_error ) ) {
1056
+        if (!empty($submission->last_error)) {
1057 1057
             wp_send_json_error(
1058 1058
                 array(
1059 1059
                     'code'  => $submission->last_error_code,
@@ -1063,12 +1063,12 @@  discard block
 block discarded – undo
1063 1063
         }
1064 1064
 
1065 1065
         // Prepare the response.
1066
-        $response = new GetPaid_Payment_Form_Submission_Refresh_Prices( $submission );
1066
+        $response = new GetPaid_Payment_Form_Submission_Refresh_Prices($submission);
1067 1067
 
1068 1068
         // Filter the response.
1069
-        $response = apply_filters( 'getpaid_payment_form_ajax_refresh_prices', $response->response, $submission );
1069
+        $response = apply_filters('getpaid_payment_form_ajax_refresh_prices', $response->response, $submission);
1070 1070
 
1071
-        wp_send_json_success( $response );
1071
+        wp_send_json_success($response);
1072 1072
     }
1073 1073
 
1074 1074
     /**
@@ -1080,63 +1080,63 @@  discard block
 block discarded – undo
1080 1080
 	public static function file_upload() {
1081 1081
 
1082 1082
         // Check nonce.
1083
-        check_ajax_referer( 'getpaid_form_nonce' );
1083
+        check_ajax_referer('getpaid_form_nonce');
1084 1084
 
1085
-        if ( empty( $_POST['form_id'] ) || empty( $_POST['field_name'] ) || empty( $_FILES['file'] ) ) {
1086
-            wp_die( esc_html_e( 'Bad Request', 'invoicing' ), 400 );
1085
+        if (empty($_POST['form_id']) || empty($_POST['field_name']) || empty($_FILES['file'])) {
1086
+            wp_die(esc_html_e('Bad Request', 'invoicing'), 400);
1087 1087
         }
1088 1088
 
1089 1089
         // Fetch form.
1090
-        $form = new GetPaid_Payment_Form( intval( $_POST['form_id'] ) );
1090
+        $form = new GetPaid_Payment_Form(intval($_POST['form_id']));
1091 1091
 
1092
-        if ( ! $form->is_active() ) {
1093
-            wp_send_json_error( __( 'Payment form not active', 'invoicing' ) );
1092
+        if (!$form->is_active()) {
1093
+            wp_send_json_error(__('Payment form not active', 'invoicing'));
1094 1094
         }
1095 1095
 
1096 1096
         // Fetch appropriate field.
1097
-        $upload_field = current( wp_list_filter( $form->get_elements(), array( 'id' => sanitize_text_field( $_POST['field_name'] ) ) ) );
1098
-        if ( empty( $upload_field ) ) {
1099
-            wp_send_json_error( __( 'Invalid upload field.', 'invoicing' ) );
1097
+        $upload_field = current(wp_list_filter($form->get_elements(), array('id' => sanitize_text_field($_POST['field_name']))));
1098
+        if (empty($upload_field)) {
1099
+            wp_send_json_error(__('Invalid upload field.', 'invoicing'));
1100 1100
         }
1101 1101
 
1102 1102
         // Prepare allowed file types.
1103
-        $file_types = isset( $upload_field['file_types'] ) ? $upload_field['file_types'] : array( 'jpg|jpeg|jpe', 'gif', 'png' );
1103
+        $file_types = isset($upload_field['file_types']) ? $upload_field['file_types'] : array('jpg|jpeg|jpe', 'gif', 'png');
1104 1104
         $all_types  = getpaid_get_allowed_mime_types();
1105 1105
         $mime_types = array();
1106 1106
 
1107
-        foreach ( $file_types as $file_type ) {
1108
-            if ( isset( $all_types[ $file_type ] ) ) {
1109
-                $mime_types[] = $all_types[ $file_type ];
1107
+        foreach ($file_types as $file_type) {
1108
+            if (isset($all_types[$file_type])) {
1109
+                $mime_types[] = $all_types[$file_type];
1110 1110
             }
1111 1111
         }
1112 1112
 
1113
-        if ( ! in_array( $_FILES['file']['type'], $mime_types ) ) {
1114
-            wp_send_json_error( __( 'Unsupported file type.', 'invoicing' ) );
1113
+        if (!in_array($_FILES['file']['type'], $mime_types)) {
1114
+            wp_send_json_error(__('Unsupported file type.', 'invoicing'));
1115 1115
         }
1116 1116
 
1117 1117
         // Upload file.
1118
-        $file_name = explode( '.', strtolower( $_FILES['file']['name'] ) );
1119
-        $file_name = uniqid( 'getpaid-' ) . '.' . array_pop( $file_name );
1118
+        $file_name = explode('.', strtolower($_FILES['file']['name']));
1119
+        $file_name = uniqid('getpaid-') . '.' . array_pop($file_name);
1120 1120
 
1121 1121
         $uploaded = wp_upload_bits(
1122 1122
             $file_name,
1123 1123
             null,
1124
-            file_get_contents( $_FILES['file']['tmp_name'] )
1124
+            file_get_contents($_FILES['file']['tmp_name'])
1125 1125
         );
1126 1126
 
1127
-        if ( ! empty( $uploaded['error'] ) ) {
1128
-            wp_send_json_error( $uploaded['error'] );
1127
+        if (!empty($uploaded['error'])) {
1128
+            wp_send_json_error($uploaded['error']);
1129 1129
         }
1130 1130
 
1131 1131
         // Retrieve response.
1132 1132
         $response = sprintf(
1133 1133
             '<input type="hidden" name="%s[%s]" value="%s" />',
1134
-            esc_attr( sanitize_text_field( $_POST['field_name'] ) ),
1135
-            esc_url( $uploaded['url'] ),
1136
-            esc_attr( sanitize_text_field( strtolower( $_FILES['file']['name'] ) ) )
1134
+            esc_attr(sanitize_text_field($_POST['field_name'])),
1135
+            esc_url($uploaded['url']),
1136
+            esc_attr(sanitize_text_field(strtolower($_FILES['file']['name'])))
1137 1137
         );
1138 1138
 
1139
-        wp_send_json_success( $response );
1139
+        wp_send_json_success($response);
1140 1140
 
1141 1141
 	}
1142 1142
 
Please login to merge, or discard this patch.
includes/class-wpinv.php 2 patches
Indentation   +590 added lines, -590 removed lines patch added patch discarded remove patch
@@ -14,635 +14,635 @@
 block discarded – undo
14 14
  */
15 15
 class WPInv_Plugin {
16 16
 
17
-	/**
18
-	 * GetPaid version.
19
-	 *
20
-	 * @var string
21
-	 */
22
-	public $version;
23
-
24
-	/**
25
-	 * Data container.
26
-	 *
27
-	 * @var array
28
-	 */
29
-	protected $data = array();
30
-
31
-	/**
32
-	 * Form elements instance.
33
-	 *
34
-	 * @var WPInv_Payment_Form_Elements
35
-	 */
36
-	public $form_elements;
37
-
38
-	/**
39
-	 * @var array An array of payment gateways.
40
-	 */
41
-	public $gateways;
42
-
43
-	/**
44
-	 * Class constructor.
45
-	 */
46
-	public function __construct() {
47
-		$this->define_constants();
48
-		$this->includes();
49
-		$this->init_hooks();
50
-		$this->set_properties();
51
-	}
52
-
53
-	/**
54
-	 * Sets a custom data property.
55
-	 *
56
-	 * @param string $prop The prop to set.
57
-	 * @param mixed $value The value to retrieve.
58
-	 */
59
-	public function set( $prop, $value ) {
60
-		$this->data[ $prop ] = $value;
61
-	}
62
-
63
-	/**
64
-	 * Gets a custom data property.
65
-	 *
66
-	 * @param string $prop The prop to set.
67
-	 * @return mixed The value.
68
-	 */
69
-	public function get( $prop ) {
70
-
71
-		if ( isset( $this->data[ $prop ] ) ) {
72
-			return $this->data[ $prop ];
73
-		}
74
-
75
-		return null;
76
-	}
77
-
78
-	/**
79
-	 * Define class properties.
80
-	 */
81
-	public function set_properties() {
82
-
83
-		// Sessions.
84
-		$this->set( 'session', new WPInv_Session_Handler() );
85
-		$GLOBALS['wpi_session'] = $this->get( 'session' ); // Backwards compatibility.
86
-		$GLOBALS['wpinv_euvat'] = new WPInv_EUVat(); // Backwards compatibility.
87
-
88
-		// Init other objects.
89
-		$this->set( 'notes', new WPInv_Notes() );
90
-		$this->set( 'api', new WPInv_API() );
91
-		$this->set( 'post_types', new GetPaid_Post_Types() );
92
-		$this->set( 'template', new GetPaid_Template() );
93
-		$this->set( 'admin', new GetPaid_Admin() );
94
-		$this->set( 'subscriptions', new WPInv_Subscriptions() );
95
-		$this->set( 'invoice_emails', new GetPaid_Invoice_Notification_Emails() );
96
-		$this->set( 'subscription_emails', new GetPaid_Subscription_Notification_Emails() );
97
-		$this->set( 'daily_maintenace', new GetPaid_Daily_Maintenance() );
98
-		$this->set( 'payment_forms', new GetPaid_Payment_Forms() );
99
-		$this->set( 'maxmind', new GetPaid_MaxMind_Geolocation() );
100
-
101
-	}
102
-
103
-	 /**
104
-	 * Define plugin constants.
105
-	 */
106
-	public function define_constants() {
107
-		define( 'WPINV_PLUGIN_DIR', plugin_dir_path( WPINV_PLUGIN_FILE ) );
108
-		define( 'WPINV_PLUGIN_URL', plugin_dir_url( WPINV_PLUGIN_FILE ) );
109
-		$this->version = WPINV_VERSION;
110
-	}
111
-
112
-	/**
113
-	 * Hook into actions and filters.
114
-	 *
115
-	 * @since 1.0.19
116
-	 */
117
-	protected function init_hooks() {
118
-		/* Internationalize the text strings used. */
119
-		add_action( 'plugins_loaded', array( &$this, 'plugins_loaded' ) );
120
-
121
-		// Init the plugin after WordPress inits.
122
-		add_action( 'init', array( $this, 'init' ), 1 );
123
-		add_action( 'init', array( $this, 'maybe_process_ipn' ), 10 );
124
-		add_action( 'init', array( $this, 'wpinv_actions' ) );
125
-		add_action( 'init', array( $this, 'maybe_do_authenticated_action' ), 100 );
126
-		add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 );
127
-		add_action( 'wp_footer', array( $this, 'wp_footer' ) );
128
-		add_action( 'wp_head', array( $this, 'wp_head' ) );
129
-		add_action( 'widgets_init', array( $this, 'register_widgets' ) );
130
-		add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', array( $this, 'wpseo_exclude_from_sitemap_by_post_ids' ) );
131
-		add_filter( 'the_seo_framework_sitemap_supported_post_types', array( $this, 'exclude_invoicing_post_types' ) );
132
-		add_filter( 'pre_get_posts', array( &$this, 'pre_get_posts' ) );
133
-
134
-		add_filter( 'query_vars', array( $this, 'custom_query_vars' ) );
17
+    /**
18
+     * GetPaid version.
19
+     *
20
+     * @var string
21
+     */
22
+    public $version;
23
+
24
+    /**
25
+     * Data container.
26
+     *
27
+     * @var array
28
+     */
29
+    protected $data = array();
30
+
31
+    /**
32
+     * Form elements instance.
33
+     *
34
+     * @var WPInv_Payment_Form_Elements
35
+     */
36
+    public $form_elements;
37
+
38
+    /**
39
+     * @var array An array of payment gateways.
40
+     */
41
+    public $gateways;
42
+
43
+    /**
44
+     * Class constructor.
45
+     */
46
+    public function __construct() {
47
+        $this->define_constants();
48
+        $this->includes();
49
+        $this->init_hooks();
50
+        $this->set_properties();
51
+    }
52
+
53
+    /**
54
+     * Sets a custom data property.
55
+     *
56
+     * @param string $prop The prop to set.
57
+     * @param mixed $value The value to retrieve.
58
+     */
59
+    public function set( $prop, $value ) {
60
+        $this->data[ $prop ] = $value;
61
+    }
62
+
63
+    /**
64
+     * Gets a custom data property.
65
+     *
66
+     * @param string $prop The prop to set.
67
+     * @return mixed The value.
68
+     */
69
+    public function get( $prop ) {
70
+
71
+        if ( isset( $this->data[ $prop ] ) ) {
72
+            return $this->data[ $prop ];
73
+        }
74
+
75
+        return null;
76
+    }
77
+
78
+    /**
79
+     * Define class properties.
80
+     */
81
+    public function set_properties() {
82
+
83
+        // Sessions.
84
+        $this->set( 'session', new WPInv_Session_Handler() );
85
+        $GLOBALS['wpi_session'] = $this->get( 'session' ); // Backwards compatibility.
86
+        $GLOBALS['wpinv_euvat'] = new WPInv_EUVat(); // Backwards compatibility.
87
+
88
+        // Init other objects.
89
+        $this->set( 'notes', new WPInv_Notes() );
90
+        $this->set( 'api', new WPInv_API() );
91
+        $this->set( 'post_types', new GetPaid_Post_Types() );
92
+        $this->set( 'template', new GetPaid_Template() );
93
+        $this->set( 'admin', new GetPaid_Admin() );
94
+        $this->set( 'subscriptions', new WPInv_Subscriptions() );
95
+        $this->set( 'invoice_emails', new GetPaid_Invoice_Notification_Emails() );
96
+        $this->set( 'subscription_emails', new GetPaid_Subscription_Notification_Emails() );
97
+        $this->set( 'daily_maintenace', new GetPaid_Daily_Maintenance() );
98
+        $this->set( 'payment_forms', new GetPaid_Payment_Forms() );
99
+        $this->set( 'maxmind', new GetPaid_MaxMind_Geolocation() );
100
+
101
+    }
102
+
103
+        /**
104
+         * Define plugin constants.
105
+         */
106
+    public function define_constants() {
107
+        define( 'WPINV_PLUGIN_DIR', plugin_dir_path( WPINV_PLUGIN_FILE ) );
108
+        define( 'WPINV_PLUGIN_URL', plugin_dir_url( WPINV_PLUGIN_FILE ) );
109
+        $this->version = WPINV_VERSION;
110
+    }
111
+
112
+    /**
113
+     * Hook into actions and filters.
114
+     *
115
+     * @since 1.0.19
116
+     */
117
+    protected function init_hooks() {
118
+        /* Internationalize the text strings used. */
119
+        add_action( 'plugins_loaded', array( &$this, 'plugins_loaded' ) );
120
+
121
+        // Init the plugin after WordPress inits.
122
+        add_action( 'init', array( $this, 'init' ), 1 );
123
+        add_action( 'init', array( $this, 'maybe_process_ipn' ), 10 );
124
+        add_action( 'init', array( $this, 'wpinv_actions' ) );
125
+        add_action( 'init', array( $this, 'maybe_do_authenticated_action' ), 100 );
126
+        add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 );
127
+        add_action( 'wp_footer', array( $this, 'wp_footer' ) );
128
+        add_action( 'wp_head', array( $this, 'wp_head' ) );
129
+        add_action( 'widgets_init', array( $this, 'register_widgets' ) );
130
+        add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', array( $this, 'wpseo_exclude_from_sitemap_by_post_ids' ) );
131
+        add_filter( 'the_seo_framework_sitemap_supported_post_types', array( $this, 'exclude_invoicing_post_types' ) );
132
+        add_filter( 'pre_get_posts', array( &$this, 'pre_get_posts' ) );
133
+
134
+        add_filter( 'query_vars', array( $this, 'custom_query_vars' ) );
135 135
         add_action( 'init', array( $this, 'add_rewrite_rule' ), 10, 0 );
136
-		add_action( 'pre_get_posts', array( $this, 'maybe_process_new_ipn' ), 1 );
137
-
138
-		// Fires after registering actions.
139
-		do_action( 'wpinv_actions', $this );
140
-		do_action( 'getpaid_actions', $this );
141
-
142
-	}
143
-
144
-	public function plugins_loaded() {
145
-		/* Internationalize the text strings used. */
146
-		$this->load_textdomain();
147
-
148
-		do_action( 'wpinv_loaded' );
149
-
150
-		// Fix oxygen page builder conflict
151
-		if ( function_exists( 'ct_css_output' ) ) {
152
-			wpinv_oxygen_fix_conflict();
153
-		}
154
-	}
155
-
156
-	/**
157
-	 * Load Localisation files.
158
-	 *
159
-	 * Note: the first-loaded translation file overrides any following ones if the same translation is present.
160
-	 *
161
-	 * Locales found in:
162
-	 *      - WP_LANG_DIR/plugins/invoicing-LOCALE.mo
163
-	 *      - WP_PLUGIN_DIR/invoicing/languages/invoicing-LOCALE.mo
164
-	 *
165
-	 * @since 1.0.0
166
-	 */
167
-	public function load_textdomain() {
168
-
169
-		load_plugin_textdomain(
170
-			'invoicing',
171
-			false,
172
-			plugin_basename( dirname( WPINV_PLUGIN_FILE ) ) . '/languages/'
173
-		);
174
-
175
-	}
176
-
177
-	/**
178
-	 * Include required core files used in admin and on the frontend.
179
-	 */
180
-	public function includes() {
181
-
182
-		// Start with the settings.
183
-		require_once WPINV_PLUGIN_DIR . 'includes/admin/register-settings.php';
184
-
185
-		// Packages/libraries.
186
-		require_once WPINV_PLUGIN_DIR . 'vendor/autoload.php';
187
-		require_once WPINV_PLUGIN_DIR . 'vendor/ayecode/wp-ayecode-ui/ayecode-ui-loader.php';
188
-
189
-		// Load functions.
190
-		require_once WPINV_PLUGIN_DIR . 'includes/deprecated-functions.php';
191
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-email-functions.php';
192
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-general-functions.php';
193
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-helper-functions.php';
194
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-tax-functions.php';
195
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-template-functions.php';
196
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-address-functions.php';
197
-		require_once WPINV_PLUGIN_DIR . 'includes/invoice-functions.php';
198
-		require_once WPINV_PLUGIN_DIR . 'includes/subscription-functions.php';
199
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-item-functions.php';
200
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-discount-functions.php';
201
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-gateway-functions.php';
202
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-payment-functions.php';
203
-		require_once WPINV_PLUGIN_DIR . 'includes/user-functions.php';
204
-		require_once WPINV_PLUGIN_DIR . 'includes/error-functions.php';
205
-
206
-		// Register autoloader.
207
-		try {
208
-			spl_autoload_register( array( $this, 'autoload' ), true );
209
-		} catch ( Exception $e ) {
210
-			wpinv_error_log( $e->getMessage(), '', __FILE__, 149, true );
211
-		}
212
-
213
-		require_once WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php';
214
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-session-handler.php';
215
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-ajax.php';
216
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-api.php';
217
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-cache-helper.php';
218
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-db.php';
219
-		require_once WPINV_PLUGIN_DIR . 'includes/admin/subscriptions.php';
220
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions-db.php';
221
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-subscription.php';
222
-		require_once WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-privacy.php';
223
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-privacy.php';
224
-		require_once WPINV_PLUGIN_DIR . 'includes/libraries/class-ayecode-addons.php';
225
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-addons.php';
226
-		require_once WPINV_PLUGIN_DIR . 'widgets/checkout.php';
227
-		require_once WPINV_PLUGIN_DIR . 'widgets/invoice-history.php';
228
-		require_once WPINV_PLUGIN_DIR . 'widgets/invoice-receipt.php';
229
-		require_once WPINV_PLUGIN_DIR . 'widgets/invoice-messages.php';
230
-		require_once WPINV_PLUGIN_DIR . 'widgets/subscriptions.php';
231
-		require_once WPINV_PLUGIN_DIR . 'widgets/buy-item.php';
232
-		require_once WPINV_PLUGIN_DIR . 'widgets/getpaid.php';
233
-		require_once WPINV_PLUGIN_DIR . 'widgets/invoice.php';
234
-		require_once WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php';
235
-
236
-		if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
237
-			GetPaid_Post_Types_Admin::init();
238
-
239
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php';
240
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-payment-form.php';
241
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-notes.php';
242
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-admin-menus.php';
243
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-users.php';
244
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/class-getpaid-admin-profile.php';
245
-			// load the user class only on the users.php page
246
-			global $pagenow;
247
-			if ( $pagenow == 'users.php' ) {
248
-				new WPInv_Admin_Users();
249
-			}
250
-		}
251
-
252
-		// Register cli commands
253
-		if ( defined( 'WP_CLI' ) && WP_CLI ) {
254
-			require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php';
255
-			WP_CLI::add_command( 'invoicing', 'WPInv_CLI' );
256
-		}
257
-
258
-	}
259
-
260
-	/**
261
-	 * Class autoloader
262
-	 *
263
-	 * @param       string $class_name The name of the class to load.
264
-	 * @access      public
265
-	 * @since       1.0.19
266
-	 * @return      void
267
-	 */
268
-	public function autoload( $class_name ) {
269
-
270
-		// Normalize the class name...
271
-		$class_name  = strtolower( $class_name );
272
-
273
-		// ... and make sure it is our class.
274
-		if ( false === strpos( $class_name, 'getpaid_' ) && false === strpos( $class_name, 'wpinv_' ) ) {
275
-			return;
276
-		}
277
-
278
-		// Next, prepare the file name from the class.
279
-		$file_name = 'class-' . str_replace( '_', '-', $class_name ) . '.php';
280
-
281
-		// Base path of the classes.
282
-		$plugin_path = untrailingslashit( WPINV_PLUGIN_DIR );
283
-
284
-		// And an array of possible locations in order of importance.
285
-		$locations = array(
286
-			"$plugin_path/includes",
287
-			"$plugin_path/includes/data-stores",
288
-			"$plugin_path/includes/gateways",
289
-			"$plugin_path/includes/payments",
290
-			"$plugin_path/includes/geolocation",
291
-			"$plugin_path/includes/reports",
292
-			"$plugin_path/includes/api",
293
-			"$plugin_path/includes/admin",
294
-			"$plugin_path/includes/admin/meta-boxes",
295
-		);
296
-
297
-		foreach ( apply_filters( 'getpaid_autoload_locations', $locations ) as $location ) {
298
-
299
-			if ( file_exists( trailingslashit( $location ) . $file_name ) ) {
300
-				include trailingslashit( $location ) . $file_name;
301
-				break;
302
-			}
136
+        add_action( 'pre_get_posts', array( $this, 'maybe_process_new_ipn' ), 1 );
137
+
138
+        // Fires after registering actions.
139
+        do_action( 'wpinv_actions', $this );
140
+        do_action( 'getpaid_actions', $this );
141
+
142
+    }
143
+
144
+    public function plugins_loaded() {
145
+        /* Internationalize the text strings used. */
146
+        $this->load_textdomain();
147
+
148
+        do_action( 'wpinv_loaded' );
149
+
150
+        // Fix oxygen page builder conflict
151
+        if ( function_exists( 'ct_css_output' ) ) {
152
+            wpinv_oxygen_fix_conflict();
153
+        }
154
+    }
155
+
156
+    /**
157
+     * Load Localisation files.
158
+     *
159
+     * Note: the first-loaded translation file overrides any following ones if the same translation is present.
160
+     *
161
+     * Locales found in:
162
+     *      - WP_LANG_DIR/plugins/invoicing-LOCALE.mo
163
+     *      - WP_PLUGIN_DIR/invoicing/languages/invoicing-LOCALE.mo
164
+     *
165
+     * @since 1.0.0
166
+     */
167
+    public function load_textdomain() {
168
+
169
+        load_plugin_textdomain(
170
+            'invoicing',
171
+            false,
172
+            plugin_basename( dirname( WPINV_PLUGIN_FILE ) ) . '/languages/'
173
+        );
174
+
175
+    }
176
+
177
+    /**
178
+     * Include required core files used in admin and on the frontend.
179
+     */
180
+    public function includes() {
181
+
182
+        // Start with the settings.
183
+        require_once WPINV_PLUGIN_DIR . 'includes/admin/register-settings.php';
184
+
185
+        // Packages/libraries.
186
+        require_once WPINV_PLUGIN_DIR . 'vendor/autoload.php';
187
+        require_once WPINV_PLUGIN_DIR . 'vendor/ayecode/wp-ayecode-ui/ayecode-ui-loader.php';
188
+
189
+        // Load functions.
190
+        require_once WPINV_PLUGIN_DIR . 'includes/deprecated-functions.php';
191
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-email-functions.php';
192
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-general-functions.php';
193
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-helper-functions.php';
194
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-tax-functions.php';
195
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-template-functions.php';
196
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-address-functions.php';
197
+        require_once WPINV_PLUGIN_DIR . 'includes/invoice-functions.php';
198
+        require_once WPINV_PLUGIN_DIR . 'includes/subscription-functions.php';
199
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-item-functions.php';
200
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-discount-functions.php';
201
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-gateway-functions.php';
202
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-payment-functions.php';
203
+        require_once WPINV_PLUGIN_DIR . 'includes/user-functions.php';
204
+        require_once WPINV_PLUGIN_DIR . 'includes/error-functions.php';
205
+
206
+        // Register autoloader.
207
+        try {
208
+            spl_autoload_register( array( $this, 'autoload' ), true );
209
+        } catch ( Exception $e ) {
210
+            wpinv_error_log( $e->getMessage(), '', __FILE__, 149, true );
211
+        }
212
+
213
+        require_once WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php';
214
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-session-handler.php';
215
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-ajax.php';
216
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-api.php';
217
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-cache-helper.php';
218
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-db.php';
219
+        require_once WPINV_PLUGIN_DIR . 'includes/admin/subscriptions.php';
220
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions-db.php';
221
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-subscription.php';
222
+        require_once WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-privacy.php';
223
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-privacy.php';
224
+        require_once WPINV_PLUGIN_DIR . 'includes/libraries/class-ayecode-addons.php';
225
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-addons.php';
226
+        require_once WPINV_PLUGIN_DIR . 'widgets/checkout.php';
227
+        require_once WPINV_PLUGIN_DIR . 'widgets/invoice-history.php';
228
+        require_once WPINV_PLUGIN_DIR . 'widgets/invoice-receipt.php';
229
+        require_once WPINV_PLUGIN_DIR . 'widgets/invoice-messages.php';
230
+        require_once WPINV_PLUGIN_DIR . 'widgets/subscriptions.php';
231
+        require_once WPINV_PLUGIN_DIR . 'widgets/buy-item.php';
232
+        require_once WPINV_PLUGIN_DIR . 'widgets/getpaid.php';
233
+        require_once WPINV_PLUGIN_DIR . 'widgets/invoice.php';
234
+        require_once WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php';
235
+
236
+        if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
237
+            GetPaid_Post_Types_Admin::init();
238
+
239
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php';
240
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-payment-form.php';
241
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-notes.php';
242
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-admin-menus.php';
243
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-users.php';
244
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/class-getpaid-admin-profile.php';
245
+            // load the user class only on the users.php page
246
+            global $pagenow;
247
+            if ( $pagenow == 'users.php' ) {
248
+                new WPInv_Admin_Users();
249
+            }
250
+        }
251
+
252
+        // Register cli commands
253
+        if ( defined( 'WP_CLI' ) && WP_CLI ) {
254
+            require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php';
255
+            WP_CLI::add_command( 'invoicing', 'WPInv_CLI' );
256
+        }
257
+
258
+    }
259
+
260
+    /**
261
+     * Class autoloader
262
+     *
263
+     * @param       string $class_name The name of the class to load.
264
+     * @access      public
265
+     * @since       1.0.19
266
+     * @return      void
267
+     */
268
+    public function autoload( $class_name ) {
269
+
270
+        // Normalize the class name...
271
+        $class_name  = strtolower( $class_name );
272
+
273
+        // ... and make sure it is our class.
274
+        if ( false === strpos( $class_name, 'getpaid_' ) && false === strpos( $class_name, 'wpinv_' ) ) {
275
+            return;
276
+        }
277
+
278
+        // Next, prepare the file name from the class.
279
+        $file_name = 'class-' . str_replace( '_', '-', $class_name ) . '.php';
280
+
281
+        // Base path of the classes.
282
+        $plugin_path = untrailingslashit( WPINV_PLUGIN_DIR );
283
+
284
+        // And an array of possible locations in order of importance.
285
+        $locations = array(
286
+            "$plugin_path/includes",
287
+            "$plugin_path/includes/data-stores",
288
+            "$plugin_path/includes/gateways",
289
+            "$plugin_path/includes/payments",
290
+            "$plugin_path/includes/geolocation",
291
+            "$plugin_path/includes/reports",
292
+            "$plugin_path/includes/api",
293
+            "$plugin_path/includes/admin",
294
+            "$plugin_path/includes/admin/meta-boxes",
295
+        );
296
+
297
+        foreach ( apply_filters( 'getpaid_autoload_locations', $locations ) as $location ) {
298
+
299
+            if ( file_exists( trailingslashit( $location ) . $file_name ) ) {
300
+                include trailingslashit( $location ) . $file_name;
301
+                break;
302
+            }
303 303
 }
304 304
 
305
-	}
306
-
307
-	/**
308
-	 * Inits hooks etc.
309
-	 */
310
-	public function init() {
311
-
312
-		// Fires before getpaid inits.
313
-		do_action( 'before_getpaid_init', $this );
314
-
315
-		// Maybe upgrade.
316
-		$this->maybe_upgrade_database();
317
-
318
-		// Load default gateways.
319
-		$gateways = apply_filters(
320
-			'getpaid_default_gateways',
321
-			array(
322
-				'manual'        => 'GetPaid_Manual_Gateway',
323
-				'paypal'        => 'GetPaid_Paypal_Gateway',
324
-				'worldpay'      => 'GetPaid_Worldpay_Gateway',
325
-				'bank_transfer' => 'GetPaid_Bank_Transfer_Gateway',
326
-				'authorizenet'  => 'GetPaid_Authorize_Net_Gateway',
327
-			)
328
-		);
329
-
330
-		foreach ( $gateways as $id => $class ) {
331
-			$this->gateways[ $id ] = new $class();
332
-		}
333
-
334
-		if ( 'yes' != get_option( 'wpinv_renamed_gateways' ) ) {
335
-			GetPaid_Installer::rename_gateways_label();
336
-			update_option( 'wpinv_renamed_gateways', 'yes' );
337
-		}
338
-
339
-		// Fires after getpaid inits.
340
-		do_action( 'getpaid_init', $this );
341
-
342
-	}
343
-
344
-	/**
345
-	 * Checks if this is an IPN request and processes it.
346
-	 */
347
-	public function maybe_process_ipn() {
348
-
349
-		// Ensure that this is an IPN request.
350
-		if ( empty( $_GET['wpi-listener'] ) || 'IPN' !== $_GET['wpi-listener'] || empty( $_GET['wpi-gateway'] ) ) {
351
-			return;
352
-		}
353
-
354
-		$gateway = sanitize_text_field( $_GET['wpi-gateway'] );
355
-
356
-		do_action( 'wpinv_verify_payment_ipn', $gateway );
357
-		do_action( "wpinv_verify_{$gateway}_ipn" );
358
-		exit;
359
-
360
-	}
361
-
362
-	public function enqueue_scripts() {
363
-
364
-		// Fires before adding scripts.
365
-		do_action( 'getpaid_enqueue_scripts' );
366
-
367
-		$localize                         = array();
368
-		$localize['ajax_url']             = admin_url( 'admin-ajax.php' );
369
-		$localize['thousands']            = wpinv_thousands_separator();
370
-		$localize['decimals']             = wpinv_decimal_separator();
371
-		$localize['nonce']                = wp_create_nonce( 'wpinv-nonce' );
372
-		$localize['txtComplete']          = __( 'Continue', 'invoicing' );
373
-		$localize['UseTaxes']             = wpinv_use_taxes();
374
-		$localize['formNonce']            = wp_create_nonce( 'getpaid_form_nonce' );
375
-		$localize['loading']              = __( 'Loading...', 'invoicing' );
376
-		$localize['connectionError']      = __( 'Could not establish a connection to the server.', 'invoicing' );
377
-
378
-		$localize = apply_filters( 'wpinv_front_js_localize', $localize );
379
-
380
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js' );
381
-		wp_enqueue_script( 'wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array( 'jquery' ), $version, true );
382
-		wp_localize_script( 'wpinv-front-script', 'WPInv', $localize );
383
-	}
384
-
385
-	public function wpinv_actions() {
386
-		if ( isset( $_REQUEST['wpi_action'] ) ) {
387
-			do_action( 'wpinv_' . wpinv_sanitize_key( $_REQUEST['wpi_action'] ), $_REQUEST );
388
-		}
389
-
390
-		if ( defined( 'WP_ALL_IMPORT_ROOT_DIR' ) ) {
391
-			include plugin_dir_path( __FILE__ ) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php';
392
-		}
393
-	}
394
-
395
-	/**
305
+    }
306
+
307
+    /**
308
+     * Inits hooks etc.
309
+     */
310
+    public function init() {
311
+
312
+        // Fires before getpaid inits.
313
+        do_action( 'before_getpaid_init', $this );
314
+
315
+        // Maybe upgrade.
316
+        $this->maybe_upgrade_database();
317
+
318
+        // Load default gateways.
319
+        $gateways = apply_filters(
320
+            'getpaid_default_gateways',
321
+            array(
322
+                'manual'        => 'GetPaid_Manual_Gateway',
323
+                'paypal'        => 'GetPaid_Paypal_Gateway',
324
+                'worldpay'      => 'GetPaid_Worldpay_Gateway',
325
+                'bank_transfer' => 'GetPaid_Bank_Transfer_Gateway',
326
+                'authorizenet'  => 'GetPaid_Authorize_Net_Gateway',
327
+            )
328
+        );
329
+
330
+        foreach ( $gateways as $id => $class ) {
331
+            $this->gateways[ $id ] = new $class();
332
+        }
333
+
334
+        if ( 'yes' != get_option( 'wpinv_renamed_gateways' ) ) {
335
+            GetPaid_Installer::rename_gateways_label();
336
+            update_option( 'wpinv_renamed_gateways', 'yes' );
337
+        }
338
+
339
+        // Fires after getpaid inits.
340
+        do_action( 'getpaid_init', $this );
341
+
342
+    }
343
+
344
+    /**
345
+     * Checks if this is an IPN request and processes it.
346
+     */
347
+    public function maybe_process_ipn() {
348
+
349
+        // Ensure that this is an IPN request.
350
+        if ( empty( $_GET['wpi-listener'] ) || 'IPN' !== $_GET['wpi-listener'] || empty( $_GET['wpi-gateway'] ) ) {
351
+            return;
352
+        }
353
+
354
+        $gateway = sanitize_text_field( $_GET['wpi-gateway'] );
355
+
356
+        do_action( 'wpinv_verify_payment_ipn', $gateway );
357
+        do_action( "wpinv_verify_{$gateway}_ipn" );
358
+        exit;
359
+
360
+    }
361
+
362
+    public function enqueue_scripts() {
363
+
364
+        // Fires before adding scripts.
365
+        do_action( 'getpaid_enqueue_scripts' );
366
+
367
+        $localize                         = array();
368
+        $localize['ajax_url']             = admin_url( 'admin-ajax.php' );
369
+        $localize['thousands']            = wpinv_thousands_separator();
370
+        $localize['decimals']             = wpinv_decimal_separator();
371
+        $localize['nonce']                = wp_create_nonce( 'wpinv-nonce' );
372
+        $localize['txtComplete']          = __( 'Continue', 'invoicing' );
373
+        $localize['UseTaxes']             = wpinv_use_taxes();
374
+        $localize['formNonce']            = wp_create_nonce( 'getpaid_form_nonce' );
375
+        $localize['loading']              = __( 'Loading...', 'invoicing' );
376
+        $localize['connectionError']      = __( 'Could not establish a connection to the server.', 'invoicing' );
377
+
378
+        $localize = apply_filters( 'wpinv_front_js_localize', $localize );
379
+
380
+        $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js' );
381
+        wp_enqueue_script( 'wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array( 'jquery' ), $version, true );
382
+        wp_localize_script( 'wpinv-front-script', 'WPInv', $localize );
383
+    }
384
+
385
+    public function wpinv_actions() {
386
+        if ( isset( $_REQUEST['wpi_action'] ) ) {
387
+            do_action( 'wpinv_' . wpinv_sanitize_key( $_REQUEST['wpi_action'] ), $_REQUEST );
388
+        }
389
+
390
+        if ( defined( 'WP_ALL_IMPORT_ROOT_DIR' ) ) {
391
+            include plugin_dir_path( __FILE__ ) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php';
392
+        }
393
+    }
394
+
395
+    /**
396 396
      * Fires an action after verifying that a user can fire them.
397
-	 *
398
-	 * Note: If the action is on an invoice, subscription etc, esure that the
399
-	 * current user owns the invoice/subscription.
397
+     *
398
+     * Note: If the action is on an invoice, subscription etc, esure that the
399
+     * current user owns the invoice/subscription.
400 400
      */
401 401
     public function maybe_do_authenticated_action() {
402 402
 
403
-		if ( isset( $_REQUEST['getpaid-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) {
403
+        if ( isset( $_REQUEST['getpaid-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) {
404 404
 
405
-			$key  = sanitize_key( $_REQUEST['getpaid-action'] );
406
-			$data = wp_unslash( $_REQUEST );
407
-			if ( is_user_logged_in() ) {
408
-				do_action( "getpaid_authenticated_action_$key", $data );
409
-			}
405
+            $key  = sanitize_key( $_REQUEST['getpaid-action'] );
406
+            $data = wp_unslash( $_REQUEST );
407
+            if ( is_user_logged_in() ) {
408
+                do_action( "getpaid_authenticated_action_$key", $data );
409
+            }
410 410
 
411
-			do_action( "getpaid_unauthenticated_action_$key", $data );
411
+            do_action( "getpaid_unauthenticated_action_$key", $data );
412 412
 
413
-		}
413
+        }
414 414
 
415 415
     }
416 416
 
417
-	public function pre_get_posts( $wp_query ) {
418
-
419
-		if ( ! is_admin() && ! empty( $wp_query->query_vars['post_type'] ) && getpaid_is_invoice_post_type( $wp_query->query_vars['post_type'] ) && is_user_logged_in() && is_single() && $wp_query->is_main_query() ) {
420
-			$wp_query->query_vars['post_status'] = array_keys( wpinv_get_invoice_statuses( false, false, $wp_query->query_vars['post_type'] ) );
421
-		}
422
-
423
-		return $wp_query;
424
-	}
425
-
426
-	/**
427
-	 * Register widgets
428
-	 *
429
-	 */
430
-	public function register_widgets() {
431
-		global $pagenow;
432
-
433
-		// Currently, UX Builder does not work particulaly well with SuperDuper.
434
-		// So we disable our widgets when editing a page with UX Builder.
435
-		if ( function_exists( 'ux_builder_is_active' ) && ux_builder_is_active() ) {
436
-			return;
437
-		}
438
-
439
-		$block_widget_init_screens = function_exists( 'sd_pagenow_exclude' ) ? sd_pagenow_exclude() : array();
440
-
441
-		if ( is_admin() && $pagenow && in_array( $pagenow, $block_widget_init_screens ) ) {
442
-			// don't initiate in these conditions.
443
-		} else {
444
-
445
-			// Only load allowed widgets.
446
-			$exclude = function_exists( 'sd_widget_exclude' ) ? sd_widget_exclude() : array();
447
-			$widgets = apply_filters(
448
-				'getpaid_widget_classes',
449
-				array(
450
-					'WPInv_Checkout_Widget',
451
-					'WPInv_History_Widget',
452
-					'WPInv_Receipt_Widget',
453
-					'WPInv_Subscriptions_Widget',
454
-					'WPInv_Buy_Item_Widget',
455
-					'WPInv_Messages_Widget',
456
-					'WPInv_GetPaid_Widget',
457
-					'WPInv_Invoice_Widget',
458
-				)
459
-			);
460
-
461
-			// For each widget...
462
-			foreach ( $widgets as $widget ) {
463
-
464
-				// Abort early if it is excluded for this page.
465
-				if ( in_array( $widget, $exclude ) ) {
466
-					continue;
467
-				}
468
-
469
-				// SD V1 used to extend the widget class. V2 does not, so we cannot call register widget on it.
470
-				if ( is_subclass_of( $widget, 'WP_Widget' ) ) {
471
-					register_widget( $widget );
472
-				} else {
473
-					new $widget();
474
-				}
417
+    public function pre_get_posts( $wp_query ) {
418
+
419
+        if ( ! is_admin() && ! empty( $wp_query->query_vars['post_type'] ) && getpaid_is_invoice_post_type( $wp_query->query_vars['post_type'] ) && is_user_logged_in() && is_single() && $wp_query->is_main_query() ) {
420
+            $wp_query->query_vars['post_status'] = array_keys( wpinv_get_invoice_statuses( false, false, $wp_query->query_vars['post_type'] ) );
421
+        }
422
+
423
+        return $wp_query;
424
+    }
425
+
426
+    /**
427
+     * Register widgets
428
+     *
429
+     */
430
+    public function register_widgets() {
431
+        global $pagenow;
432
+
433
+        // Currently, UX Builder does not work particulaly well with SuperDuper.
434
+        // So we disable our widgets when editing a page with UX Builder.
435
+        if ( function_exists( 'ux_builder_is_active' ) && ux_builder_is_active() ) {
436
+            return;
437
+        }
438
+
439
+        $block_widget_init_screens = function_exists( 'sd_pagenow_exclude' ) ? sd_pagenow_exclude() : array();
440
+
441
+        if ( is_admin() && $pagenow && in_array( $pagenow, $block_widget_init_screens ) ) {
442
+            // don't initiate in these conditions.
443
+        } else {
444
+
445
+            // Only load allowed widgets.
446
+            $exclude = function_exists( 'sd_widget_exclude' ) ? sd_widget_exclude() : array();
447
+            $widgets = apply_filters(
448
+                'getpaid_widget_classes',
449
+                array(
450
+                    'WPInv_Checkout_Widget',
451
+                    'WPInv_History_Widget',
452
+                    'WPInv_Receipt_Widget',
453
+                    'WPInv_Subscriptions_Widget',
454
+                    'WPInv_Buy_Item_Widget',
455
+                    'WPInv_Messages_Widget',
456
+                    'WPInv_GetPaid_Widget',
457
+                    'WPInv_Invoice_Widget',
458
+                )
459
+            );
460
+
461
+            // For each widget...
462
+            foreach ( $widgets as $widget ) {
463
+
464
+                // Abort early if it is excluded for this page.
465
+                if ( in_array( $widget, $exclude ) ) {
466
+                    continue;
467
+                }
468
+
469
+                // SD V1 used to extend the widget class. V2 does not, so we cannot call register widget on it.
470
+                if ( is_subclass_of( $widget, 'WP_Widget' ) ) {
471
+                    register_widget( $widget );
472
+                } else {
473
+                    new $widget();
474
+                }
475 475
 }
476 476
 }
477 477
 
478
-	}
478
+    }
479
+
480
+    /**
481
+     * Upgrades the database.
482
+     *
483
+     * @since 2.0.2
484
+     */
485
+    public function maybe_upgrade_database() {
486
+
487
+        $wpi_version = get_option( 'wpinv_version', 0 );
488
+
489
+        if ( $wpi_version == WPINV_VERSION ) {
490
+            return;
491
+        }
479 492
 
480
-	/**
481
-	 * Upgrades the database.
482
-	 *
483
-	 * @since 2.0.2
484
-	 */
485
-	public function maybe_upgrade_database() {
493
+        $installer = new GetPaid_Installer();
486 494
 
487
-		$wpi_version = get_option( 'wpinv_version', 0 );
495
+        if ( empty( $wpi_version ) ) {
496
+            return $installer->upgrade_db( 0 );
497
+        }
488 498
 
489
-		if ( $wpi_version == WPINV_VERSION ) {
490
-			return;
491
-		}
499
+        $upgrades  = array(
500
+            '0.0.5'  => '004',
501
+            '1.0.3'  => '102',
502
+            '2.0.0'  => '118',
503
+            '2.0.8'  => '207',
504
+            '2.6.16' => '2615',
505
+        );
492 506
 
493
-		$installer = new GetPaid_Installer();
507
+        foreach ( $upgrades as $key => $method ) {
508
+
509
+            if ( version_compare( $wpi_version, $key, '<' ) ) {
510
+                return $installer->upgrade_db( $method );
511
+            }
512
+        }
513
+
514
+    }
515
+
516
+    /**
517
+     * Flushes the permalinks if needed.
518
+     *
519
+     * @since 2.0.8
520
+     */
521
+    public function maybe_flush_permalinks() {
494 522
 
495
-		if ( empty( $wpi_version ) ) {
496
-			return $installer->upgrade_db( 0 );
497
-		}
523
+        $flush = get_option( 'wpinv_flush_permalinks', 0 );
498 524
 
499
-		$upgrades  = array(
500
-			'0.0.5'  => '004',
501
-			'1.0.3'  => '102',
502
-			'2.0.0'  => '118',
503
-			'2.0.8'  => '207',
504
-			'2.6.16' => '2615',
505
-		);
506
-
507
-		foreach ( $upgrades as $key => $method ) {
508
-
509
-			if ( version_compare( $wpi_version, $key, '<' ) ) {
510
-				return $installer->upgrade_db( $method );
511
-			}
512
-		}
513
-
514
-	}
515
-
516
-	/**
517
-	 * Flushes the permalinks if needed.
518
-	 *
519
-	 * @since 2.0.8
520
-	 */
521
-	public function maybe_flush_permalinks() {
522
-
523
-		$flush = get_option( 'wpinv_flush_permalinks', 0 );
524
-
525
-		if ( ! empty( $flush ) ) {
526
-			flush_rewrite_rules();
527
-			delete_option( 'wpinv_flush_permalinks' );
528
-		}
529
-
530
-	}
531
-
532
-	/**
533
-	 * Remove our pages from yoast sitemaps.
534
-	 *
535
-	 * @since 1.0.19
536
-	 * @param int[] $excluded_posts_ids
537
-	 */
538
-	public function wpseo_exclude_from_sitemap_by_post_ids( $excluded_posts_ids ) {
539
-
540
-		// Ensure that we have an array.
541
-		if ( ! is_array( $excluded_posts_ids ) ) {
542
-			$excluded_posts_ids = array();
543
-		}
544
-
545
-		// Prepare our pages.
546
-		$our_pages = array();
547
-
548
-		// Checkout page.
549
-		$our_pages[] = wpinv_get_option( 'checkout_page', false );
550
-
551
-		// Success page.
552
-		$our_pages[] = wpinv_get_option( 'success_page', false );
553
-
554
-		// Failure page.
555
-		$our_pages[] = wpinv_get_option( 'failure_page', false );
556
-
557
-		// History page.
558
-		$our_pages[] = wpinv_get_option( 'invoice_history_page', false );
559
-
560
-		// Subscriptions page.
561
-		$our_pages[] = wpinv_get_option( 'invoice_subscription_page', false );
562
-
563
-		$our_pages   = array_map( 'intval', array_filter( $our_pages ) );
564
-
565
-		$excluded_posts_ids = $excluded_posts_ids + $our_pages;
566
-		return array_unique( $excluded_posts_ids );
567
-
568
-	}
569
-
570
-	/**
571
-	 * Remove our pages from yoast sitemaps.
572
-	 *
573
-	 * @since 1.0.19
574
-	 * @param string[] $post_types
575
-	 */
576
-	public function exclude_invoicing_post_types( $post_types ) {
577
-
578
-		// Ensure that we have an array.
579
-		if ( ! is_array( $post_types ) ) {
580
-			$post_types = array();
581
-		}
582
-
583
-		// Remove our post types.
584
-		return array_diff( $post_types, array_keys( getpaid_get_invoice_post_types() ) );
585
-	}
586
-
587
-	/**
588
-	 * Displays additional footer code.
589
-	 *
590
-	 * @since 2.0.0
591
-	 */
592
-	public function wp_footer() {
593
-		wpinv_get_template( 'frontend-footer.php' );
594
-	}
595
-
596
-	/**
597
-	 * Displays additional header code.
598
-	 *
599
-	 * @since 2.0.0
600
-	 */
601
-	public function wp_head() {
602
-		wpinv_get_template( 'frontend-head.php' );
603
-	}
604
-
605
-	/**
606
-	 * Custom query vars.
607
-	 *
608
-	 */
609
-	public function custom_query_vars( $vars ) {
525
+        if ( ! empty( $flush ) ) {
526
+            flush_rewrite_rules();
527
+            delete_option( 'wpinv_flush_permalinks' );
528
+        }
529
+
530
+    }
531
+
532
+    /**
533
+     * Remove our pages from yoast sitemaps.
534
+     *
535
+     * @since 1.0.19
536
+     * @param int[] $excluded_posts_ids
537
+     */
538
+    public function wpseo_exclude_from_sitemap_by_post_ids( $excluded_posts_ids ) {
539
+
540
+        // Ensure that we have an array.
541
+        if ( ! is_array( $excluded_posts_ids ) ) {
542
+            $excluded_posts_ids = array();
543
+        }
544
+
545
+        // Prepare our pages.
546
+        $our_pages = array();
547
+
548
+        // Checkout page.
549
+        $our_pages[] = wpinv_get_option( 'checkout_page', false );
550
+
551
+        // Success page.
552
+        $our_pages[] = wpinv_get_option( 'success_page', false );
553
+
554
+        // Failure page.
555
+        $our_pages[] = wpinv_get_option( 'failure_page', false );
556
+
557
+        // History page.
558
+        $our_pages[] = wpinv_get_option( 'invoice_history_page', false );
559
+
560
+        // Subscriptions page.
561
+        $our_pages[] = wpinv_get_option( 'invoice_subscription_page', false );
562
+
563
+        $our_pages   = array_map( 'intval', array_filter( $our_pages ) );
564
+
565
+        $excluded_posts_ids = $excluded_posts_ids + $our_pages;
566
+        return array_unique( $excluded_posts_ids );
567
+
568
+    }
569
+
570
+    /**
571
+     * Remove our pages from yoast sitemaps.
572
+     *
573
+     * @since 1.0.19
574
+     * @param string[] $post_types
575
+     */
576
+    public function exclude_invoicing_post_types( $post_types ) {
577
+
578
+        // Ensure that we have an array.
579
+        if ( ! is_array( $post_types ) ) {
580
+            $post_types = array();
581
+        }
582
+
583
+        // Remove our post types.
584
+        return array_diff( $post_types, array_keys( getpaid_get_invoice_post_types() ) );
585
+    }
586
+
587
+    /**
588
+     * Displays additional footer code.
589
+     *
590
+     * @since 2.0.0
591
+     */
592
+    public function wp_footer() {
593
+        wpinv_get_template( 'frontend-footer.php' );
594
+    }
595
+
596
+    /**
597
+     * Displays additional header code.
598
+     *
599
+     * @since 2.0.0
600
+     */
601
+    public function wp_head() {
602
+        wpinv_get_template( 'frontend-head.php' );
603
+    }
604
+
605
+    /**
606
+     * Custom query vars.
607
+     *
608
+     */
609
+    public function custom_query_vars( $vars ) {
610 610
         $vars[] = 'getpaid-ipn';
611 611
         return $vars;
612
-	}
612
+    }
613 613
 
614
-	/**
615
-	 * Add rewrite tags and rules.
616
-	 *
617
-	 */
618
-	public function add_rewrite_rule() {
614
+    /**
615
+     * Add rewrite tags and rules.
616
+     *
617
+     */
618
+    public function add_rewrite_rule() {
619 619
         $tag = 'getpaid-ipn';
620 620
         add_rewrite_tag( "%$tag%", '([^&]+)' );
621 621
         add_rewrite_rule( "^$tag/([^/]*)/?", "index.php?$tag=\$matches[1]", 'top' );
622
-	}
622
+    }
623 623
 
624
-	/**
625
-	 * Processes non-query string ipns.
626
-	 *
627
-	 */
628
-	public function maybe_process_new_ipn( $query ) {
624
+    /**
625
+     * Processes non-query string ipns.
626
+     *
627
+     */
628
+    public function maybe_process_new_ipn( $query ) {
629 629
 
630 630
         if ( is_admin() || ! $query->is_main_query() ) {
631 631
             return;
632 632
         }
633 633
 
634
-		$gateway = get_query_var( 'getpaid-ipn' );
634
+        $gateway = get_query_var( 'getpaid-ipn' );
635 635
 
636 636
         if ( ! empty( $gateway ) ) {
637 637
 
638
-			$gateway = sanitize_text_field( $gateway );
639
-			nocache_headers();
640
-			do_action( 'wpinv_verify_payment_ipn', $gateway );
641
-			do_action( "wpinv_verify_{$gateway}_ipn" );
642
-			exit;
638
+            $gateway = sanitize_text_field( $gateway );
639
+            nocache_headers();
640
+            do_action( 'wpinv_verify_payment_ipn', $gateway );
641
+            do_action( "wpinv_verify_{$gateway}_ipn" );
642
+            exit;
643 643
 
644 644
         }
645 645
 
646
-	}
646
+    }
647 647
 
648 648
 }
Please login to merge, or discard this patch.
Spacing   +134 added lines, -134 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @since   1.0.0
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * Main Invoicing class.
@@ -56,8 +56,8 @@  discard block
 block discarded – undo
56 56
 	 * @param string $prop The prop to set.
57 57
 	 * @param mixed $value The value to retrieve.
58 58
 	 */
59
-	public function set( $prop, $value ) {
60
-		$this->data[ $prop ] = $value;
59
+	public function set($prop, $value) {
60
+		$this->data[$prop] = $value;
61 61
 	}
62 62
 
63 63
 	/**
@@ -66,10 +66,10 @@  discard block
 block discarded – undo
66 66
 	 * @param string $prop The prop to set.
67 67
 	 * @return mixed The value.
68 68
 	 */
69
-	public function get( $prop ) {
69
+	public function get($prop) {
70 70
 
71
-		if ( isset( $this->data[ $prop ] ) ) {
72
-			return $this->data[ $prop ];
71
+		if (isset($this->data[$prop])) {
72
+			return $this->data[$prop];
73 73
 		}
74 74
 
75 75
 		return null;
@@ -81,22 +81,22 @@  discard block
 block discarded – undo
81 81
 	public function set_properties() {
82 82
 
83 83
 		// Sessions.
84
-		$this->set( 'session', new WPInv_Session_Handler() );
85
-		$GLOBALS['wpi_session'] = $this->get( 'session' ); // Backwards compatibility.
84
+		$this->set('session', new WPInv_Session_Handler());
85
+		$GLOBALS['wpi_session'] = $this->get('session'); // Backwards compatibility.
86 86
 		$GLOBALS['wpinv_euvat'] = new WPInv_EUVat(); // Backwards compatibility.
87 87
 
88 88
 		// Init other objects.
89
-		$this->set( 'notes', new WPInv_Notes() );
90
-		$this->set( 'api', new WPInv_API() );
91
-		$this->set( 'post_types', new GetPaid_Post_Types() );
92
-		$this->set( 'template', new GetPaid_Template() );
93
-		$this->set( 'admin', new GetPaid_Admin() );
94
-		$this->set( 'subscriptions', new WPInv_Subscriptions() );
95
-		$this->set( 'invoice_emails', new GetPaid_Invoice_Notification_Emails() );
96
-		$this->set( 'subscription_emails', new GetPaid_Subscription_Notification_Emails() );
97
-		$this->set( 'daily_maintenace', new GetPaid_Daily_Maintenance() );
98
-		$this->set( 'payment_forms', new GetPaid_Payment_Forms() );
99
-		$this->set( 'maxmind', new GetPaid_MaxMind_Geolocation() );
89
+		$this->set('notes', new WPInv_Notes());
90
+		$this->set('api', new WPInv_API());
91
+		$this->set('post_types', new GetPaid_Post_Types());
92
+		$this->set('template', new GetPaid_Template());
93
+		$this->set('admin', new GetPaid_Admin());
94
+		$this->set('subscriptions', new WPInv_Subscriptions());
95
+		$this->set('invoice_emails', new GetPaid_Invoice_Notification_Emails());
96
+		$this->set('subscription_emails', new GetPaid_Subscription_Notification_Emails());
97
+		$this->set('daily_maintenace', new GetPaid_Daily_Maintenance());
98
+		$this->set('payment_forms', new GetPaid_Payment_Forms());
99
+		$this->set('maxmind', new GetPaid_MaxMind_Geolocation());
100 100
 
101 101
 	}
102 102
 
@@ -104,8 +104,8 @@  discard block
 block discarded – undo
104 104
 	 * Define plugin constants.
105 105
 	 */
106 106
 	public function define_constants() {
107
-		define( 'WPINV_PLUGIN_DIR', plugin_dir_path( WPINV_PLUGIN_FILE ) );
108
-		define( 'WPINV_PLUGIN_URL', plugin_dir_url( WPINV_PLUGIN_FILE ) );
107
+		define('WPINV_PLUGIN_DIR', plugin_dir_path(WPINV_PLUGIN_FILE));
108
+		define('WPINV_PLUGIN_URL', plugin_dir_url(WPINV_PLUGIN_FILE));
109 109
 		$this->version = WPINV_VERSION;
110 110
 	}
111 111
 
@@ -116,28 +116,28 @@  discard block
 block discarded – undo
116 116
 	 */
117 117
 	protected function init_hooks() {
118 118
 		/* Internationalize the text strings used. */
119
-		add_action( 'plugins_loaded', array( &$this, 'plugins_loaded' ) );
119
+		add_action('plugins_loaded', array(&$this, 'plugins_loaded'));
120 120
 
121 121
 		// Init the plugin after WordPress inits.
122
-		add_action( 'init', array( $this, 'init' ), 1 );
123
-		add_action( 'init', array( $this, 'maybe_process_ipn' ), 10 );
124
-		add_action( 'init', array( $this, 'wpinv_actions' ) );
125
-		add_action( 'init', array( $this, 'maybe_do_authenticated_action' ), 100 );
126
-		add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 );
127
-		add_action( 'wp_footer', array( $this, 'wp_footer' ) );
128
-		add_action( 'wp_head', array( $this, 'wp_head' ) );
129
-		add_action( 'widgets_init', array( $this, 'register_widgets' ) );
130
-		add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', array( $this, 'wpseo_exclude_from_sitemap_by_post_ids' ) );
131
-		add_filter( 'the_seo_framework_sitemap_supported_post_types', array( $this, 'exclude_invoicing_post_types' ) );
132
-		add_filter( 'pre_get_posts', array( &$this, 'pre_get_posts' ) );
133
-
134
-		add_filter( 'query_vars', array( $this, 'custom_query_vars' ) );
135
-        add_action( 'init', array( $this, 'add_rewrite_rule' ), 10, 0 );
136
-		add_action( 'pre_get_posts', array( $this, 'maybe_process_new_ipn' ), 1 );
122
+		add_action('init', array($this, 'init'), 1);
123
+		add_action('init', array($this, 'maybe_process_ipn'), 10);
124
+		add_action('init', array($this, 'wpinv_actions'));
125
+		add_action('init', array($this, 'maybe_do_authenticated_action'), 100);
126
+		add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'), 11);
127
+		add_action('wp_footer', array($this, 'wp_footer'));
128
+		add_action('wp_head', array($this, 'wp_head'));
129
+		add_action('widgets_init', array($this, 'register_widgets'));
130
+		add_filter('wpseo_exclude_from_sitemap_by_post_ids', array($this, 'wpseo_exclude_from_sitemap_by_post_ids'));
131
+		add_filter('the_seo_framework_sitemap_supported_post_types', array($this, 'exclude_invoicing_post_types'));
132
+		add_filter('pre_get_posts', array(&$this, 'pre_get_posts'));
133
+
134
+		add_filter('query_vars', array($this, 'custom_query_vars'));
135
+        add_action('init', array($this, 'add_rewrite_rule'), 10, 0);
136
+		add_action('pre_get_posts', array($this, 'maybe_process_new_ipn'), 1);
137 137
 
138 138
 		// Fires after registering actions.
139
-		do_action( 'wpinv_actions', $this );
140
-		do_action( 'getpaid_actions', $this );
139
+		do_action('wpinv_actions', $this);
140
+		do_action('getpaid_actions', $this);
141 141
 
142 142
 	}
143 143
 
@@ -145,10 +145,10 @@  discard block
 block discarded – undo
145 145
 		/* Internationalize the text strings used. */
146 146
 		$this->load_textdomain();
147 147
 
148
-		do_action( 'wpinv_loaded' );
148
+		do_action('wpinv_loaded');
149 149
 
150 150
 		// Fix oxygen page builder conflict
151
-		if ( function_exists( 'ct_css_output' ) ) {
151
+		if (function_exists('ct_css_output')) {
152 152
 			wpinv_oxygen_fix_conflict();
153 153
 		}
154 154
 	}
@@ -169,7 +169,7 @@  discard block
 block discarded – undo
169 169
 		load_plugin_textdomain(
170 170
 			'invoicing',
171 171
 			false,
172
-			plugin_basename( dirname( WPINV_PLUGIN_FILE ) ) . '/languages/'
172
+			plugin_basename(dirname(WPINV_PLUGIN_FILE)) . '/languages/'
173 173
 		);
174 174
 
175 175
 	}
@@ -205,9 +205,9 @@  discard block
 block discarded – undo
205 205
 
206 206
 		// Register autoloader.
207 207
 		try {
208
-			spl_autoload_register( array( $this, 'autoload' ), true );
209
-		} catch ( Exception $e ) {
210
-			wpinv_error_log( $e->getMessage(), '', __FILE__, 149, true );
208
+			spl_autoload_register(array($this, 'autoload'), true);
209
+		} catch (Exception $e) {
210
+			wpinv_error_log($e->getMessage(), '', __FILE__, 149, true);
211 211
 		}
212 212
 
213 213
 		require_once WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php';
@@ -233,7 +233,7 @@  discard block
 block discarded – undo
233 233
 		require_once WPINV_PLUGIN_DIR . 'widgets/invoice.php';
234 234
 		require_once WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php';
235 235
 
236
-		if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
236
+		if (is_admin() || (defined('WP_CLI') && WP_CLI)) {
237 237
 			GetPaid_Post_Types_Admin::init();
238 238
 
239 239
 			require_once WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php';
@@ -244,15 +244,15 @@  discard block
 block discarded – undo
244 244
 			require_once WPINV_PLUGIN_DIR . 'includes/admin/class-getpaid-admin-profile.php';
245 245
 			// load the user class only on the users.php page
246 246
 			global $pagenow;
247
-			if ( $pagenow == 'users.php' ) {
247
+			if ($pagenow == 'users.php') {
248 248
 				new WPInv_Admin_Users();
249 249
 			}
250 250
 		}
251 251
 
252 252
 		// Register cli commands
253
-		if ( defined( 'WP_CLI' ) && WP_CLI ) {
253
+		if (defined('WP_CLI') && WP_CLI) {
254 254
 			require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php';
255
-			WP_CLI::add_command( 'invoicing', 'WPInv_CLI' );
255
+			WP_CLI::add_command('invoicing', 'WPInv_CLI');
256 256
 		}
257 257
 
258 258
 	}
@@ -265,21 +265,21 @@  discard block
 block discarded – undo
265 265
 	 * @since       1.0.19
266 266
 	 * @return      void
267 267
 	 */
268
-	public function autoload( $class_name ) {
268
+	public function autoload($class_name) {
269 269
 
270 270
 		// Normalize the class name...
271
-		$class_name  = strtolower( $class_name );
271
+		$class_name = strtolower($class_name);
272 272
 
273 273
 		// ... and make sure it is our class.
274
-		if ( false === strpos( $class_name, 'getpaid_' ) && false === strpos( $class_name, 'wpinv_' ) ) {
274
+		if (false === strpos($class_name, 'getpaid_') && false === strpos($class_name, 'wpinv_')) {
275 275
 			return;
276 276
 		}
277 277
 
278 278
 		// Next, prepare the file name from the class.
279
-		$file_name = 'class-' . str_replace( '_', '-', $class_name ) . '.php';
279
+		$file_name = 'class-' . str_replace('_', '-', $class_name) . '.php';
280 280
 
281 281
 		// Base path of the classes.
282
-		$plugin_path = untrailingslashit( WPINV_PLUGIN_DIR );
282
+		$plugin_path = untrailingslashit(WPINV_PLUGIN_DIR);
283 283
 
284 284
 		// And an array of possible locations in order of importance.
285 285
 		$locations = array(
@@ -294,10 +294,10 @@  discard block
 block discarded – undo
294 294
 			"$plugin_path/includes/admin/meta-boxes",
295 295
 		);
296 296
 
297
-		foreach ( apply_filters( 'getpaid_autoload_locations', $locations ) as $location ) {
297
+		foreach (apply_filters('getpaid_autoload_locations', $locations) as $location) {
298 298
 
299
-			if ( file_exists( trailingslashit( $location ) . $file_name ) ) {
300
-				include trailingslashit( $location ) . $file_name;
299
+			if (file_exists(trailingslashit($location) . $file_name)) {
300
+				include trailingslashit($location) . $file_name;
301 301
 				break;
302 302
 			}
303 303
 }
@@ -310,7 +310,7 @@  discard block
 block discarded – undo
310 310
 	public function init() {
311 311
 
312 312
 		// Fires before getpaid inits.
313
-		do_action( 'before_getpaid_init', $this );
313
+		do_action('before_getpaid_init', $this);
314 314
 
315 315
 		// Maybe upgrade.
316 316
 		$this->maybe_upgrade_database();
@@ -327,17 +327,17 @@  discard block
 block discarded – undo
327 327
 			)
328 328
 		);
329 329
 
330
-		foreach ( $gateways as $id => $class ) {
331
-			$this->gateways[ $id ] = new $class();
330
+		foreach ($gateways as $id => $class) {
331
+			$this->gateways[$id] = new $class();
332 332
 		}
333 333
 
334
-		if ( 'yes' != get_option( 'wpinv_renamed_gateways' ) ) {
334
+		if ('yes' != get_option('wpinv_renamed_gateways')) {
335 335
 			GetPaid_Installer::rename_gateways_label();
336
-			update_option( 'wpinv_renamed_gateways', 'yes' );
336
+			update_option('wpinv_renamed_gateways', 'yes');
337 337
 		}
338 338
 
339 339
 		// Fires after getpaid inits.
340
-		do_action( 'getpaid_init', $this );
340
+		do_action('getpaid_init', $this);
341 341
 
342 342
 	}
343 343
 
@@ -347,14 +347,14 @@  discard block
 block discarded – undo
347 347
 	public function maybe_process_ipn() {
348 348
 
349 349
 		// Ensure that this is an IPN request.
350
-		if ( empty( $_GET['wpi-listener'] ) || 'IPN' !== $_GET['wpi-listener'] || empty( $_GET['wpi-gateway'] ) ) {
350
+		if (empty($_GET['wpi-listener']) || 'IPN' !== $_GET['wpi-listener'] || empty($_GET['wpi-gateway'])) {
351 351
 			return;
352 352
 		}
353 353
 
354
-		$gateway = sanitize_text_field( $_GET['wpi-gateway'] );
354
+		$gateway = sanitize_text_field($_GET['wpi-gateway']);
355 355
 
356
-		do_action( 'wpinv_verify_payment_ipn', $gateway );
357
-		do_action( "wpinv_verify_{$gateway}_ipn" );
356
+		do_action('wpinv_verify_payment_ipn', $gateway);
357
+		do_action("wpinv_verify_{$gateway}_ipn");
358 358
 		exit;
359 359
 
360 360
 	}
@@ -362,33 +362,33 @@  discard block
 block discarded – undo
362 362
 	public function enqueue_scripts() {
363 363
 
364 364
 		// Fires before adding scripts.
365
-		do_action( 'getpaid_enqueue_scripts' );
365
+		do_action('getpaid_enqueue_scripts');
366 366
 
367 367
 		$localize                         = array();
368
-		$localize['ajax_url']             = admin_url( 'admin-ajax.php' );
368
+		$localize['ajax_url']             = admin_url('admin-ajax.php');
369 369
 		$localize['thousands']            = wpinv_thousands_separator();
370 370
 		$localize['decimals']             = wpinv_decimal_separator();
371
-		$localize['nonce']                = wp_create_nonce( 'wpinv-nonce' );
372
-		$localize['txtComplete']          = __( 'Continue', 'invoicing' );
371
+		$localize['nonce']                = wp_create_nonce('wpinv-nonce');
372
+		$localize['txtComplete']          = __('Continue', 'invoicing');
373 373
 		$localize['UseTaxes']             = wpinv_use_taxes();
374
-		$localize['formNonce']            = wp_create_nonce( 'getpaid_form_nonce' );
375
-		$localize['loading']              = __( 'Loading...', 'invoicing' );
376
-		$localize['connectionError']      = __( 'Could not establish a connection to the server.', 'invoicing' );
374
+		$localize['formNonce']            = wp_create_nonce('getpaid_form_nonce');
375
+		$localize['loading']              = __('Loading...', 'invoicing');
376
+		$localize['connectionError']      = __('Could not establish a connection to the server.', 'invoicing');
377 377
 
378
-		$localize = apply_filters( 'wpinv_front_js_localize', $localize );
378
+		$localize = apply_filters('wpinv_front_js_localize', $localize);
379 379
 
380
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js' );
381
-		wp_enqueue_script( 'wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array( 'jquery' ), $version, true );
382
-		wp_localize_script( 'wpinv-front-script', 'WPInv', $localize );
380
+		$version = filemtime(WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js');
381
+		wp_enqueue_script('wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array('jquery'), $version, true);
382
+		wp_localize_script('wpinv-front-script', 'WPInv', $localize);
383 383
 	}
384 384
 
385 385
 	public function wpinv_actions() {
386
-		if ( isset( $_REQUEST['wpi_action'] ) ) {
387
-			do_action( 'wpinv_' . wpinv_sanitize_key( $_REQUEST['wpi_action'] ), $_REQUEST );
386
+		if (isset($_REQUEST['wpi_action'])) {
387
+			do_action('wpinv_' . wpinv_sanitize_key($_REQUEST['wpi_action']), $_REQUEST);
388 388
 		}
389 389
 
390
-		if ( defined( 'WP_ALL_IMPORT_ROOT_DIR' ) ) {
391
-			include plugin_dir_path( __FILE__ ) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php';
390
+		if (defined('WP_ALL_IMPORT_ROOT_DIR')) {
391
+			include plugin_dir_path(__FILE__) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php';
392 392
 		}
393 393
 	}
394 394
 
@@ -400,24 +400,24 @@  discard block
 block discarded – undo
400 400
      */
401 401
     public function maybe_do_authenticated_action() {
402 402
 
403
-		if ( isset( $_REQUEST['getpaid-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) {
403
+		if (isset($_REQUEST['getpaid-action']) && isset($_REQUEST['getpaid-nonce']) && wp_verify_nonce($_REQUEST['getpaid-nonce'], 'getpaid-nonce')) {
404 404
 
405
-			$key  = sanitize_key( $_REQUEST['getpaid-action'] );
406
-			$data = wp_unslash( $_REQUEST );
407
-			if ( is_user_logged_in() ) {
408
-				do_action( "getpaid_authenticated_action_$key", $data );
405
+			$key  = sanitize_key($_REQUEST['getpaid-action']);
406
+			$data = wp_unslash($_REQUEST);
407
+			if (is_user_logged_in()) {
408
+				do_action("getpaid_authenticated_action_$key", $data);
409 409
 			}
410 410
 
411
-			do_action( "getpaid_unauthenticated_action_$key", $data );
411
+			do_action("getpaid_unauthenticated_action_$key", $data);
412 412
 
413 413
 		}
414 414
 
415 415
     }
416 416
 
417
-	public function pre_get_posts( $wp_query ) {
417
+	public function pre_get_posts($wp_query) {
418 418
 
419
-		if ( ! is_admin() && ! empty( $wp_query->query_vars['post_type'] ) && getpaid_is_invoice_post_type( $wp_query->query_vars['post_type'] ) && is_user_logged_in() && is_single() && $wp_query->is_main_query() ) {
420
-			$wp_query->query_vars['post_status'] = array_keys( wpinv_get_invoice_statuses( false, false, $wp_query->query_vars['post_type'] ) );
419
+		if (!is_admin() && !empty($wp_query->query_vars['post_type']) && getpaid_is_invoice_post_type($wp_query->query_vars['post_type']) && is_user_logged_in() && is_single() && $wp_query->is_main_query()) {
420
+			$wp_query->query_vars['post_status'] = array_keys(wpinv_get_invoice_statuses(false, false, $wp_query->query_vars['post_type']));
421 421
 		}
422 422
 
423 423
 		return $wp_query;
@@ -432,18 +432,18 @@  discard block
 block discarded – undo
432 432
 
433 433
 		// Currently, UX Builder does not work particulaly well with SuperDuper.
434 434
 		// So we disable our widgets when editing a page with UX Builder.
435
-		if ( function_exists( 'ux_builder_is_active' ) && ux_builder_is_active() ) {
435
+		if (function_exists('ux_builder_is_active') && ux_builder_is_active()) {
436 436
 			return;
437 437
 		}
438 438
 
439
-		$block_widget_init_screens = function_exists( 'sd_pagenow_exclude' ) ? sd_pagenow_exclude() : array();
439
+		$block_widget_init_screens = function_exists('sd_pagenow_exclude') ? sd_pagenow_exclude() : array();
440 440
 
441
-		if ( is_admin() && $pagenow && in_array( $pagenow, $block_widget_init_screens ) ) {
441
+		if (is_admin() && $pagenow && in_array($pagenow, $block_widget_init_screens)) {
442 442
 			// don't initiate in these conditions.
443 443
 		} else {
444 444
 
445 445
 			// Only load allowed widgets.
446
-			$exclude = function_exists( 'sd_widget_exclude' ) ? sd_widget_exclude() : array();
446
+			$exclude = function_exists('sd_widget_exclude') ? sd_widget_exclude() : array();
447 447
 			$widgets = apply_filters(
448 448
 				'getpaid_widget_classes',
449 449
 				array(
@@ -459,16 +459,16 @@  discard block
 block discarded – undo
459 459
 			);
460 460
 
461 461
 			// For each widget...
462
-			foreach ( $widgets as $widget ) {
462
+			foreach ($widgets as $widget) {
463 463
 
464 464
 				// Abort early if it is excluded for this page.
465
-				if ( in_array( $widget, $exclude ) ) {
465
+				if (in_array($widget, $exclude)) {
466 466
 					continue;
467 467
 				}
468 468
 
469 469
 				// SD V1 used to extend the widget class. V2 does not, so we cannot call register widget on it.
470
-				if ( is_subclass_of( $widget, 'WP_Widget' ) ) {
471
-					register_widget( $widget );
470
+				if (is_subclass_of($widget, 'WP_Widget')) {
471
+					register_widget($widget);
472 472
 				} else {
473 473
 					new $widget();
474 474
 				}
@@ -484,19 +484,19 @@  discard block
 block discarded – undo
484 484
 	 */
485 485
 	public function maybe_upgrade_database() {
486 486
 
487
-		$wpi_version = get_option( 'wpinv_version', 0 );
487
+		$wpi_version = get_option('wpinv_version', 0);
488 488
 
489
-		if ( $wpi_version == WPINV_VERSION ) {
489
+		if ($wpi_version == WPINV_VERSION) {
490 490
 			return;
491 491
 		}
492 492
 
493 493
 		$installer = new GetPaid_Installer();
494 494
 
495
-		if ( empty( $wpi_version ) ) {
496
-			return $installer->upgrade_db( 0 );
495
+		if (empty($wpi_version)) {
496
+			return $installer->upgrade_db(0);
497 497
 		}
498 498
 
499
-		$upgrades  = array(
499
+		$upgrades = array(
500 500
 			'0.0.5'  => '004',
501 501
 			'1.0.3'  => '102',
502 502
 			'2.0.0'  => '118',
@@ -504,10 +504,10 @@  discard block
 block discarded – undo
504 504
 			'2.6.16' => '2615',
505 505
 		);
506 506
 
507
-		foreach ( $upgrades as $key => $method ) {
507
+		foreach ($upgrades as $key => $method) {
508 508
 
509
-			if ( version_compare( $wpi_version, $key, '<' ) ) {
510
-				return $installer->upgrade_db( $method );
509
+			if (version_compare($wpi_version, $key, '<')) {
510
+				return $installer->upgrade_db($method);
511 511
 			}
512 512
 		}
513 513
 
@@ -520,11 +520,11 @@  discard block
 block discarded – undo
520 520
 	 */
521 521
 	public function maybe_flush_permalinks() {
522 522
 
523
-		$flush = get_option( 'wpinv_flush_permalinks', 0 );
523
+		$flush = get_option('wpinv_flush_permalinks', 0);
524 524
 
525
-		if ( ! empty( $flush ) ) {
525
+		if (!empty($flush)) {
526 526
 			flush_rewrite_rules();
527
-			delete_option( 'wpinv_flush_permalinks' );
527
+			delete_option('wpinv_flush_permalinks');
528 528
 		}
529 529
 
530 530
 	}
@@ -535,10 +535,10 @@  discard block
 block discarded – undo
535 535
 	 * @since 1.0.19
536 536
 	 * @param int[] $excluded_posts_ids
537 537
 	 */
538
-	public function wpseo_exclude_from_sitemap_by_post_ids( $excluded_posts_ids ) {
538
+	public function wpseo_exclude_from_sitemap_by_post_ids($excluded_posts_ids) {
539 539
 
540 540
 		// Ensure that we have an array.
541
-		if ( ! is_array( $excluded_posts_ids ) ) {
541
+		if (!is_array($excluded_posts_ids)) {
542 542
 			$excluded_posts_ids = array();
543 543
 		}
544 544
 
@@ -546,24 +546,24 @@  discard block
 block discarded – undo
546 546
 		$our_pages = array();
547 547
 
548 548
 		// Checkout page.
549
-		$our_pages[] = wpinv_get_option( 'checkout_page', false );
549
+		$our_pages[] = wpinv_get_option('checkout_page', false);
550 550
 
551 551
 		// Success page.
552
-		$our_pages[] = wpinv_get_option( 'success_page', false );
552
+		$our_pages[] = wpinv_get_option('success_page', false);
553 553
 
554 554
 		// Failure page.
555
-		$our_pages[] = wpinv_get_option( 'failure_page', false );
555
+		$our_pages[] = wpinv_get_option('failure_page', false);
556 556
 
557 557
 		// History page.
558
-		$our_pages[] = wpinv_get_option( 'invoice_history_page', false );
558
+		$our_pages[] = wpinv_get_option('invoice_history_page', false);
559 559
 
560 560
 		// Subscriptions page.
561
-		$our_pages[] = wpinv_get_option( 'invoice_subscription_page', false );
561
+		$our_pages[] = wpinv_get_option('invoice_subscription_page', false);
562 562
 
563
-		$our_pages   = array_map( 'intval', array_filter( $our_pages ) );
563
+		$our_pages   = array_map('intval', array_filter($our_pages));
564 564
 
565 565
 		$excluded_posts_ids = $excluded_posts_ids + $our_pages;
566
-		return array_unique( $excluded_posts_ids );
566
+		return array_unique($excluded_posts_ids);
567 567
 
568 568
 	}
569 569
 
@@ -573,15 +573,15 @@  discard block
 block discarded – undo
573 573
 	 * @since 1.0.19
574 574
 	 * @param string[] $post_types
575 575
 	 */
576
-	public function exclude_invoicing_post_types( $post_types ) {
576
+	public function exclude_invoicing_post_types($post_types) {
577 577
 
578 578
 		// Ensure that we have an array.
579
-		if ( ! is_array( $post_types ) ) {
579
+		if (!is_array($post_types)) {
580 580
 			$post_types = array();
581 581
 		}
582 582
 
583 583
 		// Remove our post types.
584
-		return array_diff( $post_types, array_keys( getpaid_get_invoice_post_types() ) );
584
+		return array_diff($post_types, array_keys(getpaid_get_invoice_post_types()));
585 585
 	}
586 586
 
587 587
 	/**
@@ -590,7 +590,7 @@  discard block
 block discarded – undo
590 590
 	 * @since 2.0.0
591 591
 	 */
592 592
 	public function wp_footer() {
593
-		wpinv_get_template( 'frontend-footer.php' );
593
+		wpinv_get_template('frontend-footer.php');
594 594
 	}
595 595
 
596 596
 	/**
@@ -599,14 +599,14 @@  discard block
 block discarded – undo
599 599
 	 * @since 2.0.0
600 600
 	 */
601 601
 	public function wp_head() {
602
-		wpinv_get_template( 'frontend-head.php' );
602
+		wpinv_get_template('frontend-head.php');
603 603
 	}
604 604
 
605 605
 	/**
606 606
 	 * Custom query vars.
607 607
 	 *
608 608
 	 */
609
-	public function custom_query_vars( $vars ) {
609
+	public function custom_query_vars($vars) {
610 610
         $vars[] = 'getpaid-ipn';
611 611
         return $vars;
612 612
 	}
@@ -617,28 +617,28 @@  discard block
 block discarded – undo
617 617
 	 */
618 618
 	public function add_rewrite_rule() {
619 619
         $tag = 'getpaid-ipn';
620
-        add_rewrite_tag( "%$tag%", '([^&]+)' );
621
-        add_rewrite_rule( "^$tag/([^/]*)/?", "index.php?$tag=\$matches[1]", 'top' );
620
+        add_rewrite_tag("%$tag%", '([^&]+)');
621
+        add_rewrite_rule("^$tag/([^/]*)/?", "index.php?$tag=\$matches[1]", 'top');
622 622
 	}
623 623
 
624 624
 	/**
625 625
 	 * Processes non-query string ipns.
626 626
 	 *
627 627
 	 */
628
-	public function maybe_process_new_ipn( $query ) {
628
+	public function maybe_process_new_ipn($query) {
629 629
 
630
-        if ( is_admin() || ! $query->is_main_query() ) {
630
+        if (is_admin() || !$query->is_main_query()) {
631 631
             return;
632 632
         }
633 633
 
634
-		$gateway = get_query_var( 'getpaid-ipn' );
634
+		$gateway = get_query_var('getpaid-ipn');
635 635
 
636
-        if ( ! empty( $gateway ) ) {
636
+        if (!empty($gateway)) {
637 637
 
638
-			$gateway = sanitize_text_field( $gateway );
638
+			$gateway = sanitize_text_field($gateway);
639 639
 			nocache_headers();
640
-			do_action( 'wpinv_verify_payment_ipn', $gateway );
641
-			do_action( "wpinv_verify_{$gateway}_ipn" );
640
+			do_action('wpinv_verify_payment_ipn', $gateway);
641
+			do_action("wpinv_verify_{$gateway}_ipn");
642 642
 			exit;
643 643
 
644 644
         }
Please login to merge, or discard this patch.