Passed
Push — master ( 219dea...32accd )
by Brian
05:24
created
templates/invoice/invoice-meta.php 1 patch
Spacing   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -7,50 +7,50 @@
 block discarded – undo
7 7
  * @version 1.0.19
8 8
  */
9 9
 
10
-defined( 'ABSPATH' ) || exit;
10
+defined('ABSPATH') || exit;
11 11
 
12
-$class = ! is_singular( 'page' ) ? 'px-1' : '';
12
+$class = !is_singular('page') ? 'px-1' : '';
13 13
 ?>
14 14
 
15
-        <?php do_action( 'getpaid_before_invoice_meta', $invoice ); ?>
15
+        <?php do_action('getpaid_before_invoice_meta', $invoice); ?>
16 16
         <div class="getpaid-invoice-meta-data">
17 17
 
18
-            <?php do_action( 'getpaid_before_invoice_meta_table', $invoice ); ?>
18
+            <?php do_action('getpaid_before_invoice_meta_table', $invoice); ?>
19 19
             <table class="table table-bordered">
20 20
                 <tbody>
21 21
 
22
-                    <?php do_action( 'getpaid_before_invoice_meta_rows', $invoice ); ?>
23
-                    <?php foreach ( $meta as $key => $data ) : ?>
22
+                    <?php do_action('getpaid_before_invoice_meta_rows', $invoice); ?>
23
+                    <?php foreach ($meta as $key => $data) : ?>
24 24
 
25
-                        <?php if ( ! empty( $data['value'] ) ) : ?>
25
+                        <?php if (!empty($data['value'])) : ?>
26 26
 
27
-                            <?php do_action( "getpaid_before_invoice_meta_$key", $invoice, $data ); ?>
27
+                            <?php do_action("getpaid_before_invoice_meta_$key", $invoice, $data); ?>
28 28
 
29
-                            <tr class="getpaid-invoice-meta-<?php echo esc_attr( $key ); ?>">
29
+                            <tr class="getpaid-invoice-meta-<?php echo esc_attr($key); ?>">
30 30
 
31
-                                <th class="<?php echo esc_attr( $class ); ?> font-weight-bold" style="width: 40%">
32
-                                    <?php echo esc_html( $data['label'] ); ?>
31
+                                <th class="<?php echo esc_attr($class); ?> font-weight-bold" style="width: 40%">
32
+                                    <?php echo esc_html($data['label']); ?>
33 33
                                 </th>
34 34
 
35
-                                <td class="<?php echo esc_attr( $class ); ?> <?php echo 'invoice_total' === $key ? 'font-weight-bold' : 'font-weight-normal'; ?> text-break" style="width: 60%">
36
-                                    <span class="getpaid-invoice-meta-<?php echo esc_attr( $key ); ?>-value"><?php echo wp_kses_post( $data['value'] ); ?></span>
35
+                                <td class="<?php echo esc_attr($class); ?> <?php echo 'invoice_total' === $key ? 'font-weight-bold' : 'font-weight-normal'; ?> text-break" style="width: 60%">
36
+                                    <span class="getpaid-invoice-meta-<?php echo esc_attr($key); ?>-value"><?php echo wp_kses_post($data['value']); ?></span>
37 37
                                 </td>
38 38
 
39 39
                             </tr>
40 40
 
41
-                            <?php do_action( "getpaid_after_invoice_meta_$key", $invoice, $data ); ?>
41
+                            <?php do_action("getpaid_after_invoice_meta_$key", $invoice, $data); ?>
42 42
 
43 43
                         <?php endif; ?>
44 44
 
45 45
                     <?php endforeach; ?>
46
-                    <?php do_action( 'getpaid_after_invoice_meta_rows', $invoice ); ?>
46
+                    <?php do_action('getpaid_after_invoice_meta_rows', $invoice); ?>
47 47
 
48 48
                 </tbody>
49 49
             </table>
50
-            <?php do_action( 'getpaid_after_invoice_meta_table', $invoice ); ?>
50
+            <?php do_action('getpaid_after_invoice_meta_table', $invoice); ?>
51 51
 
52 52
 
53 53
         </div>
54
-        <?php do_action( 'getpaid_after_invoice_meta', $invoice ); ?>
54
+        <?php do_action('getpaid_after_invoice_meta', $invoice); ?>
55 55
 
56 56
 <?php
Please login to merge, or discard this patch.
includes/class-getpaid-invoice-notification-emails.php 2 patches
Indentation   +428 added lines, -428 removed lines patch added patch discarded remove patch
@@ -12,487 +12,487 @@
 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
-					__( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ),
210
-					sanitize_key( $type ),
211
-					$email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
212
-				)
213
-			);
214
-		} else {
215
-			$invoice->add_system_note(
216
-				sprintf(
217
-					__( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ),
218
-					sanitize_key( $type ),
219
-					$email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
220
-				)
221
-			);
222
-		}
223
-
224
-		do_action( 'getpaid_after_send_invoice_notification', $type, $invoice, $email );
225
-
226
-		return $result;
227
-	}
228
-
229
-	/**
230
-	 * Also send emails to any cc users.
231
-	 *
232
-	 * @param array $recipients
233
-	 * @param GetPaid_Notification_Email $email
234
-	 */
235
-	public function filter_email_recipients( $recipients, $email ) {
236
-
237
-		if ( ! $email->is_admin_email() ) {
238
-			$cc   = $email->object->get_email_cc();
239
-			$cc_2 = get_user_meta( $email->object->get_user_id(), '_wpinv_email_cc', true );
240
-
241
-			if ( ! empty( $cc ) ) {
242
-				$cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) );
243
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) );
244
-			}
245
-
246
-			if ( ! empty( $cc_2 ) ) {
247
-				$cc_2 = array_map( 'sanitize_email', wpinv_parse_list( $cc_2 ) );
248
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc_2 ) ) );
249
-			}
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
+                    __( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ),
210
+                    sanitize_key( $type ),
211
+                    $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
212
+                )
213
+            );
214
+        } else {
215
+            $invoice->add_system_note(
216
+                sprintf(
217
+                    __( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ),
218
+                    sanitize_key( $type ),
219
+                    $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
220
+                )
221
+            );
222
+        }
223
+
224
+        do_action( 'getpaid_after_send_invoice_notification', $type, $invoice, $email );
225
+
226
+        return $result;
227
+    }
228
+
229
+    /**
230
+     * Also send emails to any cc users.
231
+     *
232
+     * @param array $recipients
233
+     * @param GetPaid_Notification_Email $email
234
+     */
235
+    public function filter_email_recipients( $recipients, $email ) {
236
+
237
+        if ( ! $email->is_admin_email() ) {
238
+            $cc   = $email->object->get_email_cc();
239
+            $cc_2 = get_user_meta( $email->object->get_user_id(), '_wpinv_email_cc', true );
240
+
241
+            if ( ! empty( $cc ) ) {
242
+                $cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) );
243
+                $recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) );
244
+            }
245
+
246
+            if ( ! empty( $cc_2 ) ) {
247
+                $cc_2 = array_map( 'sanitize_email', wpinv_parse_list( $cc_2 ) );
248
+                $recipients = array_filter( array_unique( array_merge( $recipients, $cc_2 ) ) );
249
+            }
250 250
 }
251 251
 
252
-		return $recipients;
252
+        return $recipients;
253 253
 
254
-	}
254
+    }
255 255
 
256
-	/**
257
-	 * Sends a new invoice notification.
258
-	 *
259
-	 * @param WPInv_Invoice $invoice
260
-	 */
261
-	public function new_invoice( $invoice ) {
256
+    /**
257
+     * Sends a new invoice notification.
258
+     *
259
+     * @param WPInv_Invoice $invoice
260
+     */
261
+    public function new_invoice( $invoice ) {
262 262
 
263
-		// Only send this email for invoices created via the admin page.
264
-		if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_paid() || $this->is_payment_form_invoice( $invoice->get_id() ) ) {
265
-			return;
266
-		}
263
+        // Only send this email for invoices created via the admin page.
264
+        if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_paid() || $this->is_payment_form_invoice( $invoice->get_id() ) ) {
265
+            return;
266
+        }
267 267
 
268
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
269
-		$recipient = wpinv_get_admin_email();
268
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
269
+        $recipient = wpinv_get_admin_email();
270 270
 
271
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
271
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
272 272
 
273
-	}
273
+    }
274 274
 
275
-	/**
276
-	 * Sends a cancelled invoice notification.
277
-	 *
278
-	 * @param WPInv_Invoice $invoice
279
-	 */
280
-	public function cancelled_invoice( $invoice ) {
275
+    /**
276
+     * Sends a cancelled invoice notification.
277
+     *
278
+     * @param WPInv_Invoice $invoice
279
+     */
280
+    public function cancelled_invoice( $invoice ) {
281 281
 
282
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
283
-		$recipient = $invoice->get_email();
282
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
283
+        $recipient = $invoice->get_email();
284 284
 
285
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
286
-	}
285
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
286
+    }
287 287
 
288
-	/**
289
-	 * Sends a failed invoice notification.
290
-	 *
291
-	 * @param WPInv_Invoice $invoice
292
-	 */
293
-	public function failed_invoice( $invoice ) {
288
+    /**
289
+     * Sends a failed invoice notification.
290
+     *
291
+     * @param WPInv_Invoice $invoice
292
+     */
293
+    public function failed_invoice( $invoice ) {
294 294
 
295
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
296
-		$recipient = wpinv_get_admin_email();
295
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
296
+        $recipient = wpinv_get_admin_email();
297 297
 
298
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
298
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
299 299
 
300
-	}
300
+    }
301 301
 
302
-	/**
303
-	 * Sends a notification whenever an invoice is put on hold.
304
-	 *
305
-	 * @param WPInv_Invoice $invoice
306
-	 */
307
-	public function onhold_invoice( $invoice ) {
302
+    /**
303
+     * Sends a notification whenever an invoice is put on hold.
304
+     *
305
+     * @param WPInv_Invoice $invoice
306
+     */
307
+    public function onhold_invoice( $invoice ) {
308 308
 
309
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
310
-		$recipient = $invoice->get_email();
309
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
310
+        $recipient = $invoice->get_email();
311 311
 
312
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
312
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
313 313
 
314
-	}
314
+    }
315 315
 
316
-	/**
317
-	 * Sends a notification whenever an invoice is marked as processing payment.
318
-	 *
319
-	 * @param WPInv_Invoice $invoice
320
-	 */
321
-	public function processing_invoice( $invoice ) {
316
+    /**
317
+     * Sends a notification whenever an invoice is marked as processing payment.
318
+     *
319
+     * @param WPInv_Invoice $invoice
320
+     */
321
+    public function processing_invoice( $invoice ) {
322 322
 
323
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
324
-		$recipient = $invoice->get_email();
323
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
324
+        $recipient = $invoice->get_email();
325 325
 
326
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
326
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
327 327
 
328
-	}
328
+    }
329 329
 
330
-	/**
331
-	 * Sends a notification whenever an invoice is paid.
332
-	 *
333
-	 * @param WPInv_Invoice $invoice
334
-	 */
335
-	public function completed_invoice( $invoice ) {
330
+    /**
331
+     * Sends a notification whenever an invoice is paid.
332
+     *
333
+     * @param WPInv_Invoice $invoice
334
+     */
335
+    public function completed_invoice( $invoice ) {
336 336
 
337
-		// (Maybe) abort if it is a renewal invoice.
338
-		if ( $invoice->is_renewal() && ! wpinv_get_option( 'email_completed_invoice_renewal_active', false ) ) {
339
-			return;
340
-		}
337
+        // (Maybe) abort if it is a renewal invoice.
338
+        if ( $invoice->is_renewal() && ! wpinv_get_option( 'email_completed_invoice_renewal_active', false ) ) {
339
+            return;
340
+        }
341 341
 
342
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
343
-		$recipient = $invoice->get_email();
342
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
343
+        $recipient = $invoice->get_email();
344 344
 
345
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
345
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
346 346
 
347
-	}
347
+    }
348 348
 
349
-	/**
350
-	 * Sends a notification whenever an invoice is refunded.
351
-	 *
352
-	 * @param WPInv_Invoice $invoice
353
-	 */
354
-	public function refunded_invoice( $invoice ) {
349
+    /**
350
+     * Sends a notification whenever an invoice is refunded.
351
+     *
352
+     * @param WPInv_Invoice $invoice
353
+     */
354
+    public function refunded_invoice( $invoice ) {
355 355
 
356
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
357
-		$recipient = $invoice->get_email();
358
-
359
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
356
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
357
+        $recipient = $invoice->get_email();
358
+
359
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
360 360
 
361
-	}
361
+    }
362 362
 
363
-	/**
364
-	 * Notifies a user about new invoices
365
-	 *
366
-	 * @param WPInv_Invoice $invoice
367
-	 * @param bool $force
368
-	 */
369
-	public function user_invoice( $invoice, $force = false ) {
363
+    /**
364
+     * Notifies a user about new invoices
365
+     *
366
+     * @param WPInv_Invoice $invoice
367
+     * @param bool $force
368
+     */
369
+    public function user_invoice( $invoice, $force = false ) {
370 370
 
371
-		if ( ! $force && ! empty( $GLOBALS['wpinv_skip_invoice_notification'] ) ) {
372
-			return;
373
-		}
374
-
375
-		// Only send this email for invoices created via the admin page.
376
-		if ( ! $invoice->is_type( 'invoice' ) || ( empty( $force ) && $invoice->is_paid() ) || ( empty( $force ) && $this->is_payment_form_invoice( $invoice->get_id() ) ) ) {
377
-			return;
378
-		}
371
+        if ( ! $force && ! empty( $GLOBALS['wpinv_skip_invoice_notification'] ) ) {
372
+            return;
373
+        }
374
+
375
+        // Only send this email for invoices created via the admin page.
376
+        if ( ! $invoice->is_type( 'invoice' ) || ( empty( $force ) && $invoice->is_paid() ) || ( empty( $force ) && $this->is_payment_form_invoice( $invoice->get_id() ) ) ) {
377
+            return;
378
+        }
379 379
 
380
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
381
-		$recipient = $invoice->get_email();
382
-
383
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
380
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
381
+        $recipient = $invoice->get_email();
382
+
383
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
384 384
 
385
-	}
386
-
387
-	/**
388
-	 * Checks if an invoice is a payment form invoice.
389
-	 *
390
-	 * @param int $invoice
391
-	 * @return bool
392
-	 */
393
-	public function is_payment_form_invoice( $invoice ) {
394
-		$is_payment_form_invoice = empty( $_GET['getpaid-admin-action'] ) && ( 'payment_form' === get_post_meta( $invoice, 'wpinv_created_via', true ) || 'geodirectory' === get_post_meta( $invoice, 'wpinv_created_via', true ) );
395
-		return apply_filters( 'getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice );
396
-	}
385
+    }
386
+
387
+    /**
388
+     * Checks if an invoice is a payment form invoice.
389
+     *
390
+     * @param int $invoice
391
+     * @return bool
392
+     */
393
+    public function is_payment_form_invoice( $invoice ) {
394
+        $is_payment_form_invoice = empty( $_GET['getpaid-admin-action'] ) && ( 'payment_form' === get_post_meta( $invoice, 'wpinv_created_via', true ) || 'geodirectory' === get_post_meta( $invoice, 'wpinv_created_via', true ) );
395
+        return apply_filters( 'getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice );
396
+    }
397 397
 
398
-	/**
399
-	 * Notifies admin about new invoice notes
400
-	 *
401
-	 * @param WPInv_Invoice $invoice
402
-	 * @param string $note
403
-	 */
404
-	public function user_note( $invoice, $note ) {
405
-
406
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
407
-		$recipient = $invoice->get_email();
398
+    /**
399
+     * Notifies admin about new invoice notes
400
+     *
401
+     * @param WPInv_Invoice $invoice
402
+     * @param string $note
403
+     */
404
+    public function user_note( $invoice, $note ) {
405
+
406
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
407
+        $recipient = $invoice->get_email();
408 408
 
409
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient, array( 'customer_note' => $note ) );
410
-
411
-	}
412
-
413
-	/**
414
-	 * (Force) Sends overdue notices.
415
-	 *
416
-	 * @param WPInv_Invoice $invoice
417
-	 */
418
-	public function force_send_overdue_notice( $invoice ) {
419
-		$email = new GetPaid_Notification_Email( 'overdue', $invoice );
420
-		return $this->send_email( $invoice, $email, 'overdue', $invoice->get_email() );
421
-	}
422
-
423
-	/**
424
-	 * Sends overdue notices.
425
-	 *
426
-	 * @TODO: Create an invoices query class.
427
-	 */
428
-	public function overdue() {
429
-		global $wpdb;
430
-
431
-		$email = new GetPaid_Notification_Email( __FUNCTION__ );
432
-
433
-		// Fetch reminder days.
434
-		$reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
435
-
436
-		// Abort if non is set.
437
-		if ( empty( $reminder_days ) ) {
438
-			return;
439
-		}
440
-
441
-		// Retrieve date query.
442
-		$date_query = $this->get_date_query( $reminder_days );
443
-
444
-		// Invoices table.
445
-		$table = $wpdb->prefix . 'getpaid_invoices';
446
-
447
-		// Fetch invoices.
448
-		$invoices  = $wpdb->get_col(
449
-			"SELECT posts.ID FROM $wpdb->posts as posts
409
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient, array( 'customer_note' => $note ) );
410
+
411
+    }
412
+
413
+    /**
414
+     * (Force) Sends overdue notices.
415
+     *
416
+     * @param WPInv_Invoice $invoice
417
+     */
418
+    public function force_send_overdue_notice( $invoice ) {
419
+        $email = new GetPaid_Notification_Email( 'overdue', $invoice );
420
+        return $this->send_email( $invoice, $email, 'overdue', $invoice->get_email() );
421
+    }
422
+
423
+    /**
424
+     * Sends overdue notices.
425
+     *
426
+     * @TODO: Create an invoices query class.
427
+     */
428
+    public function overdue() {
429
+        global $wpdb;
430
+
431
+        $email = new GetPaid_Notification_Email( __FUNCTION__ );
432
+
433
+        // Fetch reminder days.
434
+        $reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
435
+
436
+        // Abort if non is set.
437
+        if ( empty( $reminder_days ) ) {
438
+            return;
439
+        }
440
+
441
+        // Retrieve date query.
442
+        $date_query = $this->get_date_query( $reminder_days );
443
+
444
+        // Invoices table.
445
+        $table = $wpdb->prefix . 'getpaid_invoices';
446
+
447
+        // Fetch invoices.
448
+        $invoices  = $wpdb->get_col(
449
+            "SELECT posts.ID FROM $wpdb->posts as posts
450 450
 			LEFT JOIN $table as invoices ON invoices.post_id = posts.ID
451 451
 			WHERE posts.post_type = 'wpi_invoice' AND posts.post_status = 'wpi-pending' $date_query"
452 452
         );
453 453
 
454
-		foreach ( $invoices as $invoice ) {
454
+        foreach ( $invoices as $invoice ) {
455 455
 
456
-			// Only send this email for invoices created via the admin page.
457
-			if ( ! $this->is_payment_form_invoice( $invoice ) ) {
458
-				$invoice       = new WPInv_Invoice( $invoice );
459
-				$email->object = $invoice;
456
+            // Only send this email for invoices created via the admin page.
457
+            if ( ! $this->is_payment_form_invoice( $invoice ) ) {
458
+                $invoice       = new WPInv_Invoice( $invoice );
459
+                $email->object = $invoice;
460 460
 
461
-				if ( $invoice->needs_payment() ) {
462
-					$this->send_email( $invoice, $email, __FUNCTION__, $invoice->get_email() );
463
-				}
461
+                if ( $invoice->needs_payment() ) {
462
+                    $this->send_email( $invoice, $email, __FUNCTION__, $invoice->get_email() );
463
+                }
464 464
 }
465 465
 }
466 466
 
467
-	}
467
+    }
468 468
 
469
-	/**
470
-	 * Calculates the date query for an invoices query
471
-	 *
472
-	 * @param array $reminder_days
473
-	 * @return string
474
-	 */
475
-	public function get_date_query( $reminder_days ) {
469
+    /**
470
+     * Calculates the date query for an invoices query
471
+     *
472
+     * @param array $reminder_days
473
+     * @return string
474
+     */
475
+    public function get_date_query( $reminder_days ) {
476 476
 
477
-		$date_query = array(
478
-			'relation' => 'OR',
479
-		);
477
+        $date_query = array(
478
+            'relation' => 'OR',
479
+        );
480 480
 
481
-		foreach ( $reminder_days as $days ) {
482
-			$date = date_parse( date( 'Y-m-d', strtotime( "-$days days", current_time( 'timestamp' ) ) ) );
481
+        foreach ( $reminder_days as $days ) {
482
+            $date = date_parse( date( 'Y-m-d', strtotime( "-$days days", current_time( 'timestamp' ) ) ) );
483 483
 
484
-			$date_query[] = array(
485
-				'year'  => $date['year'],
486
-				'month' => $date['month'],
487
-				'day'   => $date['day'],
488
-			);
484
+            $date_query[] = array(
485
+                'year'  => $date['year'],
486
+                'month' => $date['month'],
487
+                'day'   => $date['day'],
488
+            );
489 489
 
490
-		}
490
+        }
491 491
 
492
-		$date_query = new WP_Date_Query( $date_query, 'invoices.due_date' );
492
+        $date_query = new WP_Date_Query( $date_query, 'invoices.due_date' );
493 493
 
494
-		return $date_query->get_sql();
494
+        return $date_query->get_sql();
495 495
 
496
-	}
496
+    }
497 497
 
498 498
 }
Please login to merge, or discard this patch.
Spacing   +125 added lines, -125 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,41 +187,41 @@  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
-					__( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ),
210
-					sanitize_key( $type ),
211
-					$email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
209
+					__('Successfully sent %1$s notification email to %2$s.', 'invoicing'),
210
+					sanitize_key($type),
211
+					$email->is_admin_email() ? __('admin') : __('the customer')
212 212
 				)
213 213
 			);
214 214
 		} else {
215 215
 			$invoice->add_system_note(
216 216
 				sprintf(
217
-					__( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ),
218
-					sanitize_key( $type ),
219
-					$email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
217
+					__('Failed sending %1$s notification email to %2$s.', 'invoicing'),
218
+					sanitize_key($type),
219
+					$email->is_admin_email() ? __('admin') : __('the customer')
220 220
 				)
221 221
 			);
222 222
 		}
223 223
 
224
-		do_action( 'getpaid_after_send_invoice_notification', $type, $invoice, $email );
224
+		do_action('getpaid_after_send_invoice_notification', $type, $invoice, $email);
225 225
 
226 226
 		return $result;
227 227
 	}
@@ -232,20 +232,20 @@  discard block
 block discarded – undo
232 232
 	 * @param array $recipients
233 233
 	 * @param GetPaid_Notification_Email $email
234 234
 	 */
235
-	public function filter_email_recipients( $recipients, $email ) {
235
+	public function filter_email_recipients($recipients, $email) {
236 236
 
237
-		if ( ! $email->is_admin_email() ) {
237
+		if (!$email->is_admin_email()) {
238 238
 			$cc   = $email->object->get_email_cc();
239
-			$cc_2 = get_user_meta( $email->object->get_user_id(), '_wpinv_email_cc', true );
239
+			$cc_2 = get_user_meta($email->object->get_user_id(), '_wpinv_email_cc', true);
240 240
 
241
-			if ( ! empty( $cc ) ) {
242
-				$cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) );
243
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) );
241
+			if (!empty($cc)) {
242
+				$cc = array_map('sanitize_email', wpinv_parse_list($cc));
243
+				$recipients = array_filter(array_unique(array_merge($recipients, $cc)));
244 244
 			}
245 245
 
246
-			if ( ! empty( $cc_2 ) ) {
247
-				$cc_2 = array_map( 'sanitize_email', wpinv_parse_list( $cc_2 ) );
248
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc_2 ) ) );
246
+			if (!empty($cc_2)) {
247
+				$cc_2 = array_map('sanitize_email', wpinv_parse_list($cc_2));
248
+				$recipients = array_filter(array_unique(array_merge($recipients, $cc_2)));
249 249
 			}
250 250
 }
251 251
 
@@ -258,17 +258,17 @@  discard block
 block discarded – undo
258 258
 	 *
259 259
 	 * @param WPInv_Invoice $invoice
260 260
 	 */
261
-	public function new_invoice( $invoice ) {
261
+	public function new_invoice($invoice) {
262 262
 
263 263
 		// Only send this email for invoices created via the admin page.
264
-		if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_paid() || $this->is_payment_form_invoice( $invoice->get_id() ) ) {
264
+		if (!$invoice->is_type('invoice') || $invoice->is_paid() || $this->is_payment_form_invoice($invoice->get_id())) {
265 265
 			return;
266 266
 		}
267 267
 
268
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
268
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
269 269
 		$recipient = wpinv_get_admin_email();
270 270
 
271
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
271
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
272 272
 
273 273
 	}
274 274
 
@@ -277,12 +277,12 @@  discard block
 block discarded – undo
277 277
 	 *
278 278
 	 * @param WPInv_Invoice $invoice
279 279
 	 */
280
-	public function cancelled_invoice( $invoice ) {
280
+	public function cancelled_invoice($invoice) {
281 281
 
282
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
282
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
283 283
 		$recipient = $invoice->get_email();
284 284
 
285
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
285
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
286 286
 	}
287 287
 
288 288
 	/**
@@ -290,12 +290,12 @@  discard block
 block discarded – undo
290 290
 	 *
291 291
 	 * @param WPInv_Invoice $invoice
292 292
 	 */
293
-	public function failed_invoice( $invoice ) {
293
+	public function failed_invoice($invoice) {
294 294
 
295
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
295
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
296 296
 		$recipient = wpinv_get_admin_email();
297 297
 
298
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
298
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
299 299
 
300 300
 	}
301 301
 
@@ -304,12 +304,12 @@  discard block
 block discarded – undo
304 304
 	 *
305 305
 	 * @param WPInv_Invoice $invoice
306 306
 	 */
307
-	public function onhold_invoice( $invoice ) {
307
+	public function onhold_invoice($invoice) {
308 308
 
309
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
309
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
310 310
 		$recipient = $invoice->get_email();
311 311
 
312
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
312
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
313 313
 
314 314
 	}
315 315
 
@@ -318,12 +318,12 @@  discard block
 block discarded – undo
318 318
 	 *
319 319
 	 * @param WPInv_Invoice $invoice
320 320
 	 */
321
-	public function processing_invoice( $invoice ) {
321
+	public function processing_invoice($invoice) {
322 322
 
323
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
323
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
324 324
 		$recipient = $invoice->get_email();
325 325
 
326
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
326
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
327 327
 
328 328
 	}
329 329
 
@@ -332,17 +332,17 @@  discard block
 block discarded – undo
332 332
 	 *
333 333
 	 * @param WPInv_Invoice $invoice
334 334
 	 */
335
-	public function completed_invoice( $invoice ) {
335
+	public function completed_invoice($invoice) {
336 336
 
337 337
 		// (Maybe) abort if it is a renewal invoice.
338
-		if ( $invoice->is_renewal() && ! wpinv_get_option( 'email_completed_invoice_renewal_active', false ) ) {
338
+		if ($invoice->is_renewal() && !wpinv_get_option('email_completed_invoice_renewal_active', false)) {
339 339
 			return;
340 340
 		}
341 341
 
342
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
342
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
343 343
 		$recipient = $invoice->get_email();
344 344
 
345
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
345
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
346 346
 
347 347
 	}
348 348
 
@@ -351,12 +351,12 @@  discard block
 block discarded – undo
351 351
 	 *
352 352
 	 * @param WPInv_Invoice $invoice
353 353
 	 */
354
-	public function refunded_invoice( $invoice ) {
354
+	public function refunded_invoice($invoice) {
355 355
 
356
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
356
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
357 357
 		$recipient = $invoice->get_email();
358 358
 
359
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
359
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
360 360
 
361 361
 	}
362 362
 
@@ -366,21 +366,21 @@  discard block
 block discarded – undo
366 366
 	 * @param WPInv_Invoice $invoice
367 367
 	 * @param bool $force
368 368
 	 */
369
-	public function user_invoice( $invoice, $force = false ) {
369
+	public function user_invoice($invoice, $force = false) {
370 370
 
371
-		if ( ! $force && ! empty( $GLOBALS['wpinv_skip_invoice_notification'] ) ) {
371
+		if (!$force && !empty($GLOBALS['wpinv_skip_invoice_notification'])) {
372 372
 			return;
373 373
 		}
374 374
 
375 375
 		// Only send this email for invoices created via the admin page.
376
-		if ( ! $invoice->is_type( 'invoice' ) || ( empty( $force ) && $invoice->is_paid() ) || ( empty( $force ) && $this->is_payment_form_invoice( $invoice->get_id() ) ) ) {
376
+		if (!$invoice->is_type('invoice') || (empty($force) && $invoice->is_paid()) || (empty($force) && $this->is_payment_form_invoice($invoice->get_id()))) {
377 377
 			return;
378 378
 		}
379 379
 
380
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
380
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
381 381
 		$recipient = $invoice->get_email();
382 382
 
383
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
383
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
384 384
 
385 385
 	}
386 386
 
@@ -390,9 +390,9 @@  discard block
 block discarded – undo
390 390
 	 * @param int $invoice
391 391
 	 * @return bool
392 392
 	 */
393
-	public function is_payment_form_invoice( $invoice ) {
394
-		$is_payment_form_invoice = empty( $_GET['getpaid-admin-action'] ) && ( 'payment_form' === get_post_meta( $invoice, 'wpinv_created_via', true ) || 'geodirectory' === get_post_meta( $invoice, 'wpinv_created_via', true ) );
395
-		return apply_filters( 'getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice );
393
+	public function is_payment_form_invoice($invoice) {
394
+		$is_payment_form_invoice = empty($_GET['getpaid-admin-action']) && ('payment_form' === get_post_meta($invoice, 'wpinv_created_via', true) || 'geodirectory' === get_post_meta($invoice, 'wpinv_created_via', true));
395
+		return apply_filters('getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice);
396 396
 	}
397 397
 
398 398
 	/**
@@ -401,12 +401,12 @@  discard block
 block discarded – undo
401 401
 	 * @param WPInv_Invoice $invoice
402 402
 	 * @param string $note
403 403
 	 */
404
-	public function user_note( $invoice, $note ) {
404
+	public function user_note($invoice, $note) {
405 405
 
406
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
406
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
407 407
 		$recipient = $invoice->get_email();
408 408
 
409
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient, array( 'customer_note' => $note ) );
409
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient, array('customer_note' => $note));
410 410
 
411 411
 	}
412 412
 
@@ -415,9 +415,9 @@  discard block
 block discarded – undo
415 415
 	 *
416 416
 	 * @param WPInv_Invoice $invoice
417 417
 	 */
418
-	public function force_send_overdue_notice( $invoice ) {
419
-		$email = new GetPaid_Notification_Email( 'overdue', $invoice );
420
-		return $this->send_email( $invoice, $email, 'overdue', $invoice->get_email() );
418
+	public function force_send_overdue_notice($invoice) {
419
+		$email = new GetPaid_Notification_Email('overdue', $invoice);
420
+		return $this->send_email($invoice, $email, 'overdue', $invoice->get_email());
421 421
 	}
422 422
 
423 423
 	/**
@@ -428,38 +428,38 @@  discard block
 block discarded – undo
428 428
 	public function overdue() {
429 429
 		global $wpdb;
430 430
 
431
-		$email = new GetPaid_Notification_Email( __FUNCTION__ );
431
+		$email = new GetPaid_Notification_Email(__FUNCTION__);
432 432
 
433 433
 		// Fetch reminder days.
434
-		$reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
434
+		$reminder_days = array_unique(wp_parse_id_list($email->get_option('days')));
435 435
 
436 436
 		// Abort if non is set.
437
-		if ( empty( $reminder_days ) ) {
437
+		if (empty($reminder_days)) {
438 438
 			return;
439 439
 		}
440 440
 
441 441
 		// Retrieve date query.
442
-		$date_query = $this->get_date_query( $reminder_days );
442
+		$date_query = $this->get_date_query($reminder_days);
443 443
 
444 444
 		// Invoices table.
445 445
 		$table = $wpdb->prefix . 'getpaid_invoices';
446 446
 
447 447
 		// Fetch invoices.
448
-		$invoices  = $wpdb->get_col(
448
+		$invoices = $wpdb->get_col(
449 449
 			"SELECT posts.ID FROM $wpdb->posts as posts
450 450
 			LEFT JOIN $table as invoices ON invoices.post_id = posts.ID
451 451
 			WHERE posts.post_type = 'wpi_invoice' AND posts.post_status = 'wpi-pending' $date_query"
452 452
         );
453 453
 
454
-		foreach ( $invoices as $invoice ) {
454
+		foreach ($invoices as $invoice) {
455 455
 
456 456
 			// Only send this email for invoices created via the admin page.
457
-			if ( ! $this->is_payment_form_invoice( $invoice ) ) {
458
-				$invoice       = new WPInv_Invoice( $invoice );
457
+			if (!$this->is_payment_form_invoice($invoice)) {
458
+				$invoice       = new WPInv_Invoice($invoice);
459 459
 				$email->object = $invoice;
460 460
 
461
-				if ( $invoice->needs_payment() ) {
462
-					$this->send_email( $invoice, $email, __FUNCTION__, $invoice->get_email() );
461
+				if ($invoice->needs_payment()) {
462
+					$this->send_email($invoice, $email, __FUNCTION__, $invoice->get_email());
463 463
 				}
464 464
 }
465 465
 }
@@ -472,14 +472,14 @@  discard block
 block discarded – undo
472 472
 	 * @param array $reminder_days
473 473
 	 * @return string
474 474
 	 */
475
-	public function get_date_query( $reminder_days ) {
475
+	public function get_date_query($reminder_days) {
476 476
 
477 477
 		$date_query = array(
478 478
 			'relation' => 'OR',
479 479
 		);
480 480
 
481
-		foreach ( $reminder_days as $days ) {
482
-			$date = date_parse( date( 'Y-m-d', strtotime( "-$days days", current_time( 'timestamp' ) ) ) );
481
+		foreach ($reminder_days as $days) {
482
+			$date = date_parse(date('Y-m-d', strtotime("-$days days", current_time('timestamp'))));
483 483
 
484 484
 			$date_query[] = array(
485 485
 				'year'  => $date['year'],
@@ -489,7 +489,7 @@  discard block
 block discarded – undo
489 489
 
490 490
 		}
491 491
 
492
-		$date_query = new WP_Date_Query( $date_query, 'invoices.due_date' );
492
+		$date_query = new WP_Date_Query($date_query, 'invoices.due_date');
493 493
 
494 494
 		return $date_query->get_sql();
495 495
 
Please login to merge, or discard this patch.
templates/invoice/line-totals.php 2 patches
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -39,40 +39,40 @@
 block discarded – undo
39 39
                                 if ( 'tax' === $key ) {
40 40
                                     wpinv_the_price( $invoice->get_total_tax(), $invoice->get_currency() );
41 41
 
42
-								if ( wpinv_use_taxes() && ! $invoice->get_disable_taxes() ) {
42
+                                if ( wpinv_use_taxes() && ! $invoice->get_disable_taxes() ) {
43 43
 
44
-									$taxes = $invoice->get_total_tax();
45
-									if ( empty( $taxes ) && GetPaid_Payment_Form_Submission_Taxes::is_eu_transaction( $invoice->get_country() ) ) {
46
-										echo ' <em class="text-muted small">';
47
-										_x( '(Reverse charged)', 'This is a legal term for reverse charging tax in the EU', 'invoicing' );
48
-										echo '</em>';
44
+                                    $taxes = $invoice->get_total_tax();
45
+                                    if ( empty( $taxes ) && GetPaid_Payment_Form_Submission_Taxes::is_eu_transaction( $invoice->get_country() ) ) {
46
+                                        echo ' <em class="text-muted small">';
47
+                                        _x( '(Reverse charged)', 'This is a legal term for reverse charging tax in the EU', 'invoicing' );
48
+                                        echo '</em>';
49 49
                                     }
50 50
 }
51 51
 }
52 52
 
53 53
                                 // Total Fee.
54 54
                                 if ( 'fee' === $key ) {
55
-								wpinv_the_price( $invoice->get_total_fees(), $invoice->get_currency() );
55
+                                wpinv_the_price( $invoice->get_total_fees(), $invoice->get_currency() );
56 56
                                 }
57 57
 
58 58
                                 // Total discount.
59 59
                                 if ( 'discount' === $key ) {
60
-								wpinv_the_price( $invoice->get_total_discount(), $invoice->get_currency() );
60
+                                wpinv_the_price( $invoice->get_total_discount(), $invoice->get_currency() );
61 61
                                 }
62 62
 
63 63
                                 // Shipping.
64 64
                                 if ( 'shipping' === $key ) {
65
-								wpinv_the_price( $invoice->get_shipping(), $invoice->get_currency() );
65
+                                wpinv_the_price( $invoice->get_shipping(), $invoice->get_currency() );
66 66
                                 }
67 67
 
68 68
                                 // Sub total.
69 69
                                 if ( 'subtotal' === $key ) {
70
-								wpinv_the_price( $invoice->get_subtotal(), $invoice->get_currency() );
70
+                                wpinv_the_price( $invoice->get_subtotal(), $invoice->get_currency() );
71 71
                                 }
72 72
 
73 73
                                 // Total.
74 74
                                 if ( 'total' === $key ) {
75
-								wpinv_the_price( $invoice->get_total(), $invoice->get_currency() );
75
+                                wpinv_the_price( $invoice->get_total(), $invoice->get_currency() );
76 76
                                 }
77 77
 
78 78
                                 // Fires when printing a cart total.
Please login to merge, or discard this patch.
Spacing   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -9,26 +9,26 @@  discard block
 block discarded – undo
9 9
  * @var WPInv_Invoice $invoice
10 10
  */
11 11
 
12
-defined( 'ABSPATH' ) || exit;
12
+defined('ABSPATH') || exit;
13 13
 
14 14
 // Totals rows.
15
-$totals = getpaid_invoice_totals_rows( $invoice );
15
+$totals = getpaid_invoice_totals_rows($invoice);
16 16
 
17
-do_action( 'getpaid_before_invoice_line_totals', $invoice, $totals );
17
+do_action('getpaid_before_invoice_line_totals', $invoice, $totals);
18 18
 
19 19
 ?>
20 20
 <div class='getpaid-invoice-line-totals'>
21 21
     <div class="row">
22 22
         <div class="col-12 offset-sm-6 col-sm-6 border-sm-left pl-sm-0">
23 23
 
24
-            <?php foreach ( $totals as $key => $label ) : ?>
24
+            <?php foreach ($totals as $key => $label) : ?>
25 25
 
26
-                <div class="getpaid-invoice-line-totals-col <?php echo esc_attr( $key ); ?>">
26
+                <div class="getpaid-invoice-line-totals-col <?php echo esc_attr($key); ?>">
27 27
 
28 28
                     <div class="form-row">
29 29
 
30 30
                         <div class="col-8 getpaid-invoice-line-totals-label">
31
-                            <?php echo esc_html( $label ); ?>
31
+                            <?php echo esc_html($label); ?>
32 32
                         </div>
33 33
 
34 34
                         <div class="col-4 getpaid-invoice-line-totals-value pl-0">
@@ -36,47 +36,47 @@  discard block
 block discarded – undo
36 36
                             <?php
37 37
 
38 38
                                 // Total tax.
39
-                                if ( 'tax' === $key ) {
40
-                                    wpinv_the_price( $invoice->get_total_tax(), $invoice->get_currency() );
39
+                                if ('tax' === $key) {
40
+                                    wpinv_the_price($invoice->get_total_tax(), $invoice->get_currency());
41 41
 
42
-								if ( wpinv_use_taxes() && ! $invoice->get_disable_taxes() ) {
42
+								if (wpinv_use_taxes() && !$invoice->get_disable_taxes()) {
43 43
 
44 44
 									$taxes = $invoice->get_total_tax();
45
-									if ( empty( $taxes ) && GetPaid_Payment_Form_Submission_Taxes::is_eu_transaction( $invoice->get_country() ) ) {
45
+									if (empty($taxes) && GetPaid_Payment_Form_Submission_Taxes::is_eu_transaction($invoice->get_country())) {
46 46
 										echo ' <em class="text-muted small">';
47
-										_x( '(Reverse charged)', 'This is a legal term for reverse charging tax in the EU', 'invoicing' );
47
+										_x('(Reverse charged)', 'This is a legal term for reverse charging tax in the EU', 'invoicing');
48 48
 										echo '</em>';
49 49
                                     }
50 50
 }
51 51
 }
52 52
 
53 53
                                 // Total Fee.
54
-                                if ( 'fee' === $key ) {
55
-								wpinv_the_price( $invoice->get_total_fees(), $invoice->get_currency() );
54
+                                if ('fee' === $key) {
55
+								wpinv_the_price($invoice->get_total_fees(), $invoice->get_currency());
56 56
                                 }
57 57
 
58 58
                                 // Total discount.
59
-                                if ( 'discount' === $key ) {
60
-								wpinv_the_price( $invoice->get_total_discount(), $invoice->get_currency() );
59
+                                if ('discount' === $key) {
60
+								wpinv_the_price($invoice->get_total_discount(), $invoice->get_currency());
61 61
                                 }
62 62
 
63 63
                                 // Shipping.
64
-                                if ( 'shipping' === $key ) {
65
-								wpinv_the_price( $invoice->get_shipping(), $invoice->get_currency() );
64
+                                if ('shipping' === $key) {
65
+								wpinv_the_price($invoice->get_shipping(), $invoice->get_currency());
66 66
                                 }
67 67
 
68 68
                                 // Sub total.
69
-                                if ( 'subtotal' === $key ) {
70
-								wpinv_the_price( $invoice->get_subtotal(), $invoice->get_currency() );
69
+                                if ('subtotal' === $key) {
70
+								wpinv_the_price($invoice->get_subtotal(), $invoice->get_currency());
71 71
                                 }
72 72
 
73 73
                                 // Total.
74
-                                if ( 'total' === $key ) {
75
-								wpinv_the_price( $invoice->get_total(), $invoice->get_currency() );
74
+                                if ('total' === $key) {
75
+								wpinv_the_price($invoice->get_total(), $invoice->get_currency());
76 76
                                 }
77 77
 
78 78
                                 // Fires when printing a cart total.
79
-                                do_action( "getpaid_invoice_cart_totals_$key", $invoice );
79
+                                do_action("getpaid_invoice_cart_totals_$key", $invoice);
80 80
 
81 81
                             ?>
82 82
 
@@ -90,4 +90,4 @@  discard block
 block discarded – undo
90 90
     </div>
91 91
 </div> <!-- end .getpaid-invoice-line-totals -->
92 92
 
93
-<?php do_action( 'getpaid_after_invoice_line_totals', $invoice, $totals ); ?>
93
+<?php do_action('getpaid_after_invoice_line_totals', $invoice, $totals); ?>
Please login to merge, or discard this patch.
includes/admin/register-settings.php 2 patches
Indentation   +309 added lines, -309 removed lines patch added patch discarded remove patch
@@ -192,13 +192,13 @@  discard block
 block discarded – undo
192 192
     $name       = isset( $option['name'] ) ? $option['name'] : '';
193 193
     $cb         = "wpinv_{$option['type']}_callback";
194 194
     $section    = "wpinv_settings_{$tab}_$section";
195
-	$is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page'];
195
+    $is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page'];
196 196
 
197
-	if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) {
198
-		$tip   = wpinv_clean( $option['desc'] );
199
-		$name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>";
200
-		unset( $option['desc'] );
201
-	}
197
+    if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) {
198
+        $tip   = wpinv_clean( $option['desc'] );
199
+        $name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>";
200
+        unset( $option['desc'] );
201
+    }
202 202
 
203 203
     // Loop through all tabs.
204 204
     add_settings_field(
@@ -225,9 +225,9 @@  discard block
 block discarded – undo
225 225
             'faux'            => isset( $option['faux'] ) ? $option['faux'] : false,
226 226
             'onchange'        => isset( $option['onchange'] ) ? $option['onchange'] : '',
227 227
             'custom'          => isset( $option['custom'] ) ? $option['custom'] : '',
228
-			'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '',
229
-			'class'           => isset( $option['class'] ) ? $option['class'] : '',
230
-			'style'           => isset( $option['style'] ) ? $option['style'] : '',
228
+            'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '',
229
+            'class'           => isset( $option['class'] ) ? $option['class'] : '',
230
+            'style'           => isset( $option['style'] ) ? $option['style'] : '',
231 231
             'cols'            => isset( $option['cols'] ) && (int) $option['cols'] > 0 ? (int) $option['cols'] : 50,
232 232
             'rows'            => isset( $option['rows'] ) && (int) $option['rows'] > 0 ? (int) $option['rows'] : 5,
233 233
         )
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
  * @return array
242 242
  */
243 243
 function wpinv_get_registered_settings() {
244
-	return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) );
244
+    return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) );
245 245
 }
246 246
 
247 247
 /**
@@ -260,18 +260,18 @@  discard block
 block discarded – undo
260 260
  */
261 261
 function wpinv_settings_sanitize( $input = array() ) {
262 262
 
263
-	$wpinv_options = wpinv_get_options();
264
-	$raw_referrer  = wp_get_raw_referer();
263
+    $wpinv_options = wpinv_get_options();
264
+    $raw_referrer  = wp_get_raw_referer();
265 265
 
266 266
     if ( empty( $raw_referrer ) ) {
267
-		return array_merge( $wpinv_options, $input );
267
+        return array_merge( $wpinv_options, $input );
268 268
     }
269 269
 
270 270
     wp_parse_str( $raw_referrer, $referrer );
271 271
 
272
-	if ( in_array( 'gp-setup', $referrer ) ) {
273
-		return array_merge( $wpinv_options, $input );
274
-	}
272
+    if ( in_array( 'gp-setup', $referrer ) ) {
273
+        return array_merge( $wpinv_options, $input );
274
+    }
275 275
 
276 276
     $settings = wpinv_get_registered_settings();
277 277
     $tab      = isset( $referrer['tab'] ) ? $referrer['tab'] : 'general';
@@ -293,10 +293,10 @@  discard block
 block discarded – undo
293 293
         }
294 294
 
295 295
         // General filter
296
-		$input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key );
296
+        $input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key );
297 297
 
298
-		// Key specific filter.
299
-		$input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] );
298
+        // Key specific filter.
299
+        $input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] );
300 300
     }
301 301
 
302 302
     // Loop through the whitelist and unset any that are empty for the tab being saved
@@ -339,14 +339,14 @@  discard block
 block discarded – undo
339 339
 
340 340
     foreach ( $new_rates as $rate ) {
341 341
 
342
-		$rate['rate']    = wpinv_sanitize_amount( $rate['rate'] );
343
-		$rate['name']    = sanitize_text_field( $rate['name'] );
344
-		$rate['state']   = sanitize_text_field( $rate['state'] );
345
-		$rate['country'] = sanitize_text_field( $rate['country'] );
346
-		$rate['global']  = empty( $rate['state'] );
347
-		$tax_rates[]     = $rate;
342
+        $rate['rate']    = wpinv_sanitize_amount( $rate['rate'] );
343
+        $rate['name']    = sanitize_text_field( $rate['name'] );
344
+        $rate['state']   = sanitize_text_field( $rate['state'] );
345
+        $rate['country'] = sanitize_text_field( $rate['country'] );
346
+        $rate['global']  = empty( $rate['state'] );
347
+        $tax_rates[]     = $rate;
348 348
 
349
-	}
349
+    }
350 350
 
351 351
     update_option( 'wpinv_tax_rates', $tax_rates );
352 352
 
@@ -359,21 +359,21 @@  discard block
 block discarded – undo
359 359
         return $input;
360 360
     }
361 361
 
362
-	if ( empty( $_POST['wpinv_tax_rules_nonce'] ) || ! wp_verify_nonce( $_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules' ) ) {
363
-		return $input;
364
-	}
362
+    if ( empty( $_POST['wpinv_tax_rules_nonce'] ) || ! wp_verify_nonce( $_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules' ) ) {
363
+        return $input;
364
+    }
365 365
 
366 366
     $new_rules = ! empty( $_POST['tax_rules'] ) ? wp_kses_post_deep( array_values( $_POST['tax_rules'] ) ) : array();
367 367
     $tax_rules = array();
368 368
 
369 369
     foreach ( $new_rules as $rule ) {
370 370
 
371
-		$rule['key']      = sanitize_title_with_dashes( $rule['key'] );
372
-		$rule['label']    = sanitize_text_field( $rule['label'] );
373
-		$rule['tax_base'] = sanitize_text_field( $rule['tax_base'] );
374
-		$tax_rules[]      = $rule;
371
+        $rule['key']      = sanitize_title_with_dashes( $rule['key'] );
372
+        $rule['label']    = sanitize_text_field( $rule['label'] );
373
+        $rule['tax_base'] = sanitize_text_field( $rule['tax_base'] );
374
+        $tax_rules[]      = $rule;
375 375
 
376
-	}
376
+    }
377 377
 
378 378
     update_option( 'wpinv_tax_rules', $tax_rules );
379 379
 
@@ -386,11 +386,11 @@  discard block
 block discarded – undo
386 386
     $tabs['general']  = __( 'General', 'invoicing' );
387 387
     $tabs['gateways'] = __( 'Payment Gateways', 'invoicing' );
388 388
     $tabs['taxes']    = __( 'Taxes', 'invoicing' );
389
-	$tabs['emails']   = __( 'Emails', 'invoicing' );
389
+    $tabs['emails']   = __( 'Emails', 'invoicing' );
390 390
 
391
-	if ( count( getpaid_get_integration_settings() ) > 0 ) {
392
-		$tabs['integrations'] = __( 'Integrations', 'invoicing' );
393
-	}
391
+    if ( count( getpaid_get_integration_settings() ) > 0 ) {
392
+        $tabs['integrations'] = __( 'Integrations', 'invoicing' );
393
+    }
394 394
 
395 395
     $tabs['privacy']  = __( 'Privacy', 'invoicing' );
396 396
     $tabs['misc']     = __( 'Misc', 'invoicing' );
@@ -421,53 +421,53 @@  discard block
 block discarded – undo
421 421
         'general'      => apply_filters(
422 422
             'wpinv_settings_sections_general',
423 423
             array(
424
-				'main'             => __( 'General Settings', 'invoicing' ),
425
-				'page_section'     => __( 'Page Settings', 'invoicing' ),
426
-				'currency_section' => __( 'Currency Settings', 'invoicing' ),
427
-				'labels'           => __( 'Label Texts', 'invoicing' ),
424
+                'main'             => __( 'General Settings', 'invoicing' ),
425
+                'page_section'     => __( 'Page Settings', 'invoicing' ),
426
+                'currency_section' => __( 'Currency Settings', 'invoicing' ),
427
+                'labels'           => __( 'Label Texts', 'invoicing' ),
428 428
             )
429 429
         ),
430 430
         'gateways'     => apply_filters(
431 431
             'wpinv_settings_sections_gateways',
432 432
             array(
433
-				'main' => __( 'Gateway Settings', 'invoicing' ),
433
+                'main' => __( 'Gateway Settings', 'invoicing' ),
434 434
             )
435 435
         ),
436 436
         'taxes'        => apply_filters(
437 437
             'wpinv_settings_sections_taxes',
438 438
             array(
439
-				'main'  => __( 'Tax Settings', 'invoicing' ),
440
-				'rules' => __( 'Tax Rules', 'invoicing' ),
441
-				'rates' => __( 'Tax Rates', 'invoicing' ),
442
-				'vat'   => __( 'EU VAT Settings', 'invoicing' ),
439
+                'main'  => __( 'Tax Settings', 'invoicing' ),
440
+                'rules' => __( 'Tax Rules', 'invoicing' ),
441
+                'rates' => __( 'Tax Rates', 'invoicing' ),
442
+                'vat'   => __( 'EU VAT Settings', 'invoicing' ),
443 443
             )
444 444
         ),
445 445
         'emails'       => apply_filters(
446 446
             'wpinv_settings_sections_emails',
447 447
             array(
448
-				'main' => __( 'Email Settings', 'invoicing' ),
448
+                'main' => __( 'Email Settings', 'invoicing' ),
449 449
             )
450 450
         ),
451 451
 
452
-		'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ),
452
+        'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ),
453 453
 
454 454
         'privacy'      => apply_filters(
455 455
             'wpinv_settings_sections_privacy',
456 456
             array(
457
-				'main' => __( 'Privacy policy', 'invoicing' ),
457
+                'main' => __( 'Privacy policy', 'invoicing' ),
458 458
             )
459 459
         ),
460 460
         'misc'         => apply_filters(
461 461
             'wpinv_settings_sections_misc',
462 462
             array(
463
-				'main'       => __( 'Miscellaneous', 'invoicing' ),
464
-				'custom-css' => __( 'Custom CSS', 'invoicing' ),
463
+                'main'       => __( 'Miscellaneous', 'invoicing' ),
464
+                'custom-css' => __( 'Custom CSS', 'invoicing' ),
465 465
             )
466 466
         ),
467 467
         'tools'        => apply_filters(
468 468
             'wpinv_settings_sections_tools',
469 469
             array(
470
-				'main' => __( 'Diagnostic Tools', 'invoicing' ),
470
+                'main' => __( 'Diagnostic Tools', 'invoicing' ),
471 471
             )
472 472
         ),
473 473
     );
@@ -478,46 +478,46 @@  discard block
 block discarded – undo
478 478
 }
479 479
 
480 480
 function wpinv_get_pages( $with_slug = false, $default_label = null ) {
481
-	$pages_options = array();
481
+    $pages_options = array();
482 482
 
483
-	if ( $default_label !== null && $default_label !== false ) {
484
-		$pages_options = array( '' => $default_label ); // Blank option
485
-	}
483
+    if ( $default_label !== null && $default_label !== false ) {
484
+        $pages_options = array( '' => $default_label ); // Blank option
485
+    }
486 486
 
487
-	$pages = get_pages();
488
-	if ( $pages ) {
489
-		foreach ( $pages as $page ) {
490
-			$title = $with_slug ? $page->post_title . ' (' . $page->post_name . ')' : $page->post_title;
487
+    $pages = get_pages();
488
+    if ( $pages ) {
489
+        foreach ( $pages as $page ) {
490
+            $title = $with_slug ? $page->post_title . ' (' . $page->post_name . ')' : $page->post_title;
491 491
             $pages_options[ $page->ID ] = $title;
492
-		}
493
-	}
492
+        }
493
+    }
494 494
 
495
-	return $pages_options;
495
+    return $pages_options;
496 496
 }
497 497
 
498 498
 function wpinv_header_callback( $args ) {
499
-	if ( ! empty( $args['desc'] ) ) {
499
+    if ( ! empty( $args['desc'] ) ) {
500 500
         echo wp_kses_post( $args['desc'] );
501 501
     }
502 502
 }
503 503
 
504 504
 function wpinv_hidden_callback( $args ) {
505 505
 
506
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
507
-	$value   = wpinv_get_option( $args['id'], $std );
506
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
507
+    $value   = wpinv_get_option( $args['id'], $std );
508 508
 
509
-	if ( isset( $args['set_value'] ) ) {
510
-		$value = $args['set_value'];
511
-	}
509
+    if ( isset( $args['set_value'] ) ) {
510
+        $value = $args['set_value'];
511
+    }
512 512
 
513
-	if ( isset( $args['faux'] ) && true === $args['faux'] ) {
514
-		$args['readonly'] = true;
515
-		$name  = '';
516
-	} else {
517
-		$name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']';
518
-	}
513
+    if ( isset( $args['faux'] ) && true === $args['faux'] ) {
514
+        $args['readonly'] = true;
515
+        $name  = '';
516
+    } else {
517
+        $name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']';
518
+    }
519 519
 
520
-	echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />';
520
+    echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />';
521 521
 
522 522
 }
523 523
 
@@ -526,12 +526,12 @@  discard block
 block discarded – undo
526 526
  */
527 527
 function wpinv_checkbox_callback( $args ) {
528 528
 
529
-	$std = isset( $args['std'] ) ? $args['std'] : '';
530
-	$std = wpinv_get_option( $args['id'], $std );
531
-	$id  = esc_attr( $args['id'] );
529
+    $std = isset( $args['std'] ) ? $args['std'] : '';
530
+    $std = wpinv_get_option( $args['id'], $std );
531
+    $id  = esc_attr( $args['id'] );
532 532
 
533
-	getpaid_hidden_field( "wpinv_settings[$id]", '0' );
534
-	?>
533
+    getpaid_hidden_field( "wpinv_settings[$id]", '0' );
534
+    ?>
535 535
 		<fieldset>
536 536
 			<label>
537 537
 				<input id="wpinv-settings-<?php echo esc_attr( $id ); ?>" name="wpinv_settings[<?php echo esc_attr( $id ); ?>]" <?php checked( empty( $std ), false ); ?> value="1" type="checkbox" />
@@ -543,75 +543,75 @@  discard block
 block discarded – undo
543 543
 
544 544
 function wpinv_multicheck_callback( $args ) {
545 545
 
546
-	$sanitize_id = wpinv_sanitize_key( $args['id'] );
547
-	$class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
546
+    $sanitize_id = wpinv_sanitize_key( $args['id'] );
547
+    $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
548 548
 
549
-	if ( ! empty( $args['options'] ) ) {
549
+    if ( ! empty( $args['options'] ) ) {
550 550
 
551
-		$std     = isset( $args['std'] ) ? $args['std'] : array();
552
-		$value   = wpinv_get_option( $args['id'], $std );
551
+        $std     = isset( $args['std'] ) ? $args['std'] : array();
552
+        $value   = wpinv_get_option( $args['id'], $std );
553 553
 
554
-		echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">';
554
+        echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">';
555 555
         foreach ( $args['options'] as $key => $option ) :
556
-			$sanitize_key = esc_attr( wpinv_sanitize_key( $key ) );
557
-			if ( in_array( $sanitize_key, $value ) ) {
558
-				$enabled = $sanitize_key;
559
-			} else {
560
-				$enabled = null;
561
-			}
562
-			echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/>&nbsp;';
563
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>';
564
-		endforeach;
565
-		echo '</div>';
566
-		echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>';
567
-	}
556
+            $sanitize_key = esc_attr( wpinv_sanitize_key( $key ) );
557
+            if ( in_array( $sanitize_key, $value ) ) {
558
+                $enabled = $sanitize_key;
559
+            } else {
560
+                $enabled = null;
561
+            }
562
+            echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/>&nbsp;';
563
+            echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>';
564
+        endforeach;
565
+        echo '</div>';
566
+        echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>';
567
+    }
568 568
 }
569 569
 
570 570
 function wpinv_payment_icons_callback( $args ) {
571 571
 
572 572
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
573
-	$value   = wpinv_get_option( $args['id'], false );
573
+    $value   = wpinv_get_option( $args['id'], false );
574 574
 
575
-	if ( ! empty( $args['options'] ) ) {
576
-		foreach ( $args['options'] as $key => $option ) {
575
+    if ( ! empty( $args['options'] ) ) {
576
+        foreach ( $args['options'] as $key => $option ) {
577 577
             $sanitize_key = wpinv_sanitize_key( $key );
578 578
 
579
-			if ( empty( $value ) ) {
580
-				$enabled = $option;
581
-			} else {
582
-				$enabled = null;
583
-			}
584
-
585
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
586
-
587
-				echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
588
-
589
-				if ( wpinv_string_is_image_url( $key ) ) {
590
-				echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
591
-				} else {
592
-				$card = strtolower( str_replace( ' ', '', $option ) );
593
-
594
-				if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) {
595
-					$image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' );
596
-					} else {
597
-					$image       = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false );
598
-					$content_dir = WP_CONTENT_DIR;
599
-
600
-					if ( function_exists( 'wp_normalize_path' ) ) {
601
-						// Replaces backslashes with forward slashes for Windows systems
602
-						$image = wp_normalize_path( $image );
603
-						$content_dir = wp_normalize_path( $content_dir );
604
-						}
605
-
606
-					$image = str_replace( $content_dir, content_url(), $image );
607
-					}
608
-
609
-				echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
610
-				}
611
-			echo wp_kses_post( $option ) . '</label>';
612
-		}
613
-		echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>';
614
-	}
579
+            if ( empty( $value ) ) {
580
+                $enabled = $option;
581
+            } else {
582
+                $enabled = null;
583
+            }
584
+
585
+            echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
586
+
587
+                echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
588
+
589
+                if ( wpinv_string_is_image_url( $key ) ) {
590
+                echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
591
+                } else {
592
+                $card = strtolower( str_replace( ' ', '', $option ) );
593
+
594
+                if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) {
595
+                    $image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' );
596
+                    } else {
597
+                    $image       = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false );
598
+                    $content_dir = WP_CONTENT_DIR;
599
+
600
+                    if ( function_exists( 'wp_normalize_path' ) ) {
601
+                        // Replaces backslashes with forward slashes for Windows systems
602
+                        $image = wp_normalize_path( $image );
603
+                        $content_dir = wp_normalize_path( $content_dir );
604
+                        }
605
+
606
+                    $image = str_replace( $content_dir, content_url(), $image );
607
+                    }
608
+
609
+                echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
610
+                }
611
+            echo wp_kses_post( $option ) . '</label>';
612
+        }
613
+        echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>';
614
+    }
615 615
 }
616 616
 
617 617
 /**
@@ -619,9 +619,9 @@  discard block
 block discarded – undo
619 619
  */
620 620
 function wpinv_radio_callback( $args ) {
621 621
 
622
-	$std = isset( $args['std'] ) ? $args['std'] : '';
623
-	$std = wpinv_get_option( $args['id'], $std );
624
-	?>
622
+    $std = isset( $args['std'] ) ? $args['std'] : '';
623
+    $std = wpinv_get_option( $args['id'], $std );
624
+    ?>
625 625
 		<fieldset>
626 626
 			<ul id="wpinv-settings-<?php echo esc_attr( $args['id'] ); ?>" style="margin-top: 0;">
627 627
 				<?php foreach ( $args['options'] as $key => $option ) : ?>
@@ -635,7 +635,7 @@  discard block
 block discarded – undo
635 635
 			</ul>
636 636
 		</fieldset>
637 637
 	<?php
638
-	getpaid_settings_description_callback( $args );
638
+    getpaid_settings_description_callback( $args );
639 639
 }
640 640
 
641 641
 /**
@@ -643,10 +643,10 @@  discard block
 block discarded – undo
643 643
  */
644 644
 function getpaid_settings_description_callback( $args ) {
645 645
 
646
-	if ( ! empty( $args['desc'] ) ) {
647
-		$description = $args['desc'];
648
-		echo wp_kses_post( "<p class='description'>$description</p>" );
649
-	}
646
+    if ( ! empty( $args['desc'] ) ) {
647
+        $description = $args['desc'];
648
+        echo wp_kses_post( "<p class='description'>$description</p>" );
649
+    }
650 650
 
651 651
 }
652 652
 
@@ -655,7 +655,7 @@  discard block
 block discarded – undo
655 655
  */
656 656
 function wpinv_gateways_callback() {
657 657
 
658
-	?>
658
+    ?>
659 659
 		</td>
660 660
 	</tr>
661 661
 	<tr class="bsui">
@@ -669,26 +669,26 @@  discard block
 block discarded – undo
669 669
 
670 670
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
671 671
     $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
672
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
673
-	$value   = wpinv_get_option( $args['id'], $std );
672
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
673
+    $value   = wpinv_get_option( $args['id'], $std );
674 674
 
675
-	echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >';
675
+    echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >';
676 676
 
677
-	foreach ( $args['options'] as $key => $option ) :
677
+    foreach ( $args['options'] as $key => $option ) :
678 678
 
679
-		echo '<option value="' . esc_attr( $key ) . '" ';
679
+        echo '<option value="' . esc_attr( $key ) . '" ';
680 680
 
681
-		if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) {
681
+        if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) {
682 682
             selected( $key, $args['selected'] );
683 683
         } else {
684 684
             selected( $key, $value );
685 685
         }
686 686
 
687
-		echo '>' . esc_html( $option['admin_label'] ) . '</option>';
688
-	endforeach;
687
+        echo '>' . esc_html( $option['admin_label'] ) . '</option>';
688
+    endforeach;
689 689
 
690
-	echo '</select>';
691
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
690
+    echo '</select>';
691
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
692 692
 }
693 693
 
694 694
 /**
@@ -699,38 +699,38 @@  discard block
 block discarded – undo
699 699
  */
700 700
 function wpinv_settings_attrs_helper( $args ) {
701 701
 
702
-	$value = isset( $args['std'] ) ? $args['std'] : '';
703
-	$id    = esc_attr( $args['id'] );
704
-	$value = is_scalar( $value ) ? $value : '';
705
-
706
-	$attrs = array(
707
-		'name'     => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]",
708
-		'readonly' => ! empty( $args['faux'] ),
709
-		'value'    => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ),
710
-		'id'       => 'wpinv-settings-' . $args['id'],
711
-		'style'    => $args['style'],
712
-		'class'    => $args['class'],
713
-		'placeholder' => $args['placeholder'],
714
-		'data-placeholder' => $args['placeholder'],
715
-	);
702
+    $value = isset( $args['std'] ) ? $args['std'] : '';
703
+    $id    = esc_attr( $args['id'] );
704
+    $value = is_scalar( $value ) ? $value : '';
705
+
706
+    $attrs = array(
707
+        'name'     => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]",
708
+        'readonly' => ! empty( $args['faux'] ),
709
+        'value'    => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ),
710
+        'id'       => 'wpinv-settings-' . $args['id'],
711
+        'style'    => $args['style'],
712
+        'class'    => $args['class'],
713
+        'placeholder' => $args['placeholder'],
714
+        'data-placeholder' => $args['placeholder'],
715
+    );
716 716
 
717
-	if ( ! empty( $args['onchange'] ) ) {
718
-		$attrs['onchange'] = $args['onchange'];
719
-	}
717
+    if ( ! empty( $args['onchange'] ) ) {
718
+        $attrs['onchange'] = $args['onchange'];
719
+    }
720 720
 
721
-	foreach ( $attrs as $key => $value ) {
721
+    foreach ( $attrs as $key => $value ) {
722 722
 
723
-		if ( false === $value ) {
724
-			continue;
725
-		}
723
+        if ( false === $value ) {
724
+            continue;
725
+        }
726 726
 
727
-		if ( true === $value ) {
728
-			echo ' ' . esc_attr( $key );
729
-		} else {
730
-			echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
731
-		}
727
+        if ( true === $value ) {
728
+            echo ' ' . esc_attr( $key );
729
+        } else {
730
+            echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
731
+        }
732 732
 
733
-	}
733
+    }
734 734
 
735 735
 }
736 736
 
@@ -739,9 +739,9 @@  discard block
 block discarded – undo
739 739
  */
740 740
 function wpinv_text_callback( $args ) {
741 741
 
742
-	$desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
742
+    $desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
743 743
 
744
-	?>
744
+    ?>
745 745
 		<label style="width: 100%;">
746 746
 			<input type="text" <?php wpinv_settings_attrs_helper( $args ); ?>>
747 747
 			<?php echo wp_kses_post( $desc ); ?>
@@ -755,9 +755,9 @@  discard block
 block discarded – undo
755 755
  */
756 756
 function wpinv_number_callback( $args ) {
757 757
 
758
-	$desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
758
+    $desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
759 759
 
760
-	?>
760
+    ?>
761 761
 		<label style="width: 100%;">
762 762
 			<input type="number" step="<?php echo esc_attr( $args['step'] ); ?>" max="<?php echo intval( $args['max'] ); ?>" min="<?php echo intval( $args['min'] ); ?>" <?php wpinv_settings_attrs_helper( $args ); ?>>
763 763
 			<?php echo wp_kses_post( $desc ); ?>
@@ -769,34 +769,34 @@  discard block
 block discarded – undo
769 769
 function wpinv_textarea_callback( $args ) {
770 770
 
771 771
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
772
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
773
-	$value   = wpinv_get_option( $args['id'], $std );
772
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
773
+    $value   = wpinv_get_option( $args['id'], $std );
774 774
 
775 775
     $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
776 776
     $class = ( isset( $args['class'] ) && ! is_null( $args['class'] ) ) ? $args['class'] : 'large-text';
777 777
 
778
-	echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
779
-	echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
778
+    echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
779
+    echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
780 780
 
781 781
 }
782 782
 
783 783
 function wpinv_password_callback( $args ) {
784 784
 
785 785
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
786
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
787
-	$value   = wpinv_get_option( $args['id'], $std );
786
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
787
+    $value   = wpinv_get_option( $args['id'], $std );
788 788
 
789
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
790
-	echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
791
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
789
+    $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
790
+    echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
791
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
792 792
 
793 793
 }
794 794
 
795 795
 function wpinv_missing_callback( $args ) {
796
-	printf(
797
-		esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ),
798
-		'<strong>' . esc_html( $args['id'] ) . '</strong>'
799
-	);
796
+    printf(
797
+        esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ),
798
+        '<strong>' . esc_html( $args['id'] ) . '</strong>'
799
+    );
800 800
 }
801 801
 
802 802
 /**
@@ -804,13 +804,13 @@  discard block
 block discarded – undo
804 804
  */
805 805
 function wpinv_select_callback( $args ) {
806 806
 
807
-	$desc   = wp_kses_post( $args['desc'] );
808
-	$desc   = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
809
-	$value  = isset( $args['std'] ) ? $args['std'] : '';
810
-	$value  = wpinv_get_option( $args['id'], $value );
811
-	$rand   = uniqid( 'random_id' );
807
+    $desc   = wp_kses_post( $args['desc'] );
808
+    $desc   = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
809
+    $value  = isset( $args['std'] ) ? $args['std'] : '';
810
+    $value  = wpinv_get_option( $args['id'], $value );
811
+    $rand   = uniqid( 'random_id' );
812 812
 
813
-	?>
813
+    ?>
814 814
 		<label style="width: 100%;">
815 815
 			<select <?php wpinv_settings_attrs_helper( $args ); ?> data-allow-clear="true">
816 816
 				<?php foreach ( $args['options'] as $option => $name ) : ?>
@@ -843,50 +843,50 @@  discard block
 block discarded – undo
843 843
 function wpinv_color_select_callback( $args ) {
844 844
 
845 845
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
846
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
847
-	$value   = wpinv_get_option( $args['id'], $std );
846
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
847
+    $value   = wpinv_get_option( $args['id'], $std );
848 848
 
849
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>';
849
+    echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>';
850 850
 
851
-	foreach ( $args['options'] as $option => $color ) {
852
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>';
853
-	}
851
+    foreach ( $args['options'] as $option => $color ) {
852
+        echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>';
853
+    }
854 854
 
855
-	echo '</select>';
856
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
855
+    echo '</select>';
856
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
857 857
 
858 858
 }
859 859
 
860 860
 function wpinv_rich_editor_callback( $args ) {
861
-	global $wp_version;
861
+    global $wp_version;
862 862
 
863 863
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
864 864
 
865
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
866
-	$value   = wpinv_get_option( $args['id'], $std );
865
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
866
+    $value   = wpinv_get_option( $args['id'], $std );
867 867
 
868
-	if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) {
869
-		$value = $std;
870
-	}
868
+    if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) {
869
+        $value = $std;
870
+    }
871 871
 
872
-	$rows = isset( $args['size'] ) ? $args['size'] : 20;
872
+    $rows = isset( $args['size'] ) ? $args['size'] : 20;
873 873
 
874
-	echo '<div class="getpaid-settings-editor-input">';
875
-	if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) {
876
-		wp_editor(
874
+    echo '<div class="getpaid-settings-editor-input">';
875
+    if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) {
876
+        wp_editor(
877 877
             stripslashes( $value ),
878 878
             'wpinv_settings_' . esc_attr( $args['id'] ),
879 879
             array(
880
-				'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']',
881
-				'textarea_rows' => absint( $rows ),
882
-				'media_buttons' => false,
880
+                'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']',
881
+                'textarea_rows' => absint( $rows ),
882
+                'media_buttons' => false,
883 883
             )
884 884
         );
885
-	} else {
886
-		echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
887
-	}
885
+    } else {
886
+        echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
887
+    }
888 888
 
889
-	echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
889
+    echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
890 890
 
891 891
 }
892 892
 
@@ -894,51 +894,51 @@  discard block
 block discarded – undo
894 894
 
895 895
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
896 896
 
897
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
898
-	$value   = wpinv_get_option( $args['id'], $std );
897
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
898
+    $value   = wpinv_get_option( $args['id'], $std );
899 899
 
900
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
901
-	echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
902
-	echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>';
903
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
900
+    $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
901
+    echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
902
+    echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>';
903
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
904 904
 
905 905
 }
906 906
 
907 907
 function wpinv_color_callback( $args ) {
908 908
 
909
-	$std         = isset( $args['std'] ) ? $args['std'] : '';
910
-	$value       = wpinv_get_option( $args['id'], $std );
909
+    $std         = isset( $args['std'] ) ? $args['std'] : '';
910
+    $value       = wpinv_get_option( $args['id'], $std );
911 911
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
912 912
 
913
-	echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />';
914
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
913
+    echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />';
914
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
915 915
 
916 916
 }
917 917
 
918 918
 function wpinv_country_states_callback( $args ) {
919 919
 
920
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
921
-	$value   = wpinv_get_option( $args['id'], $std );
920
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
921
+    $value   = wpinv_get_option( $args['id'], $std );
922 922
 
923 923
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
924 924
 
925
-	if ( isset( $args['placeholder'] ) ) {
926
-		$placeholder = $args['placeholder'];
927
-	} else {
928
-		$placeholder = '';
929
-	}
925
+    if ( isset( $args['placeholder'] ) ) {
926
+        $placeholder = $args['placeholder'];
927
+    } else {
928
+        $placeholder = '';
929
+    }
930 930
 
931
-	$states = wpinv_get_country_states();
931
+    $states = wpinv_get_country_states();
932 932
 
933
-	$class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2';
934
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>';
933
+    $class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2';
934
+    echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>';
935 935
 
936
-	foreach ( $states as $option => $name ) {
937
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>';
938
-	}
936
+    foreach ( $states as $option => $name ) {
937
+        echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>';
938
+    }
939 939
 
940
-	echo '</select>';
941
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
940
+    echo '</select>';
941
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
942 942
 
943 943
 }
944 944
 
@@ -947,7 +947,7 @@  discard block
 block discarded – undo
947 947
  */
948 948
 function wpinv_tax_rates_callback() {
949 949
 
950
-	?>
950
+    ?>
951 951
 		</td>
952 952
 	</tr>
953 953
 	<tr class="bsui">
@@ -963,9 +963,9 @@  discard block
 block discarded – undo
963 963
  */
964 964
 function wpinv_tax_rate_callback( $tax_rate, $key ) {
965 965
 
966
-	$key                      = sanitize_key( $key );
967
-	$tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate'];
968
-	include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php';
966
+    $key                      = sanitize_key( $key );
967
+    $tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate'];
968
+    include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php';
969 969
 
970 970
 }
971 971
 
@@ -974,7 +974,7 @@  discard block
 block discarded – undo
974 974
  */
975 975
 function wpinv_tax_rules_callback() {
976 976
 
977
-	?>
977
+    ?>
978 978
 		</td>
979 979
 	</tr>
980 980
 	<tr class="bsui">
@@ -1012,14 +1012,14 @@  discard block
 block discarded – undo
1012 1012
                 <td>
1013 1013
 					<a href="
1014 1014
                     <?php
1015
-						echo esc_url(
1016
-							wp_nonce_url(
1017
-								add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
1018
-								'getpaid-nonce',
1019
-								'getpaid-nonce'
1020
-							)
1021
-						);
1022
-					?>
1015
+                        echo esc_url(
1016
+                            wp_nonce_url(
1017
+                                add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
1018
+                                'getpaid-nonce',
1019
+                                'getpaid-nonce'
1020
+                            )
1021
+                        );
1022
+                    ?>
1023 1023
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1024 1024
                 </td>
1025 1025
             </tr>
@@ -1031,14 +1031,14 @@  discard block
 block discarded – undo
1031 1031
                 <td>
1032 1032
 					<a href="
1033 1033
                     <?php
1034
-						echo esc_url(
1035
-							wp_nonce_url(
1036
-								add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ),
1037
-								'getpaid-nonce',
1038
-								'getpaid-nonce'
1039
-							)
1040
-						);
1041
-					?>
1034
+                        echo esc_url(
1035
+                            wp_nonce_url(
1036
+                                add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ),
1037
+                                'getpaid-nonce',
1038
+                                'getpaid-nonce'
1039
+                            )
1040
+                        );
1041
+                    ?>
1042 1042
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1043 1043
                 </td>
1044 1044
             </tr>
@@ -1050,14 +1050,14 @@  discard block
 block discarded – undo
1050 1050
                 <td>
1051 1051
 					<a href="
1052 1052
                     <?php
1053
-						echo esc_url(
1054
-							wp_nonce_url(
1055
-								add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ),
1056
-								'getpaid-nonce',
1057
-								'getpaid-nonce'
1058
-							)
1059
-						);
1060
-					?>
1053
+                        echo esc_url(
1054
+                            wp_nonce_url(
1055
+                                add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ),
1056
+                                'getpaid-nonce',
1057
+                                'getpaid-nonce'
1058
+                            )
1059
+                        );
1060
+                    ?>
1061 1061
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1062 1062
                 </td>
1063 1063
             </tr>
@@ -1070,14 +1070,14 @@  discard block
 block discarded – undo
1070 1070
                 <td>
1071 1071
 					<a href="
1072 1072
                     <?php
1073
-						echo esc_url(
1074
-							wp_nonce_url(
1075
-								add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ),
1076
-								'getpaid-nonce',
1077
-								'getpaid-nonce'
1078
-							)
1079
-						);
1080
-					?>
1073
+                        echo esc_url(
1074
+                            wp_nonce_url(
1075
+                                add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ),
1076
+                                'getpaid-nonce',
1077
+                                'getpaid-nonce'
1078
+                            )
1079
+                        );
1080
+                    ?>
1081 1081
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1082 1082
                 </td>
1083 1083
             </tr>
@@ -1090,8 +1090,8 @@  discard block
 block discarded – undo
1090 1090
                 <td>
1091 1091
 					<a href="
1092 1092
                     <?php
1093
-						echo esc_url( admin_url( 'index.php?page=gp-setup' ) );
1094
-					?>
1093
+                        echo esc_url( admin_url( 'index.php?page=gp-setup' ) );
1094
+                    ?>
1095 1095
                     " class="button button-primary"><?php esc_html_e( 'Launch', 'invoicing' ); ?></a>
1096 1096
                 </td>
1097 1097
             </tr>
@@ -1105,19 +1105,19 @@  discard block
 block discarded – undo
1105 1105
 
1106 1106
 
1107 1107
 function wpinv_descriptive_text_callback( $args ) {
1108
-	echo wp_kses_post( $args['desc'] );
1108
+    echo wp_kses_post( $args['desc'] );
1109 1109
 }
1110 1110
 
1111 1111
 function wpinv_raw_html_callback( $args ) {
1112
-	echo wp_kses( $args['desc'], getpaid_allowed_html() );
1112
+    echo wp_kses( $args['desc'], getpaid_allowed_html() );
1113 1113
 }
1114 1114
 
1115 1115
 function wpinv_hook_callback( $args ) {
1116
-	do_action( 'wpinv_' . $args['id'], $args );
1116
+    do_action( 'wpinv_' . $args['id'], $args );
1117 1117
 }
1118 1118
 
1119 1119
 function wpinv_set_settings_cap() {
1120
-	return wpinv_get_capability();
1120
+    return wpinv_get_capability();
1121 1121
 }
1122 1122
 add_filter( 'option_page_capability_wpinv_settings', 'wpinv_set_settings_cap' );
1123 1123
 
@@ -1141,15 +1141,15 @@  discard block
 block discarded – undo
1141 1141
  */
1142 1142
 function wpinv_get_merge_tags_help_text( $subscription = false ) {
1143 1143
 
1144
-	$url  = $subscription ? 'https://gist.github.com/picocodes/3d213982d57c34edf7a46fd3f0e8583e' : 'https://gist.github.com/picocodes/43bdc4d4bbba844534b2722e2af0b58f';
1145
-	$link = sprintf(
1146
-		'<strong><a href="%s" target="_blank">%s</a></strong>',
1147
-		$url,
1148
-		esc_html__( 'View available merge tags.', 'wpinv-quotes' )
1149
-	);
1144
+    $url  = $subscription ? 'https://gist.github.com/picocodes/3d213982d57c34edf7a46fd3f0e8583e' : 'https://gist.github.com/picocodes/43bdc4d4bbba844534b2722e2af0b58f';
1145
+    $link = sprintf(
1146
+        '<strong><a href="%s" target="_blank">%s</a></strong>',
1147
+        $url,
1148
+        esc_html__( 'View available merge tags.', 'wpinv-quotes' )
1149
+    );
1150 1150
 
1151
-	$description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' );
1151
+    $description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' );
1152 1152
 
1153
-	return "$description $link";
1153
+    return "$description $link";
1154 1154
 
1155 1155
 }
Please login to merge, or discard this patch.
Spacing   +381 added lines, -381 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @since   1.0.0
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * Retrieves all default settings.
@@ -16,13 +16,13 @@  discard block
 block discarded – undo
16 16
 function wpinv_get_settings() {
17 17
     $defaults = array();
18 18
 
19
-    foreach ( array_values( wpinv_get_registered_settings() ) as $tab_settings ) {
19
+    foreach (array_values(wpinv_get_registered_settings()) as $tab_settings) {
20 20
 
21
-        foreach ( array_values( $tab_settings ) as $section_settings ) {
21
+        foreach (array_values($tab_settings) as $section_settings) {
22 22
 
23
-            foreach ( $section_settings as $key => $setting ) {
24
-                if ( isset( $setting['std'] ) ) {
25
-                    $defaults[ $key ] = $setting['std'];
23
+            foreach ($section_settings as $key => $setting) {
24
+                if (isset($setting['std'])) {
25
+                    $defaults[$key] = $setting['std'];
26 26
                 }
27 27
             }
28 28
 }
@@ -41,12 +41,12 @@  discard block
 block discarded – undo
41 41
     global $wpinv_options;
42 42
 
43 43
     // Try fetching the saved options.
44
-    if ( empty( $wpinv_options ) ) {
45
-        $wpinv_options = get_option( 'wpinv_settings' );
44
+    if (empty($wpinv_options)) {
45
+        $wpinv_options = get_option('wpinv_settings');
46 46
     }
47 47
 
48 48
     // If that fails, don't fetch the default settings to prevent a loop.
49
-    if ( ! is_array( $wpinv_options ) ) {
49
+    if (!is_array($wpinv_options)) {
50 50
         $wpinv_options = array();
51 51
     }
52 52
 
@@ -60,13 +60,13 @@  discard block
 block discarded – undo
60 60
  * @param mixed $default The default value to use if the setting has not been set.
61 61
  * @return mixed
62 62
  */
63
-function wpinv_get_option( $key = '', $default = false ) {
63
+function wpinv_get_option($key = '', $default = false) {
64 64
 
65 65
     $options = wpinv_get_options();
66
-    $value   = isset( $options[ $key ] ) ? $options[ $key ] : $default;
67
-    $value   = apply_filters( 'wpinv_get_option', $value, $key, $default );
66
+    $value   = isset($options[$key]) ? $options[$key] : $default;
67
+    $value   = apply_filters('wpinv_get_option', $value, $key, $default);
68 68
 
69
-    return apply_filters( 'wpinv_get_option_' . $key, $value, $key, $default );
69
+    return apply_filters('wpinv_get_option_' . $key, $value, $key, $default);
70 70
 }
71 71
 
72 72
 /**
@@ -75,11 +75,11 @@  discard block
 block discarded – undo
75 75
  * @param array $options the new options.
76 76
  * @return bool
77 77
  */
78
-function wpinv_update_options( $options ) {
78
+function wpinv_update_options($options) {
79 79
     global $wpinv_options;
80 80
 
81 81
     // update the option.
82
-    if ( is_array( $options ) && update_option( 'wpinv_settings', $options ) ) {
82
+    if (is_array($options) && update_option('wpinv_settings', $options)) {
83 83
         $wpinv_options = $options;
84 84
         return true;
85 85
     }
@@ -94,24 +94,24 @@  discard block
 block discarded – undo
94 94
  * @param mixed $value The setting value.
95 95
  * @return bool
96 96
  */
97
-function wpinv_update_option( $key = '', $value = false ) {
97
+function wpinv_update_option($key = '', $value = false) {
98 98
 
99 99
     // If no key, exit.
100
-    if ( empty( $key ) ) {
100
+    if (empty($key)) {
101 101
         return false;
102 102
     }
103 103
 
104 104
     // Maybe delete the option instead.
105
-    if ( is_null( $value ) ) {
106
-        return wpinv_delete_option( $key );
105
+    if (is_null($value)) {
106
+        return wpinv_delete_option($key);
107 107
     }
108 108
 
109 109
     // Prepare the new options.
110 110
     $options         = wpinv_get_options();
111
-    $options[ $key ] = apply_filters( 'wpinv_update_option', $value, $key );
111
+    $options[$key] = apply_filters('wpinv_update_option', $value, $key);
112 112
 
113 113
     // Save the new options.
114
-    return wpinv_update_options( $options );
114
+    return wpinv_update_options($options);
115 115
 
116 116
 }
117 117
 
@@ -121,18 +121,18 @@  discard block
 block discarded – undo
121 121
  * @param string $key the setting key.
122 122
  * @return bool
123 123
  */
124
-function wpinv_delete_option( $key = '' ) {
124
+function wpinv_delete_option($key = '') {
125 125
 
126 126
     // If no key, exit
127
-    if ( empty( $key ) ) {
127
+    if (empty($key)) {
128 128
         return false;
129 129
     }
130 130
 
131 131
     $options = wpinv_get_options();
132 132
 
133
-    if ( isset( $options[ $key ] ) ) {
134
-        unset( $options[ $key ] );
135
-        return wpinv_update_options( $options );
133
+    if (isset($options[$key])) {
134
+        unset($options[$key]);
135
+        return wpinv_update_options($options);
136 136
     }
137 137
 
138 138
     return true;
@@ -146,14 +146,14 @@  discard block
 block discarded – undo
146 146
 function wpinv_register_settings() {
147 147
 
148 148
     // Loop through all tabs.
149
-    foreach ( wpinv_get_registered_settings() as $tab => $sections ) {
149
+    foreach (wpinv_get_registered_settings() as $tab => $sections) {
150 150
 
151 151
         // In each tab, loop through sections.
152
-        foreach ( $sections as $section => $settings ) {
152
+        foreach ($sections as $section => $settings) {
153 153
 
154 154
             // Check for backwards compatibility
155
-            $section_tabs = wpinv_get_settings_tab_sections( $tab );
156
-            if ( ! is_array( $section_tabs ) || ! array_key_exists( $section, $section_tabs ) ) {
155
+            $section_tabs = wpinv_get_settings_tab_sections($tab);
156
+            if (!is_array($section_tabs) || !array_key_exists($section, $section_tabs)) {
157 157
                 $section = 'main';
158 158
                 $settings = $sections;
159 159
             }
@@ -166,18 +166,18 @@  discard block
 block discarded – undo
166 166
                 'wpinv_settings_' . $tab . '_' . $section
167 167
             );
168 168
 
169
-            foreach ( $settings as $option ) {
170
-                if ( ! empty( $option['id'] ) ) {
171
-                    wpinv_register_settings_option( $tab, $section, $option );
169
+            foreach ($settings as $option) {
170
+                if (!empty($option['id'])) {
171
+                    wpinv_register_settings_option($tab, $section, $option);
172 172
                 }
173 173
             }
174 174
 }
175 175
     }
176 176
 
177 177
     // Creates our settings in the options table.
178
-    register_setting( 'wpinv_settings', 'wpinv_settings', 'wpinv_settings_sanitize' );
178
+    register_setting('wpinv_settings', 'wpinv_settings', 'wpinv_settings_sanitize');
179 179
 }
180
-add_action( 'admin_init', 'wpinv_register_settings' );
180
+add_action('admin_init', 'wpinv_register_settings');
181 181
 
182 182
 /**
183 183
  * Register a single settings option.
@@ -187,49 +187,49 @@  discard block
 block discarded – undo
187 187
  * @param string $option
188 188
  *
189 189
  */
190
-function wpinv_register_settings_option( $tab, $section, $option ) {
190
+function wpinv_register_settings_option($tab, $section, $option) {
191 191
 
192
-    $name       = isset( $option['name'] ) ? $option['name'] : '';
192
+    $name       = isset($option['name']) ? $option['name'] : '';
193 193
     $cb         = "wpinv_{$option['type']}_callback";
194 194
     $section    = "wpinv_settings_{$tab}_$section";
195
-	$is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page'];
195
+	$is_wizzard = is_admin() && isset($_GET['page']) && 'gp-setup' == $_GET['page'];
196 196
 
197
-	if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) {
198
-		$tip   = wpinv_clean( $option['desc'] );
197
+	if (isset($option['desc']) && (!$is_wizzard && !empty($option['help-tip']))) {
198
+		$tip   = wpinv_clean($option['desc']);
199 199
 		$name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>";
200
-		unset( $option['desc'] );
200
+		unset($option['desc']);
201 201
 	}
202 202
 
203 203
     // Loop through all tabs.
204 204
     add_settings_field(
205 205
         'wpinv_settings[' . $option['id'] . ']',
206 206
         $name,
207
-        function_exists( $cb ) ? $cb : 'wpinv_missing_callback',
207
+        function_exists($cb) ? $cb : 'wpinv_missing_callback',
208 208
         $section,
209 209
         $section,
210 210
         array(
211 211
             'section'         => $section,
212
-            'id'              => isset( $option['id'] ) ? $option['id'] : uniqid( 'wpinv-' ),
213
-            'desc'            => isset( $option['desc'] ) ? $option['desc'] : '',
212
+            'id'              => isset($option['id']) ? $option['id'] : uniqid('wpinv-'),
213
+            'desc'            => isset($option['desc']) ? $option['desc'] : '',
214 214
             'name'            => $name,
215
-            'size'            => isset( $option['size'] ) ? $option['size'] : null,
216
-            'options'         => isset( $option['options'] ) ? $option['options'] : '',
217
-            'selected'        => isset( $option['selected'] ) ? $option['selected'] : null,
218
-            'std'             => isset( $option['std'] ) ? $option['std'] : '',
219
-            'min'             => isset( $option['min'] ) ? $option['min'] : 0,
220
-            'max'             => isset( $option['max'] ) ? $option['max'] : 999999,
221
-            'step'            => isset( $option['step'] ) ? $option['step'] : 1,
222
-            'placeholder'     => isset( $option['placeholder'] ) ? $option['placeholder'] : null,
223
-            'allow_blank'     => isset( $option['allow_blank'] ) ? $option['allow_blank'] : true,
224
-            'readonly'        => isset( $option['readonly'] ) ? $option['readonly'] : false,
225
-            'faux'            => isset( $option['faux'] ) ? $option['faux'] : false,
226
-            'onchange'        => isset( $option['onchange'] ) ? $option['onchange'] : '',
227
-            'custom'          => isset( $option['custom'] ) ? $option['custom'] : '',
228
-			'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '',
229
-			'class'           => isset( $option['class'] ) ? $option['class'] : '',
230
-			'style'           => isset( $option['style'] ) ? $option['style'] : '',
231
-            'cols'            => isset( $option['cols'] ) && (int) $option['cols'] > 0 ? (int) $option['cols'] : 50,
232
-            'rows'            => isset( $option['rows'] ) && (int) $option['rows'] > 0 ? (int) $option['rows'] : 5,
215
+            'size'            => isset($option['size']) ? $option['size'] : null,
216
+            'options'         => isset($option['options']) ? $option['options'] : '',
217
+            'selected'        => isset($option['selected']) ? $option['selected'] : null,
218
+            'std'             => isset($option['std']) ? $option['std'] : '',
219
+            'min'             => isset($option['min']) ? $option['min'] : 0,
220
+            'max'             => isset($option['max']) ? $option['max'] : 999999,
221
+            'step'            => isset($option['step']) ? $option['step'] : 1,
222
+            'placeholder'     => isset($option['placeholder']) ? $option['placeholder'] : null,
223
+            'allow_blank'     => isset($option['allow_blank']) ? $option['allow_blank'] : true,
224
+            'readonly'        => isset($option['readonly']) ? $option['readonly'] : false,
225
+            'faux'            => isset($option['faux']) ? $option['faux'] : false,
226
+            'onchange'        => isset($option['onchange']) ? $option['onchange'] : '',
227
+            'custom'          => isset($option['custom']) ? $option['custom'] : '',
228
+			'default_content' => isset($option['default_content']) ? $option['default_content'] : '',
229
+			'class'           => isset($option['class']) ? $option['class'] : '',
230
+			'style'           => isset($option['style']) ? $option['style'] : '',
231
+            'cols'            => isset($option['cols']) && (int) $option['cols'] > 0 ? (int) $option['cols'] : 50,
232
+            'rows'            => isset($option['rows']) && (int) $option['rows'] > 0 ? (int) $option['rows'] : 5,
233 233
         )
234 234
     );
235 235
 
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
  * @return array
242 242
  */
243 243
 function wpinv_get_registered_settings() {
244
-	return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) );
244
+	return array_filter(apply_filters('wpinv_registered_settings', wpinv_get_data('admin-settings')));
245 245
 }
246 246
 
247 247
 /**
@@ -250,7 +250,7 @@  discard block
 block discarded – undo
250 250
  * @return array
251 251
  */
252 252
 function getpaid_get_integration_settings() {
253
-    return apply_filters( 'getpaid_integration_settings', array() );
253
+    return apply_filters('getpaid_integration_settings', array());
254 254
 }
255 255
 
256 256
 /**
@@ -258,153 +258,153 @@  discard block
 block discarded – undo
258 258
  *
259 259
  * @return array
260 260
  */
261
-function wpinv_settings_sanitize( $input = array() ) {
261
+function wpinv_settings_sanitize($input = array()) {
262 262
 
263 263
 	$wpinv_options = wpinv_get_options();
264 264
 	$raw_referrer  = wp_get_raw_referer();
265 265
 
266
-    if ( empty( $raw_referrer ) ) {
267
-		return array_merge( $wpinv_options, $input );
266
+    if (empty($raw_referrer)) {
267
+		return array_merge($wpinv_options, $input);
268 268
     }
269 269
 
270
-    wp_parse_str( $raw_referrer, $referrer );
270
+    wp_parse_str($raw_referrer, $referrer);
271 271
 
272
-	if ( in_array( 'gp-setup', $referrer ) ) {
273
-		return array_merge( $wpinv_options, $input );
272
+	if (in_array('gp-setup', $referrer)) {
273
+		return array_merge($wpinv_options, $input);
274 274
 	}
275 275
 
276 276
     $settings = wpinv_get_registered_settings();
277
-    $tab      = isset( $referrer['tab'] ) ? $referrer['tab'] : 'general';
278
-    $section  = isset( $referrer['section'] ) ? $referrer['section'] : 'main';
277
+    $tab      = isset($referrer['tab']) ? $referrer['tab'] : 'general';
278
+    $section  = isset($referrer['section']) ? $referrer['section'] : 'main';
279 279
 
280 280
     $input = $input ? $input : array();
281
-    $input = apply_filters( 'wpinv_settings_tab_' . $tab . '_sanitize', $input );
282
-    $input = apply_filters( 'wpinv_settings_' . $tab . '-' . $section . '_sanitize', $input );
281
+    $input = apply_filters('wpinv_settings_tab_' . $tab . '_sanitize', $input);
282
+    $input = apply_filters('wpinv_settings_' . $tab . '-' . $section . '_sanitize', $input);
283 283
 
284 284
     // Loop through each setting being saved and pass it through a sanitization filter
285
-    foreach ( $input as $key => $value ) {
285
+    foreach ($input as $key => $value) {
286 286
 
287 287
         // Get the setting type (checkbox, select, etc)
288
-        $type = isset( $settings[ $tab ][ $section ][ $key ]['type'] ) ? $settings[ $tab ][ $section ][ $key ]['type'] : false;
288
+        $type = isset($settings[$tab][$section][$key]['type']) ? $settings[$tab][$section][$key]['type'] : false;
289 289
 
290
-        if ( $type ) {
290
+        if ($type) {
291 291
             // Field type specific filter
292
-            $input[ $key ] = apply_filters( "wpinv_settings_sanitize_$type", $value, $key );
292
+            $input[$key] = apply_filters("wpinv_settings_sanitize_$type", $value, $key);
293 293
         }
294 294
 
295 295
         // General filter
296
-		$input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key );
296
+		$input[$key] = apply_filters('wpinv_settings_sanitize', $input[$key], $key);
297 297
 
298 298
 		// Key specific filter.
299
-		$input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] );
299
+		$input[$key] = apply_filters("wpinv_settings_sanitize_$key", $input[$key]);
300 300
     }
301 301
 
302 302
     // Loop through the whitelist and unset any that are empty for the tab being saved
303
-    $main_settings    = isset( $settings[ $tab ] ) ? $settings[ $tab ] : array(); // Check for extensions that aren't using new sections
304
-    $section_settings = ! empty( $settings[ $tab ][ $section ] ) ? $settings[ $tab ][ $section ] : array();
303
+    $main_settings    = isset($settings[$tab]) ? $settings[$tab] : array(); // Check for extensions that aren't using new sections
304
+    $section_settings = !empty($settings[$tab][$section]) ? $settings[$tab][$section] : array();
305 305
 
306
-    $found_settings   = array_merge( $main_settings, $section_settings );
306
+    $found_settings   = array_merge($main_settings, $section_settings);
307 307
 
308
-    if ( ! empty( $found_settings ) ) {
309
-        foreach ( $found_settings as $key => $value ) {
308
+    if (!empty($found_settings)) {
309
+        foreach ($found_settings as $key => $value) {
310 310
 
311 311
             // settings used to have numeric keys, now they have keys that match the option ID. This ensures both methods work
312
-            if ( is_numeric( $key ) ) {
312
+            if (is_numeric($key)) {
313 313
                 $key = $value['id'];
314 314
             }
315 315
 
316
-            if ( ! isset( $input[ $key ] ) && isset( $wpinv_options[ $key ] ) ) {
317
-                unset( $wpinv_options[ $key ] );
316
+            if (!isset($input[$key]) && isset($wpinv_options[$key])) {
317
+                unset($wpinv_options[$key]);
318 318
             }
319 319
         }
320 320
     }
321 321
 
322 322
     // Merge our new settings with the existing
323
-    $output = array_merge( $wpinv_options, $input );
323
+    $output = array_merge($wpinv_options, $input);
324 324
 
325
-    add_settings_error( 'wpinv-notices', '', __( 'Settings updated.', 'invoicing' ), 'updated' );
325
+    add_settings_error('wpinv-notices', '', __('Settings updated.', 'invoicing'), 'updated');
326 326
 
327 327
     return $output;
328 328
 }
329
-add_filter( 'wpinv_settings_sanitize_text', 'trim', 10, 1 );
330
-add_filter( 'wpinv_settings_sanitize_tax_rate', 'wpinv_sanitize_amount' );
329
+add_filter('wpinv_settings_sanitize_text', 'trim', 10, 1);
330
+add_filter('wpinv_settings_sanitize_tax_rate', 'wpinv_sanitize_amount');
331 331
 
332
-function wpinv_settings_sanitize_tax_rates( $input ) {
333
-    if ( ! wpinv_current_user_can_manage_invoicing() ) {
332
+function wpinv_settings_sanitize_tax_rates($input) {
333
+    if (!wpinv_current_user_can_manage_invoicing()) {
334 334
         return $input;
335 335
     }
336 336
 
337
-    $new_rates = ! empty( $_POST['tax_rates'] ) ? wp_kses_post_deep( array_values( $_POST['tax_rates'] ) ) : array();
337
+    $new_rates = !empty($_POST['tax_rates']) ? wp_kses_post_deep(array_values($_POST['tax_rates'])) : array();
338 338
     $tax_rates = array();
339 339
 
340
-    foreach ( $new_rates as $rate ) {
340
+    foreach ($new_rates as $rate) {
341 341
 
342
-		$rate['rate']    = wpinv_sanitize_amount( $rate['rate'] );
343
-		$rate['name']    = sanitize_text_field( $rate['name'] );
344
-		$rate['state']   = sanitize_text_field( $rate['state'] );
345
-		$rate['country'] = sanitize_text_field( $rate['country'] );
346
-		$rate['global']  = empty( $rate['state'] );
342
+		$rate['rate']    = wpinv_sanitize_amount($rate['rate']);
343
+		$rate['name']    = sanitize_text_field($rate['name']);
344
+		$rate['state']   = sanitize_text_field($rate['state']);
345
+		$rate['country'] = sanitize_text_field($rate['country']);
346
+		$rate['global']  = empty($rate['state']);
347 347
 		$tax_rates[]     = $rate;
348 348
 
349 349
 	}
350 350
 
351
-    update_option( 'wpinv_tax_rates', $tax_rates );
351
+    update_option('wpinv_tax_rates', $tax_rates);
352 352
 
353 353
     return $input;
354 354
 }
355
-add_filter( 'wpinv_settings_taxes-rates_sanitize', 'wpinv_settings_sanitize_tax_rates' );
355
+add_filter('wpinv_settings_taxes-rates_sanitize', 'wpinv_settings_sanitize_tax_rates');
356 356
 
357
-function wpinv_settings_sanitize_tax_rules( $input ) {
358
-    if ( ! wpinv_current_user_can_manage_invoicing() ) {
357
+function wpinv_settings_sanitize_tax_rules($input) {
358
+    if (!wpinv_current_user_can_manage_invoicing()) {
359 359
         return $input;
360 360
     }
361 361
 
362
-	if ( empty( $_POST['wpinv_tax_rules_nonce'] ) || ! wp_verify_nonce( $_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules' ) ) {
362
+	if (empty($_POST['wpinv_tax_rules_nonce']) || !wp_verify_nonce($_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules')) {
363 363
 		return $input;
364 364
 	}
365 365
 
366
-    $new_rules = ! empty( $_POST['tax_rules'] ) ? wp_kses_post_deep( array_values( $_POST['tax_rules'] ) ) : array();
366
+    $new_rules = !empty($_POST['tax_rules']) ? wp_kses_post_deep(array_values($_POST['tax_rules'])) : array();
367 367
     $tax_rules = array();
368 368
 
369
-    foreach ( $new_rules as $rule ) {
369
+    foreach ($new_rules as $rule) {
370 370
 
371
-		$rule['key']      = sanitize_title_with_dashes( $rule['key'] );
372
-		$rule['label']    = sanitize_text_field( $rule['label'] );
373
-		$rule['tax_base'] = sanitize_text_field( $rule['tax_base'] );
371
+		$rule['key']      = sanitize_title_with_dashes($rule['key']);
372
+		$rule['label']    = sanitize_text_field($rule['label']);
373
+		$rule['tax_base'] = sanitize_text_field($rule['tax_base']);
374 374
 		$tax_rules[]      = $rule;
375 375
 
376 376
 	}
377 377
 
378
-    update_option( 'wpinv_tax_rules', $tax_rules );
378
+    update_option('wpinv_tax_rules', $tax_rules);
379 379
 
380 380
     return $input;
381 381
 }
382
-add_filter( 'wpinv_settings_taxes-rules_sanitize', 'wpinv_settings_sanitize_tax_rules' );
382
+add_filter('wpinv_settings_taxes-rules_sanitize', 'wpinv_settings_sanitize_tax_rules');
383 383
 
384 384
 function wpinv_get_settings_tabs() {
385 385
     $tabs             = array();
386
-    $tabs['general']  = __( 'General', 'invoicing' );
387
-    $tabs['gateways'] = __( 'Payment Gateways', 'invoicing' );
388
-    $tabs['taxes']    = __( 'Taxes', 'invoicing' );
389
-	$tabs['emails']   = __( 'Emails', 'invoicing' );
386
+    $tabs['general']  = __('General', 'invoicing');
387
+    $tabs['gateways'] = __('Payment Gateways', 'invoicing');
388
+    $tabs['taxes']    = __('Taxes', 'invoicing');
389
+	$tabs['emails'] = __('Emails', 'invoicing');
390 390
 
391
-	if ( count( getpaid_get_integration_settings() ) > 0 ) {
392
-		$tabs['integrations'] = __( 'Integrations', 'invoicing' );
391
+	if (count(getpaid_get_integration_settings()) > 0) {
392
+		$tabs['integrations'] = __('Integrations', 'invoicing');
393 393
 	}
394 394
 
395
-    $tabs['privacy']  = __( 'Privacy', 'invoicing' );
396
-    $tabs['misc']     = __( 'Misc', 'invoicing' );
397
-    $tabs['tools']    = __( 'Tools', 'invoicing' );
395
+    $tabs['privacy']  = __('Privacy', 'invoicing');
396
+    $tabs['misc']     = __('Misc', 'invoicing');
397
+    $tabs['tools']    = __('Tools', 'invoicing');
398 398
 
399
-    return apply_filters( 'wpinv_settings_tabs', $tabs );
399
+    return apply_filters('wpinv_settings_tabs', $tabs);
400 400
 }
401 401
 
402
-function wpinv_get_settings_tab_sections( $tab = false ) {
402
+function wpinv_get_settings_tab_sections($tab = false) {
403 403
     $tabs     = false;
404 404
     $sections = wpinv_get_registered_settings_sections();
405 405
 
406
-    if ( $tab && ! empty( $sections[ $tab ] ) ) {
407
-        $tabs = $sections[ $tab ];
406
+    if ($tab && !empty($sections[$tab])) {
407
+        $tabs = $sections[$tab];
408 408
     }
409 409
 
410 410
     return $tabs;
@@ -413,7 +413,7 @@  discard block
 block discarded – undo
413 413
 function wpinv_get_registered_settings_sections() {
414 414
     static $sections = false;
415 415
 
416
-    if ( false !== $sections ) {
416
+    if (false !== $sections) {
417 417
         return $sections;
418 418
     }
419 419
 
@@ -421,231 +421,231 @@  discard block
 block discarded – undo
421 421
         'general'      => apply_filters(
422 422
             'wpinv_settings_sections_general',
423 423
             array(
424
-				'main'             => __( 'General Settings', 'invoicing' ),
425
-				'page_section'     => __( 'Page Settings', 'invoicing' ),
426
-				'currency_section' => __( 'Currency Settings', 'invoicing' ),
427
-				'labels'           => __( 'Label Texts', 'invoicing' ),
424
+				'main'             => __('General Settings', 'invoicing'),
425
+				'page_section'     => __('Page Settings', 'invoicing'),
426
+				'currency_section' => __('Currency Settings', 'invoicing'),
427
+				'labels'           => __('Label Texts', 'invoicing'),
428 428
             )
429 429
         ),
430 430
         'gateways'     => apply_filters(
431 431
             'wpinv_settings_sections_gateways',
432 432
             array(
433
-				'main' => __( 'Gateway Settings', 'invoicing' ),
433
+				'main' => __('Gateway Settings', 'invoicing'),
434 434
             )
435 435
         ),
436 436
         'taxes'        => apply_filters(
437 437
             'wpinv_settings_sections_taxes',
438 438
             array(
439
-				'main'  => __( 'Tax Settings', 'invoicing' ),
440
-				'rules' => __( 'Tax Rules', 'invoicing' ),
441
-				'rates' => __( 'Tax Rates', 'invoicing' ),
442
-				'vat'   => __( 'EU VAT Settings', 'invoicing' ),
439
+				'main'  => __('Tax Settings', 'invoicing'),
440
+				'rules' => __('Tax Rules', 'invoicing'),
441
+				'rates' => __('Tax Rates', 'invoicing'),
442
+				'vat'   => __('EU VAT Settings', 'invoicing'),
443 443
             )
444 444
         ),
445 445
         'emails'       => apply_filters(
446 446
             'wpinv_settings_sections_emails',
447 447
             array(
448
-				'main' => __( 'Email Settings', 'invoicing' ),
448
+				'main' => __('Email Settings', 'invoicing'),
449 449
             )
450 450
         ),
451 451
 
452
-		'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ),
452
+		'integrations' => wp_list_pluck(getpaid_get_integration_settings(), 'label', 'id'),
453 453
 
454 454
         'privacy'      => apply_filters(
455 455
             'wpinv_settings_sections_privacy',
456 456
             array(
457
-				'main' => __( 'Privacy policy', 'invoicing' ),
457
+				'main' => __('Privacy policy', 'invoicing'),
458 458
             )
459 459
         ),
460 460
         'misc'         => apply_filters(
461 461
             'wpinv_settings_sections_misc',
462 462
             array(
463
-				'main'       => __( 'Miscellaneous', 'invoicing' ),
464
-				'custom-css' => __( 'Custom CSS', 'invoicing' ),
463
+				'main'       => __('Miscellaneous', 'invoicing'),
464
+				'custom-css' => __('Custom CSS', 'invoicing'),
465 465
             )
466 466
         ),
467 467
         'tools'        => apply_filters(
468 468
             'wpinv_settings_sections_tools',
469 469
             array(
470
-				'main' => __( 'Diagnostic Tools', 'invoicing' ),
470
+				'main' => __('Diagnostic Tools', 'invoicing'),
471 471
             )
472 472
         ),
473 473
     );
474 474
 
475
-    $sections = apply_filters( 'wpinv_settings_sections', $sections );
475
+    $sections = apply_filters('wpinv_settings_sections', $sections);
476 476
 
477 477
     return $sections;
478 478
 }
479 479
 
480
-function wpinv_get_pages( $with_slug = false, $default_label = null ) {
480
+function wpinv_get_pages($with_slug = false, $default_label = null) {
481 481
 	$pages_options = array();
482 482
 
483
-	if ( $default_label !== null && $default_label !== false ) {
484
-		$pages_options = array( '' => $default_label ); // Blank option
483
+	if ($default_label !== null && $default_label !== false) {
484
+		$pages_options = array('' => $default_label); // Blank option
485 485
 	}
486 486
 
487 487
 	$pages = get_pages();
488
-	if ( $pages ) {
489
-		foreach ( $pages as $page ) {
488
+	if ($pages) {
489
+		foreach ($pages as $page) {
490 490
 			$title = $with_slug ? $page->post_title . ' (' . $page->post_name . ')' : $page->post_title;
491
-            $pages_options[ $page->ID ] = $title;
491
+            $pages_options[$page->ID] = $title;
492 492
 		}
493 493
 	}
494 494
 
495 495
 	return $pages_options;
496 496
 }
497 497
 
498
-function wpinv_header_callback( $args ) {
499
-	if ( ! empty( $args['desc'] ) ) {
500
-        echo wp_kses_post( $args['desc'] );
498
+function wpinv_header_callback($args) {
499
+	if (!empty($args['desc'])) {
500
+        echo wp_kses_post($args['desc']);
501 501
     }
502 502
 }
503 503
 
504
-function wpinv_hidden_callback( $args ) {
504
+function wpinv_hidden_callback($args) {
505 505
 
506
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
507
-	$value   = wpinv_get_option( $args['id'], $std );
506
+	$std     = isset($args['std']) ? $args['std'] : '';
507
+	$value   = wpinv_get_option($args['id'], $std);
508 508
 
509
-	if ( isset( $args['set_value'] ) ) {
509
+	if (isset($args['set_value'])) {
510 510
 		$value = $args['set_value'];
511 511
 	}
512 512
 
513
-	if ( isset( $args['faux'] ) && true === $args['faux'] ) {
513
+	if (isset($args['faux']) && true === $args['faux']) {
514 514
 		$args['readonly'] = true;
515
-		$name  = '';
515
+		$name = '';
516 516
 	} else {
517
-		$name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']';
517
+		$name = 'wpinv_settings[' . esc_attr($args['id']) . ']';
518 518
 	}
519 519
 
520
-	echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />';
520
+	echo '<input type="hidden" id="wpinv_settings[' . esc_attr($args['id']) . ']" name="' . esc_attr($name) . '" value="' . esc_attr(stripslashes($value)) . '" />';
521 521
 
522 522
 }
523 523
 
524 524
 /**
525 525
  * Displays a checkbox settings callback.
526 526
  */
527
-function wpinv_checkbox_callback( $args ) {
527
+function wpinv_checkbox_callback($args) {
528 528
 
529
-	$std = isset( $args['std'] ) ? $args['std'] : '';
530
-	$std = wpinv_get_option( $args['id'], $std );
531
-	$id  = esc_attr( $args['id'] );
529
+	$std = isset($args['std']) ? $args['std'] : '';
530
+	$std = wpinv_get_option($args['id'], $std);
531
+	$id  = esc_attr($args['id']);
532 532
 
533
-	getpaid_hidden_field( "wpinv_settings[$id]", '0' );
533
+	getpaid_hidden_field("wpinv_settings[$id]", '0');
534 534
 	?>
535 535
 		<fieldset>
536 536
 			<label>
537
-				<input id="wpinv-settings-<?php echo esc_attr( $id ); ?>" name="wpinv_settings[<?php echo esc_attr( $id ); ?>]" <?php checked( empty( $std ), false ); ?> value="1" type="checkbox" />
538
-				<?php echo wp_kses_post( $args['desc'] ); ?>
537
+				<input id="wpinv-settings-<?php echo esc_attr($id); ?>" name="wpinv_settings[<?php echo esc_attr($id); ?>]" <?php checked(empty($std), false); ?> value="1" type="checkbox" />
538
+				<?php echo wp_kses_post($args['desc']); ?>
539 539
 			</label>
540 540
 		</fieldset>
541 541
 	<?php
542 542
 }
543 543
 
544
-function wpinv_multicheck_callback( $args ) {
544
+function wpinv_multicheck_callback($args) {
545 545
 
546
-	$sanitize_id = wpinv_sanitize_key( $args['id'] );
547
-	$class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
546
+	$sanitize_id = wpinv_sanitize_key($args['id']);
547
+	$class = !empty($args['class']) ? ' ' . esc_attr($args['class']) : '';
548 548
 
549
-	if ( ! empty( $args['options'] ) ) {
549
+	if (!empty($args['options'])) {
550 550
 
551
-		$std     = isset( $args['std'] ) ? $args['std'] : array();
552
-		$value   = wpinv_get_option( $args['id'], $std );
551
+		$std     = isset($args['std']) ? $args['std'] : array();
552
+		$value   = wpinv_get_option($args['id'], $std);
553 553
 
554
-		echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">';
555
-        foreach ( $args['options'] as $key => $option ) :
556
-			$sanitize_key = esc_attr( wpinv_sanitize_key( $key ) );
557
-			if ( in_array( $sanitize_key, $value ) ) {
554
+		echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr($sanitize_id . $class) . '">';
555
+        foreach ($args['options'] as $key => $option) :
556
+			$sanitize_key = esc_attr(wpinv_sanitize_key($key));
557
+			if (in_array($sanitize_key, $value)) {
558 558
 				$enabled = $sanitize_key;
559 559
 			} else {
560 560
 				$enabled = null;
561 561
 			}
562
-			echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/>&nbsp;';
563
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>';
562
+			echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" id="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" type="checkbox" value="' . esc_attr($sanitize_key) . '" ' . checked($sanitize_key, $enabled, false) . '/>&nbsp;';
563
+			echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']">' . wp_kses_post($option) . '</label></div>';
564 564
 		endforeach;
565 565
 		echo '</div>';
566
-		echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>';
566
+		echo '<p class="description">' . wp_kses_post($args['desc']) . '</p>';
567 567
 	}
568 568
 }
569 569
 
570
-function wpinv_payment_icons_callback( $args ) {
570
+function wpinv_payment_icons_callback($args) {
571 571
 
572
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
573
-	$value   = wpinv_get_option( $args['id'], false );
572
+    $sanitize_id = wpinv_sanitize_key($args['id']);
573
+	$value = wpinv_get_option($args['id'], false);
574 574
 
575
-	if ( ! empty( $args['options'] ) ) {
576
-		foreach ( $args['options'] as $key => $option ) {
577
-            $sanitize_key = wpinv_sanitize_key( $key );
575
+	if (!empty($args['options'])) {
576
+		foreach ($args['options'] as $key => $option) {
577
+            $sanitize_key = wpinv_sanitize_key($key);
578 578
 
579
-			if ( empty( $value ) ) {
579
+			if (empty($value)) {
580 580
 				$enabled = $option;
581 581
 			} else {
582 582
 				$enabled = null;
583 583
 			}
584 584
 
585
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
585
+			echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
586 586
 
587
-				echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
587
+				echo '<input name="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" id="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" type="checkbox" value="' . esc_attr($option) . '" ' . checked($option, $enabled, false) . '/>&nbsp;';
588 588
 
589
-				if ( wpinv_string_is_image_url( $key ) ) {
590
-				echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
589
+				if (wpinv_string_is_image_url($key)) {
590
+				echo '<img class="payment-icon" src="' . esc_url($key) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
591 591
 				} else {
592
-				$card = strtolower( str_replace( ' ', '', $option ) );
592
+				$card = strtolower(str_replace(' ', '', $option));
593 593
 
594
-				if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) {
595
-					$image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' );
594
+				if (has_filter('wpinv_accepted_payment_' . $card . '_image')) {
595
+					$image = apply_filters('wpinv_accepted_payment_' . $card . '_image', '');
596 596
 					} else {
597
-					$image       = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false );
597
+					$image       = wpinv_locate_template('images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false);
598 598
 					$content_dir = WP_CONTENT_DIR;
599 599
 
600
-					if ( function_exists( 'wp_normalize_path' ) ) {
600
+					if (function_exists('wp_normalize_path')) {
601 601
 						// Replaces backslashes with forward slashes for Windows systems
602
-						$image = wp_normalize_path( $image );
603
-						$content_dir = wp_normalize_path( $content_dir );
602
+						$image = wp_normalize_path($image);
603
+						$content_dir = wp_normalize_path($content_dir);
604 604
 						}
605 605
 
606
-					$image = str_replace( $content_dir, content_url(), $image );
606
+					$image = str_replace($content_dir, content_url(), $image);
607 607
 					}
608 608
 
609
-				echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
609
+				echo '<img class="payment-icon" src="' . esc_url($image) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
610 610
 				}
611
-			echo wp_kses_post( $option ) . '</label>';
611
+			echo wp_kses_post($option) . '</label>';
612 612
 		}
613
-		echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>';
613
+		echo '<p class="description" style="margin-top:16px;">' . wp_kses_post($args['desc']) . '</p>';
614 614
 	}
615 615
 }
616 616
 
617 617
 /**
618 618
  * Displays a radio settings field.
619 619
  */
620
-function wpinv_radio_callback( $args ) {
620
+function wpinv_radio_callback($args) {
621 621
 
622
-	$std = isset( $args['std'] ) ? $args['std'] : '';
623
-	$std = wpinv_get_option( $args['id'], $std );
622
+	$std = isset($args['std']) ? $args['std'] : '';
623
+	$std = wpinv_get_option($args['id'], $std);
624 624
 	?>
625 625
 		<fieldset>
626
-			<ul id="wpinv-settings-<?php echo esc_attr( $args['id'] ); ?>" style="margin-top: 0;">
627
-				<?php foreach ( $args['options'] as $key => $option ) : ?>
626
+			<ul id="wpinv-settings-<?php echo esc_attr($args['id']); ?>" style="margin-top: 0;">
627
+				<?php foreach ($args['options'] as $key => $option) : ?>
628 628
 					<li>
629 629
 						<label>
630
-							<input name="wpinv_settings[<?php echo esc_attr( $args['id'] ); ?>]" <?php checked( $std, $key ); ?> value="<?php echo esc_attr( $key ); ?>" type="radio">
631
-							<?php echo wp_kses_post( $option ); ?>
630
+							<input name="wpinv_settings[<?php echo esc_attr($args['id']); ?>]" <?php checked($std, $key); ?> value="<?php echo esc_attr($key); ?>" type="radio">
631
+							<?php echo wp_kses_post($option); ?>
632 632
 						</label>
633 633
 					</li>
634 634
 				<?php endforeach; ?>
635 635
 			</ul>
636 636
 		</fieldset>
637 637
 	<?php
638
-	getpaid_settings_description_callback( $args );
638
+	getpaid_settings_description_callback($args);
639 639
 }
640 640
 
641 641
 /**
642 642
  * Displays a description if available.
643 643
  */
644
-function getpaid_settings_description_callback( $args ) {
644
+function getpaid_settings_description_callback($args) {
645 645
 
646
-	if ( ! empty( $args['desc'] ) ) {
646
+	if (!empty($args['desc'])) {
647 647
 		$description = $args['desc'];
648
-		echo wp_kses_post( "<p class='description'>$description</p>" );
648
+		echo wp_kses_post("<p class='description'>$description</p>");
649 649
 	}
650 650
 
651 651
 }
@@ -660,35 +660,35 @@  discard block
 block discarded – undo
660 660
 	</tr>
661 661
 	<tr class="bsui">
662 662
     	<td colspan="2" class="p-0">
663
-			<?php include plugin_dir_path( __FILE__ ) . 'views/html-gateways-edit.php'; ?>
663
+			<?php include plugin_dir_path(__FILE__) . 'views/html-gateways-edit.php'; ?>
664 664
 
665 665
 	<?php
666 666
 }
667 667
 
668
-function wpinv_gateway_select_callback( $args ) {
668
+function wpinv_gateway_select_callback($args) {
669 669
 
670
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
671
-    $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
672
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
673
-	$value   = wpinv_get_option( $args['id'], $std );
670
+    $sanitize_id = wpinv_sanitize_key($args['id']);
671
+    $class = !empty($args['class']) ? ' ' . esc_attr($args['class']) : '';
672
+	$std     = isset($args['std']) ? $args['std'] : '';
673
+	$value   = wpinv_get_option($args['id'], $std);
674 674
 
675
-	echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >';
675
+	echo '<select name="wpinv_settings[' . esc_attr($sanitize_id) . ']"" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" class="' . esc_attr($class) . '" >';
676 676
 
677
-	foreach ( $args['options'] as $key => $option ) :
677
+	foreach ($args['options'] as $key => $option) :
678 678
 
679
-		echo '<option value="' . esc_attr( $key ) . '" ';
679
+		echo '<option value="' . esc_attr($key) . '" ';
680 680
 
681
-		if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) {
682
-            selected( $key, $args['selected'] );
681
+		if (isset($args['selected']) && $args['selected'] !== null && $args['selected'] !== false) {
682
+            selected($key, $args['selected']);
683 683
         } else {
684
-            selected( $key, $value );
684
+            selected($key, $value);
685 685
         }
686 686
 
687
-		echo '>' . esc_html( $option['admin_label'] ) . '</option>';
687
+		echo '>' . esc_html($option['admin_label']) . '</option>';
688 688
 	endforeach;
689 689
 
690 690
 	echo '</select>';
691
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
691
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
692 692
 }
693 693
 
694 694
 /**
@@ -697,16 +697,16 @@  discard block
 block discarded – undo
697 697
  * @param array $args
698 698
  * @return string
699 699
  */
700
-function wpinv_settings_attrs_helper( $args ) {
700
+function wpinv_settings_attrs_helper($args) {
701 701
 
702
-	$value = isset( $args['std'] ) ? $args['std'] : '';
703
-	$id    = esc_attr( $args['id'] );
704
-	$value = is_scalar( $value ) ? $value : '';
702
+	$value = isset($args['std']) ? $args['std'] : '';
703
+	$id    = esc_attr($args['id']);
704
+	$value = is_scalar($value) ? $value : '';
705 705
 
706 706
 	$attrs = array(
707
-		'name'     => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]",
708
-		'readonly' => ! empty( $args['faux'] ),
709
-		'value'    => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ),
707
+		'name'     => !empty($args['faux']) ? false : "wpinv_settings[$id]",
708
+		'readonly' => !empty($args['faux']),
709
+		'value'    => !empty($args['faux']) ? $value : wpinv_get_option($args['id'], $value),
710 710
 		'id'       => 'wpinv-settings-' . $args['id'],
711 711
 		'style'    => $args['style'],
712 712
 		'class'    => $args['class'],
@@ -714,20 +714,20 @@  discard block
 block discarded – undo
714 714
 		'data-placeholder' => $args['placeholder'],
715 715
 	);
716 716
 
717
-	if ( ! empty( $args['onchange'] ) ) {
717
+	if (!empty($args['onchange'])) {
718 718
 		$attrs['onchange'] = $args['onchange'];
719 719
 	}
720 720
 
721
-	foreach ( $attrs as $key => $value ) {
721
+	foreach ($attrs as $key => $value) {
722 722
 
723
-		if ( false === $value ) {
723
+		if (false === $value) {
724 724
 			continue;
725 725
 		}
726 726
 
727
-		if ( true === $value ) {
728
-			echo ' ' . esc_attr( $key );
727
+		if (true === $value) {
728
+			echo ' ' . esc_attr($key);
729 729
 		} else {
730
-			echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
730
+			echo ' ' . esc_attr($key) . '="' . esc_attr($value) . '"';
731 731
 		}
732 732
 
733 733
 	}
@@ -737,14 +737,14 @@  discard block
 block discarded – undo
737 737
 /**
738 738
  * Displays a text input settings callback.
739 739
  */
740
-function wpinv_text_callback( $args ) {
740
+function wpinv_text_callback($args) {
741 741
 
742
-	$desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
742
+	$desc = empty($desc) ? '' : "<p class='description'>$desc</p>";
743 743
 
744 744
 	?>
745 745
 		<label style="width: 100%;">
746
-			<input type="text" <?php wpinv_settings_attrs_helper( $args ); ?>>
747
-			<?php echo wp_kses_post( $desc ); ?>
746
+			<input type="text" <?php wpinv_settings_attrs_helper($args); ?>>
747
+			<?php echo wp_kses_post($desc); ?>
748 748
 		</label>
749 749
 	<?php
750 750
 
@@ -753,176 +753,176 @@  discard block
 block discarded – undo
753 753
 /**
754 754
  * Displays a number input settings callback.
755 755
  */
756
-function wpinv_number_callback( $args ) {
756
+function wpinv_number_callback($args) {
757 757
 
758
-	$desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
758
+	$desc = empty($desc) ? '' : "<p class='description'>$desc</p>";
759 759
 
760 760
 	?>
761 761
 		<label style="width: 100%;">
762
-			<input type="number" step="<?php echo esc_attr( $args['step'] ); ?>" max="<?php echo intval( $args['max'] ); ?>" min="<?php echo intval( $args['min'] ); ?>" <?php wpinv_settings_attrs_helper( $args ); ?>>
763
-			<?php echo wp_kses_post( $desc ); ?>
762
+			<input type="number" step="<?php echo esc_attr($args['step']); ?>" max="<?php echo intval($args['max']); ?>" min="<?php echo intval($args['min']); ?>" <?php wpinv_settings_attrs_helper($args); ?>>
763
+			<?php echo wp_kses_post($desc); ?>
764 764
 		</label>
765 765
 	<?php
766 766
 
767 767
 }
768 768
 
769
-function wpinv_textarea_callback( $args ) {
769
+function wpinv_textarea_callback($args) {
770 770
 
771
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
772
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
773
-	$value   = wpinv_get_option( $args['id'], $std );
771
+    $sanitize_id = wpinv_sanitize_key($args['id']);
772
+	$std     = isset($args['std']) ? $args['std'] : '';
773
+	$value   = wpinv_get_option($args['id'], $std);
774 774
 
775
-    $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
776
-    $class = ( isset( $args['class'] ) && ! is_null( $args['class'] ) ) ? $args['class'] : 'large-text';
775
+    $size = (isset($args['size']) && !is_null($args['size'])) ? $args['size'] : 'regular';
776
+    $class = (isset($args['class']) && !is_null($args['class'])) ? $args['class'] : 'large-text';
777 777
 
778
-	echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
779
-	echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
778
+	echo '<textarea class="' . esc_attr($class) . ' txtarea-' . esc_attr($size) . ' wpi-' . esc_attr(sanitize_html_class($sanitize_id)) . ' " cols="' . esc_attr($args['cols']) . '" rows="' . esc_attr($args['rows']) . '" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']">' . esc_textarea(stripslashes($value)) . '</textarea>';
779
+	echo '<br /><label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
780 780
 
781 781
 }
782 782
 
783
-function wpinv_password_callback( $args ) {
783
+function wpinv_password_callback($args) {
784 784
 
785
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
786
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
787
-	$value   = wpinv_get_option( $args['id'], $std );
785
+    $sanitize_id = wpinv_sanitize_key($args['id']);
786
+	$std     = isset($args['std']) ? $args['std'] : '';
787
+	$value   = wpinv_get_option($args['id'], $std);
788 788
 
789
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
790
-	echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
791
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
789
+	$size = (isset($args['size']) && !is_null($args['size'])) ? $args['size'] : 'regular';
790
+	echo '<input type="password" class="' . esc_attr($size) . '-text" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" value="' . esc_attr($value) . '"/>';
791
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
792 792
 
793 793
 }
794 794
 
795
-function wpinv_missing_callback( $args ) {
795
+function wpinv_missing_callback($args) {
796 796
 	printf(
797
-		esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ),
798
-		'<strong>' . esc_html( $args['id'] ) . '</strong>'
797
+		esc_html__('The callback function used for the %s setting is missing.', 'invoicing'),
798
+		'<strong>' . esc_html($args['id']) . '</strong>'
799 799
 	);
800 800
 }
801 801
 
802 802
 /**
803 803
  * Displays a number input settings callback.
804 804
  */
805
-function wpinv_select_callback( $args ) {
805
+function wpinv_select_callback($args) {
806 806
 
807
-	$desc   = wp_kses_post( $args['desc'] );
808
-	$desc   = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
809
-	$value  = isset( $args['std'] ) ? $args['std'] : '';
810
-	$value  = wpinv_get_option( $args['id'], $value );
811
-	$rand   = uniqid( 'random_id' );
807
+	$desc   = wp_kses_post($args['desc']);
808
+	$desc   = empty($desc) ? '' : "<p class='description'>$desc</p>";
809
+	$value  = isset($args['std']) ? $args['std'] : '';
810
+	$value  = wpinv_get_option($args['id'], $value);
811
+	$rand   = uniqid('random_id');
812 812
 
813 813
 	?>
814 814
 		<label style="width: 100%;">
815
-			<select <?php wpinv_settings_attrs_helper( $args ); ?> data-allow-clear="true">
816
-				<?php foreach ( $args['options'] as $option => $name ) : ?>
817
-					<option value="<?php echo esc_attr( $option ); ?>" <?php echo selected( $option, $value ); ?>><?php echo esc_html( $name ); ?></option>
815
+			<select <?php wpinv_settings_attrs_helper($args); ?> data-allow-clear="true">
816
+				<?php foreach ($args['options'] as $option => $name) : ?>
817
+					<option value="<?php echo esc_attr($option); ?>" <?php echo selected($option, $value); ?>><?php echo esc_html($name); ?></option>
818 818
 				<?php endforeach; ?>
819 819
 			</select>
820 820
 
821
-			<?php if ( substr( $args['id'], -5 ) === '_page' && is_numeric( $value ) ) : ?>
822
-				<a href="<?php echo esc_url( get_edit_post_link( $value ) ); ?>" target="_blank" class="button getpaid-page-setting-edit"><?php esc_html_e( 'Edit Page', 'invoicing' ); ?></a>
821
+			<?php if (substr($args['id'], -5) === '_page' && is_numeric($value)) : ?>
822
+				<a href="<?php echo esc_url(get_edit_post_link($value)); ?>" target="_blank" class="button getpaid-page-setting-edit"><?php esc_html_e('Edit Page', 'invoicing'); ?></a>
823 823
 			<?php endif; ?>
824 824
 
825
-			<?php if ( substr( $args['id'], -5 ) === '_page' && ! empty( $args['default_content'] ) ) : ?>
826
-				&nbsp;<a href="#TB_inline?&width=400&height=550&inlineId=<?php echo esc_attr( $rand ); ?>" class="button thickbox getpaid-page-setting-view-default"><?php esc_html_e( 'View Default Content', 'invoicing' ); ?></a>
827
-				<div id='<?php echo esc_attr( $rand ); ?>' style='display:none;'>
825
+			<?php if (substr($args['id'], -5) === '_page' && !empty($args['default_content'])) : ?>
826
+				&nbsp;<a href="#TB_inline?&width=400&height=550&inlineId=<?php echo esc_attr($rand); ?>" class="button thickbox getpaid-page-setting-view-default"><?php esc_html_e('View Default Content', 'invoicing'); ?></a>
827
+				<div id='<?php echo esc_attr($rand); ?>' style='display:none;'>
828 828
 					<div>
829
-						<h3><?php esc_html_e( 'Original Content', 'invoicing' ); ?></h3>
830
-						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php echo wp_kses_post( gepaid_trim_lines( $args['default_content'] ) ); ?></textarea>
831
-						<h3><?php esc_html_e( 'Current Content', 'invoicing' ); ?></h3>
832
-						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php $_post = get_post( $value ); echo empty( $_post ) ? '' : wp_kses_post( gepaid_trim_lines( $_post->post_content ) ); ?></textarea>
829
+						<h3><?php esc_html_e('Original Content', 'invoicing'); ?></h3>
830
+						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php echo wp_kses_post(gepaid_trim_lines($args['default_content'])); ?></textarea>
831
+						<h3><?php esc_html_e('Current Content', 'invoicing'); ?></h3>
832
+						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php $_post = get_post($value); echo empty($_post) ? '' : wp_kses_post(gepaid_trim_lines($_post->post_content)); ?></textarea>
833 833
 					</div>
834 834
 				</div>
835 835
 			<?php endif; ?>
836 836
 
837
-			<?php echo wp_kses_post( $desc ); ?>
837
+			<?php echo wp_kses_post($desc); ?>
838 838
 		</label>
839 839
 	<?php
840 840
 
841 841
 }
842 842
 
843
-function wpinv_color_select_callback( $args ) {
843
+function wpinv_color_select_callback($args) {
844 844
 
845
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
846
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
847
-	$value   = wpinv_get_option( $args['id'], $std );
845
+    $sanitize_id = wpinv_sanitize_key($args['id']);
846
+	$std     = isset($args['std']) ? $args['std'] : '';
847
+	$value   = wpinv_get_option($args['id'], $std);
848 848
 
849
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>';
849
+	echo '<select id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']"/>';
850 850
 
851
-	foreach ( $args['options'] as $option => $color ) {
852
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>';
851
+	foreach ($args['options'] as $option => $color) {
852
+		echo '<option value="' . esc_attr($option) . '" ' . selected($option, $value) . '>' . esc_html($color['label']) . '</option>';
853 853
 	}
854 854
 
855 855
 	echo '</select>';
856
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
856
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
857 857
 
858 858
 }
859 859
 
860
-function wpinv_rich_editor_callback( $args ) {
860
+function wpinv_rich_editor_callback($args) {
861 861
 	global $wp_version;
862 862
 
863
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
863
+    $sanitize_id = wpinv_sanitize_key($args['id']);
864 864
 
865
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
866
-	$value   = wpinv_get_option( $args['id'], $std );
865
+	$std     = isset($args['std']) ? $args['std'] : '';
866
+	$value   = wpinv_get_option($args['id'], $std);
867 867
 
868
-	if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) {
868
+	if (!empty($args['allow_blank']) && empty($value)) {
869 869
 		$value = $std;
870 870
 	}
871 871
 
872
-	$rows = isset( $args['size'] ) ? $args['size'] : 20;
872
+	$rows = isset($args['size']) ? $args['size'] : 20;
873 873
 
874 874
 	echo '<div class="getpaid-settings-editor-input">';
875
-	if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) {
875
+	if ($wp_version >= 3.3 && function_exists('wp_editor')) {
876 876
 		wp_editor(
877
-            stripslashes( $value ),
878
-            'wpinv_settings_' . esc_attr( $args['id'] ),
877
+            stripslashes($value),
878
+            'wpinv_settings_' . esc_attr($args['id']),
879 879
             array(
880
-				'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']',
881
-				'textarea_rows' => absint( $rows ),
880
+				'textarea_name' => 'wpinv_settings[' . esc_attr($args['id']) . ']',
881
+				'textarea_rows' => absint($rows),
882 882
 				'media_buttons' => false,
883 883
             )
884 884
         );
885 885
 	} else {
886
-		echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
886
+		echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" class="wpi-' . esc_attr(sanitize_html_class($args['id'])) . '">' . esc_textarea(stripslashes($value)) . '</textarea>';
887 887
 	}
888 888
 
889
-	echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
889
+	echo '</div><br/><label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
890 890
 
891 891
 }
892 892
 
893
-function wpinv_upload_callback( $args ) {
893
+function wpinv_upload_callback($args) {
894 894
 
895
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
895
+    $sanitize_id = wpinv_sanitize_key($args['id']);
896 896
 
897
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
898
-	$value   = wpinv_get_option( $args['id'], $std );
897
+	$std     = isset($args['std']) ? $args['std'] : '';
898
+	$value   = wpinv_get_option($args['id'], $std);
899 899
 
900
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
901
-	echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
902
-	echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>';
903
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
900
+	$size = (isset($args['size']) && !is_null($args['size'])) ? $args['size'] : 'regular';
901
+	echo '<input type="text" class="' . sanitize_html_class($size) . '-text" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" value="' . esc_attr(stripslashes($value)) . '"/>';
902
+	echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__('Upload File', 'invoicing') . '"/></span>';
903
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
904 904
 
905 905
 }
906 906
 
907
-function wpinv_color_callback( $args ) {
907
+function wpinv_color_callback($args) {
908 908
 
909
-	$std         = isset( $args['std'] ) ? $args['std'] : '';
910
-	$value       = wpinv_get_option( $args['id'], $std );
911
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
909
+	$std         = isset($args['std']) ? $args['std'] : '';
910
+	$value       = wpinv_get_option($args['id'], $std);
911
+    $sanitize_id = wpinv_sanitize_key($args['id']);
912 912
 
913
-	echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />';
914
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
913
+	echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" value="' . esc_attr($value) . '" data-default-color="' . esc_attr($std) . '" />';
914
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
915 915
 
916 916
 }
917 917
 
918
-function wpinv_country_states_callback( $args ) {
918
+function wpinv_country_states_callback($args) {
919 919
 
920
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
921
-	$value   = wpinv_get_option( $args['id'], $std );
920
+	$std     = isset($args['std']) ? $args['std'] : '';
921
+	$value   = wpinv_get_option($args['id'], $std);
922 922
 
923
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
923
+    $sanitize_id = wpinv_sanitize_key($args['id']);
924 924
 
925
-	if ( isset( $args['placeholder'] ) ) {
925
+	if (isset($args['placeholder'])) {
926 926
 		$placeholder = $args['placeholder'];
927 927
 	} else {
928 928
 		$placeholder = '';
@@ -930,15 +930,15 @@  discard block
 block discarded – undo
930 930
 
931 931
 	$states = wpinv_get_country_states();
932 932
 
933
-	$class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2';
934
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>';
933
+	$class = empty($states) ? 'wpinv-no-states' : 'wpi_select2';
934
+	echo '<select id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" class="' . esc_attr($class) . '" data-placeholder="' . esc_html($placeholder) . '"/>';
935 935
 
936
-	foreach ( $states as $option => $name ) {
937
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>';
936
+	foreach ($states as $option => $name) {
937
+		echo '<option value="' . esc_attr($option) . '" ' . selected($option, $value) . '>' . esc_html($name) . '</option>';
938 938
 	}
939 939
 
940 940
 	echo '</select>';
941
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
941
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
942 942
 
943 943
 }
944 944
 
@@ -952,7 +952,7 @@  discard block
 block discarded – undo
952 952
 	</tr>
953 953
 	<tr class="bsui">
954 954
     	<td colspan="2" class="p-0">
955
-			<?php include plugin_dir_path( __FILE__ ) . 'views/html-tax-rates-edit.php'; ?>
955
+			<?php include plugin_dir_path(__FILE__) . 'views/html-tax-rates-edit.php'; ?>
956 956
 
957 957
 	<?php
958 958
 
@@ -961,11 +961,11 @@  discard block
 block discarded – undo
961 961
 /**
962 962
  * Displays a tax rate' edit row.
963 963
  */
964
-function wpinv_tax_rate_callback( $tax_rate, $key ) {
964
+function wpinv_tax_rate_callback($tax_rate, $key) {
965 965
 
966
-	$key                      = sanitize_key( $key );
967
-	$tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate'];
968
-	include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php';
966
+	$key                      = sanitize_key($key);
967
+	$tax_rate['reduced_rate'] = empty($tax_rate['reduced_rate']) ? 0 : $tax_rate['reduced_rate'];
968
+	include plugin_dir_path(__FILE__) . 'views/html-tax-rate-edit.php';
969 969
 
970 970
 }
971 971
 
@@ -979,158 +979,158 @@  discard block
 block discarded – undo
979 979
 	</tr>
980 980
 	<tr class="bsui">
981 981
     	<td colspan="2" class="p-0">
982
-			<?php include plugin_dir_path( __FILE__ ) . 'views/html-tax-rules-edit.php'; ?>
982
+			<?php include plugin_dir_path(__FILE__) . 'views/html-tax-rules-edit.php'; ?>
983 983
 
984 984
 	<?php
985 985
 
986 986
 }
987 987
 
988
-function wpinv_tools_callback( $args ) {
988
+function wpinv_tools_callback($args) {
989 989
     ?>
990 990
     </td><tr>
991 991
     <td colspan="2" class="wpinv_tools_tdbox">
992 992
     <?php
993
-    if ( $args['desc'] ) {
993
+    if ($args['desc']) {
994 994
 ?>
995
-<p><?php echo wp_kses_post( $args['desc'] ); ?></p><?php } ?>
996
-    <?php do_action( 'wpinv_tools_before' ); ?>
995
+<p><?php echo wp_kses_post($args['desc']); ?></p><?php } ?>
996
+    <?php do_action('wpinv_tools_before'); ?>
997 997
     <table id="wpinv_tools_table" class="wp-list-table widefat fixed posts">
998 998
         <thead>
999 999
             <tr>
1000
-                <th scope="col" class="wpinv-th-tool"><?php esc_html_e( 'Tool', 'invoicing' ); ?></th>
1001
-                <th scope="col" class="wpinv-th-desc"><?php esc_html_e( 'Description', 'invoicing' ); ?></th>
1002
-                <th scope="col" class="wpinv-th-action"><?php esc_html_e( 'Action', 'invoicing' ); ?></th>
1000
+                <th scope="col" class="wpinv-th-tool"><?php esc_html_e('Tool', 'invoicing'); ?></th>
1001
+                <th scope="col" class="wpinv-th-desc"><?php esc_html_e('Description', 'invoicing'); ?></th>
1002
+                <th scope="col" class="wpinv-th-action"><?php esc_html_e('Action', 'invoicing'); ?></th>
1003 1003
             </tr>
1004 1004
         </thead>
1005 1005
 
1006 1006
         <tbody>
1007 1007
 			<tr>
1008
-                <td><?php esc_html_e( 'Check Pages', 'invoicing' ); ?></td>
1008
+                <td><?php esc_html_e('Check Pages', 'invoicing'); ?></td>
1009 1009
                 <td>
1010
-                    <small><?php esc_html_e( 'Creates any missing GetPaid pages.', 'invoicing' ); ?></small>
1010
+                    <small><?php esc_html_e('Creates any missing GetPaid pages.', 'invoicing'); ?></small>
1011 1011
                 </td>
1012 1012
                 <td>
1013 1013
 					<a href="
1014 1014
                     <?php
1015 1015
 						echo esc_url(
1016 1016
 							wp_nonce_url(
1017
-								add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
1017
+								add_query_arg('getpaid-admin-action', 'create_missing_pages'),
1018 1018
 								'getpaid-nonce',
1019 1019
 								'getpaid-nonce'
1020 1020
 							)
1021 1021
 						);
1022 1022
 					?>
1023
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1023
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1024 1024
                 </td>
1025 1025
             </tr>
1026 1026
 			<tr>
1027
-                <td><?php esc_html_e( 'Create Database Tables', 'invoicing' ); ?></td>
1027
+                <td><?php esc_html_e('Create Database Tables', 'invoicing'); ?></td>
1028 1028
                 <td>
1029
-                    <small><?php esc_html_e( 'Run this tool to create any missing database tables.', 'invoicing' ); ?></small>
1029
+                    <small><?php esc_html_e('Run this tool to create any missing database tables.', 'invoicing'); ?></small>
1030 1030
                 </td>
1031 1031
                 <td>
1032 1032
 					<a href="
1033 1033
                     <?php
1034 1034
 						echo esc_url(
1035 1035
 							wp_nonce_url(
1036
-								add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ),
1036
+								add_query_arg('getpaid-admin-action', 'create_missing_tables'),
1037 1037
 								'getpaid-nonce',
1038 1038
 								'getpaid-nonce'
1039 1039
 							)
1040 1040
 						);
1041 1041
 					?>
1042
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1042
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1043 1043
                 </td>
1044 1044
             </tr>
1045 1045
 			<tr>
1046
-                <td><?php esc_html_e( 'Migrate old invoices', 'invoicing' ); ?></td>
1046
+                <td><?php esc_html_e('Migrate old invoices', 'invoicing'); ?></td>
1047 1047
                 <td>
1048
-                    <small><?php esc_html_e( 'If your old invoices were not migrated after updating from Invoicing to GetPaid, you can use this tool to migrate them.', 'invoicing' ); ?></small>
1048
+                    <small><?php esc_html_e('If your old invoices were not migrated after updating from Invoicing to GetPaid, you can use this tool to migrate them.', 'invoicing'); ?></small>
1049 1049
                 </td>
1050 1050
                 <td>
1051 1051
 					<a href="
1052 1052
                     <?php
1053 1053
 						echo esc_url(
1054 1054
 							wp_nonce_url(
1055
-								add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ),
1055
+								add_query_arg('getpaid-admin-action', 'migrate_old_invoices'),
1056 1056
 								'getpaid-nonce',
1057 1057
 								'getpaid-nonce'
1058 1058
 							)
1059 1059
 						);
1060 1060
 					?>
1061
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1061
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1062 1062
                 </td>
1063 1063
             </tr>
1064 1064
 
1065 1065
 			<tr>
1066
-                <td><?php esc_html_e( 'Recalculate Discounts', 'invoicing' ); ?></td>
1066
+                <td><?php esc_html_e('Recalculate Discounts', 'invoicing'); ?></td>
1067 1067
                 <td>
1068
-                    <small><?php esc_html_e( 'Recalculate discounts for existing invoices that have discount codes but are not discounted.', 'invoicing' ); ?></small>
1068
+                    <small><?php esc_html_e('Recalculate discounts for existing invoices that have discount codes but are not discounted.', 'invoicing'); ?></small>
1069 1069
                 </td>
1070 1070
                 <td>
1071 1071
 					<a href="
1072 1072
                     <?php
1073 1073
 						echo esc_url(
1074 1074
 							wp_nonce_url(
1075
-								add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ),
1075
+								add_query_arg('getpaid-admin-action', 'recalculate_discounts'),
1076 1076
 								'getpaid-nonce',
1077 1077
 								'getpaid-nonce'
1078 1078
 							)
1079 1079
 						);
1080 1080
 					?>
1081
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1081
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1082 1082
                 </td>
1083 1083
             </tr>
1084 1084
 
1085 1085
 			<tr>
1086
-                <td><?php esc_html_e( 'Set-up Wizard', 'invoicing' ); ?></td>
1086
+                <td><?php esc_html_e('Set-up Wizard', 'invoicing'); ?></td>
1087 1087
                 <td>
1088
-                    <small><?php esc_html_e( 'Launch the quick set-up wizard.', 'invoicing' ); ?></small>
1088
+                    <small><?php esc_html_e('Launch the quick set-up wizard.', 'invoicing'); ?></small>
1089 1089
                 </td>
1090 1090
                 <td>
1091 1091
 					<a href="
1092 1092
                     <?php
1093
-						echo esc_url( admin_url( 'index.php?page=gp-setup' ) );
1093
+						echo esc_url(admin_url('index.php?page=gp-setup'));
1094 1094
 					?>
1095
-                    " class="button button-primary"><?php esc_html_e( 'Launch', 'invoicing' ); ?></a>
1095
+                    " class="button button-primary"><?php esc_html_e('Launch', 'invoicing'); ?></a>
1096 1096
                 </td>
1097 1097
             </tr>
1098 1098
 
1099
-			<?php do_action( 'wpinv_tools_row' ); ?>
1099
+			<?php do_action('wpinv_tools_row'); ?>
1100 1100
         </tbody>
1101 1101
     </table>
1102
-    <?php do_action( 'wpinv_tools_after' ); ?>
1102
+    <?php do_action('wpinv_tools_after'); ?>
1103 1103
     <?php
1104 1104
 }
1105 1105
 
1106 1106
 
1107
-function wpinv_descriptive_text_callback( $args ) {
1108
-	echo wp_kses_post( $args['desc'] );
1107
+function wpinv_descriptive_text_callback($args) {
1108
+	echo wp_kses_post($args['desc']);
1109 1109
 }
1110 1110
 
1111
-function wpinv_raw_html_callback( $args ) {
1112
-	echo wp_kses( $args['desc'], getpaid_allowed_html() );
1111
+function wpinv_raw_html_callback($args) {
1112
+	echo wp_kses($args['desc'], getpaid_allowed_html());
1113 1113
 }
1114 1114
 
1115
-function wpinv_hook_callback( $args ) {
1116
-	do_action( 'wpinv_' . $args['id'], $args );
1115
+function wpinv_hook_callback($args) {
1116
+	do_action('wpinv_' . $args['id'], $args);
1117 1117
 }
1118 1118
 
1119 1119
 function wpinv_set_settings_cap() {
1120 1120
 	return wpinv_get_capability();
1121 1121
 }
1122
-add_filter( 'option_page_capability_wpinv_settings', 'wpinv_set_settings_cap' );
1122
+add_filter('option_page_capability_wpinv_settings', 'wpinv_set_settings_cap');
1123 1123
 
1124 1124
 
1125
-function wpinv_on_update_settings( $old_value, $value, $option ) {
1126
-    $old = ! empty( $old_value['remove_data_on_unistall'] ) ? 1 : '';
1127
-    $new = ! empty( $value['remove_data_on_unistall'] ) ? 1 : '';
1125
+function wpinv_on_update_settings($old_value, $value, $option) {
1126
+    $old = !empty($old_value['remove_data_on_unistall']) ? 1 : '';
1127
+    $new = !empty($value['remove_data_on_unistall']) ? 1 : '';
1128 1128
 
1129
-    if ( $old != $new ) {
1130
-        update_option( 'wpinv_remove_data_on_invoice_unistall', $new );
1129
+    if ($old != $new) {
1130
+        update_option('wpinv_remove_data_on_invoice_unistall', $new);
1131 1131
     }
1132 1132
 }
1133
-add_action( 'update_option_wpinv_settings', 'wpinv_on_update_settings', 10, 3 );
1133
+add_action('update_option_wpinv_settings', 'wpinv_on_update_settings', 10, 3);
1134 1134
 
1135 1135
 /**
1136 1136
  * Returns the merge tags help text.
@@ -1139,16 +1139,16 @@  discard block
 block discarded – undo
1139 1139
  *
1140 1140
  * @return string
1141 1141
  */
1142
-function wpinv_get_merge_tags_help_text( $subscription = false ) {
1142
+function wpinv_get_merge_tags_help_text($subscription = false) {
1143 1143
 
1144 1144
 	$url  = $subscription ? 'https://gist.github.com/picocodes/3d213982d57c34edf7a46fd3f0e8583e' : 'https://gist.github.com/picocodes/43bdc4d4bbba844534b2722e2af0b58f';
1145 1145
 	$link = sprintf(
1146 1146
 		'<strong><a href="%s" target="_blank">%s</a></strong>',
1147 1147
 		$url,
1148
-		esc_html__( 'View available merge tags.', 'wpinv-quotes' )
1148
+		esc_html__('View available merge tags.', 'wpinv-quotes')
1149 1149
 	);
1150 1150
 
1151
-	$description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' );
1151
+	$description = esc_html__('The content of the email (Merge Tags and HTML are allowed).', 'invoicing');
1152 1152
 
1153 1153
 	return "$description $link";
1154 1154
 
Please login to merge, or discard this patch.
includes/admin/class-wpinv-customers-table.php 2 patches
Indentation   +368 added lines, -368 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@  discard block
 block discarded – undo
11 11
 
12 12
 // Load WP_List_Table if not loaded
13 13
 if ( ! class_exists( 'WP_List_Table' ) ) {
14
-	require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
14
+    require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
15 15
 }
16 16
 
17 17
 /**
@@ -23,375 +23,375 @@  discard block
 block discarded – undo
23 23
  */
24 24
 class WPInv_Customers_Table extends WP_List_Table {
25 25
 
26
-	/**
27
-	 * @var int Number of items per page
28
-	 * @since 1.0.19
29
-	 */
30
-	public $per_page = 10;
31
-
32
-	/**
33
-	 * @var int Number of items
34
-	 * @since 1.0.19
35
-	 */
36
-	public $total = 0;
37
-
38
-	/**
39
-	 * Get things started
40
-	 *
41
-	 * @since 1.0.19
42
-	 * @see WP_List_Table::__construct()
43
-	 */
44
-	public function __construct() {
45
-
46
-		// Set parent defaults
47
-		parent::__construct(
26
+    /**
27
+     * @var int Number of items per page
28
+     * @since 1.0.19
29
+     */
30
+    public $per_page = 10;
31
+
32
+    /**
33
+     * @var int Number of items
34
+     * @since 1.0.19
35
+     */
36
+    public $total = 0;
37
+
38
+    /**
39
+     * Get things started
40
+     *
41
+     * @since 1.0.19
42
+     * @see WP_List_Table::__construct()
43
+     */
44
+    public function __construct() {
45
+
46
+        // Set parent defaults
47
+        parent::__construct(
48 48
             array(
49
-				'singular' => 'id',
50
-				'plural'   => 'ids',
51
-				'ajax'     => false,
49
+                'singular' => 'id',
50
+                'plural'   => 'ids',
51
+                'ajax'     => false,
52 52
             )
53 53
         );
54 54
 
55
-	}
56
-
57
-	/**
58
-	 * Gets the name of the primary column.
59
-	 *
60
-	 * @since 1.0.19
61
-	 * @access protected
62
-	 *
63
-	 * @return string Name of the primary column.
64
-	 */
65
-	protected function get_primary_column_name() {
66
-		return 'name';
67
-	}
68
-
69
-	/**
70
-	 * This function renders most of the columns in the list table.
71
-	 *
72
-	 * @since 1.0.19
73
-	 *
74
-	 * @param WP_User $item
75
-	 * @param string $column_name The name of the column
76
-	 *
77
-	 * @return string Column Name
78
-	 */
79
-	public function column_default( $item, $column_name ) {
80
-		$value = esc_html( get_user_meta( $item->ID, '_wpinv_' . $column_name, true ) );
81
-		return apply_filters( 'wpinv_customers_table_column' . $column_name, $value, $item );
82
-	}
83
-
84
-	/**
85
-	 * Displays the country column.
86
-	 *
87
-	 * @since 1.0.19
88
-	 *
89
-	 * @param WP_User $user
90
-	 *
91
-	 * @return string Column Name
92
-	 */
93
-	public function column_country( $user ) {
94
-		$country = wpinv_sanitize_country( $user->_wpinv_country );
95
-		if ( $country ) {
96
-			$country = wpinv_country_name( $country );
97
-		}
98
-		return esc_html( $country );
99
-	}
100
-
101
-	/**
102
-	 * Displays the state column.
103
-	 *
104
-	 * @since 1.0.19
105
-	 *
106
-	 * @param WP_User $user
107
-	 *
108
-	 * @return string Column Name
109
-	 */
110
-	public function column_state( $user ) {
111
-		$country = wpinv_sanitize_country( $user->_wpinv_country );
112
-		$state   = $user->_wpinv_state;
113
-		if ( $state ) {
114
-			$state = wpinv_state_name( $state, $country );
115
-		}
116
-
117
-		return esc_html( $state );
118
-	}
119
-
120
-	/**
121
-	 * Displays the signup column.
122
-	 *
123
-	 * @since 1.0.19
124
-	 *
125
-	 * @param WP_User $user
126
-	 *
127
-	 * @return string Column Name
128
-	 */
129
-	public function column_signup( $user ) {
130
-		return getpaid_format_date_value( $user->user_registered );
131
-	}
132
-
133
-	/**
134
-	 * Displays the total spent column.
135
-	 *
136
-	 * @since 1.0.19
137
-	 *
138
-	 * @param WP_User $user
139
-	 *
140
-	 * @return string Column Name
141
-	 */
142
-	public function column_total( $user ) {
143
-		return wpinv_price( $this->column_total_raw( $user ) );
144
-	}
145
-
146
-	/**
147
-	 * Displays the total spent column.
148
-	 *
149
-	 * @since 1.0.19
150
-	 *
151
-	 * @param WP_User $user
152
-	 *
153
-	 * @return float
154
-	 */
155
-	public function column_total_raw( $user ) {
156
-
157
-		$args = array(
158
-			'data'           => array(
159
-
160
-				'total' => array(
161
-					'type'     => 'invoice_data',
162
-					'function' => 'SUM',
163
-					'name'     => 'total_sales',
164
-				),
165
-
166
-			),
167
-			'where'          => array(
168
-
169
-				'author' => array(
170
-					'type'     => 'post_data',
171
-					'value'    => absint( $user->ID ),
172
-					'key'      => 'posts.post_author',
173
-					'operator' => '=',
174
-				),
175
-
176
-			),
177
-			'query_type'     => 'get_var',
178
-			'invoice_status' => array( 'wpi-renewal', 'wpi-processing', 'publish' ),
179
-		);
180
-
181
-		return wpinv_round_amount( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
182
-
183
-	}
184
-
185
-	/**
186
-	 * Displays the total spent column.
187
-	 *
188
-	 * @since 1.0.19
189
-	 *
190
-	 * @param WP_User $user
191
-	 *
192
-	 * @return string Column Name
193
-	 */
194
-	public function column_invoices( $user ) {
195
-
196
-		$args = array(
197
-			'data'           => array(
198
-
199
-				'ID' => array(
200
-					'type'     => 'post_data',
201
-					'function' => 'COUNT',
202
-					'name'     => 'count',
203
-					'distinct' => true,
204
-				),
205
-
206
-			),
207
-			'where'          => array(
208
-
209
-				'author' => array(
210
-					'type'     => 'post_data',
211
-					'value'    => absint( $user->ID ),
212
-					'key'      => 'posts.post_author',
213
-					'operator' => '=',
214
-				),
215
-
216
-			),
217
-			'query_type'     => 'get_var',
218
-			'invoice_status' => array_keys( wpinv_get_invoice_statuses() ),
219
-		);
220
-
221
-		$value = absint( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
222
-		$url   = add_query_arg( array( 'post_type' => 'wpi_invoice', 'author' => $user->ID ), admin_url( 'edit.php' ) );
223
-		return empty( $value ) ? '0' : '<a href="' . esc_url( $url ) . '">' . absint( $value ) . '</a>';
224
-
225
-	}
226
-
227
-	/**
228
-	 * Generates content for a single row of the table
229
-	 * @since 1.0.19
230
-	 *
231
-	 * @param int $item The user id.
232
-	 */
233
-	public function single_row( $item ) {
234
-		$item = get_user_by( 'id', $item );
235
-
236
-		if ( empty( $item ) ) {
237
-			return;
238
-		}
239
-
240
-		echo '<tr>';
241
-		$this->single_row_columns( $item );
242
-		echo '</tr>';
243
-	}
244
-
245
-	/**
246
-	 * Displays the customers name
247
-	 *
248
-	 * @param  WP_User $customer customer.
249
-	 * @return string
250
-	 */
251
-	public function column_name( $customer ) {
252
-
253
-		// Customer view URL.
254
-		$view_url    = esc_url( add_query_arg( 'user_id', $customer->ID, admin_url( 'user-edit.php' ) ) );
255
-		$row_actions = $this->row_actions(
256
-			array(
257
-				'view' => '<a href="' . $view_url . '#getpaid-fieldset-billing">' . __( 'Edit Details', 'invoicing' ) . '</a>',
258
-			)
259
-		);
260
-
261
-		// Get user's address.
262
-		$address = wpinv_get_user_address( $customer->ID );
263
-
264
-		// Customer email address.
265
-		$email       = sanitize_email( $customer->user_email );
266
-
267
-		// Customer's avatar.
268
-		$avatar = esc_url( get_avatar_url( $email ) );
269
-		$avatar = "<img src='$avatar' height='32' width='32'/>";
270
-
271
-		// Customer's name.
272
-		$name   = esc_html( "{$address['first_name']} {$address['last_name']}" );
273
-
274
-		if ( empty( trim( $name ) ) ) {
275
-			$name = esc_html( $address['display_name'] );
276
-		}
277
-
278
-		if ( ! empty( $name ) ) {
279
-			$name = "<div style='overflow: hidden;height: 18px;'>$name</div>";
280
-		}
281
-
282
-		$email = "<div class='row-title'><a href='$view_url'>$email</a></div>";
283
-
284
-		return "<div style='display: flex;'><div>$avatar</div><div style='margin-left: 10px;'>$name<strong>$email</strong>$row_actions</div></div>";
285
-
286
-	}
287
-
288
-	/**
289
-	 * Retrieve the table columns
290
-	 *
291
-	 * @since 1.0.19
292
-	 * @return array $columns Array of all the list table columns
293
-	 */
294
-	public function get_columns() {
295
-
296
-		$columns = array(
297
-			'name'     => __( 'Name', 'invoicing' ),
298
-			'country'  => __( 'Country', 'invoicing' ),
299
-			'state'    => __( 'State', 'invoicing' ),
300
-			'city'     => __( 'City', 'invoicing' ),
301
-			'zip'      => __( 'ZIP', 'invoicing' ),
302
-			'address'  => __( 'Address', 'invoicing' ),
303
-			'phone'    => __( 'Phone', 'invoicing' ),
304
-			'company'  => __( 'Company', 'invoicing' ),
305
-			'invoices' => __( 'Invoices', 'invoicing' ),
306
-			'total'    => __( 'Total Spend', 'invoicing' ),
307
-			'signup'   => __( 'Date created', 'invoicing' ),
308
-		);
309
-		return apply_filters( 'wpinv_customers_table_columns', $columns );
310
-
311
-	}
312
-
313
-	/**
314
-	 * Retrieve the current page number
315
-	 *
316
-	 * @since 1.0.19
317
-	 * @return int Current page number
318
-	 */
319
-	public function get_paged() {
320
-		return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
321
-	}
322
-
323
-	/**
324
-	 * Returns bulk actions.
325
-	 *
326
-	 * @since 1.0.19
327
-	 * @return void
328
-	 */
329
-	public function bulk_actions( $which = '' ) {
330
-		return array();
331
-	}
332
-
333
-	/**
334
-	 *  Prepares the display query
335
-	 */
336
-	public function prepare_query() {
337
-		global $wpdb;
338
-
339
-		$post_types = '';
340
-
341
-		foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
342
-			$post_types .= $wpdb->prepare( 'post_type=%s OR ', $post_type );
343
-		}
344
-
345
-		$post_types = rtrim( $post_types, ' OR' );
346
-
347
-		// Maybe search.
348
-		if ( ! empty( $_POST['s'] ) ) {
349
-			$users = get_users(
350
-				array(
351
-					'search'         => '*' . sanitize_text_field( urldecode( $_POST['s'] ) ) . '*',
352
-					'search_columns' => array( 'user_login', 'user_email', 'display_name' ),
353
-					'fields'         => 'ID',
354
-				)
355
-			);
356
-
357
-			$users      = implode( ', ', $users );
358
-			$post_types = "($post_types) AND ( post_author IN ( $users ) )";
359
-		}
360
-
361
-		// Users with invoices.
362
-    	$customers = $wpdb->get_col(
363
-			$wpdb->prepare(
364
-				"SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types LIMIT %d,%d",
365
-				$this->get_paged() * 10 - 10,
366
-				$this->per_page
367
-			)
368
-		);
369
-
370
-		$this->items = $customers;
371
-		$this->total = (int) $wpdb->get_var( "SELECT COUNT( DISTINCT( post_author ) ) FROM $wpdb->posts WHERE $post_types" );
372
-
373
-	}
374
-
375
-	/**
376
-	 * Setup the final data for the table
377
-	 *
378
-	 * @since 1.0.19
379
-	 * @return void
380
-	 */
381
-	public function prepare_items() {
382
-		$columns               = $this->get_columns();
383
-		$hidden                = array(); // No hidden columns
384
-		$sortable              = $this->get_sortable_columns();
385
-		$this->_column_headers = array( $columns, $hidden, $sortable );
386
-		$this->prepare_query();
387
-
388
-		$this->set_pagination_args(
389
-			array(
390
-				'total_items' => $this->total,
391
-				'per_page'    => $this->per_page,
392
-				'total_pages' => ceil( $this->total / $this->per_page ),
393
-			)
394
-		);
395
-
396
-	}
55
+    }
56
+
57
+    /**
58
+     * Gets the name of the primary column.
59
+     *
60
+     * @since 1.0.19
61
+     * @access protected
62
+     *
63
+     * @return string Name of the primary column.
64
+     */
65
+    protected function get_primary_column_name() {
66
+        return 'name';
67
+    }
68
+
69
+    /**
70
+     * This function renders most of the columns in the list table.
71
+     *
72
+     * @since 1.0.19
73
+     *
74
+     * @param WP_User $item
75
+     * @param string $column_name The name of the column
76
+     *
77
+     * @return string Column Name
78
+     */
79
+    public function column_default( $item, $column_name ) {
80
+        $value = esc_html( get_user_meta( $item->ID, '_wpinv_' . $column_name, true ) );
81
+        return apply_filters( 'wpinv_customers_table_column' . $column_name, $value, $item );
82
+    }
83
+
84
+    /**
85
+     * Displays the country column.
86
+     *
87
+     * @since 1.0.19
88
+     *
89
+     * @param WP_User $user
90
+     *
91
+     * @return string Column Name
92
+     */
93
+    public function column_country( $user ) {
94
+        $country = wpinv_sanitize_country( $user->_wpinv_country );
95
+        if ( $country ) {
96
+            $country = wpinv_country_name( $country );
97
+        }
98
+        return esc_html( $country );
99
+    }
100
+
101
+    /**
102
+     * Displays the state column.
103
+     *
104
+     * @since 1.0.19
105
+     *
106
+     * @param WP_User $user
107
+     *
108
+     * @return string Column Name
109
+     */
110
+    public function column_state( $user ) {
111
+        $country = wpinv_sanitize_country( $user->_wpinv_country );
112
+        $state   = $user->_wpinv_state;
113
+        if ( $state ) {
114
+            $state = wpinv_state_name( $state, $country );
115
+        }
116
+
117
+        return esc_html( $state );
118
+    }
119
+
120
+    /**
121
+     * Displays the signup column.
122
+     *
123
+     * @since 1.0.19
124
+     *
125
+     * @param WP_User $user
126
+     *
127
+     * @return string Column Name
128
+     */
129
+    public function column_signup( $user ) {
130
+        return getpaid_format_date_value( $user->user_registered );
131
+    }
132
+
133
+    /**
134
+     * Displays the total spent column.
135
+     *
136
+     * @since 1.0.19
137
+     *
138
+     * @param WP_User $user
139
+     *
140
+     * @return string Column Name
141
+     */
142
+    public function column_total( $user ) {
143
+        return wpinv_price( $this->column_total_raw( $user ) );
144
+    }
145
+
146
+    /**
147
+     * Displays the total spent column.
148
+     *
149
+     * @since 1.0.19
150
+     *
151
+     * @param WP_User $user
152
+     *
153
+     * @return float
154
+     */
155
+    public function column_total_raw( $user ) {
156
+
157
+        $args = array(
158
+            'data'           => array(
159
+
160
+                'total' => array(
161
+                    'type'     => 'invoice_data',
162
+                    'function' => 'SUM',
163
+                    'name'     => 'total_sales',
164
+                ),
165
+
166
+            ),
167
+            'where'          => array(
168
+
169
+                'author' => array(
170
+                    'type'     => 'post_data',
171
+                    'value'    => absint( $user->ID ),
172
+                    'key'      => 'posts.post_author',
173
+                    'operator' => '=',
174
+                ),
175
+
176
+            ),
177
+            'query_type'     => 'get_var',
178
+            'invoice_status' => array( 'wpi-renewal', 'wpi-processing', 'publish' ),
179
+        );
180
+
181
+        return wpinv_round_amount( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
182
+
183
+    }
184
+
185
+    /**
186
+     * Displays the total spent column.
187
+     *
188
+     * @since 1.0.19
189
+     *
190
+     * @param WP_User $user
191
+     *
192
+     * @return string Column Name
193
+     */
194
+    public function column_invoices( $user ) {
195
+
196
+        $args = array(
197
+            'data'           => array(
198
+
199
+                'ID' => array(
200
+                    'type'     => 'post_data',
201
+                    'function' => 'COUNT',
202
+                    'name'     => 'count',
203
+                    'distinct' => true,
204
+                ),
205
+
206
+            ),
207
+            'where'          => array(
208
+
209
+                'author' => array(
210
+                    'type'     => 'post_data',
211
+                    'value'    => absint( $user->ID ),
212
+                    'key'      => 'posts.post_author',
213
+                    'operator' => '=',
214
+                ),
215
+
216
+            ),
217
+            'query_type'     => 'get_var',
218
+            'invoice_status' => array_keys( wpinv_get_invoice_statuses() ),
219
+        );
220
+
221
+        $value = absint( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
222
+        $url   = add_query_arg( array( 'post_type' => 'wpi_invoice', 'author' => $user->ID ), admin_url( 'edit.php' ) );
223
+        return empty( $value ) ? '0' : '<a href="' . esc_url( $url ) . '">' . absint( $value ) . '</a>';
224
+
225
+    }
226
+
227
+    /**
228
+     * Generates content for a single row of the table
229
+     * @since 1.0.19
230
+     *
231
+     * @param int $item The user id.
232
+     */
233
+    public function single_row( $item ) {
234
+        $item = get_user_by( 'id', $item );
235
+
236
+        if ( empty( $item ) ) {
237
+            return;
238
+        }
239
+
240
+        echo '<tr>';
241
+        $this->single_row_columns( $item );
242
+        echo '</tr>';
243
+    }
244
+
245
+    /**
246
+     * Displays the customers name
247
+     *
248
+     * @param  WP_User $customer customer.
249
+     * @return string
250
+     */
251
+    public function column_name( $customer ) {
252
+
253
+        // Customer view URL.
254
+        $view_url    = esc_url( add_query_arg( 'user_id', $customer->ID, admin_url( 'user-edit.php' ) ) );
255
+        $row_actions = $this->row_actions(
256
+            array(
257
+                'view' => '<a href="' . $view_url . '#getpaid-fieldset-billing">' . __( 'Edit Details', 'invoicing' ) . '</a>',
258
+            )
259
+        );
260
+
261
+        // Get user's address.
262
+        $address = wpinv_get_user_address( $customer->ID );
263
+
264
+        // Customer email address.
265
+        $email       = sanitize_email( $customer->user_email );
266
+
267
+        // Customer's avatar.
268
+        $avatar = esc_url( get_avatar_url( $email ) );
269
+        $avatar = "<img src='$avatar' height='32' width='32'/>";
270
+
271
+        // Customer's name.
272
+        $name   = esc_html( "{$address['first_name']} {$address['last_name']}" );
273
+
274
+        if ( empty( trim( $name ) ) ) {
275
+            $name = esc_html( $address['display_name'] );
276
+        }
277
+
278
+        if ( ! empty( $name ) ) {
279
+            $name = "<div style='overflow: hidden;height: 18px;'>$name</div>";
280
+        }
281
+
282
+        $email = "<div class='row-title'><a href='$view_url'>$email</a></div>";
283
+
284
+        return "<div style='display: flex;'><div>$avatar</div><div style='margin-left: 10px;'>$name<strong>$email</strong>$row_actions</div></div>";
285
+
286
+    }
287
+
288
+    /**
289
+     * Retrieve the table columns
290
+     *
291
+     * @since 1.0.19
292
+     * @return array $columns Array of all the list table columns
293
+     */
294
+    public function get_columns() {
295
+
296
+        $columns = array(
297
+            'name'     => __( 'Name', 'invoicing' ),
298
+            'country'  => __( 'Country', 'invoicing' ),
299
+            'state'    => __( 'State', 'invoicing' ),
300
+            'city'     => __( 'City', 'invoicing' ),
301
+            'zip'      => __( 'ZIP', 'invoicing' ),
302
+            'address'  => __( 'Address', 'invoicing' ),
303
+            'phone'    => __( 'Phone', 'invoicing' ),
304
+            'company'  => __( 'Company', 'invoicing' ),
305
+            'invoices' => __( 'Invoices', 'invoicing' ),
306
+            'total'    => __( 'Total Spend', 'invoicing' ),
307
+            'signup'   => __( 'Date created', 'invoicing' ),
308
+        );
309
+        return apply_filters( 'wpinv_customers_table_columns', $columns );
310
+
311
+    }
312
+
313
+    /**
314
+     * Retrieve the current page number
315
+     *
316
+     * @since 1.0.19
317
+     * @return int Current page number
318
+     */
319
+    public function get_paged() {
320
+        return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
321
+    }
322
+
323
+    /**
324
+     * Returns bulk actions.
325
+     *
326
+     * @since 1.0.19
327
+     * @return void
328
+     */
329
+    public function bulk_actions( $which = '' ) {
330
+        return array();
331
+    }
332
+
333
+    /**
334
+     *  Prepares the display query
335
+     */
336
+    public function prepare_query() {
337
+        global $wpdb;
338
+
339
+        $post_types = '';
340
+
341
+        foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
342
+            $post_types .= $wpdb->prepare( 'post_type=%s OR ', $post_type );
343
+        }
344
+
345
+        $post_types = rtrim( $post_types, ' OR' );
346
+
347
+        // Maybe search.
348
+        if ( ! empty( $_POST['s'] ) ) {
349
+            $users = get_users(
350
+                array(
351
+                    'search'         => '*' . sanitize_text_field( urldecode( $_POST['s'] ) ) . '*',
352
+                    'search_columns' => array( 'user_login', 'user_email', 'display_name' ),
353
+                    'fields'         => 'ID',
354
+                )
355
+            );
356
+
357
+            $users      = implode( ', ', $users );
358
+            $post_types = "($post_types) AND ( post_author IN ( $users ) )";
359
+        }
360
+
361
+        // Users with invoices.
362
+        $customers = $wpdb->get_col(
363
+            $wpdb->prepare(
364
+                "SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types LIMIT %d,%d",
365
+                $this->get_paged() * 10 - 10,
366
+                $this->per_page
367
+            )
368
+        );
369
+
370
+        $this->items = $customers;
371
+        $this->total = (int) $wpdb->get_var( "SELECT COUNT( DISTINCT( post_author ) ) FROM $wpdb->posts WHERE $post_types" );
372
+
373
+    }
374
+
375
+    /**
376
+     * Setup the final data for the table
377
+     *
378
+     * @since 1.0.19
379
+     * @return void
380
+     */
381
+    public function prepare_items() {
382
+        $columns               = $this->get_columns();
383
+        $hidden                = array(); // No hidden columns
384
+        $sortable              = $this->get_sortable_columns();
385
+        $this->_column_headers = array( $columns, $hidden, $sortable );
386
+        $this->prepare_query();
387
+
388
+        $this->set_pagination_args(
389
+            array(
390
+                'total_items' => $this->total,
391
+                'per_page'    => $this->per_page,
392
+                'total_pages' => ceil( $this->total / $this->per_page ),
393
+            )
394
+        );
395
+
396
+    }
397 397
 }
Please login to merge, or discard this patch.
Spacing   +67 added lines, -67 removed lines patch added patch discarded remove patch
@@ -5,12 +5,12 @@  discard block
 block discarded – undo
5 5
  */
6 6
 
7 7
 // Exit if accessed directly
8
-if ( ! defined( 'ABSPATH' ) ) {
8
+if (!defined('ABSPATH')) {
9 9
 exit;
10 10
 }
11 11
 
12 12
 // Load WP_List_Table if not loaded
13
-if ( ! class_exists( 'WP_List_Table' ) ) {
13
+if (!class_exists('WP_List_Table')) {
14 14
 	require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
15 15
 }
16 16
 
@@ -76,9 +76,9 @@  discard block
 block discarded – undo
76 76
 	 *
77 77
 	 * @return string Column Name
78 78
 	 */
79
-	public function column_default( $item, $column_name ) {
80
-		$value = esc_html( get_user_meta( $item->ID, '_wpinv_' . $column_name, true ) );
81
-		return apply_filters( 'wpinv_customers_table_column' . $column_name, $value, $item );
79
+	public function column_default($item, $column_name) {
80
+		$value = esc_html(get_user_meta($item->ID, '_wpinv_' . $column_name, true));
81
+		return apply_filters('wpinv_customers_table_column' . $column_name, $value, $item);
82 82
 	}
83 83
 
84 84
 	/**
@@ -90,12 +90,12 @@  discard block
 block discarded – undo
90 90
 	 *
91 91
 	 * @return string Column Name
92 92
 	 */
93
-	public function column_country( $user ) {
94
-		$country = wpinv_sanitize_country( $user->_wpinv_country );
95
-		if ( $country ) {
96
-			$country = wpinv_country_name( $country );
93
+	public function column_country($user) {
94
+		$country = wpinv_sanitize_country($user->_wpinv_country);
95
+		if ($country) {
96
+			$country = wpinv_country_name($country);
97 97
 		}
98
-		return esc_html( $country );
98
+		return esc_html($country);
99 99
 	}
100 100
 
101 101
 	/**
@@ -107,14 +107,14 @@  discard block
 block discarded – undo
107 107
 	 *
108 108
 	 * @return string Column Name
109 109
 	 */
110
-	public function column_state( $user ) {
111
-		$country = wpinv_sanitize_country( $user->_wpinv_country );
110
+	public function column_state($user) {
111
+		$country = wpinv_sanitize_country($user->_wpinv_country);
112 112
 		$state   = $user->_wpinv_state;
113
-		if ( $state ) {
114
-			$state = wpinv_state_name( $state, $country );
113
+		if ($state) {
114
+			$state = wpinv_state_name($state, $country);
115 115
 		}
116 116
 
117
-		return esc_html( $state );
117
+		return esc_html($state);
118 118
 	}
119 119
 
120 120
 	/**
@@ -126,8 +126,8 @@  discard block
 block discarded – undo
126 126
 	 *
127 127
 	 * @return string Column Name
128 128
 	 */
129
-	public function column_signup( $user ) {
130
-		return getpaid_format_date_value( $user->user_registered );
129
+	public function column_signup($user) {
130
+		return getpaid_format_date_value($user->user_registered);
131 131
 	}
132 132
 
133 133
 	/**
@@ -139,8 +139,8 @@  discard block
 block discarded – undo
139 139
 	 *
140 140
 	 * @return string Column Name
141 141
 	 */
142
-	public function column_total( $user ) {
143
-		return wpinv_price( $this->column_total_raw( $user ) );
142
+	public function column_total($user) {
143
+		return wpinv_price($this->column_total_raw($user));
144 144
 	}
145 145
 
146 146
 	/**
@@ -152,7 +152,7 @@  discard block
 block discarded – undo
152 152
 	 *
153 153
 	 * @return float
154 154
 	 */
155
-	public function column_total_raw( $user ) {
155
+	public function column_total_raw($user) {
156 156
 
157 157
 		$args = array(
158 158
 			'data'           => array(
@@ -168,17 +168,17 @@  discard block
 block discarded – undo
168 168
 
169 169
 				'author' => array(
170 170
 					'type'     => 'post_data',
171
-					'value'    => absint( $user->ID ),
171
+					'value'    => absint($user->ID),
172 172
 					'key'      => 'posts.post_author',
173 173
 					'operator' => '=',
174 174
 				),
175 175
 
176 176
 			),
177 177
 			'query_type'     => 'get_var',
178
-			'invoice_status' => array( 'wpi-renewal', 'wpi-processing', 'publish' ),
178
+			'invoice_status' => array('wpi-renewal', 'wpi-processing', 'publish'),
179 179
 		);
180 180
 
181
-		return wpinv_round_amount( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
181
+		return wpinv_round_amount(GetPaid_Reports_Helper::get_invoice_report_data($args));
182 182
 
183 183
 	}
184 184
 
@@ -191,7 +191,7 @@  discard block
 block discarded – undo
191 191
 	 *
192 192
 	 * @return string Column Name
193 193
 	 */
194
-	public function column_invoices( $user ) {
194
+	public function column_invoices($user) {
195 195
 
196 196
 		$args = array(
197 197
 			'data'           => array(
@@ -208,19 +208,19 @@  discard block
 block discarded – undo
208 208
 
209 209
 				'author' => array(
210 210
 					'type'     => 'post_data',
211
-					'value'    => absint( $user->ID ),
211
+					'value'    => absint($user->ID),
212 212
 					'key'      => 'posts.post_author',
213 213
 					'operator' => '=',
214 214
 				),
215 215
 
216 216
 			),
217 217
 			'query_type'     => 'get_var',
218
-			'invoice_status' => array_keys( wpinv_get_invoice_statuses() ),
218
+			'invoice_status' => array_keys(wpinv_get_invoice_statuses()),
219 219
 		);
220 220
 
221
-		$value = absint( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
222
-		$url   = add_query_arg( array( 'post_type' => 'wpi_invoice', 'author' => $user->ID ), admin_url( 'edit.php' ) );
223
-		return empty( $value ) ? '0' : '<a href="' . esc_url( $url ) . '">' . absint( $value ) . '</a>';
221
+		$value = absint(GetPaid_Reports_Helper::get_invoice_report_data($args));
222
+		$url   = add_query_arg(array('post_type' => 'wpi_invoice', 'author' => $user->ID), admin_url('edit.php'));
223
+		return empty($value) ? '0' : '<a href="' . esc_url($url) . '">' . absint($value) . '</a>';
224 224
 
225 225
 	}
226 226
 
@@ -230,15 +230,15 @@  discard block
 block discarded – undo
230 230
 	 *
231 231
 	 * @param int $item The user id.
232 232
 	 */
233
-	public function single_row( $item ) {
234
-		$item = get_user_by( 'id', $item );
233
+	public function single_row($item) {
234
+		$item = get_user_by('id', $item);
235 235
 
236
-		if ( empty( $item ) ) {
236
+		if (empty($item)) {
237 237
 			return;
238 238
 		}
239 239
 
240 240
 		echo '<tr>';
241
-		$this->single_row_columns( $item );
241
+		$this->single_row_columns($item);
242 242
 		echo '</tr>';
243 243
 	}
244 244
 
@@ -248,34 +248,34 @@  discard block
 block discarded – undo
248 248
 	 * @param  WP_User $customer customer.
249 249
 	 * @return string
250 250
 	 */
251
-	public function column_name( $customer ) {
251
+	public function column_name($customer) {
252 252
 
253 253
 		// Customer view URL.
254
-		$view_url    = esc_url( add_query_arg( 'user_id', $customer->ID, admin_url( 'user-edit.php' ) ) );
254
+		$view_url    = esc_url(add_query_arg('user_id', $customer->ID, admin_url('user-edit.php')));
255 255
 		$row_actions = $this->row_actions(
256 256
 			array(
257
-				'view' => '<a href="' . $view_url . '#getpaid-fieldset-billing">' . __( 'Edit Details', 'invoicing' ) . '</a>',
257
+				'view' => '<a href="' . $view_url . '#getpaid-fieldset-billing">' . __('Edit Details', 'invoicing') . '</a>',
258 258
 			)
259 259
 		);
260 260
 
261 261
 		// Get user's address.
262
-		$address = wpinv_get_user_address( $customer->ID );
262
+		$address = wpinv_get_user_address($customer->ID);
263 263
 
264 264
 		// Customer email address.
265
-		$email       = sanitize_email( $customer->user_email );
265
+		$email = sanitize_email($customer->user_email);
266 266
 
267 267
 		// Customer's avatar.
268
-		$avatar = esc_url( get_avatar_url( $email ) );
268
+		$avatar = esc_url(get_avatar_url($email));
269 269
 		$avatar = "<img src='$avatar' height='32' width='32'/>";
270 270
 
271 271
 		// Customer's name.
272
-		$name   = esc_html( "{$address['first_name']} {$address['last_name']}" );
272
+		$name   = esc_html("{$address['first_name']} {$address['last_name']}");
273 273
 
274
-		if ( empty( trim( $name ) ) ) {
275
-			$name = esc_html( $address['display_name'] );
274
+		if (empty(trim($name))) {
275
+			$name = esc_html($address['display_name']);
276 276
 		}
277 277
 
278
-		if ( ! empty( $name ) ) {
278
+		if (!empty($name)) {
279 279
 			$name = "<div style='overflow: hidden;height: 18px;'>$name</div>";
280 280
 		}
281 281
 
@@ -294,19 +294,19 @@  discard block
 block discarded – undo
294 294
 	public function get_columns() {
295 295
 
296 296
 		$columns = array(
297
-			'name'     => __( 'Name', 'invoicing' ),
298
-			'country'  => __( 'Country', 'invoicing' ),
299
-			'state'    => __( 'State', 'invoicing' ),
300
-			'city'     => __( 'City', 'invoicing' ),
301
-			'zip'      => __( 'ZIP', 'invoicing' ),
302
-			'address'  => __( 'Address', 'invoicing' ),
303
-			'phone'    => __( 'Phone', 'invoicing' ),
304
-			'company'  => __( 'Company', 'invoicing' ),
305
-			'invoices' => __( 'Invoices', 'invoicing' ),
306
-			'total'    => __( 'Total Spend', 'invoicing' ),
307
-			'signup'   => __( 'Date created', 'invoicing' ),
297
+			'name'     => __('Name', 'invoicing'),
298
+			'country'  => __('Country', 'invoicing'),
299
+			'state'    => __('State', 'invoicing'),
300
+			'city'     => __('City', 'invoicing'),
301
+			'zip'      => __('ZIP', 'invoicing'),
302
+			'address'  => __('Address', 'invoicing'),
303
+			'phone'    => __('Phone', 'invoicing'),
304
+			'company'  => __('Company', 'invoicing'),
305
+			'invoices' => __('Invoices', 'invoicing'),
306
+			'total'    => __('Total Spend', 'invoicing'),
307
+			'signup'   => __('Date created', 'invoicing'),
308 308
 		);
309
-		return apply_filters( 'wpinv_customers_table_columns', $columns );
309
+		return apply_filters('wpinv_customers_table_columns', $columns);
310 310
 
311 311
 	}
312 312
 
@@ -317,7 +317,7 @@  discard block
 block discarded – undo
317 317
 	 * @return int Current page number
318 318
 	 */
319 319
 	public function get_paged() {
320
-		return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
320
+		return isset($_GET['paged']) ? absint($_GET['paged']) : 1;
321 321
 	}
322 322
 
323 323
 	/**
@@ -326,7 +326,7 @@  discard block
 block discarded – undo
326 326
 	 * @since 1.0.19
327 327
 	 * @return void
328 328
 	 */
329
-	public function bulk_actions( $which = '' ) {
329
+	public function bulk_actions($which = '') {
330 330
 		return array();
331 331
 	}
332 332
 
@@ -338,23 +338,23 @@  discard block
 block discarded – undo
338 338
 
339 339
 		$post_types = '';
340 340
 
341
-		foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
342
-			$post_types .= $wpdb->prepare( 'post_type=%s OR ', $post_type );
341
+		foreach (array_keys(getpaid_get_invoice_post_types()) as $post_type) {
342
+			$post_types .= $wpdb->prepare('post_type=%s OR ', $post_type);
343 343
 		}
344 344
 
345
-		$post_types = rtrim( $post_types, ' OR' );
345
+		$post_types = rtrim($post_types, ' OR');
346 346
 
347 347
 		// Maybe search.
348
-		if ( ! empty( $_POST['s'] ) ) {
348
+		if (!empty($_POST['s'])) {
349 349
 			$users = get_users(
350 350
 				array(
351
-					'search'         => '*' . sanitize_text_field( urldecode( $_POST['s'] ) ) . '*',
352
-					'search_columns' => array( 'user_login', 'user_email', 'display_name' ),
351
+					'search'         => '*' . sanitize_text_field(urldecode($_POST['s'])) . '*',
352
+					'search_columns' => array('user_login', 'user_email', 'display_name'),
353 353
 					'fields'         => 'ID',
354 354
 				)
355 355
 			);
356 356
 
357
-			$users      = implode( ', ', $users );
357
+			$users      = implode(', ', $users);
358 358
 			$post_types = "($post_types) AND ( post_author IN ( $users ) )";
359 359
 		}
360 360
 
@@ -368,7 +368,7 @@  discard block
 block discarded – undo
368 368
 		);
369 369
 
370 370
 		$this->items = $customers;
371
-		$this->total = (int) $wpdb->get_var( "SELECT COUNT( DISTINCT( post_author ) ) FROM $wpdb->posts WHERE $post_types" );
371
+		$this->total = (int) $wpdb->get_var("SELECT COUNT( DISTINCT( post_author ) ) FROM $wpdb->posts WHERE $post_types");
372 372
 
373 373
 	}
374 374
 
@@ -382,14 +382,14 @@  discard block
 block discarded – undo
382 382
 		$columns               = $this->get_columns();
383 383
 		$hidden                = array(); // No hidden columns
384 384
 		$sortable              = $this->get_sortable_columns();
385
-		$this->_column_headers = array( $columns, $hidden, $sortable );
385
+		$this->_column_headers = array($columns, $hidden, $sortable);
386 386
 		$this->prepare_query();
387 387
 
388 388
 		$this->set_pagination_args(
389 389
 			array(
390 390
 				'total_items' => $this->total,
391 391
 				'per_page'    => $this->per_page,
392
-				'total_pages' => ceil( $this->total / $this->per_page ),
392
+				'total_pages' => ceil($this->total / $this->per_page),
393 393
 			)
394 394
 		);
395 395
 
Please login to merge, or discard this patch.