Passed
Pull Request — master (#860)
by Kiran
08:35 queued 02:43
created
includes/class-getpaid-invoice-notification-emails.php 2 patches
Indentation   +469 added lines, -469 removed lines patch added patch discarded remove patch
@@ -12,492 +12,492 @@
 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
-		add_action( 'init', array( $this, 'init_hooks' ) );
45
-	}
46
-
47
-	/**
48
-	 * Registers email hooks.
49
-	 */
50
-	public function init_hooks() {
51
-
52
-		add_filter( 'getpaid_get_email_merge_tags', array( $this, 'invoice_merge_tags' ), 10, 2 );
53
-		add_filter( 'getpaid_invoice_email_recipients', array( $this, 'filter_email_recipients' ), 10, 2 );
54
-
55
-		foreach ( $this->invoice_actions as $hook => $email_type ) {
56
-			$this->init_email_type_hook( $hook, $email_type );
57
-		}
58
-	}
59
-
60
-	/**
61
-	 * Registers an email hook for an invoice action.
62
-	 *
63
-	 * @param string $hook
64
-	 * @param string|array $email_type
65
-	 */
66
-	public function init_email_type_hook( $hook, $email_type ) {
67
-
68
-		$email_type = wpinv_parse_list( $email_type );
69
-
70
-		foreach ( $email_type as $type ) {
71
-
72
-			$email = new GetPaid_Notification_Email( $type );
73
-
74
-			// Abort if it is not active.
75
-			if ( ! $email->is_active() ) {
76
-				continue;
77
-			}
78
-
79
-			if ( method_exists( $this, $type ) ) {
80
-				add_action( $hook, array( $this, $type ), 100, 2 );
81
-				continue;
82
-			}
83
-
84
-			do_action( 'getpaid_invoice_init_email_type_hook', $type, $hook );
85
-		}
86
-
87
-	}
88
-
89
-	/**
90
-	 * Filters invoice merge tags.
91
-	 *
92
-	 * @param array $merge_tags
93
-	 * @param mixed|WPInv_Invoice|WPInv_Subscription $object
94
-	 */
95
-	public function invoice_merge_tags( $merge_tags, $object ) {
96
-
97
-		if ( is_a( $object, 'WPInv_Invoice' ) ) {
98
-			return array_merge(
99
-				$merge_tags,
100
-				$this->get_invoice_merge_tags( $object )
101
-			);
102
-		}
103
-
104
-		if ( is_a( $object, 'WPInv_Subscription' ) ) {
105
-			return array_merge(
106
-				$merge_tags,
107
-				$this->get_invoice_merge_tags( $object->get_parent_payment() )
108
-			);
109
-		}
110
-
111
-		return $merge_tags;
112
-
113
-	}
114
-
115
-	/**
116
-	 * Generates invoice merge tags.
117
-	 *
118
-	 * @param WPInv_Invoice $invoice
119
-	 * @return array
120
-	 */
121
-	public function get_invoice_merge_tags( $invoice ) {
122
-
123
-		// Abort if it does not exist.
124
-		if ( ! $invoice->get_id() ) {
125
-			return array();
126
-		}
127
-
128
-		$due_date   = $invoice->get_due_date();
129
-		$due_date   = empty( $due_date ) ? time() + MINUTE_IN_SECONDS : strtotime( $due_date ) + ( (int) get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
130
-		$merge_tags = array(
131
-			'{name}'                 => sanitize_text_field( $invoice->get_user_full_name() ),
132
-			'{full_name}'            => sanitize_text_field( $invoice->get_user_full_name() ),
133
-			'{first_name}'           => sanitize_text_field( $invoice->get_first_name() ),
134
-			'{last_name}'            => sanitize_text_field( $invoice->get_last_name() ),
135
-			'{email}'                => sanitize_email( $invoice->get_email() ),
136
-			'{invoice_number}'       => sanitize_text_field( $invoice->get_number() ),
137
-			'{invoice_currency}'     => sanitize_text_field( $invoice->get_currency() ),
138
-			'{invoice_total}'        => sanitize_text_field( wpinv_price( $invoice->get_total(), $invoice->get_currency() ) ),
139
-			'{invoice_link}'         => esc_url( $invoice->get_view_url() ),
140
-			'{invoice_pay_link}'     => esc_url( $invoice->get_checkout_payment_url() ),
141
-			'{invoice_receipt_link}' => esc_url( $invoice->get_receipt_url() ),
142
-			'{invoice_date}'         => getpaid_format_date_value( $invoice->get_date_created() ),
143
-			'{invoice_due_date}'     => getpaid_format_date_value( $invoice->get_due_date(), __( 'on receipt', 'invoicing' ) ),
144
-			'{invoice_quote}'        => sanitize_text_field( strtolower( $invoice->get_label() ) ),
145
-			'{invoice_label}'        => sanitize_text_field( ucfirst( $invoice->get_label() ) ),
146
-			'{invoice_description}'  => wp_kses_post( $invoice->get_description() ),
147
-			'{subscription_name}'    => wp_kses_post( $invoice->get_subscription_name() ),
148
-			'{is_was}'               => $due_date < time() ? __( 'was', 'invoicing' ) : __( 'is', 'invoicing' ),
149
-		);
150
-
151
-		$payment_form_data = $invoice->get_meta( 'payment_form_data', true );
152
-
153
-		if ( is_array( $payment_form_data ) ) {
154
-
155
-			foreach ( $payment_form_data as $label => $value ) {
156
-
157
-				$label = preg_replace( '/[^a-z0-9]+/', '_', strtolower( $label ) );
158
-				$value = is_array( $value ) ? implode( ', ', $value ) : $value;
159
-
160
-				if ( is_scalar( $value ) ) {
161
-					$merge_tags[ "{{$label}}" ] = wp_kses_post( $value );
162
-				}
163
-			}
164
-		}
165
-
166
-		return apply_filters( 'getpaid_invoice_email_merge_tags', $merge_tags, $invoice );
167
-	}
168
-
169
-	/**
170
-	 * Helper function to send an email.
171
-	 *
172
-	 * @param WPInv_Invoice $invoice
173
-	 * @param GetPaid_Notification_Email $email
174
-	 * @param string $type
175
-	 * @param string|array $recipients
176
-	 * @param array $extra_args Extra template args.
177
-	 */
178
-	public function send_email( $invoice, $email, $type, $recipients, $extra_args = array() ) {
179
-
180
-		do_action( 'getpaid_before_send_invoice_notification', $type, $invoice, $email );
181
-
182
-		$skip = $invoice->is_free() && wpinv_get_option( 'skip_email_free_invoice' );
183
-		if ( apply_filters( 'getpaid_skip_invoice_email', $skip, $type, $invoice ) ) {
184
-			return;
185
-		}
186
-
187
-		$mailer     = new GetPaid_Notification_Email_Sender();
188
-		$merge_tags = $email->get_merge_tags();
189
-
190
-		$result = $mailer->send(
191
-			apply_filters( 'getpaid_invoice_email_recipients', wpinv_parse_list( $recipients ), $email ),
192
-			$email->add_merge_tags( $email->get_subject(), $merge_tags ),
193
-			$email->get_content( $merge_tags, $extra_args ),
194
-			$email->get_attachments()
195
-		);
196
-
197
-		// Maybe send a copy to the admin.
198
-		if ( $email->include_admin_bcc() ) {
199
-			$mailer->send(
200
-				wpinv_get_admin_email(),
201
-				$email->add_merge_tags( $email->get_subject() . __( ' - ADMIN BCC COPY', 'invoicing' ), $merge_tags ),
202
-				$email->get_content( $merge_tags ),
203
-				$email->get_attachments()
204
-			);
205
-		}
206
-
207
-		if ( $result ) {
208
-			$invoice->add_system_note(
209
-				sprintf(
210
-					// translators: %1 is the email type, %2 is the invoice recipient.
211
-					__( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ),
212
-					sanitize_key( $type ),
213
-					$email->is_admin_email() ? __( 'admin', 'invoicing' ) : __( 'the customer', 'invoicing' )
214
-				)
215
-			);
216
-		} else {
217
-			$invoice->add_system_note(
218
-				sprintf(
219
-					// translators: %1 is the email type, %2 is the invoice recipient.
220
-					__( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ),
221
-					sanitize_key( $type ),
222
-					$email->is_admin_email() ? __( 'admin', 'invoicing' ) : __( 'the customer', 'invoicing' )
223
-				)
224
-			);
225
-		}
226
-
227
-		do_action( 'getpaid_after_send_invoice_notification', $type, $invoice, $email );
228
-
229
-		return $result;
230
-	}
231
-
232
-	/**
233
-	 * Also send emails to any cc users.
234
-	 *
235
-	 * @param array $recipients
236
-	 * @param GetPaid_Notification_Email $email
237
-	 */
238
-	public function filter_email_recipients( $recipients, $email ) {
239
-
240
-		if ( ! $email->is_admin_email() ) {
241
-			$cc   = $email->object->get_email_cc();
242
-			$cc_2 = get_user_meta( $email->object->get_user_id(), '_wpinv_email_cc', true );
243
-
244
-			if ( ! empty( $cc ) ) {
245
-				$cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) );
246
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) );
247
-			}
248
-
249
-			if ( ! empty( $cc_2 ) ) {
250
-				$cc_2 = array_map( 'sanitize_email', wpinv_parse_list( $cc_2 ) );
251
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc_2 ) ) );
252
-			}
253
-		}
254
-
255
-		return $recipients;
256
-
257
-	}
258
-
259
-	/**
260
-	 * Sends a new invoice notification.
261
-	 *
262
-	 * @param WPInv_Invoice $invoice
263
-	 */
264
-	public function new_invoice( $invoice ) {
265
-
266
-		// Only send this email for invoices created via the admin page.
267
-		if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_paid() || $this->is_payment_form_invoice( $invoice->get_id() ) ) {
268
-			return;
269
-		}
270
-
271
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
272
-		$recipient = wpinv_get_admin_email();
273
-
274
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
275
-
276
-	}
277
-
278
-	/**
279
-	 * Sends a cancelled invoice notification.
280
-	 *
281
-	 * @param WPInv_Invoice $invoice
282
-	 */
283
-	public function cancelled_invoice( $invoice ) {
284
-
285
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
286
-		$recipient = $invoice->get_email();
287
-
288
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
289
-	}
290
-
291
-	/**
292
-	 * Sends a failed invoice notification.
293
-	 *
294
-	 * @param WPInv_Invoice $invoice
295
-	 */
296
-	public function failed_invoice( $invoice ) {
297
-
298
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
299
-		$recipient = wpinv_get_admin_email();
300
-
301
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
302
-
303
-	}
304
-
305
-	/**
306
-	 * Sends a notification whenever an invoice is put on hold.
307
-	 *
308
-	 * @param WPInv_Invoice $invoice
309
-	 */
310
-	public function onhold_invoice( $invoice ) {
311
-
312
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
313
-		$recipient = $invoice->get_email();
314
-
315
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
316
-
317
-	}
318
-
319
-	/**
320
-	 * Sends a notification whenever an invoice is marked as processing payment.
321
-	 *
322
-	 * @param WPInv_Invoice $invoice
323
-	 */
324
-	public function processing_invoice( $invoice ) {
325
-
326
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
327
-		$recipient = $invoice->get_email();
328
-
329
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
330
-
331
-	}
332
-
333
-	/**
334
-	 * Sends a notification whenever an invoice is paid.
335
-	 *
336
-	 * @param WPInv_Invoice $invoice
337
-	 */
338
-	public function completed_invoice( $invoice ) {
339
-
340
-		// (Maybe) abort if it is a renewal invoice.
341
-		if ( $invoice->is_renewal() && ! wpinv_get_option( 'email_completed_invoice_renewal_active', false ) ) {
342
-			return;
343
-		}
344
-
345
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
346
-		$recipient = $invoice->get_email();
347
-
348
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
349
-
350
-	}
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
+        add_action( 'init', array( $this, 'init_hooks' ) );
45
+    }
46
+
47
+    /**
48
+     * Registers email hooks.
49
+     */
50
+    public function init_hooks() {
51
+
52
+        add_filter( 'getpaid_get_email_merge_tags', array( $this, 'invoice_merge_tags' ), 10, 2 );
53
+        add_filter( 'getpaid_invoice_email_recipients', array( $this, 'filter_email_recipients' ), 10, 2 );
54
+
55
+        foreach ( $this->invoice_actions as $hook => $email_type ) {
56
+            $this->init_email_type_hook( $hook, $email_type );
57
+        }
58
+    }
59
+
60
+    /**
61
+     * Registers an email hook for an invoice action.
62
+     *
63
+     * @param string $hook
64
+     * @param string|array $email_type
65
+     */
66
+    public function init_email_type_hook( $hook, $email_type ) {
67
+
68
+        $email_type = wpinv_parse_list( $email_type );
69
+
70
+        foreach ( $email_type as $type ) {
71
+
72
+            $email = new GetPaid_Notification_Email( $type );
73
+
74
+            // Abort if it is not active.
75
+            if ( ! $email->is_active() ) {
76
+                continue;
77
+            }
78
+
79
+            if ( method_exists( $this, $type ) ) {
80
+                add_action( $hook, array( $this, $type ), 100, 2 );
81
+                continue;
82
+            }
83
+
84
+            do_action( 'getpaid_invoice_init_email_type_hook', $type, $hook );
85
+        }
86
+
87
+    }
88
+
89
+    /**
90
+     * Filters invoice merge tags.
91
+     *
92
+     * @param array $merge_tags
93
+     * @param mixed|WPInv_Invoice|WPInv_Subscription $object
94
+     */
95
+    public function invoice_merge_tags( $merge_tags, $object ) {
96
+
97
+        if ( is_a( $object, 'WPInv_Invoice' ) ) {
98
+            return array_merge(
99
+                $merge_tags,
100
+                $this->get_invoice_merge_tags( $object )
101
+            );
102
+        }
103
+
104
+        if ( is_a( $object, 'WPInv_Subscription' ) ) {
105
+            return array_merge(
106
+                $merge_tags,
107
+                $this->get_invoice_merge_tags( $object->get_parent_payment() )
108
+            );
109
+        }
110
+
111
+        return $merge_tags;
112
+
113
+    }
114
+
115
+    /**
116
+     * Generates invoice merge tags.
117
+     *
118
+     * @param WPInv_Invoice $invoice
119
+     * @return array
120
+     */
121
+    public function get_invoice_merge_tags( $invoice ) {
122
+
123
+        // Abort if it does not exist.
124
+        if ( ! $invoice->get_id() ) {
125
+            return array();
126
+        }
127
+
128
+        $due_date   = $invoice->get_due_date();
129
+        $due_date   = empty( $due_date ) ? time() + MINUTE_IN_SECONDS : strtotime( $due_date ) + ( (int) get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
130
+        $merge_tags = array(
131
+            '{name}'                 => sanitize_text_field( $invoice->get_user_full_name() ),
132
+            '{full_name}'            => sanitize_text_field( $invoice->get_user_full_name() ),
133
+            '{first_name}'           => sanitize_text_field( $invoice->get_first_name() ),
134
+            '{last_name}'            => sanitize_text_field( $invoice->get_last_name() ),
135
+            '{email}'                => sanitize_email( $invoice->get_email() ),
136
+            '{invoice_number}'       => sanitize_text_field( $invoice->get_number() ),
137
+            '{invoice_currency}'     => sanitize_text_field( $invoice->get_currency() ),
138
+            '{invoice_total}'        => sanitize_text_field( wpinv_price( $invoice->get_total(), $invoice->get_currency() ) ),
139
+            '{invoice_link}'         => esc_url( $invoice->get_view_url() ),
140
+            '{invoice_pay_link}'     => esc_url( $invoice->get_checkout_payment_url() ),
141
+            '{invoice_receipt_link}' => esc_url( $invoice->get_receipt_url() ),
142
+            '{invoice_date}'         => getpaid_format_date_value( $invoice->get_date_created() ),
143
+            '{invoice_due_date}'     => getpaid_format_date_value( $invoice->get_due_date(), __( 'on receipt', 'invoicing' ) ),
144
+            '{invoice_quote}'        => sanitize_text_field( strtolower( $invoice->get_label() ) ),
145
+            '{invoice_label}'        => sanitize_text_field( ucfirst( $invoice->get_label() ) ),
146
+            '{invoice_description}'  => wp_kses_post( $invoice->get_description() ),
147
+            '{subscription_name}'    => wp_kses_post( $invoice->get_subscription_name() ),
148
+            '{is_was}'               => $due_date < time() ? __( 'was', 'invoicing' ) : __( 'is', 'invoicing' ),
149
+        );
150
+
151
+        $payment_form_data = $invoice->get_meta( 'payment_form_data', true );
152
+
153
+        if ( is_array( $payment_form_data ) ) {
154
+
155
+            foreach ( $payment_form_data as $label => $value ) {
156
+
157
+                $label = preg_replace( '/[^a-z0-9]+/', '_', strtolower( $label ) );
158
+                $value = is_array( $value ) ? implode( ', ', $value ) : $value;
159
+
160
+                if ( is_scalar( $value ) ) {
161
+                    $merge_tags[ "{{$label}}" ] = wp_kses_post( $value );
162
+                }
163
+            }
164
+        }
165
+
166
+        return apply_filters( 'getpaid_invoice_email_merge_tags', $merge_tags, $invoice );
167
+    }
351 168
 
352
-	/**
353
-	 * Sends a notification whenever an invoice is refunded.
354
-	 *
355
-	 * @param WPInv_Invoice $invoice
356
-	 */
357
-	public function refunded_invoice( $invoice ) {
358
-
359
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
360
-		$recipient = $invoice->get_email();
361
-
362
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
363
-
364
-	}
169
+    /**
170
+     * Helper function to send an email.
171
+     *
172
+     * @param WPInv_Invoice $invoice
173
+     * @param GetPaid_Notification_Email $email
174
+     * @param string $type
175
+     * @param string|array $recipients
176
+     * @param array $extra_args Extra template args.
177
+     */
178
+    public function send_email( $invoice, $email, $type, $recipients, $extra_args = array() ) {
365 179
 
366
-	/**
367
-	 * Notifies a user about new invoices
368
-	 *
369
-	 * @param WPInv_Invoice $invoice
370
-	 * @param bool $force
371
-	 */
372
-	public function user_invoice( $invoice, $force = false ) {
180
+        do_action( 'getpaid_before_send_invoice_notification', $type, $invoice, $email );
373 181
 
374
-		if ( ! $force && ! empty( $GLOBALS['wpinv_skip_invoice_notification'] ) ) {
375
-			return;
376
-		}
377
-
378
-		// Only send this email for invoices created via the admin page.
379
-		if ( ! $invoice->is_type( 'invoice' ) || ( empty( $force ) && $invoice->is_paid() ) || ( empty( $force ) && $this->is_payment_form_invoice( $invoice->get_id() ) ) ) {
380
-			return;
381
-		}
382
-
383
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
384
-		$recipient = $invoice->get_email();
385
-
386
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
387
-
388
-	}
389
-
390
-	/**
391
-	 * Checks if an invoice is a payment form invoice.
392
-	 *
393
-	 * @param int $invoice
394
-	 * @return bool
395
-	 */
396
-	public function is_payment_form_invoice( $invoice ) {
397
-		$created_via             = get_post_meta( $invoice, 'wpinv_created_via', true );
398
-		$is_payment_form_invoice = 'payment_form' === $created_via || 'geodirectory' === $created_via;
399
-		$is_payment_form_invoice = apply_filters( 'getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice );
400
-		return empty( $_GET['getpaid-admin-action'] ) && $is_payment_form_invoice;
401
-	}
402
-
403
-	/**
404
-	 * Notifies admin about new invoice notes
405
-	 *
406
-	 * @param WPInv_Invoice $invoice
407
-	 * @param string $note
408
-	 */
409
-	public function user_note( $invoice, $note ) {
410
-
411
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
412
-		$recipient = $invoice->get_email();
413
-
414
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient, array( 'customer_note' => $note ) );
415
-
416
-	}
417
-
418
-	/**
419
-	 * (Force) Sends overdue notices.
420
-	 *
421
-	 * @param WPInv_Invoice $invoice
422
-	 */
423
-	public function force_send_overdue_notice( $invoice ) {
424
-		$email = new GetPaid_Notification_Email( 'overdue', $invoice );
425
-		return $this->send_email( $invoice, $email, 'overdue', $invoice->get_email() );
426
-	}
427
-
428
-	/**
429
-	 * Sends overdue notices.
430
-	 *
431
-	 * @TODO: Create an invoices query class.
432
-	 */
433
-	public function overdue() {
434
-		global $wpdb;
435
-
436
-		$email = new GetPaid_Notification_Email( __FUNCTION__ );
437
-
438
-		// Fetch reminder days.
439
-		$reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
440
-
441
-		// Abort if non is set.
442
-		if ( empty( $reminder_days ) ) {
443
-			return;
444
-		}
445
-
446
-		// Retrieve date query.
447
-		$date_query = $this->get_date_query( $reminder_days );
448
-
449
-		// Invoices table.
450
-		$table = $wpdb->prefix . 'getpaid_invoices';
451
-
452
-		// Fetch invoices.
453
-		$invoices  = $wpdb->get_col(
454
-			"SELECT posts.ID FROM $wpdb->posts as posts
182
+        $skip = $invoice->is_free() && wpinv_get_option( 'skip_email_free_invoice' );
183
+        if ( apply_filters( 'getpaid_skip_invoice_email', $skip, $type, $invoice ) ) {
184
+            return;
185
+        }
186
+
187
+        $mailer     = new GetPaid_Notification_Email_Sender();
188
+        $merge_tags = $email->get_merge_tags();
189
+
190
+        $result = $mailer->send(
191
+            apply_filters( 'getpaid_invoice_email_recipients', wpinv_parse_list( $recipients ), $email ),
192
+            $email->add_merge_tags( $email->get_subject(), $merge_tags ),
193
+            $email->get_content( $merge_tags, $extra_args ),
194
+            $email->get_attachments()
195
+        );
196
+
197
+        // Maybe send a copy to the admin.
198
+        if ( $email->include_admin_bcc() ) {
199
+            $mailer->send(
200
+                wpinv_get_admin_email(),
201
+                $email->add_merge_tags( $email->get_subject() . __( ' - ADMIN BCC COPY', 'invoicing' ), $merge_tags ),
202
+                $email->get_content( $merge_tags ),
203
+                $email->get_attachments()
204
+            );
205
+        }
206
+
207
+        if ( $result ) {
208
+            $invoice->add_system_note(
209
+                sprintf(
210
+                    // translators: %1 is the email type, %2 is the invoice recipient.
211
+                    __( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ),
212
+                    sanitize_key( $type ),
213
+                    $email->is_admin_email() ? __( 'admin', 'invoicing' ) : __( 'the customer', 'invoicing' )
214
+                )
215
+            );
216
+        } else {
217
+            $invoice->add_system_note(
218
+                sprintf(
219
+                    // translators: %1 is the email type, %2 is the invoice recipient.
220
+                    __( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ),
221
+                    sanitize_key( $type ),
222
+                    $email->is_admin_email() ? __( 'admin', 'invoicing' ) : __( 'the customer', 'invoicing' )
223
+                )
224
+            );
225
+        }
226
+
227
+        do_action( 'getpaid_after_send_invoice_notification', $type, $invoice, $email );
228
+
229
+        return $result;
230
+    }
231
+
232
+    /**
233
+     * Also send emails to any cc users.
234
+     *
235
+     * @param array $recipients
236
+     * @param GetPaid_Notification_Email $email
237
+     */
238
+    public function filter_email_recipients( $recipients, $email ) {
239
+
240
+        if ( ! $email->is_admin_email() ) {
241
+            $cc   = $email->object->get_email_cc();
242
+            $cc_2 = get_user_meta( $email->object->get_user_id(), '_wpinv_email_cc', true );
243
+
244
+            if ( ! empty( $cc ) ) {
245
+                $cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) );
246
+                $recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) );
247
+            }
248
+
249
+            if ( ! empty( $cc_2 ) ) {
250
+                $cc_2 = array_map( 'sanitize_email', wpinv_parse_list( $cc_2 ) );
251
+                $recipients = array_filter( array_unique( array_merge( $recipients, $cc_2 ) ) );
252
+            }
253
+        }
254
+
255
+        return $recipients;
256
+
257
+    }
258
+
259
+    /**
260
+     * Sends a new invoice notification.
261
+     *
262
+     * @param WPInv_Invoice $invoice
263
+     */
264
+    public function new_invoice( $invoice ) {
265
+
266
+        // Only send this email for invoices created via the admin page.
267
+        if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_paid() || $this->is_payment_form_invoice( $invoice->get_id() ) ) {
268
+            return;
269
+        }
270
+
271
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
272
+        $recipient = wpinv_get_admin_email();
273
+
274
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
275
+
276
+    }
277
+
278
+    /**
279
+     * Sends a cancelled invoice notification.
280
+     *
281
+     * @param WPInv_Invoice $invoice
282
+     */
283
+    public function cancelled_invoice( $invoice ) {
284
+
285
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
286
+        $recipient = $invoice->get_email();
287
+
288
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
289
+    }
290
+
291
+    /**
292
+     * Sends a failed invoice notification.
293
+     *
294
+     * @param WPInv_Invoice $invoice
295
+     */
296
+    public function failed_invoice( $invoice ) {
297
+
298
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
299
+        $recipient = wpinv_get_admin_email();
300
+
301
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
302
+
303
+    }
304
+
305
+    /**
306
+     * Sends a notification whenever an invoice is put on hold.
307
+     *
308
+     * @param WPInv_Invoice $invoice
309
+     */
310
+    public function onhold_invoice( $invoice ) {
311
+
312
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
313
+        $recipient = $invoice->get_email();
314
+
315
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
316
+
317
+    }
318
+
319
+    /**
320
+     * Sends a notification whenever an invoice is marked as processing payment.
321
+     *
322
+     * @param WPInv_Invoice $invoice
323
+     */
324
+    public function processing_invoice( $invoice ) {
325
+
326
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
327
+        $recipient = $invoice->get_email();
328
+
329
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
330
+
331
+    }
332
+
333
+    /**
334
+     * Sends a notification whenever an invoice is paid.
335
+     *
336
+     * @param WPInv_Invoice $invoice
337
+     */
338
+    public function completed_invoice( $invoice ) {
339
+
340
+        // (Maybe) abort if it is a renewal invoice.
341
+        if ( $invoice->is_renewal() && ! wpinv_get_option( 'email_completed_invoice_renewal_active', false ) ) {
342
+            return;
343
+        }
344
+
345
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
346
+        $recipient = $invoice->get_email();
347
+
348
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
349
+
350
+    }
351
+
352
+    /**
353
+     * Sends a notification whenever an invoice is refunded.
354
+     *
355
+     * @param WPInv_Invoice $invoice
356
+     */
357
+    public function refunded_invoice( $invoice ) {
358
+
359
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
360
+        $recipient = $invoice->get_email();
361
+
362
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
363
+
364
+    }
365
+
366
+    /**
367
+     * Notifies a user about new invoices
368
+     *
369
+     * @param WPInv_Invoice $invoice
370
+     * @param bool $force
371
+     */
372
+    public function user_invoice( $invoice, $force = false ) {
373
+
374
+        if ( ! $force && ! empty( $GLOBALS['wpinv_skip_invoice_notification'] ) ) {
375
+            return;
376
+        }
377
+
378
+        // Only send this email for invoices created via the admin page.
379
+        if ( ! $invoice->is_type( 'invoice' ) || ( empty( $force ) && $invoice->is_paid() ) || ( empty( $force ) && $this->is_payment_form_invoice( $invoice->get_id() ) ) ) {
380
+            return;
381
+        }
382
+
383
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
384
+        $recipient = $invoice->get_email();
385
+
386
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
387
+
388
+    }
389
+
390
+    /**
391
+     * Checks if an invoice is a payment form invoice.
392
+     *
393
+     * @param int $invoice
394
+     * @return bool
395
+     */
396
+    public function is_payment_form_invoice( $invoice ) {
397
+        $created_via             = get_post_meta( $invoice, 'wpinv_created_via', true );
398
+        $is_payment_form_invoice = 'payment_form' === $created_via || 'geodirectory' === $created_via;
399
+        $is_payment_form_invoice = apply_filters( 'getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice );
400
+        return empty( $_GET['getpaid-admin-action'] ) && $is_payment_form_invoice;
401
+    }
402
+
403
+    /**
404
+     * Notifies admin about new invoice notes
405
+     *
406
+     * @param WPInv_Invoice $invoice
407
+     * @param string $note
408
+     */
409
+    public function user_note( $invoice, $note ) {
410
+
411
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
412
+        $recipient = $invoice->get_email();
413
+
414
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient, array( 'customer_note' => $note ) );
415
+
416
+    }
417
+
418
+    /**
419
+     * (Force) Sends overdue notices.
420
+     *
421
+     * @param WPInv_Invoice $invoice
422
+     */
423
+    public function force_send_overdue_notice( $invoice ) {
424
+        $email = new GetPaid_Notification_Email( 'overdue', $invoice );
425
+        return $this->send_email( $invoice, $email, 'overdue', $invoice->get_email() );
426
+    }
427
+
428
+    /**
429
+     * Sends overdue notices.
430
+     *
431
+     * @TODO: Create an invoices query class.
432
+     */
433
+    public function overdue() {
434
+        global $wpdb;
435
+
436
+        $email = new GetPaid_Notification_Email( __FUNCTION__ );
437
+
438
+        // Fetch reminder days.
439
+        $reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
440
+
441
+        // Abort if non is set.
442
+        if ( empty( $reminder_days ) ) {
443
+            return;
444
+        }
445
+
446
+        // Retrieve date query.
447
+        $date_query = $this->get_date_query( $reminder_days );
448
+
449
+        // Invoices table.
450
+        $table = $wpdb->prefix . 'getpaid_invoices';
451
+
452
+        // Fetch invoices.
453
+        $invoices  = $wpdb->get_col(
454
+            "SELECT posts.ID FROM $wpdb->posts as posts
455 455
 			LEFT JOIN $table as invoices ON invoices.post_id = posts.ID
456 456
 			WHERE posts.post_type = 'wpi_invoice' AND posts.post_status = 'wpi-pending' $date_query"
457 457
         );
458 458
 
459
-		foreach ( $invoices as $invoice ) {
459
+        foreach ( $invoices as $invoice ) {
460 460
 
461
-			// Only send this email for invoices created via the admin page.
462
-			if ( ! $this->is_payment_form_invoice( $invoice ) ) {
463
-				$invoice       = new WPInv_Invoice( $invoice );
464
-				$email->object = $invoice;
461
+            // Only send this email for invoices created via the admin page.
462
+            if ( ! $this->is_payment_form_invoice( $invoice ) ) {
463
+                $invoice       = new WPInv_Invoice( $invoice );
464
+                $email->object = $invoice;
465 465
 
466
-				if ( $invoice->needs_payment() && ! $invoice->is_renewal() ) {
467
-					$this->send_email( $invoice, $email, __FUNCTION__, $invoice->get_email() );
468
-				}
469
-			}
470
-		}
466
+                if ( $invoice->needs_payment() && ! $invoice->is_renewal() ) {
467
+                    $this->send_email( $invoice, $email, __FUNCTION__, $invoice->get_email() );
468
+                }
469
+            }
470
+        }
471 471
 
472
-	}
472
+    }
473 473
 
474
-	/**
475
-	 * Calculates the date query for an invoices query
476
-	 *
477
-	 * @param array $reminder_days
478
-	 * @return string
479
-	 */
480
-	public function get_date_query( $reminder_days ) {
474
+    /**
475
+     * Calculates the date query for an invoices query
476
+     *
477
+     * @param array $reminder_days
478
+     * @return string
479
+     */
480
+    public function get_date_query( $reminder_days ) {
481 481
 
482
-		$date_query = array(
483
-			'relation' => 'OR',
484
-		);
482
+        $date_query = array(
483
+            'relation' => 'OR',
484
+        );
485 485
 
486
-		foreach ( $reminder_days as $days ) {
487
-			$date = date_parse( date( 'Y-m-d', strtotime( "-$days days", current_time( 'timestamp' ) ) ) );
486
+        foreach ( $reminder_days as $days ) {
487
+            $date = date_parse( date( 'Y-m-d', strtotime( "-$days days", current_time( 'timestamp' ) ) ) );
488 488
 
489
-			$date_query[] = array(
490
-				'year'  => $date['year'],
491
-				'month' => $date['month'],
492
-				'day'   => $date['day'],
493
-			);
489
+            $date_query[] = array(
490
+                'year'  => $date['year'],
491
+                'month' => $date['month'],
492
+                'day'   => $date['day'],
493
+            );
494 494
 
495
-		}
495
+        }
496 496
 
497
-		$date_query = new WP_Date_Query( $date_query, 'invoices.due_date' );
497
+        $date_query = new WP_Date_Query( $date_query, 'invoices.due_date' );
498 498
 
499
-		return $date_query->get_sql();
499
+        return $date_query->get_sql();
500 500
 
501
-	}
501
+    }
502 502
 
503 503
 }
Please login to merge, or discard this patch.
Spacing   +128 added lines, -128 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',
@@ -41,7 +41,7 @@  discard block
 block discarded – undo
41 41
 			)
42 42
 		);
43 43
 
44
-		add_action( 'init', array( $this, 'init_hooks' ) );
44
+		add_action('init', array($this, 'init_hooks'));
45 45
 	}
46 46
 
47 47
 	/**
@@ -49,11 +49,11 @@  discard block
 block discarded – undo
49 49
 	 */
50 50
 	public function init_hooks() {
51 51
 
52
-		add_filter( 'getpaid_get_email_merge_tags', array( $this, 'invoice_merge_tags' ), 10, 2 );
53
-		add_filter( 'getpaid_invoice_email_recipients', array( $this, 'filter_email_recipients' ), 10, 2 );
52
+		add_filter('getpaid_get_email_merge_tags', array($this, 'invoice_merge_tags'), 10, 2);
53
+		add_filter('getpaid_invoice_email_recipients', array($this, 'filter_email_recipients'), 10, 2);
54 54
 
55
-		foreach ( $this->invoice_actions as $hook => $email_type ) {
56
-			$this->init_email_type_hook( $hook, $email_type );
55
+		foreach ($this->invoice_actions as $hook => $email_type) {
56
+			$this->init_email_type_hook($hook, $email_type);
57 57
 		}
58 58
 	}
59 59
 
@@ -63,25 +63,25 @@  discard block
 block discarded – undo
63 63
 	 * @param string $hook
64 64
 	 * @param string|array $email_type
65 65
 	 */
66
-	public function init_email_type_hook( $hook, $email_type ) {
66
+	public function init_email_type_hook($hook, $email_type) {
67 67
 
68
-		$email_type = wpinv_parse_list( $email_type );
68
+		$email_type = wpinv_parse_list($email_type);
69 69
 
70
-		foreach ( $email_type as $type ) {
70
+		foreach ($email_type as $type) {
71 71
 
72
-			$email = new GetPaid_Notification_Email( $type );
72
+			$email = new GetPaid_Notification_Email($type);
73 73
 
74 74
 			// Abort if it is not active.
75
-			if ( ! $email->is_active() ) {
75
+			if (!$email->is_active()) {
76 76
 				continue;
77 77
 			}
78 78
 
79
-			if ( method_exists( $this, $type ) ) {
80
-				add_action( $hook, array( $this, $type ), 100, 2 );
79
+			if (method_exists($this, $type)) {
80
+				add_action($hook, array($this, $type), 100, 2);
81 81
 				continue;
82 82
 			}
83 83
 
84
-			do_action( 'getpaid_invoice_init_email_type_hook', $type, $hook );
84
+			do_action('getpaid_invoice_init_email_type_hook', $type, $hook);
85 85
 		}
86 86
 
87 87
 	}
@@ -92,19 +92,19 @@  discard block
 block discarded – undo
92 92
 	 * @param array $merge_tags
93 93
 	 * @param mixed|WPInv_Invoice|WPInv_Subscription $object
94 94
 	 */
95
-	public function invoice_merge_tags( $merge_tags, $object ) {
95
+	public function invoice_merge_tags($merge_tags, $object) {
96 96
 
97
-		if ( is_a( $object, 'WPInv_Invoice' ) ) {
97
+		if (is_a($object, 'WPInv_Invoice')) {
98 98
 			return array_merge(
99 99
 				$merge_tags,
100
-				$this->get_invoice_merge_tags( $object )
100
+				$this->get_invoice_merge_tags($object)
101 101
 			);
102 102
 		}
103 103
 
104
-		if ( is_a( $object, 'WPInv_Subscription' ) ) {
104
+		if (is_a($object, 'WPInv_Subscription')) {
105 105
 			return array_merge(
106 106
 				$merge_tags,
107
-				$this->get_invoice_merge_tags( $object->get_parent_payment() )
107
+				$this->get_invoice_merge_tags($object->get_parent_payment())
108 108
 			);
109 109
 		}
110 110
 
@@ -118,52 +118,52 @@  discard block
 block discarded – undo
118 118
 	 * @param WPInv_Invoice $invoice
119 119
 	 * @return array
120 120
 	 */
121
-	public function get_invoice_merge_tags( $invoice ) {
121
+	public function get_invoice_merge_tags($invoice) {
122 122
 
123 123
 		// Abort if it does not exist.
124
-		if ( ! $invoice->get_id() ) {
124
+		if (!$invoice->get_id()) {
125 125
 			return array();
126 126
 		}
127 127
 
128 128
 		$due_date   = $invoice->get_due_date();
129
-		$due_date   = empty( $due_date ) ? time() + MINUTE_IN_SECONDS : strtotime( $due_date ) + ( (int) get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
129
+		$due_date   = empty($due_date) ? time() + MINUTE_IN_SECONDS : strtotime($due_date) + ((int) get_option('gmt_offset') * HOUR_IN_SECONDS);
130 130
 		$merge_tags = array(
131
-			'{name}'                 => sanitize_text_field( $invoice->get_user_full_name() ),
132
-			'{full_name}'            => sanitize_text_field( $invoice->get_user_full_name() ),
133
-			'{first_name}'           => sanitize_text_field( $invoice->get_first_name() ),
134
-			'{last_name}'            => sanitize_text_field( $invoice->get_last_name() ),
135
-			'{email}'                => sanitize_email( $invoice->get_email() ),
136
-			'{invoice_number}'       => sanitize_text_field( $invoice->get_number() ),
137
-			'{invoice_currency}'     => sanitize_text_field( $invoice->get_currency() ),
138
-			'{invoice_total}'        => sanitize_text_field( wpinv_price( $invoice->get_total(), $invoice->get_currency() ) ),
139
-			'{invoice_link}'         => esc_url( $invoice->get_view_url() ),
140
-			'{invoice_pay_link}'     => esc_url( $invoice->get_checkout_payment_url() ),
141
-			'{invoice_receipt_link}' => esc_url( $invoice->get_receipt_url() ),
142
-			'{invoice_date}'         => getpaid_format_date_value( $invoice->get_date_created() ),
143
-			'{invoice_due_date}'     => getpaid_format_date_value( $invoice->get_due_date(), __( 'on receipt', 'invoicing' ) ),
144
-			'{invoice_quote}'        => sanitize_text_field( strtolower( $invoice->get_label() ) ),
145
-			'{invoice_label}'        => sanitize_text_field( ucfirst( $invoice->get_label() ) ),
146
-			'{invoice_description}'  => wp_kses_post( $invoice->get_description() ),
147
-			'{subscription_name}'    => wp_kses_post( $invoice->get_subscription_name() ),
148
-			'{is_was}'               => $due_date < time() ? __( 'was', 'invoicing' ) : __( 'is', 'invoicing' ),
131
+			'{name}'                 => sanitize_text_field($invoice->get_user_full_name()),
132
+			'{full_name}'            => sanitize_text_field($invoice->get_user_full_name()),
133
+			'{first_name}'           => sanitize_text_field($invoice->get_first_name()),
134
+			'{last_name}'            => sanitize_text_field($invoice->get_last_name()),
135
+			'{email}'                => sanitize_email($invoice->get_email()),
136
+			'{invoice_number}'       => sanitize_text_field($invoice->get_number()),
137
+			'{invoice_currency}'     => sanitize_text_field($invoice->get_currency()),
138
+			'{invoice_total}'        => sanitize_text_field(wpinv_price($invoice->get_total(), $invoice->get_currency())),
139
+			'{invoice_link}'         => esc_url($invoice->get_view_url()),
140
+			'{invoice_pay_link}'     => esc_url($invoice->get_checkout_payment_url()),
141
+			'{invoice_receipt_link}' => esc_url($invoice->get_receipt_url()),
142
+			'{invoice_date}'         => getpaid_format_date_value($invoice->get_date_created()),
143
+			'{invoice_due_date}'     => getpaid_format_date_value($invoice->get_due_date(), __('on receipt', 'invoicing')),
144
+			'{invoice_quote}'        => sanitize_text_field(strtolower($invoice->get_label())),
145
+			'{invoice_label}'        => sanitize_text_field(ucfirst($invoice->get_label())),
146
+			'{invoice_description}'  => wp_kses_post($invoice->get_description()),
147
+			'{subscription_name}'    => wp_kses_post($invoice->get_subscription_name()),
148
+			'{is_was}'               => $due_date < time() ? __('was', 'invoicing') : __('is', 'invoicing'),
149 149
 		);
150 150
 
151
-		$payment_form_data = $invoice->get_meta( 'payment_form_data', true );
151
+		$payment_form_data = $invoice->get_meta('payment_form_data', true);
152 152
 
153
-		if ( is_array( $payment_form_data ) ) {
153
+		if (is_array($payment_form_data)) {
154 154
 
155
-			foreach ( $payment_form_data as $label => $value ) {
155
+			foreach ($payment_form_data as $label => $value) {
156 156
 
157
-				$label = preg_replace( '/[^a-z0-9]+/', '_', strtolower( $label ) );
158
-				$value = is_array( $value ) ? implode( ', ', $value ) : $value;
157
+				$label = preg_replace('/[^a-z0-9]+/', '_', strtolower($label));
158
+				$value = is_array($value) ? implode(', ', $value) : $value;
159 159
 
160
-				if ( is_scalar( $value ) ) {
161
-					$merge_tags[ "{{$label}}" ] = wp_kses_post( $value );
160
+				if (is_scalar($value)) {
161
+					$merge_tags["{{$label}}"] = wp_kses_post($value);
162 162
 				}
163 163
 			}
164 164
 		}
165 165
 
166
-		return apply_filters( 'getpaid_invoice_email_merge_tags', $merge_tags, $invoice );
166
+		return apply_filters('getpaid_invoice_email_merge_tags', $merge_tags, $invoice);
167 167
 	}
168 168
 
169 169
 	/**
@@ -175,12 +175,12 @@  discard block
 block discarded – undo
175 175
 	 * @param string|array $recipients
176 176
 	 * @param array $extra_args Extra template args.
177 177
 	 */
178
-	public function send_email( $invoice, $email, $type, $recipients, $extra_args = array() ) {
178
+	public function send_email($invoice, $email, $type, $recipients, $extra_args = array()) {
179 179
 
180
-		do_action( 'getpaid_before_send_invoice_notification', $type, $invoice, $email );
180
+		do_action('getpaid_before_send_invoice_notification', $type, $invoice, $email);
181 181
 
182
-		$skip = $invoice->is_free() && wpinv_get_option( 'skip_email_free_invoice' );
183
-		if ( apply_filters( 'getpaid_skip_invoice_email', $skip, $type, $invoice ) ) {
182
+		$skip = $invoice->is_free() && wpinv_get_option('skip_email_free_invoice');
183
+		if (apply_filters('getpaid_skip_invoice_email', $skip, $type, $invoice)) {
184 184
 			return;
185 185
 		}
186 186
 
@@ -188,43 +188,43 @@  discard block
 block discarded – undo
188 188
 		$merge_tags = $email->get_merge_tags();
189 189
 
190 190
 		$result = $mailer->send(
191
-			apply_filters( 'getpaid_invoice_email_recipients', wpinv_parse_list( $recipients ), $email ),
192
-			$email->add_merge_tags( $email->get_subject(), $merge_tags ),
193
-			$email->get_content( $merge_tags, $extra_args ),
191
+			apply_filters('getpaid_invoice_email_recipients', wpinv_parse_list($recipients), $email),
192
+			$email->add_merge_tags($email->get_subject(), $merge_tags),
193
+			$email->get_content($merge_tags, $extra_args),
194 194
 			$email->get_attachments()
195 195
 		);
196 196
 
197 197
 		// Maybe send a copy to the admin.
198
-		if ( $email->include_admin_bcc() ) {
198
+		if ($email->include_admin_bcc()) {
199 199
 			$mailer->send(
200 200
 				wpinv_get_admin_email(),
201
-				$email->add_merge_tags( $email->get_subject() . __( ' - ADMIN BCC COPY', 'invoicing' ), $merge_tags ),
202
-				$email->get_content( $merge_tags ),
201
+				$email->add_merge_tags($email->get_subject() . __(' - ADMIN BCC COPY', 'invoicing'), $merge_tags),
202
+				$email->get_content($merge_tags),
203 203
 				$email->get_attachments()
204 204
 			);
205 205
 		}
206 206
 
207
-		if ( $result ) {
207
+		if ($result) {
208 208
 			$invoice->add_system_note(
209 209
 				sprintf(
210 210
 					// translators: %1 is the email type, %2 is the invoice recipient.
211
-					__( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ),
212
-					sanitize_key( $type ),
213
-					$email->is_admin_email() ? __( 'admin', 'invoicing' ) : __( 'the customer', 'invoicing' )
211
+					__('Successfully sent %1$s notification email to %2$s.', 'invoicing'),
212
+					sanitize_key($type),
213
+					$email->is_admin_email() ? __('admin', 'invoicing') : __('the customer', 'invoicing')
214 214
 				)
215 215
 			);
216 216
 		} else {
217 217
 			$invoice->add_system_note(
218 218
 				sprintf(
219 219
 					// translators: %1 is the email type, %2 is the invoice recipient.
220
-					__( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ),
221
-					sanitize_key( $type ),
222
-					$email->is_admin_email() ? __( 'admin', 'invoicing' ) : __( 'the customer', 'invoicing' )
220
+					__('Failed sending %1$s notification email to %2$s.', 'invoicing'),
221
+					sanitize_key($type),
222
+					$email->is_admin_email() ? __('admin', 'invoicing') : __('the customer', 'invoicing')
223 223
 				)
224 224
 			);
225 225
 		}
226 226
 
227
-		do_action( 'getpaid_after_send_invoice_notification', $type, $invoice, $email );
227
+		do_action('getpaid_after_send_invoice_notification', $type, $invoice, $email);
228 228
 
229 229
 		return $result;
230 230
 	}
@@ -235,20 +235,20 @@  discard block
 block discarded – undo
235 235
 	 * @param array $recipients
236 236
 	 * @param GetPaid_Notification_Email $email
237 237
 	 */
238
-	public function filter_email_recipients( $recipients, $email ) {
238
+	public function filter_email_recipients($recipients, $email) {
239 239
 
240
-		if ( ! $email->is_admin_email() ) {
240
+		if (!$email->is_admin_email()) {
241 241
 			$cc   = $email->object->get_email_cc();
242
-			$cc_2 = get_user_meta( $email->object->get_user_id(), '_wpinv_email_cc', true );
242
+			$cc_2 = get_user_meta($email->object->get_user_id(), '_wpinv_email_cc', true);
243 243
 
244
-			if ( ! empty( $cc ) ) {
245
-				$cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) );
246
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) );
244
+			if (!empty($cc)) {
245
+				$cc = array_map('sanitize_email', wpinv_parse_list($cc));
246
+				$recipients = array_filter(array_unique(array_merge($recipients, $cc)));
247 247
 			}
248 248
 
249
-			if ( ! empty( $cc_2 ) ) {
250
-				$cc_2 = array_map( 'sanitize_email', wpinv_parse_list( $cc_2 ) );
251
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc_2 ) ) );
249
+			if (!empty($cc_2)) {
250
+				$cc_2 = array_map('sanitize_email', wpinv_parse_list($cc_2));
251
+				$recipients = array_filter(array_unique(array_merge($recipients, $cc_2)));
252 252
 			}
253 253
 		}
254 254
 
@@ -261,17 +261,17 @@  discard block
 block discarded – undo
261 261
 	 *
262 262
 	 * @param WPInv_Invoice $invoice
263 263
 	 */
264
-	public function new_invoice( $invoice ) {
264
+	public function new_invoice($invoice) {
265 265
 
266 266
 		// Only send this email for invoices created via the admin page.
267
-		if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_paid() || $this->is_payment_form_invoice( $invoice->get_id() ) ) {
267
+		if (!$invoice->is_type('invoice') || $invoice->is_paid() || $this->is_payment_form_invoice($invoice->get_id())) {
268 268
 			return;
269 269
 		}
270 270
 
271
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
271
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
272 272
 		$recipient = wpinv_get_admin_email();
273 273
 
274
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
274
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
275 275
 
276 276
 	}
277 277
 
@@ -280,12 +280,12 @@  discard block
 block discarded – undo
280 280
 	 *
281 281
 	 * @param WPInv_Invoice $invoice
282 282
 	 */
283
-	public function cancelled_invoice( $invoice ) {
283
+	public function cancelled_invoice($invoice) {
284 284
 
285
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
285
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
286 286
 		$recipient = $invoice->get_email();
287 287
 
288
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
288
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
289 289
 	}
290 290
 
291 291
 	/**
@@ -293,12 +293,12 @@  discard block
 block discarded – undo
293 293
 	 *
294 294
 	 * @param WPInv_Invoice $invoice
295 295
 	 */
296
-	public function failed_invoice( $invoice ) {
296
+	public function failed_invoice($invoice) {
297 297
 
298
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
298
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
299 299
 		$recipient = wpinv_get_admin_email();
300 300
 
301
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
301
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
302 302
 
303 303
 	}
304 304
 
@@ -307,12 +307,12 @@  discard block
 block discarded – undo
307 307
 	 *
308 308
 	 * @param WPInv_Invoice $invoice
309 309
 	 */
310
-	public function onhold_invoice( $invoice ) {
310
+	public function onhold_invoice($invoice) {
311 311
 
312
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
312
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
313 313
 		$recipient = $invoice->get_email();
314 314
 
315
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
315
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
316 316
 
317 317
 	}
318 318
 
@@ -321,12 +321,12 @@  discard block
 block discarded – undo
321 321
 	 *
322 322
 	 * @param WPInv_Invoice $invoice
323 323
 	 */
324
-	public function processing_invoice( $invoice ) {
324
+	public function processing_invoice($invoice) {
325 325
 
326
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
326
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
327 327
 		$recipient = $invoice->get_email();
328 328
 
329
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
329
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
330 330
 
331 331
 	}
332 332
 
@@ -335,17 +335,17 @@  discard block
 block discarded – undo
335 335
 	 *
336 336
 	 * @param WPInv_Invoice $invoice
337 337
 	 */
338
-	public function completed_invoice( $invoice ) {
338
+	public function completed_invoice($invoice) {
339 339
 
340 340
 		// (Maybe) abort if it is a renewal invoice.
341
-		if ( $invoice->is_renewal() && ! wpinv_get_option( 'email_completed_invoice_renewal_active', false ) ) {
341
+		if ($invoice->is_renewal() && !wpinv_get_option('email_completed_invoice_renewal_active', false)) {
342 342
 			return;
343 343
 		}
344 344
 
345
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
345
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
346 346
 		$recipient = $invoice->get_email();
347 347
 
348
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
348
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
349 349
 
350 350
 	}
351 351
 
@@ -354,12 +354,12 @@  discard block
 block discarded – undo
354 354
 	 *
355 355
 	 * @param WPInv_Invoice $invoice
356 356
 	 */
357
-	public function refunded_invoice( $invoice ) {
357
+	public function refunded_invoice($invoice) {
358 358
 
359
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
359
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
360 360
 		$recipient = $invoice->get_email();
361 361
 
362
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
362
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
363 363
 
364 364
 	}
365 365
 
@@ -369,21 +369,21 @@  discard block
 block discarded – undo
369 369
 	 * @param WPInv_Invoice $invoice
370 370
 	 * @param bool $force
371 371
 	 */
372
-	public function user_invoice( $invoice, $force = false ) {
372
+	public function user_invoice($invoice, $force = false) {
373 373
 
374
-		if ( ! $force && ! empty( $GLOBALS['wpinv_skip_invoice_notification'] ) ) {
374
+		if (!$force && !empty($GLOBALS['wpinv_skip_invoice_notification'])) {
375 375
 			return;
376 376
 		}
377 377
 
378 378
 		// Only send this email for invoices created via the admin page.
379
-		if ( ! $invoice->is_type( 'invoice' ) || ( empty( $force ) && $invoice->is_paid() ) || ( empty( $force ) && $this->is_payment_form_invoice( $invoice->get_id() ) ) ) {
379
+		if (!$invoice->is_type('invoice') || (empty($force) && $invoice->is_paid()) || (empty($force) && $this->is_payment_form_invoice($invoice->get_id()))) {
380 380
 			return;
381 381
 		}
382 382
 
383
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
383
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
384 384
 		$recipient = $invoice->get_email();
385 385
 
386
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
386
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
387 387
 
388 388
 	}
389 389
 
@@ -393,11 +393,11 @@  discard block
 block discarded – undo
393 393
 	 * @param int $invoice
394 394
 	 * @return bool
395 395
 	 */
396
-	public function is_payment_form_invoice( $invoice ) {
397
-		$created_via             = get_post_meta( $invoice, 'wpinv_created_via', true );
396
+	public function is_payment_form_invoice($invoice) {
397
+		$created_via             = get_post_meta($invoice, 'wpinv_created_via', true);
398 398
 		$is_payment_form_invoice = 'payment_form' === $created_via || 'geodirectory' === $created_via;
399
-		$is_payment_form_invoice = apply_filters( 'getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice );
400
-		return empty( $_GET['getpaid-admin-action'] ) && $is_payment_form_invoice;
399
+		$is_payment_form_invoice = apply_filters('getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice);
400
+		return empty($_GET['getpaid-admin-action']) && $is_payment_form_invoice;
401 401
 	}
402 402
 
403 403
 	/**
@@ -406,12 +406,12 @@  discard block
 block discarded – undo
406 406
 	 * @param WPInv_Invoice $invoice
407 407
 	 * @param string $note
408 408
 	 */
409
-	public function user_note( $invoice, $note ) {
409
+	public function user_note($invoice, $note) {
410 410
 
411
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
411
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
412 412
 		$recipient = $invoice->get_email();
413 413
 
414
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient, array( 'customer_note' => $note ) );
414
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient, array('customer_note' => $note));
415 415
 
416 416
 	}
417 417
 
@@ -420,9 +420,9 @@  discard block
 block discarded – undo
420 420
 	 *
421 421
 	 * @param WPInv_Invoice $invoice
422 422
 	 */
423
-	public function force_send_overdue_notice( $invoice ) {
424
-		$email = new GetPaid_Notification_Email( 'overdue', $invoice );
425
-		return $this->send_email( $invoice, $email, 'overdue', $invoice->get_email() );
423
+	public function force_send_overdue_notice($invoice) {
424
+		$email = new GetPaid_Notification_Email('overdue', $invoice);
425
+		return $this->send_email($invoice, $email, 'overdue', $invoice->get_email());
426 426
 	}
427 427
 
428 428
 	/**
@@ -433,38 +433,38 @@  discard block
 block discarded – undo
433 433
 	public function overdue() {
434 434
 		global $wpdb;
435 435
 
436
-		$email = new GetPaid_Notification_Email( __FUNCTION__ );
436
+		$email = new GetPaid_Notification_Email(__FUNCTION__);
437 437
 
438 438
 		// Fetch reminder days.
439
-		$reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
439
+		$reminder_days = array_unique(wp_parse_id_list($email->get_option('days')));
440 440
 
441 441
 		// Abort if non is set.
442
-		if ( empty( $reminder_days ) ) {
442
+		if (empty($reminder_days)) {
443 443
 			return;
444 444
 		}
445 445
 
446 446
 		// Retrieve date query.
447
-		$date_query = $this->get_date_query( $reminder_days );
447
+		$date_query = $this->get_date_query($reminder_days);
448 448
 
449 449
 		// Invoices table.
450 450
 		$table = $wpdb->prefix . 'getpaid_invoices';
451 451
 
452 452
 		// Fetch invoices.
453
-		$invoices  = $wpdb->get_col(
453
+		$invoices = $wpdb->get_col(
454 454
 			"SELECT posts.ID FROM $wpdb->posts as posts
455 455
 			LEFT JOIN $table as invoices ON invoices.post_id = posts.ID
456 456
 			WHERE posts.post_type = 'wpi_invoice' AND posts.post_status = 'wpi-pending' $date_query"
457 457
         );
458 458
 
459
-		foreach ( $invoices as $invoice ) {
459
+		foreach ($invoices as $invoice) {
460 460
 
461 461
 			// Only send this email for invoices created via the admin page.
462
-			if ( ! $this->is_payment_form_invoice( $invoice ) ) {
463
-				$invoice       = new WPInv_Invoice( $invoice );
462
+			if (!$this->is_payment_form_invoice($invoice)) {
463
+				$invoice       = new WPInv_Invoice($invoice);
464 464
 				$email->object = $invoice;
465 465
 
466
-				if ( $invoice->needs_payment() && ! $invoice->is_renewal() ) {
467
-					$this->send_email( $invoice, $email, __FUNCTION__, $invoice->get_email() );
466
+				if ($invoice->needs_payment() && !$invoice->is_renewal()) {
467
+					$this->send_email($invoice, $email, __FUNCTION__, $invoice->get_email());
468 468
 				}
469 469
 			}
470 470
 		}
@@ -477,14 +477,14 @@  discard block
 block discarded – undo
477 477
 	 * @param array $reminder_days
478 478
 	 * @return string
479 479
 	 */
480
-	public function get_date_query( $reminder_days ) {
480
+	public function get_date_query($reminder_days) {
481 481
 
482 482
 		$date_query = array(
483 483
 			'relation' => 'OR',
484 484
 		);
485 485
 
486
-		foreach ( $reminder_days as $days ) {
487
-			$date = date_parse( date( 'Y-m-d', strtotime( "-$days days", current_time( 'timestamp' ) ) ) );
486
+		foreach ($reminder_days as $days) {
487
+			$date = date_parse(date('Y-m-d', strtotime("-$days days", current_time('timestamp'))));
488 488
 
489 489
 			$date_query[] = array(
490 490
 				'year'  => $date['year'],
@@ -494,7 +494,7 @@  discard block
 block discarded – undo
494 494
 
495 495
 		}
496 496
 
497
-		$date_query = new WP_Date_Query( $date_query, 'invoices.due_date' );
497
+		$date_query = new WP_Date_Query($date_query, 'invoices.due_date');
498 498
 
499 499
 		return $date_query->get_sql();
500 500
 
Please login to merge, or discard this patch.
includes/class-getpaid-subscription-notification-emails.php 2 patches
Indentation   +284 added lines, -284 removed lines patch added patch discarded remove patch
@@ -13,324 +13,324 @@
 block discarded – undo
13 13
 class GetPaid_Subscription_Notification_Emails {
14 14
 
15 15
     /**
16
-	 * The array of subscription email actions.
17
-	 *
18
-	 * @param array
19
-	 */
20
-	public $subscription_actions;
16
+     * The array of subscription email actions.
17
+     *
18
+     * @param array
19
+     */
20
+    public $subscription_actions;
21 21
 
22 22
     /**
23
-	 * Class constructor
23
+     * Class constructor
24 24
      *
25
-	 */
26
-	public function __construct() {
27
-
28
-		$this->subscription_actions = apply_filters(
29
-			'getpaid_notification_email_subscription_triggers',
30
-			array(
31
-				'getpaid_subscription_active'    => 'subscription_active',
32
-				'getpaid_subscription_trialling' => 'subscription_trial',
33
-				'getpaid_subscription_cancelled' => 'subscription_cancelled',
34
-				'getpaid_subscription_expired'   => 'subscription_expired',
35
-				'getpaid_subscription_completed' => 'subscription_complete',
36
-				'getpaid_daily_maintenance'      => 'renewal_reminder'
37
-			)
38
-		);
39
-
40
-		add_action( 'init', array( $this, 'init_hooks' ) );
41
-	}
25
+     */
26
+    public function __construct() {
27
+
28
+        $this->subscription_actions = apply_filters(
29
+            'getpaid_notification_email_subscription_triggers',
30
+            array(
31
+                'getpaid_subscription_active'    => 'subscription_active',
32
+                'getpaid_subscription_trialling' => 'subscription_trial',
33
+                'getpaid_subscription_cancelled' => 'subscription_cancelled',
34
+                'getpaid_subscription_expired'   => 'subscription_expired',
35
+                'getpaid_subscription_completed' => 'subscription_complete',
36
+                'getpaid_daily_maintenance'      => 'renewal_reminder'
37
+            )
38
+        );
39
+
40
+        add_action( 'init', array( $this, 'init_hooks' ) );
41
+    }
42 42
 
43 43
     /**
44
-	 * Registers email hooks.
45
-	 */
46
-	public function init_hooks() {
47
-
48
-		add_filter( 'getpaid_get_email_merge_tags', array( $this, 'subscription_merge_tags' ), 10, 2 );
49
-		foreach ( $this->subscription_actions as $hook => $email_type ) {
50
-
51
-			$email = new GetPaid_Notification_Email( $email_type );
52
-
53
-			if ( ! $email->is_active() ) {
54
-				continue;
55
-			}
56
-
57
-			if ( method_exists( $this, $email_type ) ) {
58
-				add_action( $hook, array( $this, $email_type ), 100, 2 );
59
-				continue;
60
-			}
61
-
62
-			do_action( 'getpaid_subscription_notification_email_register_hook', $email_type, $hook );
63
-
64
-		}
65
-
66
-	}
67
-
68
-	/**
69
-	 * Filters subscription merge tags.
70
-	 *
71
-	 * @param array $merge_tags
72
-	 * @param mixed|WPInv_Invoice|WPInv_Subscription $object
73
-	 */
74
-	public function subscription_merge_tags( $merge_tags, $object ) {
75
-
76
-		if ( is_a( $object, 'WPInv_Subscription' ) ) {
77
-			$merge_tags = array_merge(
78
-				$merge_tags,
79
-				$this->get_subscription_merge_tags( $object )
80
-			);
81
-		}
82
-
83
-		return $merge_tags;
84
-
85
-	}
86
-
87
-	/**
88
-	 * Generates subscription merge tags.
89
-	 *
90
-	 * @param WPInv_Subscription $subscription
91
-	 * @return array
92
-	 */
93
-	public function get_subscription_merge_tags( $subscription ) {
94
-
95
-		// Abort if it does not exist.
96
-		if ( ! $subscription->get_id() ) {
97
-			return array();
98
-		}
99
-
100
-		$invoice    = $subscription->get_parent_invoice();
101
-		return array(
102
-			'{subscription_renewal_date}'     => getpaid_format_date_value( $subscription->get_next_renewal_date(), __( 'Never', 'invoicing' ) ),
103
-			'{subscription_created}'          => getpaid_format_date_value( $subscription->get_date_created() ),
104
-			'{subscription_status}'           => sanitize_text_field( $subscription->get_status_label() ),
105
-			'{subscription_profile_id}'       => sanitize_text_field( $subscription->get_profile_id() ),
106
-			'{subscription_id}'               => absint( $subscription->get_id() ),
107
-			'{subscription_recurring_amount}' => sanitize_text_field( wpinv_price( $subscription->get_recurring_amount(), $invoice->get_currency() ) ),
108
-			'{subscription_initial_amount}'   => sanitize_text_field( wpinv_price( $subscription->get_initial_amount(), $invoice->get_currency() ) ),
109
-			'{subscription_recurring_period}' => getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ),
110
-			'{subscription_bill_times}'       => $subscription->get_bill_times(),
111
-			'{subscription_url}'              => esc_url( $subscription->get_view_url() ),
112
-		);
113
-
114
-	}
115
-
116
-	/**
117
-	 * Checks if we should send a notification for a subscription.
118
-	 *
119
-	 * @param WPInv_Invoice $invoice
120
-	 * @return bool
121
-	 */
122
-	public function should_send_notification( $invoice ) {
123
-		return 0 != $invoice->get_id();
124
-	}
125
-
126
-	/**
127
-	 * Returns notification recipients.
128
-	 *
129
-	 * @param WPInv_Invoice $invoice
130
-	 * @return array
131
-	 */
132
-	public function get_recipients( $invoice ) {
133
-		$recipients = array( $invoice->get_email() );
134
-
135
-		$cc = $invoice->get_email_cc();
136
-
137
-		if ( ! empty( $cc ) ) {
138
-			$cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) );
139
-			$recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) );
140
-		}
141
-
142
-		return $recipients;
143
-	}
144
-
145
-	/**
146
-	 * Helper function to send an email.
147
-	 *
148
-	 * @param WPInv_Subscription $subscription
149
-	 * @param GetPaid_Notification_Email $email
150
-	 * @param string $type
151
-	 * @param array $extra_args Extra template args.
152
-	 */
153
-	public function send_email( $subscription, $email, $type, $extra_args = array() ) {
154
-
155
-		if ( empty( $subscription ) ) {
156
-			return;
157
-		}
158
-
159
-		if ( is_array( $subscription ) ) {
160
-			$subscription = current( $subscription );
161
-		}
162
-
163
-		if ( ! $subscription instanceof WPInv_Subscription ) {
164
-			return;
165
-		}
166
-
167
-		// Abort in case the parent invoice does not exist.
168
-		$invoice = $subscription->get_parent_invoice();
169
-		if ( ! $this->should_send_notification( $invoice ) ) {
170
-			return;
171
-		}
172
-
173
-		if ( apply_filters( 'getpaid_skip_subscription_email', false, $type, $subscription ) ) {
174
-			return;
175
-		}
176
-
177
-		do_action( 'getpaid_before_send_subscription_notification', $type, $subscription, $email );
178
-
179
-		$recipients  = $this->get_recipients( $invoice );
180
-		$mailer      = new GetPaid_Notification_Email_Sender();
181
-		$merge_tags  = $email->get_merge_tags();
182
-		$content     = $email->get_content( $merge_tags, $extra_args );
183
-		$subject     = $email->add_merge_tags( $email->get_subject(), $merge_tags );
184
-		$attachments = $email->get_attachments();
185
-
186
-		$result = $mailer->send(
187
-			apply_filters( 'getpaid_subscription_email_recipients', wpinv_parse_list( $recipients ), $email ),
188
-			$subject,
189
-			$content,
190
-			$attachments
191
-		);
192
-
193
-		// Maybe send a copy to the admin.
194
-		if ( $email->include_admin_bcc() ) {
195
-			$mailer->send(
196
-				wpinv_get_admin_email(),
197
-				$subject . __( ' - ADMIN BCC COPY', 'invoicing' ),
198
-				$content,
199
-				$attachments
200
-			);
201
-		}
202
-
203
-		if ( $result ) {
204
-			$invoice->add_system_note(
205
-				sprintf(
206
-					__( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ),
207
-					sanitize_key( $type ),
208
-					$email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
209
-				)
210
-			);
211
-		} else {
212
-			$invoice->add_system_note(
213
-				sprintf(
214
-					__( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ),
215
-					sanitize_key( $type ),
216
-					$email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
217
-				)
218
-			);
219
-		}
220
-
221
-		do_action( 'getpaid_after_send_subscription_notification', $type, $subscription, $email );
222
-
223
-	}
224
-
225
-	/**
226
-	 * Sends a subscription active.
227
-	 *
228
-	 * @since 2.8.4
229
-	 *
230
-	 * @param WPInv_Subscription $subscription
231
-	 */
232
-	public function subscription_active( $subscription ) {
233
-		$email = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
234
-
235
-		$this->send_email( $subscription, $email, __FUNCTION__ );
236
-	}
44
+     * Registers email hooks.
45
+     */
46
+    public function init_hooks() {
47
+
48
+        add_filter( 'getpaid_get_email_merge_tags', array( $this, 'subscription_merge_tags' ), 10, 2 );
49
+        foreach ( $this->subscription_actions as $hook => $email_type ) {
50
+
51
+            $email = new GetPaid_Notification_Email( $email_type );
52
+
53
+            if ( ! $email->is_active() ) {
54
+                continue;
55
+            }
56
+
57
+            if ( method_exists( $this, $email_type ) ) {
58
+                add_action( $hook, array( $this, $email_type ), 100, 2 );
59
+                continue;
60
+            }
61
+
62
+            do_action( 'getpaid_subscription_notification_email_register_hook', $email_type, $hook );
63
+
64
+        }
65
+
66
+    }
237 67
 
238 68
     /**
239
-	 * Sends a new trial notification.
240
-	 *
241
-	 * @param WPInv_Subscription $subscription
242
-	 */
243
-	public function subscription_trial( $subscription ) {
69
+     * Filters subscription merge tags.
70
+     *
71
+     * @param array $merge_tags
72
+     * @param mixed|WPInv_Invoice|WPInv_Subscription $object
73
+     */
74
+    public function subscription_merge_tags( $merge_tags, $object ) {
244 75
 
245
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
246
-		$this->send_email( $subscription, $email, __FUNCTION__ );
76
+        if ( is_a( $object, 'WPInv_Subscription' ) ) {
77
+            $merge_tags = array_merge(
78
+                $merge_tags,
79
+                $this->get_subscription_merge_tags( $object )
80
+            );
81
+        }
247 82
 
248
-	}
83
+        return $merge_tags;
249 84
 
250
-	/**
251
-	 * Sends a cancelled subscription notification.
252
-	 *
253
-	 * @param WPInv_Subscription $subscription
254
-	 */
255
-	public function subscription_cancelled( $subscription ) {
85
+    }
86
+
87
+    /**
88
+     * Generates subscription merge tags.
89
+     *
90
+     * @param WPInv_Subscription $subscription
91
+     * @return array
92
+     */
93
+    public function get_subscription_merge_tags( $subscription ) {
94
+
95
+        // Abort if it does not exist.
96
+        if ( ! $subscription->get_id() ) {
97
+            return array();
98
+        }
99
+
100
+        $invoice    = $subscription->get_parent_invoice();
101
+        return array(
102
+            '{subscription_renewal_date}'     => getpaid_format_date_value( $subscription->get_next_renewal_date(), __( 'Never', 'invoicing' ) ),
103
+            '{subscription_created}'          => getpaid_format_date_value( $subscription->get_date_created() ),
104
+            '{subscription_status}'           => sanitize_text_field( $subscription->get_status_label() ),
105
+            '{subscription_profile_id}'       => sanitize_text_field( $subscription->get_profile_id() ),
106
+            '{subscription_id}'               => absint( $subscription->get_id() ),
107
+            '{subscription_recurring_amount}' => sanitize_text_field( wpinv_price( $subscription->get_recurring_amount(), $invoice->get_currency() ) ),
108
+            '{subscription_initial_amount}'   => sanitize_text_field( wpinv_price( $subscription->get_initial_amount(), $invoice->get_currency() ) ),
109
+            '{subscription_recurring_period}' => getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ),
110
+            '{subscription_bill_times}'       => $subscription->get_bill_times(),
111
+            '{subscription_url}'              => esc_url( $subscription->get_view_url() ),
112
+        );
113
+
114
+    }
256 115
 
257
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
258
-		$this->send_email( $subscription, $email, __FUNCTION__ );
116
+    /**
117
+     * Checks if we should send a notification for a subscription.
118
+     *
119
+     * @param WPInv_Invoice $invoice
120
+     * @return bool
121
+     */
122
+    public function should_send_notification( $invoice ) {
123
+        return 0 != $invoice->get_id();
124
+    }
259 125
 
260
-	}
126
+    /**
127
+     * Returns notification recipients.
128
+     *
129
+     * @param WPInv_Invoice $invoice
130
+     * @return array
131
+     */
132
+    public function get_recipients( $invoice ) {
133
+        $recipients = array( $invoice->get_email() );
261 134
 
262
-	/**
263
-	 * Sends a subscription expired notification.
264
-	 *
265
-	 * @param WPInv_Subscription $subscription
266
-	 */
267
-	public function subscription_expired( $subscription ) {
135
+        $cc = $invoice->get_email_cc();
268 136
 
269
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
270
-		$this->send_email( $subscription, $email, __FUNCTION__ );
137
+        if ( ! empty( $cc ) ) {
138
+            $cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) );
139
+            $recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) );
140
+        }
271 141
 
272
-	}
142
+        return $recipients;
143
+    }
273 144
 
274
-	/**
275
-	 * Sends a completed subscription notification.
276
-	 *
277
-	 * @param WPInv_Subscription $subscription
278
-	 */
279
-	public function subscription_complete( $subscription ) {
145
+    /**
146
+     * Helper function to send an email.
147
+     *
148
+     * @param WPInv_Subscription $subscription
149
+     * @param GetPaid_Notification_Email $email
150
+     * @param string $type
151
+     * @param array $extra_args Extra template args.
152
+     */
153
+    public function send_email( $subscription, $email, $type, $extra_args = array() ) {
154
+
155
+        if ( empty( $subscription ) ) {
156
+            return;
157
+        }
158
+
159
+        if ( is_array( $subscription ) ) {
160
+            $subscription = current( $subscription );
161
+        }
162
+
163
+        if ( ! $subscription instanceof WPInv_Subscription ) {
164
+            return;
165
+        }
166
+
167
+        // Abort in case the parent invoice does not exist.
168
+        $invoice = $subscription->get_parent_invoice();
169
+        if ( ! $this->should_send_notification( $invoice ) ) {
170
+            return;
171
+        }
172
+
173
+        if ( apply_filters( 'getpaid_skip_subscription_email', false, $type, $subscription ) ) {
174
+            return;
175
+        }
176
+
177
+        do_action( 'getpaid_before_send_subscription_notification', $type, $subscription, $email );
178
+
179
+        $recipients  = $this->get_recipients( $invoice );
180
+        $mailer      = new GetPaid_Notification_Email_Sender();
181
+        $merge_tags  = $email->get_merge_tags();
182
+        $content     = $email->get_content( $merge_tags, $extra_args );
183
+        $subject     = $email->add_merge_tags( $email->get_subject(), $merge_tags );
184
+        $attachments = $email->get_attachments();
185
+
186
+        $result = $mailer->send(
187
+            apply_filters( 'getpaid_subscription_email_recipients', wpinv_parse_list( $recipients ), $email ),
188
+            $subject,
189
+            $content,
190
+            $attachments
191
+        );
192
+
193
+        // Maybe send a copy to the admin.
194
+        if ( $email->include_admin_bcc() ) {
195
+            $mailer->send(
196
+                wpinv_get_admin_email(),
197
+                $subject . __( ' - ADMIN BCC COPY', 'invoicing' ),
198
+                $content,
199
+                $attachments
200
+            );
201
+        }
202
+
203
+        if ( $result ) {
204
+            $invoice->add_system_note(
205
+                sprintf(
206
+                    __( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ),
207
+                    sanitize_key( $type ),
208
+                    $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
209
+                )
210
+            );
211
+        } else {
212
+            $invoice->add_system_note(
213
+                sprintf(
214
+                    __( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ),
215
+                    sanitize_key( $type ),
216
+                    $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
217
+                )
218
+            );
219
+        }
220
+
221
+        do_action( 'getpaid_after_send_subscription_notification', $type, $subscription, $email );
222
+
223
+    }
280 224
 
281
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
282
-		$this->send_email( $subscription, $email, __FUNCTION__ );
225
+    /**
226
+     * Sends a subscription active.
227
+     *
228
+     * @since 2.8.4
229
+     *
230
+     * @param WPInv_Subscription $subscription
231
+     */
232
+    public function subscription_active( $subscription ) {
233
+        $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
283 234
 
284
-	}
235
+        $this->send_email( $subscription, $email, __FUNCTION__ );
236
+    }
285 237
 
286
-	/**
287
-	 * Sends a subscription renewal reminder notification.
288
-	 *
289
-	 */
290
-	public function renewal_reminder() {
238
+    /**
239
+     * Sends a new trial notification.
240
+     *
241
+     * @param WPInv_Subscription $subscription
242
+     */
243
+    public function subscription_trial( $subscription ) {
244
+
245
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
246
+        $this->send_email( $subscription, $email, __FUNCTION__ );
247
+
248
+    }
249
+
250
+    /**
251
+     * Sends a cancelled subscription notification.
252
+     *
253
+     * @param WPInv_Subscription $subscription
254
+     */
255
+    public function subscription_cancelled( $subscription ) {
256
+
257
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
258
+        $this->send_email( $subscription, $email, __FUNCTION__ );
259
+
260
+    }
261
+
262
+    /**
263
+     * Sends a subscription expired notification.
264
+     *
265
+     * @param WPInv_Subscription $subscription
266
+     */
267
+    public function subscription_expired( $subscription ) {
268
+
269
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
270
+        $this->send_email( $subscription, $email, __FUNCTION__ );
271
+
272
+    }
273
+
274
+    /**
275
+     * Sends a completed subscription notification.
276
+     *
277
+     * @param WPInv_Subscription $subscription
278
+     */
279
+    public function subscription_complete( $subscription ) {
280
+
281
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
282
+        $this->send_email( $subscription, $email, __FUNCTION__ );
283
+
284
+    }
285
+
286
+    /**
287
+     * Sends a subscription renewal reminder notification.
288
+     *
289
+     */
290
+    public function renewal_reminder() {
291 291
 
292
-		$email = new GetPaid_Notification_Email( __FUNCTION__ );
292
+        $email = new GetPaid_Notification_Email( __FUNCTION__ );
293 293
 
294
-		// Fetch reminder days.
295
-		$reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
294
+        // Fetch reminder days.
295
+        $reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
296 296
 
297
-		// Abort if non is set.
298
-		if ( empty( $reminder_days ) ) {
299
-			return;
300
-		}
297
+        // Abort if non is set.
298
+        if ( empty( $reminder_days ) ) {
299
+            return;
300
+        }
301 301
 
302
-		// Fetch matching subscriptions.
302
+        // Fetch matching subscriptions.
303 303
         $args  = array(
304 304
             'number'             => -1,
305
-			'count_total'        => false,
306
-			'status'             => 'trialling active',
305
+            'count_total'        => false,
306
+            'status'             => 'trialling active',
307 307
             'date_expires_query' => array(
308
-				'relation' => 'OR',
308
+                'relation' => 'OR',
309 309
             ),
310
-		);
310
+        );
311 311
 
312
-		foreach ( $reminder_days as $days ) {
313
-			$date = date_parse( date( 'Y-m-d', strtotime( "+$days days", current_time( 'timestamp' ) ) ) );
312
+        foreach ( $reminder_days as $days ) {
313
+            $date = date_parse( date( 'Y-m-d', strtotime( "+$days days", current_time( 'timestamp' ) ) ) );
314 314
 
315
-			$args['date_expires_query'][] = array(
316
-				'year'  => $date['year'],
317
-				'month' => $date['month'],
318
-				'day'   => $date['day'],
319
-			);
315
+            $args['date_expires_query'][] = array(
316
+                'year'  => $date['year'],
317
+                'month' => $date['month'],
318
+                'day'   => $date['day'],
319
+            );
320 320
 
321
-		}
321
+        }
322 322
 
323
-		$subscriptions = new GetPaid_Subscriptions_Query( $args );
323
+        $subscriptions = new GetPaid_Subscriptions_Query( $args );
324 324
 
325 325
         foreach ( $subscriptions->get_results() as $subscription ) {
326 326
 
327
-			// Skip packages.
328
-			if ( apply_filters( 'getpaid_send_subscription_renewal_reminder_email', true ) ) {
329
-				$email->object = $subscription;
330
-            	$this->send_email( $subscription, $email, __FUNCTION__ );
331
-			}
332
-		}
327
+            // Skip packages.
328
+            if ( apply_filters( 'getpaid_send_subscription_renewal_reminder_email', true ) ) {
329
+                $email->object = $subscription;
330
+                $this->send_email( $subscription, $email, __FUNCTION__ );
331
+            }
332
+        }
333 333
 
334
-	}
334
+    }
335 335
 
336 336
 }
Please login to merge, or discard this patch.
Spacing   +77 added lines, -77 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 subscription notificaiton emails.
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
 			)
38 38
 		);
39 39
 
40
-		add_action( 'init', array( $this, 'init_hooks' ) );
40
+		add_action('init', array($this, 'init_hooks'));
41 41
 	}
42 42
 
43 43
     /**
@@ -45,21 +45,21 @@  discard block
 block discarded – undo
45 45
 	 */
46 46
 	public function init_hooks() {
47 47
 
48
-		add_filter( 'getpaid_get_email_merge_tags', array( $this, 'subscription_merge_tags' ), 10, 2 );
49
-		foreach ( $this->subscription_actions as $hook => $email_type ) {
48
+		add_filter('getpaid_get_email_merge_tags', array($this, 'subscription_merge_tags'), 10, 2);
49
+		foreach ($this->subscription_actions as $hook => $email_type) {
50 50
 
51
-			$email = new GetPaid_Notification_Email( $email_type );
51
+			$email = new GetPaid_Notification_Email($email_type);
52 52
 
53
-			if ( ! $email->is_active() ) {
53
+			if (!$email->is_active()) {
54 54
 				continue;
55 55
 			}
56 56
 
57
-			if ( method_exists( $this, $email_type ) ) {
58
-				add_action( $hook, array( $this, $email_type ), 100, 2 );
57
+			if (method_exists($this, $email_type)) {
58
+				add_action($hook, array($this, $email_type), 100, 2);
59 59
 				continue;
60 60
 			}
61 61
 
62
-			do_action( 'getpaid_subscription_notification_email_register_hook', $email_type, $hook );
62
+			do_action('getpaid_subscription_notification_email_register_hook', $email_type, $hook);
63 63
 
64 64
 		}
65 65
 
@@ -71,12 +71,12 @@  discard block
 block discarded – undo
71 71
 	 * @param array $merge_tags
72 72
 	 * @param mixed|WPInv_Invoice|WPInv_Subscription $object
73 73
 	 */
74
-	public function subscription_merge_tags( $merge_tags, $object ) {
74
+	public function subscription_merge_tags($merge_tags, $object) {
75 75
 
76
-		if ( is_a( $object, 'WPInv_Subscription' ) ) {
76
+		if (is_a($object, 'WPInv_Subscription')) {
77 77
 			$merge_tags = array_merge(
78 78
 				$merge_tags,
79
-				$this->get_subscription_merge_tags( $object )
79
+				$this->get_subscription_merge_tags($object)
80 80
 			);
81 81
 		}
82 82
 
@@ -90,25 +90,25 @@  discard block
 block discarded – undo
90 90
 	 * @param WPInv_Subscription $subscription
91 91
 	 * @return array
92 92
 	 */
93
-	public function get_subscription_merge_tags( $subscription ) {
93
+	public function get_subscription_merge_tags($subscription) {
94 94
 
95 95
 		// Abort if it does not exist.
96
-		if ( ! $subscription->get_id() ) {
96
+		if (!$subscription->get_id()) {
97 97
 			return array();
98 98
 		}
99 99
 
100
-		$invoice    = $subscription->get_parent_invoice();
100
+		$invoice = $subscription->get_parent_invoice();
101 101
 		return array(
102
-			'{subscription_renewal_date}'     => getpaid_format_date_value( $subscription->get_next_renewal_date(), __( 'Never', 'invoicing' ) ),
103
-			'{subscription_created}'          => getpaid_format_date_value( $subscription->get_date_created() ),
104
-			'{subscription_status}'           => sanitize_text_field( $subscription->get_status_label() ),
105
-			'{subscription_profile_id}'       => sanitize_text_field( $subscription->get_profile_id() ),
106
-			'{subscription_id}'               => absint( $subscription->get_id() ),
107
-			'{subscription_recurring_amount}' => sanitize_text_field( wpinv_price( $subscription->get_recurring_amount(), $invoice->get_currency() ) ),
108
-			'{subscription_initial_amount}'   => sanitize_text_field( wpinv_price( $subscription->get_initial_amount(), $invoice->get_currency() ) ),
109
-			'{subscription_recurring_period}' => getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ),
102
+			'{subscription_renewal_date}'     => getpaid_format_date_value($subscription->get_next_renewal_date(), __('Never', 'invoicing')),
103
+			'{subscription_created}'          => getpaid_format_date_value($subscription->get_date_created()),
104
+			'{subscription_status}'           => sanitize_text_field($subscription->get_status_label()),
105
+			'{subscription_profile_id}'       => sanitize_text_field($subscription->get_profile_id()),
106
+			'{subscription_id}'               => absint($subscription->get_id()),
107
+			'{subscription_recurring_amount}' => sanitize_text_field(wpinv_price($subscription->get_recurring_amount(), $invoice->get_currency())),
108
+			'{subscription_initial_amount}'   => sanitize_text_field(wpinv_price($subscription->get_initial_amount(), $invoice->get_currency())),
109
+			'{subscription_recurring_period}' => getpaid_get_subscription_period_label($subscription->get_period(), $subscription->get_frequency(), ''),
110 110
 			'{subscription_bill_times}'       => $subscription->get_bill_times(),
111
-			'{subscription_url}'              => esc_url( $subscription->get_view_url() ),
111
+			'{subscription_url}'              => esc_url($subscription->get_view_url()),
112 112
 		);
113 113
 
114 114
 	}
@@ -119,7 +119,7 @@  discard block
 block discarded – undo
119 119
 	 * @param WPInv_Invoice $invoice
120 120
 	 * @return bool
121 121
 	 */
122
-	public function should_send_notification( $invoice ) {
122
+	public function should_send_notification($invoice) {
123 123
 		return 0 != $invoice->get_id();
124 124
 	}
125 125
 
@@ -129,14 +129,14 @@  discard block
 block discarded – undo
129 129
 	 * @param WPInv_Invoice $invoice
130 130
 	 * @return array
131 131
 	 */
132
-	public function get_recipients( $invoice ) {
133
-		$recipients = array( $invoice->get_email() );
132
+	public function get_recipients($invoice) {
133
+		$recipients = array($invoice->get_email());
134 134
 
135 135
 		$cc = $invoice->get_email_cc();
136 136
 
137
-		if ( ! empty( $cc ) ) {
138
-			$cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) );
139
-			$recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) );
137
+		if (!empty($cc)) {
138
+			$cc = array_map('sanitize_email', wpinv_parse_list($cc));
139
+			$recipients = array_filter(array_unique(array_merge($recipients, $cc)));
140 140
 		}
141 141
 
142 142
 		return $recipients;
@@ -150,75 +150,75 @@  discard block
 block discarded – undo
150 150
 	 * @param string $type
151 151
 	 * @param array $extra_args Extra template args.
152 152
 	 */
153
-	public function send_email( $subscription, $email, $type, $extra_args = array() ) {
153
+	public function send_email($subscription, $email, $type, $extra_args = array()) {
154 154
 
155
-		if ( empty( $subscription ) ) {
155
+		if (empty($subscription)) {
156 156
 			return;
157 157
 		}
158 158
 
159
-		if ( is_array( $subscription ) ) {
160
-			$subscription = current( $subscription );
159
+		if (is_array($subscription)) {
160
+			$subscription = current($subscription);
161 161
 		}
162 162
 
163
-		if ( ! $subscription instanceof WPInv_Subscription ) {
163
+		if (!$subscription instanceof WPInv_Subscription) {
164 164
 			return;
165 165
 		}
166 166
 
167 167
 		// Abort in case the parent invoice does not exist.
168 168
 		$invoice = $subscription->get_parent_invoice();
169
-		if ( ! $this->should_send_notification( $invoice ) ) {
169
+		if (!$this->should_send_notification($invoice)) {
170 170
 			return;
171 171
 		}
172 172
 
173
-		if ( apply_filters( 'getpaid_skip_subscription_email', false, $type, $subscription ) ) {
173
+		if (apply_filters('getpaid_skip_subscription_email', false, $type, $subscription)) {
174 174
 			return;
175 175
 		}
176 176
 
177
-		do_action( 'getpaid_before_send_subscription_notification', $type, $subscription, $email );
177
+		do_action('getpaid_before_send_subscription_notification', $type, $subscription, $email);
178 178
 
179
-		$recipients  = $this->get_recipients( $invoice );
179
+		$recipients  = $this->get_recipients($invoice);
180 180
 		$mailer      = new GetPaid_Notification_Email_Sender();
181 181
 		$merge_tags  = $email->get_merge_tags();
182
-		$content     = $email->get_content( $merge_tags, $extra_args );
183
-		$subject     = $email->add_merge_tags( $email->get_subject(), $merge_tags );
182
+		$content     = $email->get_content($merge_tags, $extra_args);
183
+		$subject     = $email->add_merge_tags($email->get_subject(), $merge_tags);
184 184
 		$attachments = $email->get_attachments();
185 185
 
186 186
 		$result = $mailer->send(
187
-			apply_filters( 'getpaid_subscription_email_recipients', wpinv_parse_list( $recipients ), $email ),
187
+			apply_filters('getpaid_subscription_email_recipients', wpinv_parse_list($recipients), $email),
188 188
 			$subject,
189 189
 			$content,
190 190
 			$attachments
191 191
 		);
192 192
 
193 193
 		// Maybe send a copy to the admin.
194
-		if ( $email->include_admin_bcc() ) {
194
+		if ($email->include_admin_bcc()) {
195 195
 			$mailer->send(
196 196
 				wpinv_get_admin_email(),
197
-				$subject . __( ' - ADMIN BCC COPY', 'invoicing' ),
197
+				$subject . __(' - ADMIN BCC COPY', 'invoicing'),
198 198
 				$content,
199 199
 				$attachments
200 200
 			);
201 201
 		}
202 202
 
203
-		if ( $result ) {
203
+		if ($result) {
204 204
 			$invoice->add_system_note(
205 205
 				sprintf(
206
-					__( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ),
207
-					sanitize_key( $type ),
208
-					$email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
206
+					__('Successfully sent %1$s notification email to %2$s.', 'invoicing'),
207
+					sanitize_key($type),
208
+					$email->is_admin_email() ? __('admin') : __('the customer')
209 209
 				)
210 210
 			);
211 211
 		} else {
212 212
 			$invoice->add_system_note(
213 213
 				sprintf(
214
-					__( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ),
215
-					sanitize_key( $type ),
216
-					$email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
214
+					__('Failed sending %1$s notification email to %2$s.', 'invoicing'),
215
+					sanitize_key($type),
216
+					$email->is_admin_email() ? __('admin') : __('the customer')
217 217
 				)
218 218
 			);
219 219
 		}
220 220
 
221
-		do_action( 'getpaid_after_send_subscription_notification', $type, $subscription, $email );
221
+		do_action('getpaid_after_send_subscription_notification', $type, $subscription, $email);
222 222
 
223 223
 	}
224 224
 
@@ -229,10 +229,10 @@  discard block
 block discarded – undo
229 229
 	 *
230 230
 	 * @param WPInv_Subscription $subscription
231 231
 	 */
232
-	public function subscription_active( $subscription ) {
233
-		$email = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
232
+	public function subscription_active($subscription) {
233
+		$email = new GetPaid_Notification_Email(__FUNCTION__, $subscription);
234 234
 
235
-		$this->send_email( $subscription, $email, __FUNCTION__ );
235
+		$this->send_email($subscription, $email, __FUNCTION__);
236 236
 	}
237 237
 
238 238
     /**
@@ -240,10 +240,10 @@  discard block
 block discarded – undo
240 240
 	 *
241 241
 	 * @param WPInv_Subscription $subscription
242 242
 	 */
243
-	public function subscription_trial( $subscription ) {
243
+	public function subscription_trial($subscription) {
244 244
 
245
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
246
-		$this->send_email( $subscription, $email, __FUNCTION__ );
245
+		$email = new GetPaid_Notification_Email(__FUNCTION__, $subscription);
246
+		$this->send_email($subscription, $email, __FUNCTION__);
247 247
 
248 248
 	}
249 249
 
@@ -252,10 +252,10 @@  discard block
 block discarded – undo
252 252
 	 *
253 253
 	 * @param WPInv_Subscription $subscription
254 254
 	 */
255
-	public function subscription_cancelled( $subscription ) {
255
+	public function subscription_cancelled($subscription) {
256 256
 
257
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
258
-		$this->send_email( $subscription, $email, __FUNCTION__ );
257
+		$email = new GetPaid_Notification_Email(__FUNCTION__, $subscription);
258
+		$this->send_email($subscription, $email, __FUNCTION__);
259 259
 
260 260
 	}
261 261
 
@@ -264,10 +264,10 @@  discard block
 block discarded – undo
264 264
 	 *
265 265
 	 * @param WPInv_Subscription $subscription
266 266
 	 */
267
-	public function subscription_expired( $subscription ) {
267
+	public function subscription_expired($subscription) {
268 268
 
269
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
270
-		$this->send_email( $subscription, $email, __FUNCTION__ );
269
+		$email = new GetPaid_Notification_Email(__FUNCTION__, $subscription);
270
+		$this->send_email($subscription, $email, __FUNCTION__);
271 271
 
272 272
 	}
273 273
 
@@ -276,10 +276,10 @@  discard block
 block discarded – undo
276 276
 	 *
277 277
 	 * @param WPInv_Subscription $subscription
278 278
 	 */
279
-	public function subscription_complete( $subscription ) {
279
+	public function subscription_complete($subscription) {
280 280
 
281
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
282
-		$this->send_email( $subscription, $email, __FUNCTION__ );
281
+		$email = new GetPaid_Notification_Email(__FUNCTION__, $subscription);
282
+		$this->send_email($subscription, $email, __FUNCTION__);
283 283
 
284 284
 	}
285 285
 
@@ -289,18 +289,18 @@  discard block
 block discarded – undo
289 289
 	 */
290 290
 	public function renewal_reminder() {
291 291
 
292
-		$email = new GetPaid_Notification_Email( __FUNCTION__ );
292
+		$email = new GetPaid_Notification_Email(__FUNCTION__);
293 293
 
294 294
 		// Fetch reminder days.
295
-		$reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
295
+		$reminder_days = array_unique(wp_parse_id_list($email->get_option('days')));
296 296
 
297 297
 		// Abort if non is set.
298
-		if ( empty( $reminder_days ) ) {
298
+		if (empty($reminder_days)) {
299 299
 			return;
300 300
 		}
301 301
 
302 302
 		// Fetch matching subscriptions.
303
-        $args  = array(
303
+        $args = array(
304 304
             'number'             => -1,
305 305
 			'count_total'        => false,
306 306
 			'status'             => 'trialling active',
@@ -309,8 +309,8 @@  discard block
 block discarded – undo
309 309
             ),
310 310
 		);
311 311
 
312
-		foreach ( $reminder_days as $days ) {
313
-			$date = date_parse( date( 'Y-m-d', strtotime( "+$days days", current_time( 'timestamp' ) ) ) );
312
+		foreach ($reminder_days as $days) {
313
+			$date = date_parse(date('Y-m-d', strtotime("+$days days", current_time('timestamp'))));
314 314
 
315 315
 			$args['date_expires_query'][] = array(
316 316
 				'year'  => $date['year'],
@@ -320,14 +320,14 @@  discard block
 block discarded – undo
320 320
 
321 321
 		}
322 322
 
323
-		$subscriptions = new GetPaid_Subscriptions_Query( $args );
323
+		$subscriptions = new GetPaid_Subscriptions_Query($args);
324 324
 
325
-        foreach ( $subscriptions->get_results() as $subscription ) {
325
+        foreach ($subscriptions->get_results() as $subscription) {
326 326
 
327 327
 			// Skip packages.
328
-			if ( apply_filters( 'getpaid_send_subscription_renewal_reminder_email', true ) ) {
328
+			if (apply_filters('getpaid_send_subscription_renewal_reminder_email', true)) {
329 329
 				$email->object = $subscription;
330
-            	$this->send_email( $subscription, $email, __FUNCTION__ );
330
+            	$this->send_email($subscription, $email, __FUNCTION__);
331 331
 			}
332 332
 		}
333 333
 
Please login to merge, or discard this patch.
includes/admin/class-getpaid-anonymization-logs.php 3 patches
Indentation   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -34,12 +34,12 @@
 block discarded – undo
34 34
         // Prepare pagination
35 35
         $pagination = paginate_links(
36 36
             array(
37
-				'base'      => add_query_arg( 'paged', '%#%' ),
38
-				'format'    => '',
39
-				'prev_text' => __( '&laquo;', 'invoicing' ),
40
-				'next_text' => __( '&raquo;', 'invoicing' ),
41
-				'total'     => ceil( $total_logs / $per_page ),
42
-				'current'   => $page,
37
+                'base'      => add_query_arg( 'paged', '%#%' ),
38
+                'format'    => '',
39
+                'prev_text' => __( '&laquo;', 'invoicing' ),
40
+                'next_text' => __( '&raquo;', 'invoicing' ),
41
+                'total'     => ceil( $total_logs / $per_page ),
42
+                'current'   => $page,
43 43
             )
44 44
         );
45 45
 
Please login to merge, or discard this patch.
Spacing   +44 added lines, -44 removed lines patch added patch discarded remove patch
@@ -7,7 +7,7 @@  discard block
 block discarded – undo
7 7
  * @since 2.8.22
8 8
  */
9 9
 
10
-defined( 'ABSPATH' ) || exit;
10
+defined('ABSPATH') || exit;
11 11
 
12 12
 /**
13 13
  * GetPaid_Anonymization_Logs Class
@@ -19,89 +19,89 @@  discard block
 block discarded – undo
19 19
      */
20 20
     public function display_logs() {
21 21
         // Check user capabilities
22
-        if ( ! current_user_can( 'manage_options' ) ) {
22
+        if (!current_user_can('manage_options')) {
23 23
             return;
24 24
         }
25 25
 
26 26
         // Get current page number
27
-        $page = isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
27
+        $page = isset($_GET['paged']) ? absint($_GET['paged']) : 1;
28 28
         $per_page = 20;
29 29
 
30 30
         // Fetch logs
31
-        $logs = $this->get_logs( $page, $per_page );
31
+        $logs = $this->get_logs($page, $per_page);
32 32
         $total_logs = $this->get_total_logs();
33 33
 
34 34
         // Prepare pagination
35 35
         $pagination = paginate_links(
36 36
             array(
37
-				'base'      => add_query_arg( 'paged', '%#%' ),
37
+				'base'      => add_query_arg('paged', '%#%'),
38 38
 				'format'    => '',
39
-				'prev_text' => __( '&laquo;', 'invoicing' ),
40
-				'next_text' => __( '&raquo;', 'invoicing' ),
41
-				'total'     => ceil( $total_logs / $per_page ),
39
+				'prev_text' => __('&laquo;', 'invoicing'),
40
+				'next_text' => __('&raquo;', 'invoicing'),
41
+				'total'     => ceil($total_logs / $per_page),
42 42
 				'current'   => $page,
43 43
             )
44 44
         );
45 45
 
46 46
         ?>
47 47
         <div class="wrap getpaid-anonymization-logs">
48
-            <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
48
+            <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
49 49
             <div class="tablenav top">
50 50
                 <div class="alignleft actions">
51 51
                     <form method="get">
52 52
                         <input type="hidden" name="page" value="wpinv-anonymization-logs">
53
-                        <label for="filter-by-date" class="screen-reader-text"><?php _e( 'Filter by date', 'invoicing' ); ?></label>
53
+                        <label for="filter-by-date" class="screen-reader-text"><?php _e('Filter by date', 'invoicing'); ?></label>
54 54
                         <select name="m" id="filter-by-date">
55
-                            <option value="0"><?php _e( 'All dates', 'invoicing' ); ?></option>
55
+                            <option value="0"><?php _e('All dates', 'invoicing'); ?></option>
56 56
                             <?php
57 57
                             $months = $this->get_log_months();
58
-                            foreach ( $months as $month ) {
59
-                                $selected = ( isset( $_GET['m'] ) && $_GET['m'] == $month->month ) ? ' selected="selected"' : '';
60
-                                echo '<option value="' . esc_attr( $month->month ) . '"' . $selected . '>' . esc_html( $month->month_name . ' ' . $month->year ) . '</option>';
58
+                            foreach ($months as $month) {
59
+                                $selected = (isset($_GET['m']) && $_GET['m'] == $month->month) ? ' selected="selected"' : '';
60
+                                echo '<option value="' . esc_attr($month->month) . '"' . $selected . '>' . esc_html($month->month_name . ' ' . $month->year) . '</option>';
61 61
                             }
62 62
                             ?>
63 63
                         </select>
64
-                        <?php submit_button( __( 'Filter', 'invoicing' ), '', 'filter_action', false ); ?>
64
+                        <?php submit_button(__('Filter', 'invoicing'), '', 'filter_action', false); ?>
65 65
                     </form>
66 66
                 </div>
67 67
             </div>
68 68
             <table class="wp-list-table widefat fixed striped">
69 69
                 <thead>
70 70
                     <tr>
71
-                        <th><?php _e( 'Log ID', 'invoicing' ); ?></th>
72
-                        <th><?php _e( 'User', 'invoicing' ); ?></th>
73
-                        <th><?php _e( 'Action', 'invoicing' ); ?></th>
74
-                        <th><?php _e( 'Date', 'invoicing' ); ?></th>
75
-                        <th><?php _e( 'Details', 'invoicing' ); ?></th>
71
+                        <th><?php _e('Log ID', 'invoicing'); ?></th>
72
+                        <th><?php _e('User', 'invoicing'); ?></th>
73
+                        <th><?php _e('Action', 'invoicing'); ?></th>
74
+                        <th><?php _e('Date', 'invoicing'); ?></th>
75
+                        <th><?php _e('Details', 'invoicing'); ?></th>
76 76
                     </tr>
77 77
                 </thead>
78 78
                 <tbody>
79
-                    <?php if ( empty( $logs ) ) : ?>
79
+                    <?php if (empty($logs)) : ?>
80 80
                         <tr>
81
-                            <td colspan="5"><?php _e( 'No anonymization logs found.', 'invoicing' ); ?></td>
81
+                            <td colspan="5"><?php _e('No anonymization logs found.', 'invoicing'); ?></td>
82 82
                         </tr>
83 83
                     <?php else : ?>
84 84
                         <?php
85
-                        foreach ( $logs as $log ) :
86
-                            $additional_info = json_decode( $log->additional_info, true );
85
+                        foreach ($logs as $log) :
86
+                            $additional_info = json_decode($log->additional_info, true);
87 87
                         ?>
88 88
                             <tr>
89
-                                <td><?php echo esc_html( $log->log_id ); ?></td>
89
+                                <td><?php echo esc_html($log->log_id); ?></td>
90 90
                                 <td>
91 91
                                     <?php
92
-                                    $user_edit_link = get_edit_user_link( $log->user_id );
93
-                                    if ( $user_edit_link ) {
94
-                                        echo '<a href="' . esc_url( $user_edit_link ) . '">' . esc_html( $log->user_id ) . '</a>';
92
+                                    $user_edit_link = get_edit_user_link($log->user_id);
93
+                                    if ($user_edit_link) {
94
+                                        echo '<a href="' . esc_url($user_edit_link) . '">' . esc_html($log->user_id) . '</a>';
95 95
                                     } else {
96
-                                        echo esc_html( $log->user_id );
96
+                                        echo esc_html($log->user_id);
97 97
                                     }
98 98
                                     ?>
99 99
                                 </td>
100
-                                <td><?php echo esc_html( ucfirst( $log->action ) ); ?></td>
101
-                                <td><?php echo esc_html( get_date_from_gmt( $log->timestamp, 'F j, Y g:i a' ) ); ?></td>
100
+                                <td><?php echo esc_html(ucfirst($log->action)); ?></td>
101
+                                <td><?php echo esc_html(get_date_from_gmt($log->timestamp, 'F j, Y g:i a')); ?></td>
102 102
                                 <td>
103 103
                                     <button class="button-link toggle-details" type="button" aria-expanded="false">
104
-                                        <span class="screen-reader-text"><?php _e( 'Show more details', 'invoicing' ); ?></span>
104
+                                        <span class="screen-reader-text"><?php _e('Show more details', 'invoicing'); ?></span>
105 105
                                         <span class="dashicons dashicons-arrow-down-alt2"></span>
106 106
                                     </button>
107 107
                                 </td>
@@ -112,19 +112,19 @@  discard block
 block discarded – undo
112 112
                                         <table class="widefat fixed">
113 113
                                             <tbody>
114 114
                                                 <tr>
115
-                                                    <th><?php _e( 'Data Type', 'invoicing' ); ?></th>
116
-                                                    <td><?php echo esc_html( $log->data_type ); ?></td>
115
+                                                    <th><?php _e('Data Type', 'invoicing'); ?></th>
116
+                                                    <td><?php echo esc_html($log->data_type); ?></td>
117 117
                                                 </tr>
118
-                                                <?php if ( is_array( $additional_info ) ) : ?>
118
+                                                <?php if (is_array($additional_info)) : ?>
119 119
                                                     <tr>
120
-                                                        <th><?php _e( 'Additional Information', 'invoicing' ); ?></th>
120
+                                                        <th><?php _e('Additional Information', 'invoicing'); ?></th>
121 121
                                                         <td>
122 122
                                                             <table class="widefat fixed">
123 123
                                                                 <tbody>
124
-                                                                    <?php foreach ( $additional_info as $key => $value ) : ?>
124
+                                                                    <?php foreach ($additional_info as $key => $value) : ?>
125 125
                                                                         <tr>
126
-                                                                            <th><?php echo esc_html( $key ); ?></th>
127
-                                                                            <td><?php echo esc_html( $value ); ?></td>
126
+                                                                            <th><?php echo esc_html($key); ?></th>
127
+                                                                            <td><?php echo esc_html($value); ?></td>
128 128
                                                                         </tr>
129 129
                                                                     <?php endforeach; ?>
130 130
                                                                 </tbody>
@@ -141,7 +141,7 @@  discard block
 block discarded – undo
141 141
                     <?php endif; ?>
142 142
                 </tbody>
143 143
             </table>
144
-            <?php if ( $pagination ) : ?>
144
+            <?php if ($pagination) : ?>
145 145
                 <div class="tablenav bottom">
146 146
                     <div class="tablenav-pages">
147 147
                         <?php echo $pagination; ?>
@@ -159,10 +159,10 @@  discard block
 block discarded – undo
159 159
      * @param int $per_page Number of logs per page
160 160
      * @return array
161 161
      */
162
-    private function get_logs( $page, $per_page ) {
162
+    private function get_logs($page, $per_page) {
163 163
         global $wpdb;
164 164
         $table_name = $wpdb->prefix . 'getpaid_anonymization_logs';
165
-        $offset = ( $page - 1 ) * $per_page;
165
+        $offset = ($page - 1) * $per_page;
166 166
 
167 167
         $query = $wpdb->prepare(
168 168
             "SELECT * FROM $table_name ORDER BY timestamp DESC LIMIT %d OFFSET %d",
@@ -170,7 +170,7 @@  discard block
 block discarded – undo
170 170
             $offset
171 171
         );
172 172
 
173
-        return $wpdb->get_results( $query );
173
+        return $wpdb->get_results($query);
174 174
     }
175 175
 
176 176
     /**
@@ -181,7 +181,7 @@  discard block
 block discarded – undo
181 181
     private function get_total_logs() {
182 182
         global $wpdb;
183 183
         $table_name = $wpdb->prefix . 'getpaid_anonymization_logs';
184
-        return $wpdb->get_var( "SELECT COUNT(*) FROM $table_name" );
184
+        return $wpdb->get_var("SELECT COUNT(*) FROM $table_name");
185 185
     }
186 186
 
187 187
     /**
Please login to merge, or discard this patch.
Braces   +3 added lines, -1 removed lines patch added patch discarded remove patch
@@ -80,10 +80,12 @@
 block discarded – undo
80 80
                         <tr>
81 81
                             <td colspan="5"><?php _e( 'No anonymization logs found.', 'invoicing' ); ?></td>
82 82
                         </tr>
83
-                    <?php else : ?>
83
+                    <?php else {
84
+    : ?>
84 85
                         <?php
85 86
                         foreach ( $logs as $log ) :
86 87
                             $additional_info = json_decode( $log->additional_info, true );
88
+}
87 89
                         ?>
88 90
                             <tr>
89 91
                                 <td><?php echo esc_html( $log->log_id ); ?></td>
Please login to merge, or discard this patch.
includes/class-wpinv-data-retention.php 2 patches
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -291,18 +291,18 @@
 block discarded – undo
291 291
 
292 292
         $user_meta_data = array(
293 293
             'nickname',
294
-			'description',
295
-			'rich_editing',
296
-			'syntax_highlighting',
297
-			'comment_shortcuts',
294
+            'description',
295
+            'rich_editing',
296
+            'syntax_highlighting',
297
+            'comment_shortcuts',
298 298
             'admin_color',
299
-			'use_ssl',
300
-			'show_admin_bar_front',
301
-			'locale',
302
-			'wp_capabilities',
299
+            'use_ssl',
300
+            'show_admin_bar_front',
301
+            'locale',
302
+            'wp_capabilities',
303 303
             'wp_user_level',
304
-			'dismissed_wp_pointers',
305
-			'show_welcome_panel',
304
+            'dismissed_wp_pointers',
305
+            'show_welcome_panel',
306 306
         );
307 307
 
308 308
         /**
Please login to merge, or discard this patch.
Spacing   +148 added lines, -148 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @since   2.8.22
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * WPInv_Data_Retention Class.
@@ -35,13 +35,13 @@  discard block
 block discarded – undo
35 35
      * Class constructor.
36 36
      */
37 37
     public function __construct() {
38
-        add_filter( 'wpinv_settings_misc', array( $this, 'add_data_retention_settings' ) );
38
+        add_filter('wpinv_settings_misc', array($this, 'add_data_retention_settings'));
39 39
 
40
-        add_action( 'wpmu_delete_user', array( $this, 'maybe_handle_user_deletion' ), 1 );
41
-        add_action( 'delete_user', array( $this, 'maybe_handle_user_deletion' ), 1 );
42
-        add_filter( 'wp_privacy_personal_data_erasure_request', array( $this, 'handle_erasure_request' ), 10, 2 );
40
+        add_action('wpmu_delete_user', array($this, 'maybe_handle_user_deletion'), 1);
41
+        add_action('delete_user', array($this, 'maybe_handle_user_deletion'), 1);
42
+        add_filter('wp_privacy_personal_data_erasure_request', array($this, 'handle_erasure_request'), 10, 2);
43 43
 
44
-        add_action( 'getpaid_daily_maintenance', array( $this, 'perform_data_retention_cleanup' ) );
44
+        add_action('getpaid_daily_maintenance', array($this, 'perform_data_retention_cleanup'));
45 45
     }
46 46
 
47 47
     /**
@@ -50,43 +50,43 @@  discard block
 block discarded – undo
50 50
      * @param array $misc_settings Existing misc settings.
51 51
      * @return array Updated misc settings.
52 52
      */
53
-    public function add_data_retention_settings( $misc_settings ) {
53
+    public function add_data_retention_settings($misc_settings) {
54 54
         $misc_settings['data_retention'] = array(
55 55
             'id'   => 'data_retention',
56
-            'name' => '<h3>' . __( 'Data Retention', 'invoicing' ) . '</h3>',
56
+            'name' => '<h3>' . __('Data Retention', 'invoicing') . '</h3>',
57 57
             'type' => 'header',
58 58
         );
59 59
 
60 60
         $misc_settings['data_retention_method'] = array(
61 61
             'id'      => 'data_retention_method',
62
-            'name'    => __( 'Data Handling', 'invoicing' ),
63
-            'desc'    => __( 'Choose how to handle user data when deletion is required.', 'invoicing' ),
62
+            'name'    => __('Data Handling', 'invoicing'),
63
+            'desc'    => __('Choose how to handle user data when deletion is required.', 'invoicing'),
64 64
             'type'    => 'select',
65 65
             'options' => array(
66
-                'anonymize' => __( 'Anonymize data', 'invoicing' ),
67
-                'delete'    => __( 'Delete data without anonymization', 'invoicing' ),
66
+                'anonymize' => __('Anonymize data', 'invoicing'),
67
+                'delete'    => __('Delete data without anonymization', 'invoicing'),
68 68
             ),
69 69
             'std'     => 'anonymize',
70
-            'tooltip' => __( 'Anonymization replaces personal data with non-identifiable information. Direct deletion removes all data permanently.', 'invoicing' ),
70
+            'tooltip' => __('Anonymization replaces personal data with non-identifiable information. Direct deletion removes all data permanently.', 'invoicing'),
71 71
         );
72 72
 
73 73
         $misc_settings['data_retention_period'] = array(
74 74
             'id'      => 'data_retention_period',
75
-            'name'    => __( 'Retention Period', 'invoicing' ),
76
-            'desc'    => __( 'Specify how long to retain customer data after processing.', 'invoicing' ),
75
+            'name'    => __('Retention Period', 'invoicing'),
76
+            'desc'    => __('Specify how long to retain customer data after processing.', 'invoicing'),
77 77
             'type'    => 'select',
78 78
             'options' => array(
79
-                'never' => __( 'Never delete (retain indefinitely)', 'invoicing' ),
80
-                '30'    => __( '30 days', 'invoicing' ),
81
-                '90'    => __( '90 days', 'invoicing' ),
82
-                '180'   => __( '6 months', 'invoicing' ),
83
-                '365'   => __( '1 year', 'invoicing' ),
84
-                '730'   => __( '2 years', 'invoicing' ),
85
-                '1825'  => __( '5 years', 'invoicing' ),
86
-                '3650'  => __( '10 years', 'invoicing' ),
79
+                'never' => __('Never delete (retain indefinitely)', 'invoicing'),
80
+                '30'    => __('30 days', 'invoicing'),
81
+                '90'    => __('90 days', 'invoicing'),
82
+                '180'   => __('6 months', 'invoicing'),
83
+                '365'   => __('1 year', 'invoicing'),
84
+                '730'   => __('2 years', 'invoicing'),
85
+                '1825'  => __('5 years', 'invoicing'),
86
+                '3650'  => __('10 years', 'invoicing'),
87 87
             ),
88 88
             'std'     => '3650',
89
-            'tooltip' => __( 'Choose how long to keep processed customer data before final action. This helps balance data minimization with business needs.', 'invoicing' ),
89
+            'tooltip' => __('Choose how long to keep processed customer data before final action. This helps balance data minimization with business needs.', 'invoicing'),
90 90
         );
91 91
 
92 92
         return $misc_settings;
@@ -97,15 +97,15 @@  discard block
 block discarded – undo
97 97
      *
98 98
      * @param int $user_id The ID of the user being deleted.
99 99
      */
100
-    public function maybe_handle_user_deletion( $user_id ) {
101
-        if ( ! $this->handle_user_deletion ) {
100
+    public function maybe_handle_user_deletion($user_id) {
101
+        if (!$this->handle_user_deletion) {
102 102
             return;
103 103
         }
104 104
 
105
-        if ( current_user_can( 'manage_options' ) ) {
106
-            $this->handle_admin_user_deletion( $user_id );
105
+        if (current_user_can('manage_options')) {
106
+            $this->handle_admin_user_deletion($user_id);
107 107
         } else {
108
-            $this->handle_self_account_deletion( $user_id );
108
+            $this->handle_self_account_deletion($user_id);
109 109
         }
110 110
     }
111 111
 
@@ -115,19 +115,19 @@  discard block
 block discarded – undo
115 115
      * @since 2.8.22
116 116
      * @param int $user_id The ID of the user being deleted.
117 117
      */
118
-    public function handle_admin_user_deletion( $user_id ) {
119
-        if ( $this->has_active_subscriptions( $user_id ) ) {
120
-            $this->prevent_user_deletion( $user_id, 'active_subscriptions' );
118
+    public function handle_admin_user_deletion($user_id) {
119
+        if ($this->has_active_subscriptions($user_id)) {
120
+            $this->prevent_user_deletion($user_id, 'active_subscriptions');
121 121
             return;
122 122
         }
123 123
 
124
-        if ( $this->has_paid_invoices( $user_id ) ) {
125
-            $retention_method = wpinv_get_option( 'data_retention_method', 'anonymize' );
126
-            if ( 'anonymize' === $retention_method ) {
127
-                $this->anonymize_user_data( $user_id );
128
-                $this->prevent_user_deletion( $user_id, 'paid_invoices' );
124
+        if ($this->has_paid_invoices($user_id)) {
125
+            $retention_method = wpinv_get_option('data_retention_method', 'anonymize');
126
+            if ('anonymize' === $retention_method) {
127
+                $this->anonymize_user_data($user_id);
128
+                $this->prevent_user_deletion($user_id, 'paid_invoices');
129 129
             } else {
130
-                $this->delete_user_data( $user_id );
130
+                $this->delete_user_data($user_id);
131 131
             }
132 132
         }
133 133
     }
@@ -138,19 +138,19 @@  discard block
 block discarded – undo
138 138
      * @since 2.8.22
139 139
      * @param int $user_id The ID of the user being deleted.
140 140
      */
141
-    public function handle_self_account_deletion( $user_id ) {
142
-        $this->cancel_active_subscriptions( $user_id );
141
+    public function handle_self_account_deletion($user_id) {
142
+        $this->cancel_active_subscriptions($user_id);
143 143
 
144
-        if ( $this->has_paid_invoices( $user_id ) ) {
145
-            $retention_method = wpinv_get_option( 'data_retention_method', 'anonymize' );
144
+        if ($this->has_paid_invoices($user_id)) {
145
+            $retention_method = wpinv_get_option('data_retention_method', 'anonymize');
146 146
 
147
-            if ( 'anonymize' === $retention_method ) {
148
-                $user = get_userdata( $user_id );
147
+            if ('anonymize' === $retention_method) {
148
+                $user = get_userdata($user_id);
149 149
 
150
-                $this->anonymize_user_data( $user_id );
150
+                $this->anonymize_user_data($user_id);
151 151
 
152
-                $message = apply_filters( 'uwp_get_account_deletion_message', '', $user );
153
-                do_action( 'uwp_send_account_deletion_emails', $user, $message );
152
+                $message = apply_filters('uwp_get_account_deletion_message', '', $user);
153
+                do_action('uwp_send_account_deletion_emails', $user, $message);
154 154
 
155 155
                 $this->end_user_session();
156 156
             }
@@ -164,15 +164,15 @@  discard block
 block discarded – undo
164 164
      * @param int $user_id The ID of the user being checked.
165 165
      * @return bool True if user has active subscriptions, false otherwise.
166 166
      */
167
-    private function has_active_subscriptions( $user_id ) {
167
+    private function has_active_subscriptions($user_id) {
168 168
         $subscriptions = getpaid_get_subscriptions(
169 169
             array(
170
-                'customer_in' => array( (int) $user_id ),
170
+                'customer_in' => array((int) $user_id),
171 171
                 'status'      => 'active',
172 172
             )
173 173
         );
174 174
 
175
-        return ! empty( $subscriptions );
175
+        return !empty($subscriptions);
176 176
     }
177 177
 
178 178
     /**
@@ -181,15 +181,15 @@  discard block
 block discarded – undo
181 181
      * @since 2.8.22
182 182
      * @param int $user_id The ID of the user.
183 183
      */
184
-    private function cancel_active_subscriptions( $user_id ) {
184
+    private function cancel_active_subscriptions($user_id) {
185 185
         $subscriptions = getpaid_get_subscriptions(
186 186
             array(
187
-                'customer_in' => array( (int) $user_id ),
187
+                'customer_in' => array((int) $user_id),
188 188
                 'status'      => 'active',
189 189
             )
190 190
         );
191 191
 
192
-        foreach ( $subscriptions as $subscription ) {
192
+        foreach ($subscriptions as $subscription) {
193 193
             $subscription->cancel();
194 194
         }
195 195
     }
@@ -201,7 +201,7 @@  discard block
 block discarded – undo
201 201
      * @param int $user_id The ID of the user being checked.
202 202
      * @return bool True if user has paid invoices, false otherwise.
203 203
      */
204
-    private function has_paid_invoices( $user_id ) {
204
+    private function has_paid_invoices($user_id) {
205 205
         $invoices = wpinv_get_invoices(
206 206
             array(
207 207
                 'user'   => (int) $user_id,
@@ -209,7 +209,7 @@  discard block
 block discarded – undo
209 209
             )
210 210
         );
211 211
 
212
-        return ! empty( $invoices->total );
212
+        return !empty($invoices->total);
213 213
     }
214 214
 
215 215
     /**
@@ -219,24 +219,24 @@  discard block
 block discarded – undo
219 219
      * @param int    $user_id The ID of the user being deleted.
220 220
      * @param string $reason  The reason for preventing deletion.
221 221
      */
222
-    private function prevent_user_deletion( $user_id, $reason ) {
223
-        $user = get_userdata( $user_id );
222
+    private function prevent_user_deletion($user_id, $reason) {
223
+        $user = get_userdata($user_id);
224 224
 
225
-        if ( 'active_subscriptions' === $reason ) {
225
+        if ('active_subscriptions' === $reason) {
226 226
             $this->error_message = sprintf(
227 227
                 /* translators: %s: user login */
228
-                esc_html__( 'User deletion for %s has been halted. All active subscriptions should be cancelled first.', 'invoicing' ),
228
+                esc_html__('User deletion for %s has been halted. All active subscriptions should be cancelled first.', 'invoicing'),
229 229
                 $user->user_login
230 230
             );
231 231
         } else {
232 232
             $this->error_message = sprintf(
233 233
                 /* translators: %s: user login */
234
-                esc_html__( 'User deletion for %s has been halted due to paid invoices. Data will be anonymized instead.', 'invoicing' ),
234
+                esc_html__('User deletion for %s has been halted due to paid invoices. Data will be anonymized instead.', 'invoicing'),
235 235
                 $user->user_login
236 236
             );
237 237
         }
238 238
 
239
-        wp_die( $this->error_message, esc_html__( 'User Deletion Halted', 'invoicing' ), array( 'response' => 403 ) );
239
+        wp_die($this->error_message, esc_html__('User Deletion Halted', 'invoicing'), array('response' => 403));
240 240
     }
241 241
 
242 242
     /**
@@ -246,17 +246,17 @@  discard block
 block discarded – undo
246 246
      * @param int $user_id The ID of the user to anonymize.
247 247
      * @return bool True on success, false on failure.
248 248
      */
249
-    private function anonymize_user_data( $user_id ) {
249
+    private function anonymize_user_data($user_id) {
250 250
         global $wpdb;
251 251
 
252
-        $user = get_userdata( $user_id );
253
-        if ( ! $user ) {
252
+        $user = get_userdata($user_id);
253
+        if (!$user) {
254 254
             return false;
255 255
         }
256 256
 
257 257
         $table_name    = $wpdb->prefix . 'getpaid_customers';
258
-        $deletion_date = gmdate( 'Y-m-d', strtotime( '+10 years' ) );
259
-        $hashed_email  = $this->hash_email( $user->user_email );
258
+        $deletion_date = gmdate('Y-m-d', strtotime('+10 years'));
259
+        $hashed_email  = $this->hash_email($user->user_email);
260 260
 
261 261
         $updated = $wpdb->update(
262 262
             $table_name,
@@ -267,10 +267,10 @@  discard block
 block discarded – undo
267 267
                 'email_cc'      => $hashed_email,
268 268
                 'phone'         => '',
269 269
             ),
270
-            array( 'user_id' => (int) $user->ID )
270
+            array('user_id' => (int) $user->ID)
271 271
         );
272 272
 
273
-        if ( false === $updated ) {
273
+        if (false === $updated) {
274 274
             return false;
275 275
         }
276 276
 
@@ -287,7 +287,7 @@  discard block
 block discarded – undo
287 287
          * @since 2.8.22
288 288
          * @param int $user_id The ID of the user being anonymized.
289 289
          */
290
-        do_action( 'wpinv_anonymize_user_meta_data', $user->ID );
290
+        do_action('wpinv_anonymize_user_meta_data', $user->ID);
291 291
 
292 292
         $user_meta_data = array(
293 293
             'nickname',
@@ -312,13 +312,13 @@  discard block
 block discarded – undo
312 312
          * @param array $user_meta_data The meta fields to be anonymized.
313 313
          * @param int   $user_id          The ID of the user being anonymized.
314 314
          */
315
-        $user_meta_data = apply_filters( 'wpinv_user_meta_data_to_anonymize', $user_meta_data, $user->ID );
315
+        $user_meta_data = apply_filters('wpinv_user_meta_data_to_anonymize', $user_meta_data, $user->ID);
316 316
 
317
-        foreach ( $user_meta_data as $meta_key ) {
318
-            delete_user_meta( $user->ID, $meta_key );
317
+        foreach ($user_meta_data as $meta_key) {
318
+            delete_user_meta($user->ID, $meta_key);
319 319
         }
320 320
 
321
-        return $this->ensure_invoice_anonymization( $user->ID, 'anonymize' );
321
+        return $this->ensure_invoice_anonymization($user->ID, 'anonymize');
322 322
     }
323 323
 
324 324
     /**
@@ -327,15 +327,15 @@  discard block
 block discarded – undo
327 327
      * @param int $user_id The ID of the user to delete.
328 328
      * @return bool True on success, false on failure.
329 329
      */
330
-    private function delete_user_data( $user_id ) {
330
+    private function delete_user_data($user_id) {
331 331
         // Delete associated invoices.
332
-        $this->ensure_invoice_anonymization( $user_id, 'delete' );
332
+        $this->ensure_invoice_anonymization($user_id, 'delete');
333 333
 
334 334
         // Delete the user.
335
-        if ( is_multisite() ) {
336
-            wpmu_delete_user( $user_id );
335
+        if (is_multisite()) {
336
+            wpmu_delete_user($user_id);
337 337
         } else {
338
-            wp_delete_user( $user_id );
338
+            wp_delete_user($user_id);
339 339
         }
340 340
 
341 341
         /**
@@ -344,7 +344,7 @@  discard block
 block discarded – undo
344 344
          * @since 2.8.22
345 345
          * @param int $user_id The ID of the user being deleted.
346 346
          */
347
-        do_action( 'wpinv_delete_user_data', $user_id );
347
+        do_action('wpinv_delete_user_data', $user_id);
348 348
 
349 349
         return true;
350 350
     }
@@ -357,8 +357,8 @@  discard block
 block discarded – undo
357 357
      * @param string $action  The action to perform (anonymize or delete).
358 358
      * @return bool True on success, false on failure.
359 359
      */
360
-    public function ensure_invoice_anonymization( $user_id, $action = 'anonymize' ) {
361
-        $invoices = wpinv_get_invoices( array( 'user' => $user_id ) );
360
+    public function ensure_invoice_anonymization($user_id, $action = 'anonymize') {
361
+        $invoices = wpinv_get_invoices(array('user' => $user_id));
362 362
 
363 363
         /**
364 364
          * Filters the invoice meta fields to be anonymized.
@@ -367,22 +367,22 @@  discard block
 block discarded – undo
367 367
          * @param array $inv_meta_data The meta fields to be anonymized.
368 368
          * @param int   $user_id         The ID of the user being processed.
369 369
          */
370
-        $inv_meta_data = apply_filters( 'wpinv_invoice_meta_data_to_anonymize', array(), $user_id );
370
+        $inv_meta_data = apply_filters('wpinv_invoice_meta_data_to_anonymize', array(), $user_id);
371 371
 
372
-        foreach ( $invoices->invoices as $invoice ) {
373
-            foreach ( $inv_meta_data as $meta_key ) {
374
-                delete_post_meta( $invoice->get_id(), $meta_key );
372
+        foreach ($invoices->invoices as $invoice) {
373
+            foreach ($inv_meta_data as $meta_key) {
374
+                delete_post_meta($invoice->get_id(), $meta_key);
375 375
             }
376 376
 
377
-            if ( 'anonymize' === $action ) {
378
-                $hashed_inv_email    = $this->hash_email( $invoice->get_email() );
379
-                $hashed_inv_email_cc = $this->hash_email( $invoice->get_email_cc() );
377
+            if ('anonymize' === $action) {
378
+                $hashed_inv_email    = $this->hash_email($invoice->get_email());
379
+                $hashed_inv_email_cc = $this->hash_email($invoice->get_email_cc());
380 380
 
381
-                $invoice->set_email( $hashed_inv_email );
382
-                $invoice->set_email_cc( $hashed_inv_email_cc );
383
-                $invoice->set_phone( '' );
384
-                $invoice->set_ip( $this->anonymize_data( $invoice->get_ip() ) );
385
-                $invoice->set_is_anonymized( 1 );
381
+                $invoice->set_email($hashed_inv_email);
382
+                $invoice->set_email_cc($hashed_inv_email_cc);
383
+                $invoice->set_phone('');
384
+                $invoice->set_ip($this->anonymize_data($invoice->get_ip()));
385
+                $invoice->set_is_anonymized(1);
386 386
 
387 387
                 /**
388 388
                  * Fires when anonymizing additional invoice data.
@@ -391,7 +391,7 @@  discard block
 block discarded – undo
391 391
                  * @param WPInv_Invoice $invoice The invoice being anonymized.
392 392
                  * @param string        $action  The action being performed (anonymize or delete).
393 393
                  */
394
-                do_action( 'wpinv_anonymize_invoice_data', $invoice, $action );
394
+                do_action('wpinv_anonymize_invoice_data', $invoice, $action);
395 395
 
396 396
                 $invoice->save();
397 397
             } else {
@@ -399,7 +399,7 @@  discard block
 block discarded – undo
399 399
             }
400 400
         }
401 401
 
402
-        return $this->log_deletion_action( $user_id, $invoices->invoices, $action );
402
+        return $this->log_deletion_action($user_id, $invoices->invoices, $action);
403 403
     }
404 404
 
405 405
     /**
@@ -411,11 +411,11 @@  discard block
 block discarded – undo
411 411
      * @param string $action   The action being performed (anonymize or delete).
412 412
      * @return bool True on success, false on failure.
413 413
      */
414
-    private function log_deletion_action( $user_id, $invoices, $action ) {
414
+    private function log_deletion_action($user_id, $invoices, $action) {
415 415
         global $wpdb;
416 416
 
417 417
         $table_name = $wpdb->prefix . 'getpaid_anonymization_logs';
418
-        $user_data  = get_userdata( $user_id );
418
+        $user_data  = get_userdata($user_id);
419 419
 
420 420
         $additional_info = array(
421 421
             'Username'      => $user_data ? $user_data->user_login : 'N/A',
@@ -424,7 +424,7 @@  discard block
 block discarded – undo
424 424
             'First Name'    => $user_data ? $user_data->first_name : 'N/A',
425 425
             'Last Name'     => $user_data ? $user_data->last_name : 'N/A',
426 426
             'Registered'    => $user_data ? $user_data->user_registered : 'N/A',
427
-            'invoice_count' => count( $invoices ),
427
+            'invoice_count' => count($invoices),
428 428
         );
429 429
 
430 430
 
@@ -437,43 +437,43 @@  discard block
 block discarded – undo
437 437
          * @param array  $invoices        The invoices being processed.
438 438
          * @param string $action          The action being performed (anonymize or delete).
439 439
          */
440
-        $additional_info = apply_filters( 'wpinv_anonymization_log_additional_info', $additional_info, $user_id, $invoices, $action );
440
+        $additional_info = apply_filters('wpinv_anonymization_log_additional_info', $additional_info, $user_id, $invoices, $action);
441 441
 
442 442
         $data = array(
443 443
             'user_id'         => $user_id,
444
-            'action'          => sanitize_text_field( $action ),
444
+            'action'          => sanitize_text_field($action),
445 445
             'data_type'       => 'User Invoices',
446
-            'timestamp'       => current_time( 'mysql' ),
447
-            'additional_info' => wp_json_encode( $additional_info ),
446
+            'timestamp'       => current_time('mysql'),
447
+            'additional_info' => wp_json_encode($additional_info),
448 448
         );
449 449
 
450 450
         $format = array(
451
-            '%d',  // user_id
452
-            '%s',  // action
453
-            '%s',  // data_type
454
-            '%s',  // timestamp
455
-            '%s',  // additional_info
451
+            '%d', // user_id
452
+            '%s', // action
453
+            '%s', // data_type
454
+            '%s', // timestamp
455
+            '%s', // additional_info
456 456
         );
457 457
 
458
-        if ( ! empty( $user_id ) && ! empty( $action ) ) {
458
+        if (!empty($user_id) && !empty($action)) {
459 459
             $result = $wpdb->update(
460 460
                 $table_name,
461 461
                 $data,
462 462
                 array(
463 463
                     'user_id' => (int) $user_id,
464
-                    'action'  => sanitize_text_field( $action ),
464
+                    'action'  => sanitize_text_field($action),
465 465
                 ),
466 466
                 $format,
467
-                array( '%d', '%s' )
467
+                array('%d', '%s')
468 468
             );
469 469
 
470
-            if ( false === $result ) {
470
+            if (false === $result) {
471 471
                 // If update fails, try to insert.
472
-                $result = $wpdb->insert( $table_name, $data, $format );
472
+                $result = $wpdb->insert($table_name, $data, $format);
473 473
             }
474 474
 
475
-            if ( false === $result ) {
476
-                wpinv_error_log( sprintf( 'Failed to log anonymization action for user ID: %d. Error: %s', $user_id, $wpdb->last_error ) );
475
+            if (false === $result) {
476
+                wpinv_error_log(sprintf('Failed to log anonymization action for user ID: %d. Error: %s', $user_id, $wpdb->last_error));
477 477
                 return false;
478 478
             }
479 479
         }
@@ -487,7 +487,7 @@  discard block
 block discarded – undo
487 487
          * @param string $action   The action being performed (anonymize or delete).
488 488
          * @param array  $data     The data that was inserted into the log.
489 489
          */
490
-        do_action( 'wpinv_after_log_deletion_action', $user_id, $invoices, $action, $data );
490
+        do_action('wpinv_after_log_deletion_action', $user_id, $invoices, $action, $data);
491 491
 
492 492
         return true;
493 493
     }
@@ -500,20 +500,20 @@  discard block
 block discarded – undo
500 500
      * @param int   $user_id  The ID of the user being erased.
501 501
      * @return array The modified response.
502 502
      */
503
-    public function handle_erasure_request( $response, $user_id ) {
504
-        if ( $this->has_active_subscriptions( $user_id ) ) {
505
-            $response['messages'][]    = esc_html__( 'User has active subscriptions. Data cannot be erased at this time.', 'invoicing' );
503
+    public function handle_erasure_request($response, $user_id) {
504
+        if ($this->has_active_subscriptions($user_id)) {
505
+            $response['messages'][]    = esc_html__('User has active subscriptions. Data cannot be erased at this time.', 'invoicing');
506 506
             $response['items_removed'] = false;
507
-        } elseif ( $this->has_paid_invoices( $user_id ) ) {
508
-            $retention_method = wpinv_get_option( 'data_retention_method', 'anonymize' );
509
-            if ( 'anonymize' === $retention_method ) {
510
-                $this->anonymize_user_data( $user_id );
511
-                $response['messages'][]     = esc_html__( 'User data has been anonymized due to existing paid invoices.', 'invoicing' );
507
+        } elseif ($this->has_paid_invoices($user_id)) {
508
+            $retention_method = wpinv_get_option('data_retention_method', 'anonymize');
509
+            if ('anonymize' === $retention_method) {
510
+                $this->anonymize_user_data($user_id);
511
+                $response['messages'][]     = esc_html__('User data has been anonymized due to existing paid invoices.', 'invoicing');
512 512
                 $response['items_removed']  = false;
513 513
                 $response['items_retained'] = true;
514 514
             } else {
515
-                $this->delete_user_data( $user_id );
516
-                $response['messages'][]     = esc_html__( 'User data has been deleted.', 'invoicing' );
515
+                $this->delete_user_data($user_id);
516
+                $response['messages'][]     = esc_html__('User data has been deleted.', 'invoicing');
517 517
                 $response['items_removed']  = true;
518 518
                 $response['items_retained'] = false;
519 519
             }
@@ -529,18 +529,18 @@  discard block
 block discarded – undo
529 529
      * @param string $email The email to hash.
530 530
      * @return string The hashed email.
531 531
      */
532
-    private function hash_email( $email ) {
532
+    private function hash_email($email) {
533 533
         $site_url = get_site_url();
534
-        $domain   = wp_parse_url( $site_url, PHP_URL_HOST );
534
+        $domain   = wp_parse_url($site_url, PHP_URL_HOST);
535 535
 
536
-        if ( empty( $domain ) ) {
536
+        if (empty($domain)) {
537 537
             return $email;
538 538
         }
539 539
 
540
-        $clean_email     = sanitize_email( strtolower( trim( $email ) ) );
541
-        $hash            = wp_hash( $clean_email );
542
-        $hash            = substr( $hash, 0, 20 );
543
-        $anonymized_email = sprintf( '%s@%s', $hash, $domain );
540
+        $clean_email     = sanitize_email(strtolower(trim($email)));
541
+        $hash            = wp_hash($clean_email);
542
+        $hash            = substr($hash, 0, 20);
543
+        $anonymized_email = sprintf('%s@%s', $hash, $domain);
544 544
 
545 545
         /**
546 546
          * Filters the anonymized email before returning.
@@ -549,7 +549,7 @@  discard block
 block discarded – undo
549 549
          * @param string $anonymized_email The anonymized email address.
550 550
          * @param string $email            The original email address.
551 551
          */
552
-        return apply_filters( 'wpinv_anonymized_email', $anonymized_email, $email );
552
+        return apply_filters('wpinv_anonymized_email', $anonymized_email, $email);
553 553
     }
554 554
 
555 555
     /**
@@ -559,12 +559,12 @@  discard block
 block discarded – undo
559 559
      * @param string $data The data to anonymize.
560 560
      * @return string The anonymized data.
561 561
      */
562
-    private function anonymize_data( $data ) {
563
-        if ( empty( $data ) ) {
562
+    private function anonymize_data($data) {
563
+        if (empty($data)) {
564 564
             return '';
565 565
         }
566 566
 
567
-        return wp_privacy_anonymize_data( 'text', $data );
567
+        return wp_privacy_anonymize_data('text', $data);
568 568
     }
569 569
 
570 570
     /**
@@ -578,17 +578,17 @@  discard block
 block discarded – undo
578 578
     public function perform_data_retention_cleanup() {
579 579
         global $wpdb;
580 580
 
581
-        $retention_period = wpinv_get_option( 'data_retention_period', '3650' );
581
+        $retention_period = wpinv_get_option('data_retention_period', '3650');
582 582
 
583 583
         // If retention period is set to 'never', exit the function.
584
-        if ( 'never' === $retention_period ) {
584
+        if ('never' === $retention_period) {
585 585
             return;
586 586
         }
587 587
 
588 588
         $customers_table = $wpdb->prefix . 'getpaid_customers';
589 589
 
590 590
         // Calculate the cutoff date for data retention.
591
-        $cutoff_date = gmdate( 'Y-m-d', strtotime( "-$retention_period days" ) );
591
+        $cutoff_date = gmdate('Y-m-d', strtotime("-$retention_period days"));
592 592
 
593 593
         $expired_records = $wpdb->get_results(
594 594
             $wpdb->prepare(
@@ -603,18 +603,18 @@  discard block
 block discarded – undo
603 603
          * @since 2.8.22
604 604
          * @param array $expired_records Array of customer records to be processed.
605 605
          */
606
-        do_action( 'getpaid_data_retention_before_cleanup', $expired_records );
606
+        do_action('getpaid_data_retention_before_cleanup', $expired_records);
607 607
 
608
-        if ( ! empty( $expired_records ) ) {
608
+        if (!empty($expired_records)) {
609 609
             // Disable our custom user deletion handling.
610 610
             $this->handle_user_deletion = false;
611 611
 
612
-            foreach ( $expired_records as $record ) {
612
+            foreach ($expired_records as $record) {
613 613
                 // Delete associated invoices.
614
-                $this->ensure_invoice_anonymization( (int) $record->user_id, 'delete' );
614
+                $this->ensure_invoice_anonymization((int) $record->user_id, 'delete');
615 615
 
616 616
                 // Delete the user.
617
-                wp_delete_user( (int) $record->user_id );
617
+                wp_delete_user((int) $record->user_id);
618 618
 
619 619
                 /**
620 620
                  * Fires after processing each expired record during cleanup.
@@ -622,7 +622,7 @@  discard block
 block discarded – undo
622 622
                  * @since 2.8.22
623 623
                  * @param object $record The customer record being processed.
624 624
                  */
625
-                do_action( 'getpaid_data_retention_process_record', $record );
625
+                do_action('getpaid_data_retention_process_record', $record);
626 626
             }
627 627
 
628 628
             // Re-enable our custom user deletion handling.
@@ -634,7 +634,7 @@  discard block
 block discarded – undo
634 634
              * @since 2.8.22
635 635
              * @param array $expired_records Array of customer records that were processed.
636 636
              */
637
-            do_action( 'getpaid_data_retention_after_cleanup', $expired_records );
637
+            do_action('getpaid_data_retention_after_cleanup', $expired_records);
638 638
         }
639 639
 
640 640
         /**
@@ -644,7 +644,7 @@  discard block
 block discarded – undo
644 644
          * @param int $retention_period The current retention period in years.
645 645
          * @param string $cutoff_date The cutoff date used for identifying expired records.
646 646
          */
647
-        do_action( 'getpaid_data_retention_cleanup_complete', $retention_period, $cutoff_date );
647
+        do_action('getpaid_data_retention_cleanup_complete', $retention_period, $cutoff_date);
648 648
     }
649 649
 
650 650
     /**
@@ -657,7 +657,7 @@  discard block
 block discarded – undo
657 657
 
658 658
         // Redirect after deletion.
659 659
         $redirect_page = home_url();
660
-        wp_safe_redirect( $redirect_page );
660
+        wp_safe_redirect($redirect_page);
661 661
         exit();
662 662
     }
663 663
 }
664 664
\ No newline at end of file
Please login to merge, or discard this patch.
includes/reports/class-getpaid-graph-downloader.php 2 patches
Indentation   +202 added lines, -202 removed lines patch added patch discarded remove patch
@@ -12,218 +12,218 @@
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Graph_Downloader {
14 14
 
15
-	/**
16
-	 * @var GetPaid_Reports_Report
17
-	 */
18
-	public $handler;
19
-
20
-	/**
21
-	 * Class constructor.
22
-	 *
23
-	 */
24
-	public function __construct() {
25
-		$this->handler = new GetPaid_Reports_Report();
26
-	}
27
-
28
-	/**
29
-	 * Prepares the datastore handler.
30
-	 *
31
-	 * @return GetPaid_Reports_Report_Items|GetPaid_Reports_Report_Gateways|GetPaid_Reports_Report_Discounts
32
-	 */
33
-	public function prepare_handler( $graph ) {
34
-
35
-		if ( empty( $this->handler->views[ $graph ] ) ) {
36
-			wp_die( esc_html__( 'Invalid Graph', 'invoicing' ), 400 );
37
-		}
38
-
39
-		return new $this->handler->views[ $graph ]['class']();
40
-
41
-	}
42
-
43
-	/**
44
-	 * Prepares the output stream.
45
-	 *
46
-	 * @return resource
47
-	 */
48
-	public function prepare_output() {
49
-
50
-		$output  = fopen( 'php://output', 'w' );
51
-
52
-		if ( false === $output ) {
53
-			wp_die( esc_html__( 'Unsupported server', 'invoicing' ), 500 );
54
-		}
55
-
56
-		return $output;
57
-	}
58
-
59
-	/**
60
-	 * Prepares the file type.
61
-	 *
62
-	 * @return string
63
-	 */
64
-	public function prepare_file_type( $graph ) {
65
-
66
-		$file_type = empty( $_REQUEST['file_type'] ) ? 'csv' : sanitize_text_field( $_REQUEST['file_type'] );
67
-		$file_name = wpinv_sanitize_key( "getpaid-$graph-" . current_time( 'Y-m-d' ) );
68
-
69
-		header( "Content-Type:application/$file_type" );
70
-		header( "Content-Disposition:attachment;filename=$file_name.$file_type" );
71
-
72
-		return $file_type;
73
-	}
74
-
75
-	/**
76
-	 * Handles the actual download.
77
-	 *
78
-	 */
79
-	public function download( $graph ) {
80
-		global $wpdb;
81
-
82
-		$handler   = $this->prepare_handler( $graph );
83
-		$stream    = $this->prepare_output();
84
-		$stats     = $wpdb->get_results( $handler->get_sql( $handler->get_range() ) );
85
-		$headers   = array( $handler->field, 'total', 'total_raw' );
86
-		$file_type = $this->prepare_file_type( $graph );
87
-
88
-		if ( 'csv' == $file_type ) {
89
-			$this->download_csv( $stats, $stream, $headers );
90
-		} elseif ( 'xml' == $file_type ) {
91
-			$this->download_xml( $stats, $stream, $headers );
92
-		} else {
93
-			$this->download_json( $stats, $stream, $headers );
94
-		}
95
-
96
-		fclose( $stream );
97
-		exit;
98
-	}
99
-
100
-	/**
101
-	 * Downloads graph as csv
102
-	 *
103
-	 * @param array $stats The stats being downloaded.
104
-	 * @param resource $stream The stream to output to.
105
-	 * @param array $headers The fields to stream.
106
-	 * @since       1.0.19
107
-	 */
108
-	public function download_csv( $stats, $stream, $headers ) {
109
-
110
-		// Output the csv column headers.
111
-		fputcsv( $stream, $headers );
112
-
113
-		// Loop through
114
-		foreach ( $stats as $stat ) {
115
-			$row  = array_values( $this->prepare_row( $stat, $headers ) );
116
-			$row  = array_map( 'maybe_serialize', $row );
117
-			fputcsv( $stream, $row );
118
-		}
119
-
120
-	}
121
-
122
-	/**
123
-	 * Downloads graph as json
124
-	 *
125
-	 * @param array $stats The stats being downloaded.
126
-	 * @param resource $stream The stream to output to.
127
-	 * @param array $headers The fields to stream.
128
-	 * @since       1.0.19
129
-	 */
130
-	public function download_json( $stats, $stream, $headers ) {
131
-
132
-		$prepared = array();
133
-
134
-		// Loop through
135
-		foreach ( $stats as $stat ) {
136
-			$prepared[] = $this->prepare_row( $stat, $headers );
137
-		}
138
-
139
-		fwrite( $stream, wp_json_encode( $prepared ) );
140
-
141
-	}
142
-
143
-	/**
144
-	 * Downloads graph as xml
145
-	 *
146
-	 * @param array $stats The stats being downloaded.
147
-	 * @param resource $stream The stream to output to.
148
-	 * @param array $headers The fields to stream.
149
-	 * @since       1.0.19
150
-	 */
151
-	public function download_xml( $stats, $stream, $headers ) {
152
-
153
-		$prepared = array();
154
-
155
-		// Loop through
156
-		foreach ( $stats as $stat ) {
157
-			$prepared[] = $this->prepare_row( $stat, $headers );
158
-		}
159
-
160
-		$xml = new SimpleXMLElement( '<?xml version="1.0"?><data></data>' );
161
-		$this->convert_array_xml( $prepared, $xml );
162
-
163
-		fwrite( $stream, $xml->asXML() );
164
-
165
-	}
166
-
167
-	/**
168
-	 * Converts stats array to xml
169
-	 *
170
-	 * @access      public
171
-	 * @since      1.0.19
172
-	 */
173
-	public function convert_array_xml( $data, $xml ) {
174
-
175
-		// Loop through
176
-		foreach ( $data as $key => $value ) {
177
-
178
-			$key = preg_replace( '/[^A-Za-z0-9_\-]/', '', $key );
179
-
180
-			if ( is_array( $value ) ) {
181
-
182
-				if ( is_numeric( $key ) ) {
183
-					$key = 'item' . $key; //dealing with <0/>..<n/> issues
184
-				}
185
-
186
-				$subnode = $xml->addChild( $key );
187
-				$this->convert_array_xml( $value, $subnode );
188
-
189
-			} else {
190
-				$xml->addChild( $key, $value ?  htmlspecialchars( $value ) : $value );
191
-			}
15
+    /**
16
+     * @var GetPaid_Reports_Report
17
+     */
18
+    public $handler;
19
+
20
+    /**
21
+     * Class constructor.
22
+     *
23
+     */
24
+    public function __construct() {
25
+        $this->handler = new GetPaid_Reports_Report();
26
+    }
27
+
28
+    /**
29
+     * Prepares the datastore handler.
30
+     *
31
+     * @return GetPaid_Reports_Report_Items|GetPaid_Reports_Report_Gateways|GetPaid_Reports_Report_Discounts
32
+     */
33
+    public function prepare_handler( $graph ) {
34
+
35
+        if ( empty( $this->handler->views[ $graph ] ) ) {
36
+            wp_die( esc_html__( 'Invalid Graph', 'invoicing' ), 400 );
37
+        }
38
+
39
+        return new $this->handler->views[ $graph ]['class']();
40
+
41
+    }
42
+
43
+    /**
44
+     * Prepares the output stream.
45
+     *
46
+     * @return resource
47
+     */
48
+    public function prepare_output() {
49
+
50
+        $output  = fopen( 'php://output', 'w' );
51
+
52
+        if ( false === $output ) {
53
+            wp_die( esc_html__( 'Unsupported server', 'invoicing' ), 500 );
54
+        }
55
+
56
+        return $output;
57
+    }
58
+
59
+    /**
60
+     * Prepares the file type.
61
+     *
62
+     * @return string
63
+     */
64
+    public function prepare_file_type( $graph ) {
65
+
66
+        $file_type = empty( $_REQUEST['file_type'] ) ? 'csv' : sanitize_text_field( $_REQUEST['file_type'] );
67
+        $file_name = wpinv_sanitize_key( "getpaid-$graph-" . current_time( 'Y-m-d' ) );
68
+
69
+        header( "Content-Type:application/$file_type" );
70
+        header( "Content-Disposition:attachment;filename=$file_name.$file_type" );
71
+
72
+        return $file_type;
73
+    }
74
+
75
+    /**
76
+     * Handles the actual download.
77
+     *
78
+     */
79
+    public function download( $graph ) {
80
+        global $wpdb;
81
+
82
+        $handler   = $this->prepare_handler( $graph );
83
+        $stream    = $this->prepare_output();
84
+        $stats     = $wpdb->get_results( $handler->get_sql( $handler->get_range() ) );
85
+        $headers   = array( $handler->field, 'total', 'total_raw' );
86
+        $file_type = $this->prepare_file_type( $graph );
87
+
88
+        if ( 'csv' == $file_type ) {
89
+            $this->download_csv( $stats, $stream, $headers );
90
+        } elseif ( 'xml' == $file_type ) {
91
+            $this->download_xml( $stats, $stream, $headers );
92
+        } else {
93
+            $this->download_json( $stats, $stream, $headers );
94
+        }
95
+
96
+        fclose( $stream );
97
+        exit;
98
+    }
99
+
100
+    /**
101
+     * Downloads graph as csv
102
+     *
103
+     * @param array $stats The stats being downloaded.
104
+     * @param resource $stream The stream to output to.
105
+     * @param array $headers The fields to stream.
106
+     * @since       1.0.19
107
+     */
108
+    public function download_csv( $stats, $stream, $headers ) {
109
+
110
+        // Output the csv column headers.
111
+        fputcsv( $stream, $headers );
112
+
113
+        // Loop through
114
+        foreach ( $stats as $stat ) {
115
+            $row  = array_values( $this->prepare_row( $stat, $headers ) );
116
+            $row  = array_map( 'maybe_serialize', $row );
117
+            fputcsv( $stream, $row );
118
+        }
119
+
120
+    }
121
+
122
+    /**
123
+     * Downloads graph as json
124
+     *
125
+     * @param array $stats The stats being downloaded.
126
+     * @param resource $stream The stream to output to.
127
+     * @param array $headers The fields to stream.
128
+     * @since       1.0.19
129
+     */
130
+    public function download_json( $stats, $stream, $headers ) {
131
+
132
+        $prepared = array();
133
+
134
+        // Loop through
135
+        foreach ( $stats as $stat ) {
136
+            $prepared[] = $this->prepare_row( $stat, $headers );
137
+        }
138
+
139
+        fwrite( $stream, wp_json_encode( $prepared ) );
140
+
141
+    }
142
+
143
+    /**
144
+     * Downloads graph as xml
145
+     *
146
+     * @param array $stats The stats being downloaded.
147
+     * @param resource $stream The stream to output to.
148
+     * @param array $headers The fields to stream.
149
+     * @since       1.0.19
150
+     */
151
+    public function download_xml( $stats, $stream, $headers ) {
152
+
153
+        $prepared = array();
154
+
155
+        // Loop through
156
+        foreach ( $stats as $stat ) {
157
+            $prepared[] = $this->prepare_row( $stat, $headers );
158
+        }
159
+
160
+        $xml = new SimpleXMLElement( '<?xml version="1.0"?><data></data>' );
161
+        $this->convert_array_xml( $prepared, $xml );
162
+
163
+        fwrite( $stream, $xml->asXML() );
164
+
165
+    }
166
+
167
+    /**
168
+     * Converts stats array to xml
169
+     *
170
+     * @access      public
171
+     * @since      1.0.19
172
+     */
173
+    public function convert_array_xml( $data, $xml ) {
174
+
175
+        // Loop through
176
+        foreach ( $data as $key => $value ) {
177
+
178
+            $key = preg_replace( '/[^A-Za-z0-9_\-]/', '', $key );
179
+
180
+            if ( is_array( $value ) ) {
181
+
182
+                if ( is_numeric( $key ) ) {
183
+                    $key = 'item' . $key; //dealing with <0/>..<n/> issues
184
+                }
185
+
186
+                $subnode = $xml->addChild( $key );
187
+                $this->convert_array_xml( $value, $subnode );
188
+
189
+            } else {
190
+                $xml->addChild( $key, $value ?  htmlspecialchars( $value ) : $value );
191
+            }
192 192
 }
193 193
 
194
-	}
194
+    }
195 195
 
196
-	/**
197
-	 * Prepares a single row for download.
198
-	 *
199
-	 * @param stdClass|array $row The row to prepare..
200
-	 * @param array $fields The fields to stream.
201
-	 * @since       1.0.19
202
-	 * @return array
203
-	 */
204
-	public function prepare_row( $row, $fields ) {
196
+    /**
197
+     * Prepares a single row for download.
198
+     *
199
+     * @param stdClass|array $row The row to prepare..
200
+     * @param array $fields The fields to stream.
201
+     * @since       1.0.19
202
+     * @return array
203
+     */
204
+    public function prepare_row( $row, $fields ) {
205 205
 
206
-		$prepared = array();
207
-		$row      = (array) $row;
206
+        $prepared = array();
207
+        $row      = (array) $row;
208 208
 
209
-		foreach ( $fields as $field ) {
209
+        foreach ( $fields as $field ) {
210 210
 
211
-			if ( $field === 'total' ) {
212
-				$prepared[ $field ] = html_entity_decode( strip_tags( wpinv_price( $row['total'] ) ), ENT_QUOTES );
213
-				continue;
214
-			}
211
+            if ( $field === 'total' ) {
212
+                $prepared[ $field ] = html_entity_decode( strip_tags( wpinv_price( $row['total'] ) ), ENT_QUOTES );
213
+                continue;
214
+            }
215 215
 
216
-			if ( $field === 'total_raw' ) {
217
-				$prepared[ $field ] = wpinv_round_amount( wpinv_sanitize_amount( $row['total'] ) );
218
-				continue;
219
-			}
216
+            if ( $field === 'total_raw' ) {
217
+                $prepared[ $field ] = wpinv_round_amount( wpinv_sanitize_amount( $row['total'] ) );
218
+                continue;
219
+            }
220 220
 
221
-			$prepared[ $field ] = strip_tags( $row[ $field ] );
221
+            $prepared[ $field ] = strip_tags( $row[ $field ] );
222 222
 
223
-		}
223
+        }
224 224
 
225
-		return $prepared;
226
-	}
225
+        return $prepared;
226
+    }
227 227
 
228 228
 
229 229
 }
Please login to merge, or discard this patch.
Spacing   +56 added lines, -56 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  *
6 6
  */
7 7
 
8
-defined( 'ABSPATH' ) || exit;
8
+defined('ABSPATH') || exit;
9 9
 
10 10
 /**
11 11
  * GetPaid_Graph_Downloader Class.
@@ -30,13 +30,13 @@  discard block
 block discarded – undo
30 30
 	 *
31 31
 	 * @return GetPaid_Reports_Report_Items|GetPaid_Reports_Report_Gateways|GetPaid_Reports_Report_Discounts
32 32
 	 */
33
-	public function prepare_handler( $graph ) {
33
+	public function prepare_handler($graph) {
34 34
 
35
-		if ( empty( $this->handler->views[ $graph ] ) ) {
36
-			wp_die( esc_html__( 'Invalid Graph', 'invoicing' ), 400 );
35
+		if (empty($this->handler->views[$graph])) {
36
+			wp_die(esc_html__('Invalid Graph', 'invoicing'), 400);
37 37
 		}
38 38
 
39
-		return new $this->handler->views[ $graph ]['class']();
39
+		return new $this->handler->views[$graph]['class']();
40 40
 
41 41
 	}
42 42
 
@@ -47,10 +47,10 @@  discard block
 block discarded – undo
47 47
 	 */
48 48
 	public function prepare_output() {
49 49
 
50
-		$output  = fopen( 'php://output', 'w' );
50
+		$output = fopen('php://output', 'w');
51 51
 
52
-		if ( false === $output ) {
53
-			wp_die( esc_html__( 'Unsupported server', 'invoicing' ), 500 );
52
+		if (false === $output) {
53
+			wp_die(esc_html__('Unsupported server', 'invoicing'), 500);
54 54
 		}
55 55
 
56 56
 		return $output;
@@ -61,13 +61,13 @@  discard block
 block discarded – undo
61 61
 	 *
62 62
 	 * @return string
63 63
 	 */
64
-	public function prepare_file_type( $graph ) {
64
+	public function prepare_file_type($graph) {
65 65
 
66
-		$file_type = empty( $_REQUEST['file_type'] ) ? 'csv' : sanitize_text_field( $_REQUEST['file_type'] );
67
-		$file_name = wpinv_sanitize_key( "getpaid-$graph-" . current_time( 'Y-m-d' ) );
66
+		$file_type = empty($_REQUEST['file_type']) ? 'csv' : sanitize_text_field($_REQUEST['file_type']);
67
+		$file_name = wpinv_sanitize_key("getpaid-$graph-" . current_time('Y-m-d'));
68 68
 
69
-		header( "Content-Type:application/$file_type" );
70
-		header( "Content-Disposition:attachment;filename=$file_name.$file_type" );
69
+		header("Content-Type:application/$file_type");
70
+		header("Content-Disposition:attachment;filename=$file_name.$file_type");
71 71
 
72 72
 		return $file_type;
73 73
 	}
@@ -76,24 +76,24 @@  discard block
 block discarded – undo
76 76
 	 * Handles the actual download.
77 77
 	 *
78 78
 	 */
79
-	public function download( $graph ) {
79
+	public function download($graph) {
80 80
 		global $wpdb;
81 81
 
82
-		$handler   = $this->prepare_handler( $graph );
82
+		$handler   = $this->prepare_handler($graph);
83 83
 		$stream    = $this->prepare_output();
84
-		$stats     = $wpdb->get_results( $handler->get_sql( $handler->get_range() ) );
85
-		$headers   = array( $handler->field, 'total', 'total_raw' );
86
-		$file_type = $this->prepare_file_type( $graph );
87
-
88
-		if ( 'csv' == $file_type ) {
89
-			$this->download_csv( $stats, $stream, $headers );
90
-		} elseif ( 'xml' == $file_type ) {
91
-			$this->download_xml( $stats, $stream, $headers );
84
+		$stats     = $wpdb->get_results($handler->get_sql($handler->get_range()));
85
+		$headers   = array($handler->field, 'total', 'total_raw');
86
+		$file_type = $this->prepare_file_type($graph);
87
+
88
+		if ('csv' == $file_type) {
89
+			$this->download_csv($stats, $stream, $headers);
90
+		} elseif ('xml' == $file_type) {
91
+			$this->download_xml($stats, $stream, $headers);
92 92
 		} else {
93
-			$this->download_json( $stats, $stream, $headers );
93
+			$this->download_json($stats, $stream, $headers);
94 94
 		}
95 95
 
96
-		fclose( $stream );
96
+		fclose($stream);
97 97
 		exit;
98 98
 	}
99 99
 
@@ -105,16 +105,16 @@  discard block
 block discarded – undo
105 105
 	 * @param array $headers The fields to stream.
106 106
 	 * @since       1.0.19
107 107
 	 */
108
-	public function download_csv( $stats, $stream, $headers ) {
108
+	public function download_csv($stats, $stream, $headers) {
109 109
 
110 110
 		// Output the csv column headers.
111
-		fputcsv( $stream, $headers );
111
+		fputcsv($stream, $headers);
112 112
 
113 113
 		// Loop through
114
-		foreach ( $stats as $stat ) {
115
-			$row  = array_values( $this->prepare_row( $stat, $headers ) );
116
-			$row  = array_map( 'maybe_serialize', $row );
117
-			fputcsv( $stream, $row );
114
+		foreach ($stats as $stat) {
115
+			$row  = array_values($this->prepare_row($stat, $headers));
116
+			$row  = array_map('maybe_serialize', $row);
117
+			fputcsv($stream, $row);
118 118
 		}
119 119
 
120 120
 	}
@@ -127,16 +127,16 @@  discard block
 block discarded – undo
127 127
 	 * @param array $headers The fields to stream.
128 128
 	 * @since       1.0.19
129 129
 	 */
130
-	public function download_json( $stats, $stream, $headers ) {
130
+	public function download_json($stats, $stream, $headers) {
131 131
 
132 132
 		$prepared = array();
133 133
 
134 134
 		// Loop through
135
-		foreach ( $stats as $stat ) {
136
-			$prepared[] = $this->prepare_row( $stat, $headers );
135
+		foreach ($stats as $stat) {
136
+			$prepared[] = $this->prepare_row($stat, $headers);
137 137
 		}
138 138
 
139
-		fwrite( $stream, wp_json_encode( $prepared ) );
139
+		fwrite($stream, wp_json_encode($prepared));
140 140
 
141 141
 	}
142 142
 
@@ -148,19 +148,19 @@  discard block
 block discarded – undo
148 148
 	 * @param array $headers The fields to stream.
149 149
 	 * @since       1.0.19
150 150
 	 */
151
-	public function download_xml( $stats, $stream, $headers ) {
151
+	public function download_xml($stats, $stream, $headers) {
152 152
 
153 153
 		$prepared = array();
154 154
 
155 155
 		// Loop through
156
-		foreach ( $stats as $stat ) {
157
-			$prepared[] = $this->prepare_row( $stat, $headers );
156
+		foreach ($stats as $stat) {
157
+			$prepared[] = $this->prepare_row($stat, $headers);
158 158
 		}
159 159
 
160
-		$xml = new SimpleXMLElement( '<?xml version="1.0"?><data></data>' );
161
-		$this->convert_array_xml( $prepared, $xml );
160
+		$xml = new SimpleXMLElement('<?xml version="1.0"?><data></data>');
161
+		$this->convert_array_xml($prepared, $xml);
162 162
 
163
-		fwrite( $stream, $xml->asXML() );
163
+		fwrite($stream, $xml->asXML());
164 164
 
165 165
 	}
166 166
 
@@ -170,24 +170,24 @@  discard block
 block discarded – undo
170 170
 	 * @access      public
171 171
 	 * @since      1.0.19
172 172
 	 */
173
-	public function convert_array_xml( $data, $xml ) {
173
+	public function convert_array_xml($data, $xml) {
174 174
 
175 175
 		// Loop through
176
-		foreach ( $data as $key => $value ) {
176
+		foreach ($data as $key => $value) {
177 177
 
178
-			$key = preg_replace( '/[^A-Za-z0-9_\-]/', '', $key );
178
+			$key = preg_replace('/[^A-Za-z0-9_\-]/', '', $key);
179 179
 
180
-			if ( is_array( $value ) ) {
180
+			if (is_array($value)) {
181 181
 
182
-				if ( is_numeric( $key ) ) {
182
+				if (is_numeric($key)) {
183 183
 					$key = 'item' . $key; //dealing with <0/>..<n/> issues
184 184
 				}
185 185
 
186
-				$subnode = $xml->addChild( $key );
187
-				$this->convert_array_xml( $value, $subnode );
186
+				$subnode = $xml->addChild($key);
187
+				$this->convert_array_xml($value, $subnode);
188 188
 
189 189
 			} else {
190
-				$xml->addChild( $key, $value ?  htmlspecialchars( $value ) : $value );
190
+				$xml->addChild($key, $value ?  htmlspecialchars($value) : $value);
191 191
 			}
192 192
 }
193 193
 
@@ -201,24 +201,24 @@  discard block
 block discarded – undo
201 201
 	 * @since       1.0.19
202 202
 	 * @return array
203 203
 	 */
204
-	public function prepare_row( $row, $fields ) {
204
+	public function prepare_row($row, $fields) {
205 205
 
206 206
 		$prepared = array();
207 207
 		$row      = (array) $row;
208 208
 
209
-		foreach ( $fields as $field ) {
209
+		foreach ($fields as $field) {
210 210
 
211
-			if ( $field === 'total' ) {
212
-				$prepared[ $field ] = html_entity_decode( strip_tags( wpinv_price( $row['total'] ) ), ENT_QUOTES );
211
+			if ($field === 'total') {
212
+				$prepared[$field] = html_entity_decode(strip_tags(wpinv_price($row['total'])), ENT_QUOTES);
213 213
 				continue;
214 214
 			}
215 215
 
216
-			if ( $field === 'total_raw' ) {
217
-				$prepared[ $field ] = wpinv_round_amount( wpinv_sanitize_amount( $row['total'] ) );
216
+			if ($field === 'total_raw') {
217
+				$prepared[$field] = wpinv_round_amount(wpinv_sanitize_amount($row['total']));
218 218
 				continue;
219 219
 			}
220 220
 
221
-			$prepared[ $field ] = strip_tags( $row[ $field ] );
221
+			$prepared[$field] = strip_tags($row[$field]);
222 222
 
223 223
 		}
224 224
 
Please login to merge, or discard this patch.
includes/reports/class-getpaid-invoice-exporter.php 2 patches
Indentation   +232 added lines, -232 removed lines patch added patch discarded remove patch
@@ -12,236 +12,236 @@
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Invoice_Exporter extends GetPaid_Graph_Downloader {
14 14
 
15
-	/**
16
-	 * Retrieves invoices query args.
17
-	 *
18
-	 * @param string $post_type post type to retrieve.
19
-	 * @param array $args Args to search for.
20
-	 * @return array
21
-	 */
22
-	public function get_invoice_query_args( $post_type, $args ) {
23
-
24
-		$query_args = array(
25
-			'post_type'              => $post_type,
26
-			'post_status'            => array_keys( wpinv_get_invoice_statuses( true, false, $post_type ) ),
27
-			'posts_per_page'         => -1,
28
-			'no_found_rows'          => true,
29
-			'update_post_term_cache' => false,
30
-			'fields'                 => 'ids',
31
-		);
32
-
33
-		if ( ! empty( $args['status'] ) && in_array( $args['status'], $query_args['post_status'], true ) ) {
34
-			$query_args['post_status'] = wpinv_clean( wpinv_parse_list( $args['status'] ) );
35
-		}
36
-
37
-		$date_query = array();
38
-		if ( ! empty( $args['to_date'] ) ) {
39
-			$date_query['before'] = wpinv_clean( $args['to_date'] );
40
-		}
41
-
42
-		if ( ! empty( $args['from_date'] ) ) {
43
-			$date_query['after'] = wpinv_clean( $args['from_date'] );
44
-		}
45
-
46
-		if ( ! empty( $date_query ) ) {
47
-			$date_query['inclusive']  = true;
48
-			$query_args['date_query'] = array( $date_query );
49
-		}
50
-
51
-		return $query_args;
52
-	}
53
-
54
-	/**
55
-	 * Retrieves invoices.
56
-	 *
57
-	 * @param array $query_args WP_Query args.
58
-	 * @return WPInv_Invoice[]
59
-	 */
60
-	public function get_invoices( $query_args ) {
61
-
62
-		// Get invoices.
63
-		$invoices = new WP_Query( $query_args );
64
-
65
-		// Prepare the results.
66
-		return array_map( 'wpinv_get_invoice', $invoices->posts );
67
-
68
-	}
69
-
70
-	/**
71
-	 * Handles the actual download.
72
-	 *
73
-	 */
74
-	public function export( $post_type, $args ) {
75
-
76
-		$invoices  = $this->get_invoices( $this->get_invoice_query_args( $post_type, $args ) );
77
-		$stream    = $this->prepare_output();
78
-		$headers   = $this->get_export_fields( $post_type );
79
-		$file_type = $this->prepare_file_type( strtolower( getpaid_get_post_type_label( $post_type ) ) );
80
-
81
-		if ( 'csv' == $file_type ) {
82
-			$this->download_csv( $invoices, $stream, $headers );
83
-		} elseif ( 'xml' == $file_type ) {
84
-			$this->download_xml( $invoices, $stream, $headers );
85
-		} else {
86
-			$this->download_json( $invoices, $stream, $headers );
87
-		}
88
-
89
-		fclose( $stream );
90
-		exit;
91
-	}
92
-
93
-	/**
94
-	 * Prepares a single invoice for download.
95
-	 *
96
-	 * @param WPInv_Invoice $invoice The invoice to prepare..
97
-	 * @param array $fields The fields to stream.
98
-	 * @since       1.0.19
99
-	 * @return array
100
-	 */
101
-	public function prepare_row( $invoice, $fields ) {
102
-
103
-		$prepared      = array();
104
-		$amount_fields = $this->get_amount_fields( $invoice->get_post_type() );
105
-		$meta_fields = $this->get_payment_form_meta( $invoice );
106
-
107
-		foreach ( $fields as $field ) {
108
-			$value  = '';
109
-			$method = "get_$field";
110
-
111
-			if ( method_exists( $invoice, $method ) ) {
112
-				$value  = $invoice->$method();
113
-			} else if( strpos( $field, '_' ) === 0 && isset( $meta_fields[ $field ] ) ) {
114
-				$value = $meta_fields[ $field ];
115
-			}
116
-
117
-			if ( in_array( $field, $amount_fields ) ) {
118
-				$value  = wpinv_round_amount( wpinv_sanitize_amount( $value ) );
119
-			}
120
-
121
-			$prepared[ $field ] = wpinv_clean( $value );
122
-
123
-		}
124
-
125
-		return $prepared;
126
-	}
127
-
128
-	/**
129
-	 * Retrieves export fields.
130
-	 *
131
-	 * @param string $post_type
132
-	 * @since       1.0.19
133
-	 * @return array
134
-	 */
135
-	public function get_export_fields( $post_type ) {
136
-
137
-		$fields = array(
138
-			'id',
139
-			'parent_id',
140
-			'status',
141
-			'date_created',
142
-			'date_modified',
143
-			'date_due',
144
-			'date_completed',
145
-			'number',
146
-			'key',
147
-			'description',
148
-			'post_type',
149
-			'mode',
150
-			'customer_id',
151
-			'customer_first_name',
152
-			'customer_last_name',
153
-			'customer_phone',
154
-			'customer_email',
155
-			'customer_country',
156
-			'customer_city',
157
-			'customer_state',
158
-			'customer_zip',
159
-			'customer_company',
160
-			'customer_vat_number',
161
-			'customer_address',
162
-			'subtotal',
163
-			'total_discount',
164
-			'total_tax',
165
-			'total_fees',
166
-			'fees',
167
-			'discounts',
168
-			'taxes',
169
-			'cart_details',
170
-			'item_ids',
171
-			'payment_form',
172
-			'discount_code',
173
-			'gateway',
174
-			'transaction_id',
175
-			'currency',
176
-			'disable_taxes',
177
-			'subscription_id',
178
-			'remote_subscription_id',
179
-			'is_viewed',
180
-			'email_cc',
181
-			'template',
182
-			'created_via',
183
-    	);
184
-
185
-		// Payment form meta fields.
186
-		$meta_fields = getpaid_get_payment_form_custom_fields();
187
-
188
-		if ( ! empty( $meta_fields ) ) {
189
-			foreach ( $meta_fields as $field_key => $field_label ) {
190
-				$fields[] = $field_key;
191
-			}
192
-		}
193
-
194
-		return apply_filters( 'getpaid_invoice_exporter_get_fields', $fields, $post_type );
195
-	}
196
-
197
-	/**
198
-	 * Retrieves amount fields.
199
-	 *
200
-	 * @param string $post_type
201
-	 * @since       1.0.19
202
-	 * @return array
203
-	 */
204
-	public function get_amount_fields( $post_type ) {
205
-
206
-		$fields = array(
207
-			'subtotal',
208
-			'total_discount',
209
-			'total_tax',
210
-			'total_fees',
211
-    	);
212
-
213
-		return apply_filters( 'getpaid_invoice_exporter_get_amount_fields', $fields, $post_type );
214
-	}
215
-
216
-	/**
217
-	 * Retrieves payment form meta fields.
218
-	 *
219
-	 * @since 2.8.23
220
-	 *
221
-	 * @return array
222
-	 */
223
-	public function get_payment_form_meta( $invoice ) {
224
-		// Payment form meta fields.
225
-		$field_keys = getpaid_get_payment_form_custom_fields();
226
-		$meta = get_post_meta( $invoice->get_id(), 'additional_meta_data', true );
227
-
228
-		$field_values = array();
229
-		if ( ! empty( $field_keys ) ) {
230
-			foreach ( $field_keys as $field_key => $field_label ) {
231
-				$value = '';
232
-
233
-				if ( ! empty( $meta ) ) {
234
-					foreach ( $meta as $meta_label => $meta_value ) {
235
-						if ( getpaid_strtolower( wpinv_clean( wp_unslash( $meta_label ) ) ) == getpaid_strtolower( $field_label ) ) {
236
-							$value = $meta_value;
237
-						}
238
-					}
239
-				}
240
-
241
-				$field_values[ $field_key ] = $value;
242
-			}
243
-		}
244
-
245
-		return $field_values;
246
-	}
15
+    /**
16
+     * Retrieves invoices query args.
17
+     *
18
+     * @param string $post_type post type to retrieve.
19
+     * @param array $args Args to search for.
20
+     * @return array
21
+     */
22
+    public function get_invoice_query_args( $post_type, $args ) {
23
+
24
+        $query_args = array(
25
+            'post_type'              => $post_type,
26
+            'post_status'            => array_keys( wpinv_get_invoice_statuses( true, false, $post_type ) ),
27
+            'posts_per_page'         => -1,
28
+            'no_found_rows'          => true,
29
+            'update_post_term_cache' => false,
30
+            'fields'                 => 'ids',
31
+        );
32
+
33
+        if ( ! empty( $args['status'] ) && in_array( $args['status'], $query_args['post_status'], true ) ) {
34
+            $query_args['post_status'] = wpinv_clean( wpinv_parse_list( $args['status'] ) );
35
+        }
36
+
37
+        $date_query = array();
38
+        if ( ! empty( $args['to_date'] ) ) {
39
+            $date_query['before'] = wpinv_clean( $args['to_date'] );
40
+        }
41
+
42
+        if ( ! empty( $args['from_date'] ) ) {
43
+            $date_query['after'] = wpinv_clean( $args['from_date'] );
44
+        }
45
+
46
+        if ( ! empty( $date_query ) ) {
47
+            $date_query['inclusive']  = true;
48
+            $query_args['date_query'] = array( $date_query );
49
+        }
50
+
51
+        return $query_args;
52
+    }
53
+
54
+    /**
55
+     * Retrieves invoices.
56
+     *
57
+     * @param array $query_args WP_Query args.
58
+     * @return WPInv_Invoice[]
59
+     */
60
+    public function get_invoices( $query_args ) {
61
+
62
+        // Get invoices.
63
+        $invoices = new WP_Query( $query_args );
64
+
65
+        // Prepare the results.
66
+        return array_map( 'wpinv_get_invoice', $invoices->posts );
67
+
68
+    }
69
+
70
+    /**
71
+     * Handles the actual download.
72
+     *
73
+     */
74
+    public function export( $post_type, $args ) {
75
+
76
+        $invoices  = $this->get_invoices( $this->get_invoice_query_args( $post_type, $args ) );
77
+        $stream    = $this->prepare_output();
78
+        $headers   = $this->get_export_fields( $post_type );
79
+        $file_type = $this->prepare_file_type( strtolower( getpaid_get_post_type_label( $post_type ) ) );
80
+
81
+        if ( 'csv' == $file_type ) {
82
+            $this->download_csv( $invoices, $stream, $headers );
83
+        } elseif ( 'xml' == $file_type ) {
84
+            $this->download_xml( $invoices, $stream, $headers );
85
+        } else {
86
+            $this->download_json( $invoices, $stream, $headers );
87
+        }
88
+
89
+        fclose( $stream );
90
+        exit;
91
+    }
92
+
93
+    /**
94
+     * Prepares a single invoice for download.
95
+     *
96
+     * @param WPInv_Invoice $invoice The invoice to prepare..
97
+     * @param array $fields The fields to stream.
98
+     * @since       1.0.19
99
+     * @return array
100
+     */
101
+    public function prepare_row( $invoice, $fields ) {
102
+
103
+        $prepared      = array();
104
+        $amount_fields = $this->get_amount_fields( $invoice->get_post_type() );
105
+        $meta_fields = $this->get_payment_form_meta( $invoice );
106
+
107
+        foreach ( $fields as $field ) {
108
+            $value  = '';
109
+            $method = "get_$field";
110
+
111
+            if ( method_exists( $invoice, $method ) ) {
112
+                $value  = $invoice->$method();
113
+            } else if( strpos( $field, '_' ) === 0 && isset( $meta_fields[ $field ] ) ) {
114
+                $value = $meta_fields[ $field ];
115
+            }
116
+
117
+            if ( in_array( $field, $amount_fields ) ) {
118
+                $value  = wpinv_round_amount( wpinv_sanitize_amount( $value ) );
119
+            }
120
+
121
+            $prepared[ $field ] = wpinv_clean( $value );
122
+
123
+        }
124
+
125
+        return $prepared;
126
+    }
127
+
128
+    /**
129
+     * Retrieves export fields.
130
+     *
131
+     * @param string $post_type
132
+     * @since       1.0.19
133
+     * @return array
134
+     */
135
+    public function get_export_fields( $post_type ) {
136
+
137
+        $fields = array(
138
+            'id',
139
+            'parent_id',
140
+            'status',
141
+            'date_created',
142
+            'date_modified',
143
+            'date_due',
144
+            'date_completed',
145
+            'number',
146
+            'key',
147
+            'description',
148
+            'post_type',
149
+            'mode',
150
+            'customer_id',
151
+            'customer_first_name',
152
+            'customer_last_name',
153
+            'customer_phone',
154
+            'customer_email',
155
+            'customer_country',
156
+            'customer_city',
157
+            'customer_state',
158
+            'customer_zip',
159
+            'customer_company',
160
+            'customer_vat_number',
161
+            'customer_address',
162
+            'subtotal',
163
+            'total_discount',
164
+            'total_tax',
165
+            'total_fees',
166
+            'fees',
167
+            'discounts',
168
+            'taxes',
169
+            'cart_details',
170
+            'item_ids',
171
+            'payment_form',
172
+            'discount_code',
173
+            'gateway',
174
+            'transaction_id',
175
+            'currency',
176
+            'disable_taxes',
177
+            'subscription_id',
178
+            'remote_subscription_id',
179
+            'is_viewed',
180
+            'email_cc',
181
+            'template',
182
+            'created_via',
183
+        );
184
+
185
+        // Payment form meta fields.
186
+        $meta_fields = getpaid_get_payment_form_custom_fields();
187
+
188
+        if ( ! empty( $meta_fields ) ) {
189
+            foreach ( $meta_fields as $field_key => $field_label ) {
190
+                $fields[] = $field_key;
191
+            }
192
+        }
193
+
194
+        return apply_filters( 'getpaid_invoice_exporter_get_fields', $fields, $post_type );
195
+    }
196
+
197
+    /**
198
+     * Retrieves amount fields.
199
+     *
200
+     * @param string $post_type
201
+     * @since       1.0.19
202
+     * @return array
203
+     */
204
+    public function get_amount_fields( $post_type ) {
205
+
206
+        $fields = array(
207
+            'subtotal',
208
+            'total_discount',
209
+            'total_tax',
210
+            'total_fees',
211
+        );
212
+
213
+        return apply_filters( 'getpaid_invoice_exporter_get_amount_fields', $fields, $post_type );
214
+    }
215
+
216
+    /**
217
+     * Retrieves payment form meta fields.
218
+     *
219
+     * @since 2.8.23
220
+     *
221
+     * @return array
222
+     */
223
+    public function get_payment_form_meta( $invoice ) {
224
+        // Payment form meta fields.
225
+        $field_keys = getpaid_get_payment_form_custom_fields();
226
+        $meta = get_post_meta( $invoice->get_id(), 'additional_meta_data', true );
227
+
228
+        $field_values = array();
229
+        if ( ! empty( $field_keys ) ) {
230
+            foreach ( $field_keys as $field_key => $field_label ) {
231
+                $value = '';
232
+
233
+                if ( ! empty( $meta ) ) {
234
+                    foreach ( $meta as $meta_label => $meta_value ) {
235
+                        if ( getpaid_strtolower( wpinv_clean( wp_unslash( $meta_label ) ) ) == getpaid_strtolower( $field_label ) ) {
236
+                            $value = $meta_value;
237
+                        }
238
+                    }
239
+                }
240
+
241
+                $field_values[ $field_key ] = $value;
242
+            }
243
+        }
244
+
245
+        return $field_values;
246
+    }
247 247
 }
Please login to merge, or discard this patch.
Spacing   +49 added lines, -49 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  *
6 6
  */
7 7
 
8
-defined( 'ABSPATH' ) || exit;
8
+defined('ABSPATH') || exit;
9 9
 
10 10
 /**
11 11
  * GetPaid_Invoice_Exporter Class.
@@ -19,33 +19,33 @@  discard block
 block discarded – undo
19 19
 	 * @param array $args Args to search for.
20 20
 	 * @return array
21 21
 	 */
22
-	public function get_invoice_query_args( $post_type, $args ) {
22
+	public function get_invoice_query_args($post_type, $args) {
23 23
 
24 24
 		$query_args = array(
25 25
 			'post_type'              => $post_type,
26
-			'post_status'            => array_keys( wpinv_get_invoice_statuses( true, false, $post_type ) ),
26
+			'post_status'            => array_keys(wpinv_get_invoice_statuses(true, false, $post_type)),
27 27
 			'posts_per_page'         => -1,
28 28
 			'no_found_rows'          => true,
29 29
 			'update_post_term_cache' => false,
30 30
 			'fields'                 => 'ids',
31 31
 		);
32 32
 
33
-		if ( ! empty( $args['status'] ) && in_array( $args['status'], $query_args['post_status'], true ) ) {
34
-			$query_args['post_status'] = wpinv_clean( wpinv_parse_list( $args['status'] ) );
33
+		if (!empty($args['status']) && in_array($args['status'], $query_args['post_status'], true)) {
34
+			$query_args['post_status'] = wpinv_clean(wpinv_parse_list($args['status']));
35 35
 		}
36 36
 
37 37
 		$date_query = array();
38
-		if ( ! empty( $args['to_date'] ) ) {
39
-			$date_query['before'] = wpinv_clean( $args['to_date'] );
38
+		if (!empty($args['to_date'])) {
39
+			$date_query['before'] = wpinv_clean($args['to_date']);
40 40
 		}
41 41
 
42
-		if ( ! empty( $args['from_date'] ) ) {
43
-			$date_query['after'] = wpinv_clean( $args['from_date'] );
42
+		if (!empty($args['from_date'])) {
43
+			$date_query['after'] = wpinv_clean($args['from_date']);
44 44
 		}
45 45
 
46
-		if ( ! empty( $date_query ) ) {
46
+		if (!empty($date_query)) {
47 47
 			$date_query['inclusive']  = true;
48
-			$query_args['date_query'] = array( $date_query );
48
+			$query_args['date_query'] = array($date_query);
49 49
 		}
50 50
 
51 51
 		return $query_args;
@@ -57,13 +57,13 @@  discard block
 block discarded – undo
57 57
 	 * @param array $query_args WP_Query args.
58 58
 	 * @return WPInv_Invoice[]
59 59
 	 */
60
-	public function get_invoices( $query_args ) {
60
+	public function get_invoices($query_args) {
61 61
 
62 62
 		// Get invoices.
63
-		$invoices = new WP_Query( $query_args );
63
+		$invoices = new WP_Query($query_args);
64 64
 
65 65
 		// Prepare the results.
66
-		return array_map( 'wpinv_get_invoice', $invoices->posts );
66
+		return array_map('wpinv_get_invoice', $invoices->posts);
67 67
 
68 68
 	}
69 69
 
@@ -71,22 +71,22 @@  discard block
 block discarded – undo
71 71
 	 * Handles the actual download.
72 72
 	 *
73 73
 	 */
74
-	public function export( $post_type, $args ) {
74
+	public function export($post_type, $args) {
75 75
 
76
-		$invoices  = $this->get_invoices( $this->get_invoice_query_args( $post_type, $args ) );
76
+		$invoices  = $this->get_invoices($this->get_invoice_query_args($post_type, $args));
77 77
 		$stream    = $this->prepare_output();
78
-		$headers   = $this->get_export_fields( $post_type );
79
-		$file_type = $this->prepare_file_type( strtolower( getpaid_get_post_type_label( $post_type ) ) );
78
+		$headers   = $this->get_export_fields($post_type);
79
+		$file_type = $this->prepare_file_type(strtolower(getpaid_get_post_type_label($post_type)));
80 80
 
81
-		if ( 'csv' == $file_type ) {
82
-			$this->download_csv( $invoices, $stream, $headers );
83
-		} elseif ( 'xml' == $file_type ) {
84
-			$this->download_xml( $invoices, $stream, $headers );
81
+		if ('csv' == $file_type) {
82
+			$this->download_csv($invoices, $stream, $headers);
83
+		} elseif ('xml' == $file_type) {
84
+			$this->download_xml($invoices, $stream, $headers);
85 85
 		} else {
86
-			$this->download_json( $invoices, $stream, $headers );
86
+			$this->download_json($invoices, $stream, $headers);
87 87
 		}
88 88
 
89
-		fclose( $stream );
89
+		fclose($stream);
90 90
 		exit;
91 91
 	}
92 92
 
@@ -98,27 +98,27 @@  discard block
 block discarded – undo
98 98
 	 * @since       1.0.19
99 99
 	 * @return array
100 100
 	 */
101
-	public function prepare_row( $invoice, $fields ) {
101
+	public function prepare_row($invoice, $fields) {
102 102
 
103 103
 		$prepared      = array();
104
-		$amount_fields = $this->get_amount_fields( $invoice->get_post_type() );
105
-		$meta_fields = $this->get_payment_form_meta( $invoice );
104
+		$amount_fields = $this->get_amount_fields($invoice->get_post_type());
105
+		$meta_fields = $this->get_payment_form_meta($invoice);
106 106
 
107
-		foreach ( $fields as $field ) {
107
+		foreach ($fields as $field) {
108 108
 			$value  = '';
109 109
 			$method = "get_$field";
110 110
 
111
-			if ( method_exists( $invoice, $method ) ) {
112
-				$value  = $invoice->$method();
113
-			} else if( strpos( $field, '_' ) === 0 && isset( $meta_fields[ $field ] ) ) {
114
-				$value = $meta_fields[ $field ];
111
+			if (method_exists($invoice, $method)) {
112
+				$value = $invoice->$method();
113
+			} else if (strpos($field, '_') === 0 && isset($meta_fields[$field])) {
114
+				$value = $meta_fields[$field];
115 115
 			}
116 116
 
117
-			if ( in_array( $field, $amount_fields ) ) {
118
-				$value  = wpinv_round_amount( wpinv_sanitize_amount( $value ) );
117
+			if (in_array($field, $amount_fields)) {
118
+				$value = wpinv_round_amount(wpinv_sanitize_amount($value));
119 119
 			}
120 120
 
121
-			$prepared[ $field ] = wpinv_clean( $value );
121
+			$prepared[$field] = wpinv_clean($value);
122 122
 
123 123
 		}
124 124
 
@@ -132,7 +132,7 @@  discard block
 block discarded – undo
132 132
 	 * @since       1.0.19
133 133
 	 * @return array
134 134
 	 */
135
-	public function get_export_fields( $post_type ) {
135
+	public function get_export_fields($post_type) {
136 136
 
137 137
 		$fields = array(
138 138
 			'id',
@@ -185,13 +185,13 @@  discard block
 block discarded – undo
185 185
 		// Payment form meta fields.
186 186
 		$meta_fields = getpaid_get_payment_form_custom_fields();
187 187
 
188
-		if ( ! empty( $meta_fields ) ) {
189
-			foreach ( $meta_fields as $field_key => $field_label ) {
188
+		if (!empty($meta_fields)) {
189
+			foreach ($meta_fields as $field_key => $field_label) {
190 190
 				$fields[] = $field_key;
191 191
 			}
192 192
 		}
193 193
 
194
-		return apply_filters( 'getpaid_invoice_exporter_get_fields', $fields, $post_type );
194
+		return apply_filters('getpaid_invoice_exporter_get_fields', $fields, $post_type);
195 195
 	}
196 196
 
197 197
 	/**
@@ -201,7 +201,7 @@  discard block
 block discarded – undo
201 201
 	 * @since       1.0.19
202 202
 	 * @return array
203 203
 	 */
204
-	public function get_amount_fields( $post_type ) {
204
+	public function get_amount_fields($post_type) {
205 205
 
206 206
 		$fields = array(
207 207
 			'subtotal',
@@ -210,7 +210,7 @@  discard block
 block discarded – undo
210 210
 			'total_fees',
211 211
     	);
212 212
 
213
-		return apply_filters( 'getpaid_invoice_exporter_get_amount_fields', $fields, $post_type );
213
+		return apply_filters('getpaid_invoice_exporter_get_amount_fields', $fields, $post_type);
214 214
 	}
215 215
 
216 216
 	/**
@@ -220,25 +220,25 @@  discard block
 block discarded – undo
220 220
 	 *
221 221
 	 * @return array
222 222
 	 */
223
-	public function get_payment_form_meta( $invoice ) {
223
+	public function get_payment_form_meta($invoice) {
224 224
 		// Payment form meta fields.
225 225
 		$field_keys = getpaid_get_payment_form_custom_fields();
226
-		$meta = get_post_meta( $invoice->get_id(), 'additional_meta_data', true );
226
+		$meta = get_post_meta($invoice->get_id(), 'additional_meta_data', true);
227 227
 
228 228
 		$field_values = array();
229
-		if ( ! empty( $field_keys ) ) {
230
-			foreach ( $field_keys as $field_key => $field_label ) {
229
+		if (!empty($field_keys)) {
230
+			foreach ($field_keys as $field_key => $field_label) {
231 231
 				$value = '';
232 232
 
233
-				if ( ! empty( $meta ) ) {
234
-					foreach ( $meta as $meta_label => $meta_value ) {
235
-						if ( getpaid_strtolower( wpinv_clean( wp_unslash( $meta_label ) ) ) == getpaid_strtolower( $field_label ) ) {
233
+				if (!empty($meta)) {
234
+					foreach ($meta as $meta_label => $meta_value) {
235
+						if (getpaid_strtolower(wpinv_clean(wp_unslash($meta_label))) == getpaid_strtolower($field_label)) {
236 236
 							$value = $meta_value;
237 237
 						}
238 238
 					}
239 239
 				}
240 240
 
241
-				$field_values[ $field_key ] = $value;
241
+				$field_values[$field_key] = $value;
242 242
 			}
243 243
 		}
244 244
 
Please login to merge, or discard this patch.
includes/wpinv-helper-functions.php 2 patches
Indentation   +75 added lines, -75 removed lines patch added patch discarded remove patch
@@ -137,13 +137,13 @@  discard block
 block discarded – undo
137 137
  */
138 138
 function wpinv_get_invoice_statuses( $draft = false, $trashed = false, $invoice = false ) {
139 139
 
140
-	$invoice_statuses = array(
141
-		'wpi-pending'    => _x( 'Pending payment', 'Invoice status', 'invoicing' ),
140
+    $invoice_statuses = array(
141
+        'wpi-pending'    => _x( 'Pending payment', 'Invoice status', 'invoicing' ),
142 142
         'publish'        => _x( 'Paid', 'Invoice status', 'invoicing' ),
143 143
         'wpi-processing' => _x( 'Processing', 'Invoice status', 'invoicing' ),
144
-		'wpi-onhold'     => _x( 'On hold', 'Invoice status', 'invoicing' ),
145
-		'wpi-cancelled'  => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
146
-		'wpi-refunded'   => _x( 'Refunded', 'Invoice status', 'invoicing' ),
144
+        'wpi-onhold'     => _x( 'On hold', 'Invoice status', 'invoicing' ),
145
+        'wpi-cancelled'  => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
146
+        'wpi-refunded'   => _x( 'Refunded', 'Invoice status', 'invoicing' ),
147 147
         'wpi-failed'     => _x( 'Failed', 'Invoice status', 'invoicing' ),
148 148
         'wpi-renewal'    => _x( 'Renewal Payment', 'Invoice status', 'invoicing' ),
149 149
     );
@@ -160,7 +160,7 @@  discard block
 block discarded – undo
160 160
         $invoice = $invoice->get_post_type();
161 161
     }
162 162
 
163
-	return apply_filters( 'wpinv_statuses', $invoice_statuses, $invoice );
163
+    return apply_filters( 'wpinv_statuses', $invoice_statuses, $invoice );
164 164
 }
165 165
 
166 166
 /**
@@ -278,25 +278,25 @@  discard block
 block discarded – undo
278 278
  * @return string
279 279
  */
280 280
 function getpaid_get_price_format() {
281
-	$currency_pos = wpinv_currency_position();
282
-	$format       = '%1$s%2$s';
283
-
284
-	switch ( $currency_pos ) {
285
-		case 'left':
286
-			$format = '%1$s%2$s';
287
-			break;
288
-		case 'right':
289
-			$format = '%2$s%1$s';
290
-			break;
291
-		case 'left_space':
292
-			$format = '%1$s&nbsp;%2$s';
293
-			break;
294
-		case 'right_space':
295
-			$format = '%2$s&nbsp;%1$s';
296
-			break;
297
-	}
298
-
299
-	return apply_filters( 'getpaid_price_format', $format, $currency_pos );
281
+    $currency_pos = wpinv_currency_position();
282
+    $format       = '%1$s%2$s';
283
+
284
+    switch ( $currency_pos ) {
285
+        case 'left':
286
+            $format = '%1$s%2$s';
287
+            break;
288
+        case 'right':
289
+            $format = '%2$s%1$s';
290
+            break;
291
+        case 'left_space':
292
+            $format = '%1$s&nbsp;%2$s';
293
+            break;
294
+        case 'right_space':
295
+            $format = '%2$s&nbsp;%1$s';
296
+            break;
297
+    }
298
+
299
+    return apply_filters( 'getpaid_price_format', $format, $currency_pos );
300 300
 }
301 301
 
302 302
 /**
@@ -402,13 +402,13 @@  discard block
 block discarded – undo
402 402
  * @param mixed  $value Value.
403 403
  */
404 404
 function getpaid_maybe_define_constant( $name, $value ) {
405
-	if ( ! defined( $name ) ) {
406
-		define( $name, $value );
407
-	}
405
+    if ( ! defined( $name ) ) {
406
+        define( $name, $value );
407
+    }
408 408
 }
409 409
 
410 410
 function wpinv_get_php_arg_separator_output() {
411
-	return ini_get( 'arg_separator.output' );
411
+    return ini_get( 'arg_separator.output' );
412 412
 }
413 413
 
414 414
 function wpinv_rgb_from_hex( $color ) {
@@ -719,16 +719,16 @@  discard block
 block discarded – undo
719 719
     return wp_kses(
720 720
         html_entity_decode( $var ),
721 721
         array(
722
-			'br'     => array(),
723
-			'em'     => array(),
724
-			'strong' => array(),
725
-			'b'      => array(),
726
-			'small'  => array(),
727
-			'span'   => array(),
728
-			'ul'     => array(),
729
-			'li'     => array(),
730
-			'ol'     => array(),
731
-			'p'      => array(),
722
+            'br'     => array(),
723
+            'em'     => array(),
724
+            'strong' => array(),
725
+            'b'      => array(),
726
+            'small'  => array(),
727
+            'span'   => array(),
728
+            'ul'     => array(),
729
+            'li'     => array(),
730
+            'ol'     => array(),
731
+            'p'      => array(),
732 732
         )
733 733
     );
734 734
 }
@@ -779,11 +779,11 @@  discard block
 block discarded – undo
779 779
         $list = array();
780 780
     }
781 781
 
782
-	if ( ! is_array( $list ) ) {
783
-		return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );
784
-	}
782
+    if ( ! is_array( $list ) ) {
783
+        return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );
784
+    }
785 785
 
786
-	return $list;
786
+    return $list;
787 787
 }
788 788
 
789 789
 /**
@@ -824,17 +824,17 @@  discard block
 block discarded – undo
824 824
  */
825 825
 function wpinv_clean( $var ) {
826 826
 
827
-	if ( is_array( $var ) ) {
828
-		return array_map( 'wpinv_clean', $var );
827
+    if ( is_array( $var ) ) {
828
+        return array_map( 'wpinv_clean', $var );
829 829
     }
830 830
 
831 831
     if ( is_object( $var ) ) {
832
-		$object_vars = get_object_vars( $var );
833
-		foreach ( $object_vars as $property_name => $property_value ) {
834
-			$var->$property_name = wpinv_clean( $property_value );
832
+        $object_vars = get_object_vars( $var );
833
+        foreach ( $object_vars as $property_name => $property_value ) {
834
+            $var->$property_name = wpinv_clean( $property_value );
835 835
         }
836 836
         return $var;
837
-	}
837
+    }
838 838
 
839 839
     return is_string( $var ) ? sanitize_text_field( stripslashes( $var ) ) : $var;
840 840
 }
@@ -847,7 +847,7 @@  discard block
 block discarded – undo
847 847
  */
848 848
 function getpaid_convert_price_string_to_options( $str ) {
849 849
 
850
-	$raw_options = array_map( 'trim', explode( ',', $str ) );
850
+    $raw_options = array_map( 'trim', explode( ',', $str ) );
851 851
     $options     = array();
852 852
 
853 853
     foreach ( $raw_options as $option ) {
@@ -936,7 +936,7 @@  discard block
 block discarded – undo
936 936
  * @return string
937 937
  */
938 938
 function getpaid_date_format() {
939
-	return apply_filters( 'getpaid_date_format', get_option( 'date_format' ) );
939
+    return apply_filters( 'getpaid_date_format', get_option( 'date_format' ) );
940 940
 }
941 941
 
942 942
 /**
@@ -945,7 +945,7 @@  discard block
 block discarded – undo
945 945
  * @return string
946 946
  */
947 947
 function getpaid_time_format() {
948
-	return apply_filters( 'getpaid_time_format', get_option( 'time_format' ) );
948
+    return apply_filters( 'getpaid_time_format', get_option( 'time_format' ) );
949 949
 }
950 950
 
951 951
 /**
@@ -958,15 +958,15 @@  discard block
 block discarded – undo
958 958
 function getpaid_limit_length( $string, $limit ) {
959 959
     $str_limit = $limit - 3;
960 960
 
961
-	if ( function_exists( 'mb_strimwidth' ) ) {
962
-		if ( mb_strlen( $string ) > $limit ) {
963
-			$string = mb_strimwidth( $string, 0, $str_limit ) . '...';
964
-		}
965
-	} else {
966
-		if ( strlen( $string ) > $limit ) {
967
-			$string = substr( $string, 0, $str_limit ) . '...';
968
-		}
969
-	}
961
+    if ( function_exists( 'mb_strimwidth' ) ) {
962
+        if ( mb_strlen( $string ) > $limit ) {
963
+            $string = mb_strimwidth( $string, 0, $str_limit ) . '...';
964
+        }
965
+    } else {
966
+        if ( strlen( $string ) > $limit ) {
967
+            $string = substr( $string, 0, $str_limit ) . '...';
968
+        }
969
+    }
970 970
     return $string;
971 971
 
972 972
 }
@@ -1096,12 +1096,12 @@  discard block
 block discarded – undo
1096 1096
     $types = get_allowed_mime_types();
1097 1097
 
1098 1098
     if ( isset( $types['htm|html'] ) ) {
1099
-		unset( $types['htm|html'] );
1100
-	}
1099
+        unset( $types['htm|html'] );
1100
+    }
1101 1101
 
1102 1102
     if ( isset( $types['js'] ) ) {
1103
-		unset( $types['js'] );
1104
-	}
1103
+        unset( $types['js'] );
1104
+    }
1105 1105
 
1106 1106
     return $types;
1107 1107
 
@@ -1157,11 +1157,11 @@  discard block
 block discarded – undo
1157 1157
  * @return string Returns converted string.
1158 1158
  */
1159 1159
 function getpaid_strtolower( $string, $charset = 'UTF-8' ) {
1160
-	if ( function_exists( 'mb_convert_case' ) ) {
1161
-		return mb_convert_case( $string, MB_CASE_LOWER, $charset );
1162
-	} else {
1163
-		return strtolower( $string );
1164
-	}
1160
+    if ( function_exists( 'mb_convert_case' ) ) {
1161
+        return mb_convert_case( $string, MB_CASE_LOWER, $charset );
1162
+    } else {
1163
+        return strtolower( $string );
1164
+    }
1165 1165
 }
1166 1166
 
1167 1167
 /**
@@ -1174,9 +1174,9 @@  discard block
 block discarded – undo
1174 1174
  * @return string Returns converted string.
1175 1175
  */
1176 1176
 function getpaid_strtoupper( $string, $charset = 'UTF-8' ) {
1177
-	if ( function_exists( 'mb_convert_case' ) ) {
1178
-		return mb_convert_case( $string, MB_CASE_UPPER, $charset );
1179
-	} else {
1180
-		return strtoupper( $string );
1181
-	}
1177
+    if ( function_exists( 'mb_convert_case' ) ) {
1178
+        return mb_convert_case( $string, MB_CASE_UPPER, $charset );
1179
+    } else {
1180
+        return strtoupper( $string );
1181
+    }
1182 1182
 }
1183 1183
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +294 added lines, -294 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @package Invoicing
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * Are we supporting item quantities?
@@ -20,35 +20,35 @@  discard block
 block discarded – undo
20 20
  */
21 21
 function wpinv_get_ip() {
22 22
 
23
-    if ( isset( $_SERVER['HTTP_X_REAL_IP'] ) ) {
24
-        return sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_REAL_IP'] ) );
23
+    if (isset($_SERVER['HTTP_X_REAL_IP'])) {
24
+        return sanitize_text_field(wp_unslash($_SERVER['HTTP_X_REAL_IP']));
25 25
     }
26 26
 
27
-    if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
27
+    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
28 28
         // Proxy servers can send through this header like this: X-Forwarded-For: client1, proxy1, proxy2
29 29
         // Make sure we always only send through the first IP in the list which should always be the client IP.
30
-        return (string) rest_is_ip_address( trim( current( preg_split( '/,/', sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) ) ) ) );
30
+        return (string) rest_is_ip_address(trim(current(preg_split('/,/', sanitize_text_field(wp_unslash($_SERVER['HTTP_X_FORWARDED_FOR']))))));
31 31
     }
32 32
 
33
-    if ( isset( $_SERVER['HTTP_CLIENT_IP'] ) ) {
34
-        return sanitize_text_field( wp_unslash( $_SERVER['HTTP_CLIENT_IP'] ) );
33
+    if (isset($_SERVER['HTTP_CLIENT_IP'])) {
34
+        return sanitize_text_field(wp_unslash($_SERVER['HTTP_CLIENT_IP']));
35 35
     }
36 36
 
37
-    if ( isset( $_SERVER['REMOTE_ADDR'] ) ) {
38
-        return sanitize_text_field( wp_unslash( $_SERVER['REMOTE_ADDR'] ) );
37
+    if (isset($_SERVER['REMOTE_ADDR'])) {
38
+        return sanitize_text_field(wp_unslash($_SERVER['REMOTE_ADDR']));
39 39
     }
40 40
 
41 41
     return '';
42 42
 }
43 43
 
44 44
 function wpinv_get_user_agent() {
45
-    if ( ! empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
46
-        $user_agent = sanitize_text_field( $_SERVER['HTTP_USER_AGENT'] );
45
+    if (!empty($_SERVER['HTTP_USER_AGENT'])) {
46
+        $user_agent = sanitize_text_field($_SERVER['HTTP_USER_AGENT']);
47 47
     } else {
48 48
         $user_agent = '';
49 49
     }
50 50
 
51
-    return apply_filters( 'wpinv_get_user_agent', $user_agent );
51
+    return apply_filters('wpinv_get_user_agent', $user_agent);
52 52
 }
53 53
 
54 54
 /**
@@ -57,16 +57,16 @@  discard block
 block discarded – undo
57 57
  * @param string $amount The amount to sanitize.
58 58
  * @return float
59 59
  */
60
-function getpaid_standardize_amount( $amount ) {
60
+function getpaid_standardize_amount($amount) {
61 61
 
62
-    $amount = str_replace( wpinv_thousands_separator(), '', $amount );
63
-    $amount = str_replace( wpinv_decimal_separator(), '.', $amount );
64
-    if ( is_numeric( $amount ) ) {
65
-        return floatval( $amount );
62
+    $amount = str_replace(wpinv_thousands_separator(), '', $amount);
63
+    $amount = str_replace(wpinv_decimal_separator(), '.', $amount);
64
+    if (is_numeric($amount)) {
65
+        return floatval($amount);
66 66
     }
67 67
 
68 68
     // Cast the remaining to a float.
69
-    return wpinv_round_amount( preg_replace( '/[^0-9\.\-]/', '', $amount ) );
69
+    return wpinv_round_amount(preg_replace('/[^0-9\.\-]/', '', $amount));
70 70
 
71 71
 }
72 72
 
@@ -75,8 +75,8 @@  discard block
 block discarded – undo
75 75
  *
76 76
  * @param string $amount The amount to sanitize.
77 77
  */
78
-function getpaid_unstandardize_amount( $amount ) {
79
-    return str_replace( '.', wpinv_decimal_separator(), $amount );
78
+function getpaid_unstandardize_amount($amount) {
79
+    return str_replace('.', wpinv_decimal_separator(), $amount);
80 80
 }
81 81
 
82 82
 /**
@@ -84,24 +84,24 @@  discard block
 block discarded – undo
84 84
  *
85 85
  * @param string $amount The amount to sanitize.
86 86
  */
87
-function wpinv_sanitize_amount( $amount ) {
87
+function wpinv_sanitize_amount($amount) {
88 88
 
89
-    if ( is_numeric( $amount ) ) {
90
-        return floatval( $amount );
89
+    if (is_numeric($amount)) {
90
+        return floatval($amount);
91 91
     }
92 92
 
93 93
     // Separate the decimals and thousands.
94
-    $amount    = empty( $amount ) ? '0' : (string) $amount;
95
-    $amount    = explode( wpinv_decimal_separator(), $amount );
94
+    $amount    = empty($amount) ? '0' : (string) $amount;
95
+    $amount    = explode(wpinv_decimal_separator(), $amount);
96 96
 
97 97
     // Remove thousands.
98
-    $amount[0] = str_replace( wpinv_thousands_separator(), '', $amount[0] );
98
+    $amount[0] = str_replace(wpinv_thousands_separator(), '', $amount[0]);
99 99
 
100 100
     // Convert back to string.
101
-    $amount = count( $amount ) > 1 ? "{$amount[0]}.{$amount[1]}" : $amount[0];
101
+    $amount = count($amount) > 1 ? "{$amount[0]}.{$amount[1]}" : $amount[0];
102 102
 
103 103
     // Cast the remaining to a float.
104
-    return (float) preg_replace( '/[^0-9\.\-]/', '', $amount );
104
+    return (float) preg_replace('/[^0-9\.\-]/', '', $amount);
105 105
 
106 106
 }
107 107
 
@@ -111,19 +111,19 @@  discard block
 block discarded – undo
111 111
  * @param float $amount
112 112
  * @param float|string|int|null $decimals
113 113
  */
114
-function wpinv_round_amount( $amount, $decimals = null, $use_sprintf = false ) {
114
+function wpinv_round_amount($amount, $decimals = null, $use_sprintf = false) {
115 115
 
116
-    if ( $decimals === null ) {
116
+    if ($decimals === null) {
117 117
         $decimals = wpinv_decimals();
118 118
     }
119 119
 
120
-    if ( $use_sprintf ) {
121
-        $amount = sprintf( "%.{$decimals}f", (float) $amount );
120
+    if ($use_sprintf) {
121
+        $amount = sprintf("%.{$decimals}f", (float) $amount);
122 122
     } else {
123
-        $amount = round( (float) $amount, absint( $decimals ) );
123
+        $amount = round((float) $amount, absint($decimals));
124 124
     }
125 125
 
126
-    return apply_filters( 'wpinv_round_amount', $amount, $decimals );
126
+    return apply_filters('wpinv_round_amount', $amount, $decimals);
127 127
 }
128 128
 
129 129
 /**
@@ -135,32 +135,32 @@  discard block
 block discarded – undo
135 135
  * @param string|WPInv_Invoice $invoice The invoice object|post type|type
136 136
  * @return array
137 137
  */
138
-function wpinv_get_invoice_statuses( $draft = false, $trashed = false, $invoice = false ) {
138
+function wpinv_get_invoice_statuses($draft = false, $trashed = false, $invoice = false) {
139 139
 
140 140
 	$invoice_statuses = array(
141
-		'wpi-pending'    => _x( 'Pending payment', 'Invoice status', 'invoicing' ),
142
-        'publish'        => _x( 'Paid', 'Invoice status', 'invoicing' ),
143
-        'wpi-processing' => _x( 'Processing', 'Invoice status', 'invoicing' ),
144
-		'wpi-onhold'     => _x( 'On hold', 'Invoice status', 'invoicing' ),
145
-		'wpi-cancelled'  => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
146
-		'wpi-refunded'   => _x( 'Refunded', 'Invoice status', 'invoicing' ),
147
-        'wpi-failed'     => _x( 'Failed', 'Invoice status', 'invoicing' ),
148
-        'wpi-renewal'    => _x( 'Renewal Payment', 'Invoice status', 'invoicing' ),
141
+		'wpi-pending'    => _x('Pending payment', 'Invoice status', 'invoicing'),
142
+        'publish'        => _x('Paid', 'Invoice status', 'invoicing'),
143
+        'wpi-processing' => _x('Processing', 'Invoice status', 'invoicing'),
144
+		'wpi-onhold'     => _x('On hold', 'Invoice status', 'invoicing'),
145
+		'wpi-cancelled'  => _x('Cancelled', 'Invoice status', 'invoicing'),
146
+		'wpi-refunded'   => _x('Refunded', 'Invoice status', 'invoicing'),
147
+        'wpi-failed'     => _x('Failed', 'Invoice status', 'invoicing'),
148
+        'wpi-renewal'    => _x('Renewal Payment', 'Invoice status', 'invoicing'),
149 149
     );
150 150
 
151
-    if ( $draft ) {
152
-        $invoice_statuses['draft'] = __( 'Draft', 'invoicing' );
151
+    if ($draft) {
152
+        $invoice_statuses['draft'] = __('Draft', 'invoicing');
153 153
     }
154 154
 
155
-    if ( $trashed ) {
156
-        $invoice_statuses['trash'] = __( 'Trash', 'invoicing' );
155
+    if ($trashed) {
156
+        $invoice_statuses['trash'] = __('Trash', 'invoicing');
157 157
     }
158 158
 
159
-    if ( $invoice instanceof WPInv_Invoice ) {
159
+    if ($invoice instanceof WPInv_Invoice) {
160 160
         $invoice = $invoice->get_post_type();
161 161
     }
162 162
 
163
-	return apply_filters( 'wpinv_statuses', $invoice_statuses, $invoice );
163
+	return apply_filters('wpinv_statuses', $invoice_statuses, $invoice);
164 164
 }
165 165
 
166 166
 /**
@@ -169,11 +169,11 @@  discard block
 block discarded – undo
169 169
  * @param string $status The raw status
170 170
  * @param string|WPInv_Invoice $invoice The invoice object|post type|type
171 171
  */
172
-function wpinv_status_nicename( $status, $invoice = false ) {
173
-    $statuses = wpinv_get_invoice_statuses( true, true, $invoice );
174
-    $status   = isset( $statuses[ $status ] ) ? $statuses[ $status ] : $status;
172
+function wpinv_status_nicename($status, $invoice = false) {
173
+    $statuses = wpinv_get_invoice_statuses(true, true, $invoice);
174
+    $status   = isset($statuses[$status]) ? $statuses[$status] : $status;
175 175
 
176
-    return sanitize_text_field( $status );
176
+    return sanitize_text_field($status);
177 177
 }
178 178
 
179 179
 /**
@@ -181,13 +181,13 @@  discard block
 block discarded – undo
181 181
  *
182 182
  * @param string $current
183 183
  */
184
-function wpinv_get_currency( $current = '' ) {
184
+function wpinv_get_currency($current = '') {
185 185
 
186
-    if ( empty( $current ) ) {
187
-        $current = apply_filters( 'wpinv_currency', wpinv_get_option( 'currency', 'USD' ) );
186
+    if (empty($current)) {
187
+        $current = apply_filters('wpinv_currency', wpinv_get_option('currency', 'USD'));
188 188
     }
189 189
 
190
-    return trim( strtoupper( $current ) );
190
+    return trim(strtoupper($current));
191 191
 }
192 192
 
193 193
 /**
@@ -195,25 +195,25 @@  discard block
 block discarded – undo
195 195
  *
196 196
  * @param string|null $currency The currency code. Defaults to the default currency.
197 197
  */
198
-function wpinv_currency_symbol( $currency = null ) {
198
+function wpinv_currency_symbol($currency = null) {
199 199
 
200 200
     // Prepare the currency.
201
-    $currency = empty( $currency ) ? wpinv_get_currency() : wpinv_clean( $currency );
201
+    $currency = empty($currency) ? wpinv_get_currency() : wpinv_clean($currency);
202 202
 
203 203
     // Fetch all symbols.
204 204
     $symbols = wpinv_get_currency_symbols();
205 205
 
206 206
     // Fetch this currencies symbol.
207
-    $currency_symbol = isset( $symbols[ $currency ] ) ? $symbols[ $currency ] : $currency;
207
+    $currency_symbol = isset($symbols[$currency]) ? $symbols[$currency] : $currency;
208 208
 
209 209
     // Filter the symbol.
210
-    return apply_filters( 'wpinv_currency_symbol', $currency_symbol, $currency );
210
+    return apply_filters('wpinv_currency_symbol', $currency_symbol, $currency);
211 211
 }
212 212
 
213 213
 function wpinv_currency_position() {
214
-    $position = wpinv_get_option( 'currency_position', 'left' );
214
+    $position = wpinv_get_option('currency_position', 'left');
215 215
 
216
-    return apply_filters( 'wpinv_currency_position', $position );
216
+    return apply_filters('wpinv_currency_position', $position);
217 217
 }
218 218
 
219 219
 /**
@@ -221,13 +221,13 @@  discard block
 block discarded – undo
221 221
  *
222 222
  * @param $string|null $current
223 223
  */
224
-function wpinv_thousands_separator( $current = null ) {
224
+function wpinv_thousands_separator($current = null) {
225 225
 
226
-    if ( null == $current ) {
227
-        $current = wpinv_get_option( 'thousands_separator', ',' );
226
+    if (null == $current) {
227
+        $current = wpinv_get_option('thousands_separator', ',');
228 228
     }
229 229
 
230
-    return trim( $current );
230
+    return trim($current);
231 231
 }
232 232
 
233 233
 /**
@@ -235,13 +235,13 @@  discard block
 block discarded – undo
235 235
  *
236 236
  * @param $string|null $current
237 237
  */
238
-function wpinv_decimal_separator( $current = null ) {
238
+function wpinv_decimal_separator($current = null) {
239 239
 
240
-    if ( null == $current ) {
241
-        $current = wpinv_get_option( 'decimal_separator', '.' );
240
+    if (null == $current) {
241
+        $current = wpinv_get_option('decimal_separator', '.');
242 242
     }
243 243
 
244
-    return trim( $current );
244
+    return trim($current);
245 245
 }
246 246
 
247 247
 /**
@@ -249,27 +249,27 @@  discard block
 block discarded – undo
249 249
  *
250 250
  * @param $string|null $current
251 251
  */
252
-function wpinv_decimals( $current = null ) {
252
+function wpinv_decimals($current = null) {
253 253
 
254
-    if ( null == $current ) {
255
-        $current = wpinv_get_option( 'decimals', 2 );
254
+    if (null == $current) {
255
+        $current = wpinv_get_option('decimals', 2);
256 256
     }
257 257
 
258
-    return absint( $current );
258
+    return absint($current);
259 259
 }
260 260
 
261 261
 /**
262 262
  * Retrieves a list of all supported currencies.
263 263
  */
264 264
 function wpinv_get_currencies() {
265
-    return apply_filters( 'wpinv_currencies', wpinv_get_data( 'currencies' ) );
265
+    return apply_filters('wpinv_currencies', wpinv_get_data('currencies'));
266 266
 }
267 267
 
268 268
 /**
269 269
  * Retrieves a list of all currency symbols.
270 270
  */
271 271
 function wpinv_get_currency_symbols() {
272
-    return apply_filters( 'wpinv_currency_symbols', wpinv_get_data( 'currency-symbols' ) );
272
+    return apply_filters('wpinv_currency_symbols', wpinv_get_data('currency-symbols'));
273 273
 }
274 274
 
275 275
 /**
@@ -281,7 +281,7 @@  discard block
 block discarded – undo
281 281
 	$currency_pos = wpinv_currency_position();
282 282
 	$format       = '%1$s%2$s';
283 283
 
284
-	switch ( $currency_pos ) {
284
+	switch ($currency_pos) {
285 285
 		case 'left':
286 286
 			$format = '%1$s%2$s';
287 287
 			break;
@@ -296,7 +296,7 @@  discard block
 block discarded – undo
296 296
 			break;
297 297
 	}
298 298
 
299
-	return apply_filters( 'getpaid_price_format', $format, $currency_pos );
299
+	return apply_filters('getpaid_price_format', $format, $currency_pos);
300 300
 }
301 301
 
302 302
 /**
@@ -306,8 +306,8 @@  discard block
 block discarded – undo
306 306
  * @param  string $currency Currency.
307 307
  * @return string
308 308
  */
309
-function wpinv_the_price( $amount = 0, $currency = '' ) {
310
-    echo wp_kses_post( wpinv_price( $amount, $currency ) );
309
+function wpinv_the_price($amount = 0, $currency = '') {
310
+    echo wp_kses_post(wpinv_price($amount, $currency));
311 311
 }
312 312
 
313 313
 /**
@@ -317,25 +317,25 @@  discard block
 block discarded – undo
317 317
  * @param  string $currency Currency.
318 318
  * @return string
319 319
  */
320
-function wpinv_price( $amount = 0, $currency = '' ) {
320
+function wpinv_price($amount = 0, $currency = '') {
321 321
 
322 322
     // Backwards compatibility.
323
-    $amount             = wpinv_sanitize_amount( $amount );
323
+    $amount             = wpinv_sanitize_amount($amount);
324 324
 
325 325
     // Prepare variables.
326
-    $currency           = wpinv_get_currency( $currency );
326
+    $currency           = wpinv_get_currency($currency);
327 327
     $amount             = (float) $amount;
328 328
     $unformatted_amount = $amount;
329 329
     $negative           = $amount < 0;
330
-    $amount             = apply_filters( 'getpaid_raw_amount', floatval( $negative ? $amount * -1 : $amount ) );
331
-    $amount             = wpinv_format_amount( $amount );
330
+    $amount             = apply_filters('getpaid_raw_amount', floatval($negative ? $amount * -1 : $amount));
331
+    $amount             = wpinv_format_amount($amount);
332 332
 
333 333
     // Format the amount.
334 334
     $format             = getpaid_get_price_format();
335
-    $formatted_amount   = ( $negative ? '-' : '' ) . sprintf( $format, '<span class="getpaid-currency__symbol">' . wpinv_currency_symbol( $currency ) . '</span>', $amount );
335
+    $formatted_amount   = ($negative ? '-' : '') . sprintf($format, '<span class="getpaid-currency__symbol">' . wpinv_currency_symbol($currency) . '</span>', $amount);
336 336
 
337 337
     // Filter the formatting.
338
-    return apply_filters( 'wpinv_price', $formatted_amount, $amount, $currency, $unformatted_amount );
338
+    return apply_filters('wpinv_price', $formatted_amount, $amount, $currency, $unformatted_amount);
339 339
 }
340 340
 
341 341
 /**
@@ -346,25 +346,25 @@  discard block
 block discarded – undo
346 346
  * @param  bool     $calculate Whether or not to apply separators.
347 347
  * @return string
348 348
  */
349
-function wpinv_format_amount( $amount, $decimals = null, $calculate = false ) {
349
+function wpinv_format_amount($amount, $decimals = null, $calculate = false) {
350 350
     $thousands_sep = wpinv_thousands_separator();
351 351
     $decimal_sep   = wpinv_decimal_separator();
352
-    $decimals      = wpinv_decimals( $decimals );
353
-    $amount        = wpinv_sanitize_amount( $amount );
352
+    $decimals      = wpinv_decimals($decimals);
353
+    $amount        = wpinv_sanitize_amount($amount);
354 354
 
355
-    if ( $calculate ) {
355
+    if ($calculate) {
356 356
         return $amount;
357 357
     }
358 358
 
359 359
     // Fomart the amount.
360
-    return number_format( $amount, $decimals, $decimal_sep, $thousands_sep );
360
+    return number_format($amount, $decimals, $decimal_sep, $thousands_sep);
361 361
 }
362 362
 
363
-function wpinv_sanitize_key( $key ) {
363
+function wpinv_sanitize_key($key) {
364 364
     $raw_key = $key;
365
-    $key = preg_replace( '/[^a-zA-Z0-9_\-\.\:\/]/', '', $key );
365
+    $key = preg_replace('/[^a-zA-Z0-9_\-\.\:\/]/', '', $key);
366 366
 
367
-    return apply_filters( 'wpinv_sanitize_key', $key, $raw_key );
367
+    return apply_filters('wpinv_sanitize_key', $key, $raw_key);
368 368
 }
369 369
 
370 370
 /**
@@ -372,8 +372,8 @@  discard block
 block discarded – undo
372 372
  *
373 373
  * @param $str the file whose extension should be retrieved.
374 374
  */
375
-function wpinv_get_file_extension( $str ) {
376
-    $filetype = wp_check_filetype( $str );
375
+function wpinv_get_file_extension($str) {
376
+    $filetype = wp_check_filetype($str);
377 377
     return $filetype['ext'];
378 378
 }
379 379
 
@@ -382,16 +382,16 @@  discard block
 block discarded – undo
382 382
  *
383 383
  * @param string $string
384 384
  */
385
-function wpinv_string_is_image_url( $string ) {
386
-    $extension = strtolower( wpinv_get_file_extension( $string ) );
387
-    return in_array( $extension, array( 'jpeg', 'jpg', 'png', 'gif', 'ico' ), true );
385
+function wpinv_string_is_image_url($string) {
386
+    $extension = strtolower(wpinv_get_file_extension($string));
387
+    return in_array($extension, array('jpeg', 'jpg', 'png', 'gif', 'ico'), true);
388 388
 }
389 389
 
390 390
 /**
391 391
  * Returns the current URL.
392 392
  */
393 393
 function wpinv_get_current_page_url() {
394
-    return esc_url( add_query_arg( array() ) );
394
+    return esc_url(add_query_arg(array()));
395 395
 }
396 396
 
397 397
 /**
@@ -401,46 +401,46 @@  discard block
 block discarded – undo
401 401
  * @param string $name  Constant name.
402 402
  * @param mixed  $value Value.
403 403
  */
404
-function getpaid_maybe_define_constant( $name, $value ) {
405
-	if ( ! defined( $name ) ) {
406
-		define( $name, $value );
404
+function getpaid_maybe_define_constant($name, $value) {
405
+	if (!defined($name)) {
406
+		define($name, $value);
407 407
 	}
408 408
 }
409 409
 
410 410
 function wpinv_get_php_arg_separator_output() {
411
-	return ini_get( 'arg_separator.output' );
411
+	return ini_get('arg_separator.output');
412 412
 }
413 413
 
414
-function wpinv_rgb_from_hex( $color ) {
415
-    $color = str_replace( '#', '', $color );
414
+function wpinv_rgb_from_hex($color) {
415
+    $color = str_replace('#', '', $color);
416 416
 
417 417
     // Convert shorthand colors to full format, e.g. "FFF" -> "FFFFFF"
418
-    $color = preg_replace( '~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color );
419
-    if ( empty( $color ) ) {
418
+    $color = preg_replace('~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color);
419
+    if (empty($color)) {
420 420
         return null;
421 421
     }
422 422
 
423
-    $color = str_split( $color );
423
+    $color = str_split($color);
424 424
 
425 425
     $rgb      = array();
426
-    $rgb['R'] = hexdec( $color[0] . $color[1] );
427
-    $rgb['G'] = hexdec( $color[2] . $color[3] );
428
-    $rgb['B'] = hexdec( $color[4] . $color[5] );
426
+    $rgb['R'] = hexdec($color[0] . $color[1]);
427
+    $rgb['G'] = hexdec($color[2] . $color[3]);
428
+    $rgb['B'] = hexdec($color[4] . $color[5]);
429 429
 
430 430
     return $rgb;
431 431
 }
432 432
 
433
-function wpinv_hex_darker( $color, $factor = 30 ) {
434
-    $base  = wpinv_rgb_from_hex( $color );
433
+function wpinv_hex_darker($color, $factor = 30) {
434
+    $base  = wpinv_rgb_from_hex($color);
435 435
     $color = '#';
436 436
 
437
-    foreach ( $base as $k => $v ) {
437
+    foreach ($base as $k => $v) {
438 438
         $amount      = $v / 100;
439
-        $amount      = round( $amount * $factor );
439
+        $amount      = round($amount * $factor);
440 440
         $new_decimal = $v - $amount;
441 441
 
442
-        $new_hex_component = dechex( $new_decimal );
443
-        if ( strlen( $new_hex_component ) < 2 ) {
442
+        $new_hex_component = dechex($new_decimal);
443
+        if (strlen($new_hex_component) < 2) {
444 444
             $new_hex_component = '0' . $new_hex_component;
445 445
         }
446 446
         $color .= $new_hex_component;
@@ -449,18 +449,18 @@  discard block
 block discarded – undo
449 449
     return $color;
450 450
 }
451 451
 
452
-function wpinv_hex_lighter( $color, $factor = 30 ) {
453
-    $base  = wpinv_rgb_from_hex( $color );
452
+function wpinv_hex_lighter($color, $factor = 30) {
453
+    $base  = wpinv_rgb_from_hex($color);
454 454
     $color = '#';
455 455
 
456
-    foreach ( $base as $k => $v ) {
456
+    foreach ($base as $k => $v) {
457 457
         $amount      = 255 - $v;
458 458
         $amount      = $amount / 100;
459
-        $amount      = round( $amount * $factor );
459
+        $amount      = round($amount * $factor);
460 460
         $new_decimal = $v + $amount;
461 461
 
462
-        $new_hex_component = dechex( $new_decimal );
463
-        if ( strlen( $new_hex_component ) < 2 ) {
462
+        $new_hex_component = dechex($new_decimal);
463
+        if (strlen($new_hex_component) < 2) {
464 464
             $new_hex_component = '0' . $new_hex_component;
465 465
         }
466 466
         $color .= $new_hex_component;
@@ -469,22 +469,22 @@  discard block
 block discarded – undo
469 469
     return $color;
470 470
 }
471 471
 
472
-function wpinv_light_or_dark( $color, $dark = '#000000', $light = '#FFFFFF' ) {
473
-    $hex = str_replace( '#', '', $color );
472
+function wpinv_light_or_dark($color, $dark = '#000000', $light = '#FFFFFF') {
473
+    $hex = str_replace('#', '', $color);
474 474
 
475
-    $c_r = hexdec( substr( $hex, 0, 2 ) );
476
-    $c_g = hexdec( substr( $hex, 2, 2 ) );
477
-    $c_b = hexdec( substr( $hex, 4, 2 ) );
475
+    $c_r = hexdec(substr($hex, 0, 2));
476
+    $c_g = hexdec(substr($hex, 2, 2));
477
+    $c_b = hexdec(substr($hex, 4, 2));
478 478
 
479
-    $brightness = ( ( $c_r * 299 ) + ( $c_g * 587 ) + ( $c_b * 114 ) ) / 1000;
479
+    $brightness = (($c_r * 299) + ($c_g * 587) + ($c_b * 114)) / 1000;
480 480
 
481 481
     return $brightness > 155 ? $dark : $light;
482 482
 }
483 483
 
484
-function wpinv_format_hex( $hex ) {
485
-    $hex = trim( str_replace( '#', '', $hex ) );
484
+function wpinv_format_hex($hex) {
485
+    $hex = trim(str_replace('#', '', $hex));
486 486
 
487
-    if ( strlen( $hex ) == 3 ) {
487
+    if (strlen($hex) == 3) {
488 488
         $hex = $hex[0] . $hex[0] . $hex[1] . $hex[1] . $hex[2] . $hex[2];
489 489
     }
490 490
 
@@ -504,12 +504,12 @@  discard block
 block discarded – undo
504 504
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
505 505
  * @return string
506 506
  */
507
-function wpinv_utf8_strimwidth( $str, $start, $width, $trimmaker = '', $encoding = 'UTF-8' ) {
508
-    if ( function_exists( 'mb_strimwidth' ) ) {
509
-        return mb_strimwidth( $str, $start, $width, $trimmaker, $encoding );
507
+function wpinv_utf8_strimwidth($str, $start, $width, $trimmaker = '', $encoding = 'UTF-8') {
508
+    if (function_exists('mb_strimwidth')) {
509
+        return mb_strimwidth($str, $start, $width, $trimmaker, $encoding);
510 510
     }
511 511
 
512
-    return wpinv_utf8_substr( $str, $start, $width, $encoding ) . $trimmaker;
512
+    return wpinv_utf8_substr($str, $start, $width, $encoding) . $trimmaker;
513 513
 }
514 514
 
515 515
 /**
@@ -521,28 +521,28 @@  discard block
 block discarded – undo
521 521
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
522 522
  * @return int Returns the number of characters in string.
523 523
  */
524
-function wpinv_utf8_strlen( $str, $encoding = 'UTF-8' ) {
525
-    if ( function_exists( 'mb_strlen' ) ) {
526
-        return mb_strlen( $str, $encoding );
524
+function wpinv_utf8_strlen($str, $encoding = 'UTF-8') {
525
+    if (function_exists('mb_strlen')) {
526
+        return mb_strlen($str, $encoding);
527 527
     }
528 528
 
529
-    return strlen( $str );
529
+    return strlen($str);
530 530
 }
531 531
 
532
-function wpinv_utf8_strtolower( $str, $encoding = 'UTF-8' ) {
533
-    if ( function_exists( 'mb_strtolower' ) ) {
534
-        return mb_strtolower( $str, $encoding );
532
+function wpinv_utf8_strtolower($str, $encoding = 'UTF-8') {
533
+    if (function_exists('mb_strtolower')) {
534
+        return mb_strtolower($str, $encoding);
535 535
     }
536 536
 
537
-    return strtolower( $str );
537
+    return strtolower($str);
538 538
 }
539 539
 
540
-function wpinv_utf8_strtoupper( $str, $encoding = 'UTF-8' ) {
541
-    if ( function_exists( 'mb_strtoupper' ) ) {
542
-        return mb_strtoupper( $str, $encoding );
540
+function wpinv_utf8_strtoupper($str, $encoding = 'UTF-8') {
541
+    if (function_exists('mb_strtoupper')) {
542
+        return mb_strtoupper($str, $encoding);
543 543
     }
544 544
 
545
-    return strtoupper( $str );
545
+    return strtoupper($str);
546 546
 }
547 547
 
548 548
 /**
@@ -556,12 +556,12 @@  discard block
 block discarded – undo
556 556
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
557 557
  * @return int Returns the position of the first occurrence of search in the string.
558 558
  */
559
-function wpinv_utf8_strpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) {
560
-    if ( function_exists( 'mb_strpos' ) ) {
561
-        return mb_strpos( $str, $find, $offset, $encoding );
559
+function wpinv_utf8_strpos($str, $find, $offset = 0, $encoding = 'UTF-8') {
560
+    if (function_exists('mb_strpos')) {
561
+        return mb_strpos($str, $find, $offset, $encoding);
562 562
     }
563 563
 
564
-    return strpos( $str, $find, $offset );
564
+    return strpos($str, $find, $offset);
565 565
 }
566 566
 
567 567
 /**
@@ -575,12 +575,12 @@  discard block
 block discarded – undo
575 575
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
576 576
  * @return int Returns the position of the last occurrence of search.
577 577
  */
578
-function wpinv_utf8_strrpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) {
579
-    if ( function_exists( 'mb_strrpos' ) ) {
580
-        return mb_strrpos( $str, $find, $offset, $encoding );
578
+function wpinv_utf8_strrpos($str, $find, $offset = 0, $encoding = 'UTF-8') {
579
+    if (function_exists('mb_strrpos')) {
580
+        return mb_strrpos($str, $find, $offset, $encoding);
581 581
     }
582 582
 
583
-    return strrpos( $str, $find, $offset );
583
+    return strrpos($str, $find, $offset);
584 584
 }
585 585
 
586 586
 /**
@@ -595,16 +595,16 @@  discard block
 block discarded – undo
595 595
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
596 596
  * @return string
597 597
  */
598
-function wpinv_utf8_substr( $str, $start, $length = null, $encoding = 'UTF-8' ) {
599
-    if ( function_exists( 'mb_substr' ) ) {
600
-        if ( null === $length ) {
601
-            return mb_substr( $str, $start, wpinv_utf8_strlen( $str, $encoding ), $encoding );
598
+function wpinv_utf8_substr($str, $start, $length = null, $encoding = 'UTF-8') {
599
+    if (function_exists('mb_substr')) {
600
+        if (null === $length) {
601
+            return mb_substr($str, $start, wpinv_utf8_strlen($str, $encoding), $encoding);
602 602
         } else {
603
-            return mb_substr( $str, $start, $length, $encoding );
603
+            return mb_substr($str, $start, $length, $encoding);
604 604
         }
605 605
     }
606 606
 
607
-    return substr( $str, $start, $length );
607
+    return substr($str, $start, $length);
608 608
 }
609 609
 
610 610
 /**
@@ -616,48 +616,48 @@  discard block
 block discarded – undo
616 616
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
617 617
  * @return string The width of string.
618 618
  */
619
-function wpinv_utf8_strwidth( $str, $encoding = 'UTF-8' ) {
620
-    if ( function_exists( 'mb_strwidth' ) ) {
621
-        return mb_strwidth( $str, $encoding );
619
+function wpinv_utf8_strwidth($str, $encoding = 'UTF-8') {
620
+    if (function_exists('mb_strwidth')) {
621
+        return mb_strwidth($str, $encoding);
622 622
     }
623 623
 
624
-    return wpinv_utf8_strlen( $str, $encoding );
624
+    return wpinv_utf8_strlen($str, $encoding);
625 625
 }
626 626
 
627
-function wpinv_utf8_ucfirst( $str, $lower_str_end = false, $encoding = 'UTF-8' ) {
628
-    if ( function_exists( 'mb_strlen' ) ) {
629
-        $first_letter = wpinv_utf8_strtoupper( wpinv_utf8_substr( $str, 0, 1, $encoding ), $encoding );
627
+function wpinv_utf8_ucfirst($str, $lower_str_end = false, $encoding = 'UTF-8') {
628
+    if (function_exists('mb_strlen')) {
629
+        $first_letter = wpinv_utf8_strtoupper(wpinv_utf8_substr($str, 0, 1, $encoding), $encoding);
630 630
         $str_end = '';
631 631
 
632
-        if ( $lower_str_end ) {
633
-            $str_end = wpinv_utf8_strtolower( wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding ), $encoding );
632
+        if ($lower_str_end) {
633
+            $str_end = wpinv_utf8_strtolower(wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding), $encoding);
634 634
         } else {
635
-            $str_end = wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding );
635
+            $str_end = wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding);
636 636
         }
637 637
 
638 638
         return $first_letter . $str_end;
639 639
     }
640 640
 
641
-    return ucfirst( $str );
641
+    return ucfirst($str);
642 642
 }
643 643
 
644
-function wpinv_utf8_ucwords( $str, $encoding = 'UTF-8' ) {
645
-    if ( function_exists( 'mb_convert_case' ) ) {
646
-        return mb_convert_case( $str, MB_CASE_TITLE, $encoding );
644
+function wpinv_utf8_ucwords($str, $encoding = 'UTF-8') {
645
+    if (function_exists('mb_convert_case')) {
646
+        return mb_convert_case($str, MB_CASE_TITLE, $encoding);
647 647
     }
648 648
 
649
-    return ucwords( $str );
649
+    return ucwords($str);
650 650
 }
651 651
 
652
-function wpinv_period_in_days( $period, $unit ) {
653
-    $period = absint( $period );
652
+function wpinv_period_in_days($period, $unit) {
653
+    $period = absint($period);
654 654
 
655
-    if ( $period > 0 ) {
656
-        if ( in_array( strtolower( $unit ), array( 'w', 'week', 'weeks' ) ) ) {
655
+    if ($period > 0) {
656
+        if (in_array(strtolower($unit), array('w', 'week', 'weeks'))) {
657 657
             $period = $period * 7;
658
-        } elseif ( in_array( strtolower( $unit ), array( 'm', 'month', 'months' ) ) ) {
658
+        } elseif (in_array(strtolower($unit), array('m', 'month', 'months'))) {
659 659
             $period = $period * 30;
660
-        } elseif ( in_array( strtolower( $unit ), array( 'y', 'year', 'years' ) ) ) {
660
+        } elseif (in_array(strtolower($unit), array('y', 'year', 'years'))) {
661 661
             $period = $period * 365;
662 662
         }
663 663
     }
@@ -665,14 +665,14 @@  discard block
 block discarded – undo
665 665
     return $period;
666 666
 }
667 667
 
668
-function wpinv_cal_days_in_month( $calendar, $month, $year ) {
669
-    if ( function_exists( 'cal_days_in_month' ) ) {
670
-        return cal_days_in_month( $calendar, $month, $year );
668
+function wpinv_cal_days_in_month($calendar, $month, $year) {
669
+    if (function_exists('cal_days_in_month')) {
670
+        return cal_days_in_month($calendar, $month, $year);
671 671
     }
672 672
 
673 673
     // Fallback in case the calendar extension is not loaded in PHP
674 674
     // Only supports Gregorian calendar
675
-    return gmdate( 't', mktime( 0, 0, 0, $month, 1, $year ) );
675
+    return gmdate('t', mktime(0, 0, 0, $month, 1, $year));
676 676
 }
677 677
 
678 678
 /**
@@ -683,27 +683,27 @@  discard block
 block discarded – undo
683 683
  *
684 684
  * @return string
685 685
  */
686
-function wpi_help_tip( $tip, $allow_html = false, $is_vue = false, $echo = false ) {
686
+function wpi_help_tip($tip, $allow_html = false, $is_vue = false, $echo = false) {
687 687
 
688
-    if ( $allow_html ) {
689
-        $tip = wpi_sanitize_tooltip( $tip );
688
+    if ($allow_html) {
689
+        $tip = wpi_sanitize_tooltip($tip);
690 690
     } else {
691
-        $tip = strip_tags( $tip );
691
+        $tip = strip_tags($tip);
692 692
     }
693 693
 
694
-    if ( $is_vue ) {
694
+    if ($is_vue) {
695 695
 
696
-        if ( $echo ) {
697
-            echo '<span class="dashicons dashicons-editor-help" title="' . esc_attr( $tip ) . '"></span>';
696
+        if ($echo) {
697
+            echo '<span class="dashicons dashicons-editor-help" title="' . esc_attr($tip) . '"></span>';
698 698
         } else {
699
-            return '<span class="dashicons dashicons-editor-help" title="' . esc_attr( $tip ) . '"></span>';
699
+            return '<span class="dashicons dashicons-editor-help" title="' . esc_attr($tip) . '"></span>';
700 700
         }
701 701
 }
702 702
 
703
-    if ( $echo ) {
704
-        echo '<span class="wpi-help-tip dashicons dashicons-editor-help" title="' . esc_attr( $tip ) . '"></span>';
703
+    if ($echo) {
704
+        echo '<span class="wpi-help-tip dashicons dashicons-editor-help" title="' . esc_attr($tip) . '"></span>';
705 705
     } else {
706
-        return '<span class="wpi-help-tip dashicons dashicons-editor-help" title="' . esc_attr( $tip ) . '"></span>';
706
+        return '<span class="wpi-help-tip dashicons dashicons-editor-help" title="' . esc_attr($tip) . '"></span>';
707 707
     }
708 708
 }
709 709
 
@@ -715,9 +715,9 @@  discard block
 block discarded – undo
715 715
  * @param string $var
716 716
  * @return string
717 717
  */
718
-function wpi_sanitize_tooltip( $var ) {
718
+function wpi_sanitize_tooltip($var) {
719 719
     return wp_kses(
720
-        html_entity_decode( $var ),
720
+        html_entity_decode($var),
721 721
         array(
722 722
 			'br'     => array(),
723 723
 			'em'     => array(),
@@ -740,7 +740,7 @@  discard block
 block discarded – undo
740 740
  */
741 741
 function wpinv_get_screen_ids() {
742 742
 
743
-    $screen_id = sanitize_title( __( 'Invoicing', 'invoicing' ) );
743
+    $screen_id = sanitize_title(__('Invoicing', 'invoicing'));
744 744
 
745 745
     $screen_ids = array(
746 746
         'toplevel_page_' . $screen_id,
@@ -762,7 +762,7 @@  discard block
 block discarded – undo
762 762
         'gp-setup', // setup wizard
763 763
     );
764 764
 
765
-    return apply_filters( 'wpinv_screen_ids', $screen_ids );
765
+    return apply_filters('wpinv_screen_ids', $screen_ids);
766 766
 }
767 767
 
768 768
 /**
@@ -773,14 +773,14 @@  discard block
 block discarded – undo
773 773
  * @param array|string $list List of values.
774 774
  * @return array Sanitized array of values.
775 775
  */
776
-function wpinv_parse_list( $list ) {
776
+function wpinv_parse_list($list) {
777 777
 
778
-    if ( empty( $list ) ) {
778
+    if (empty($list)) {
779 779
         $list = array();
780 780
     }
781 781
 
782
-	if ( ! is_array( $list ) ) {
783
-		return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );
782
+	if (!is_array($list)) {
783
+		return preg_split('/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY);
784 784
 	}
785 785
 
786 786
 	return $list;
@@ -794,8 +794,8 @@  discard block
 block discarded – undo
794 794
  * @param string $key Type of data to fetch.
795 795
  * @return mixed Fetched data.
796 796
  */
797
-function wpinv_get_data( $key ) {
798
-    return apply_filters( "wpinv_get_$key", include WPINV_PLUGIN_DIR . "includes/data/$key.php" );
797
+function wpinv_get_data($key) {
798
+    return apply_filters("wpinv_get_$key", include WPINV_PLUGIN_DIR . "includes/data/$key.php");
799 799
 }
800 800
 
801 801
 /**
@@ -807,10 +807,10 @@  discard block
 block discarded – undo
807 807
  * @param bool $first_empty Whether or not the first item in the list should be empty
808 808
  * @return mixed Fetched data.
809 809
  */
810
-function wpinv_maybe_add_empty_option( $options, $first_empty ) {
810
+function wpinv_maybe_add_empty_option($options, $first_empty) {
811 811
 
812
-    if ( ! empty( $options ) && $first_empty ) {
813
-        return array_merge( array( '' => '' ), $options );
812
+    if (!empty($options) && $first_empty) {
813
+        return array_merge(array('' => ''), $options);
814 814
     }
815 815
     return $options;
816 816
 
@@ -822,21 +822,21 @@  discard block
 block discarded – undo
822 822
  * @param mixed $var Data to sanitize.
823 823
  * @return string|array
824 824
  */
825
-function wpinv_clean( $var ) {
825
+function wpinv_clean($var) {
826 826
 
827
-	if ( is_array( $var ) ) {
828
-		return array_map( 'wpinv_clean', $var );
827
+	if (is_array($var)) {
828
+		return array_map('wpinv_clean', $var);
829 829
     }
830 830
 
831
-    if ( is_object( $var ) ) {
832
-		$object_vars = get_object_vars( $var );
833
-		foreach ( $object_vars as $property_name => $property_value ) {
834
-			$var->$property_name = wpinv_clean( $property_value );
831
+    if (is_object($var)) {
832
+		$object_vars = get_object_vars($var);
833
+		foreach ($object_vars as $property_name => $property_value) {
834
+			$var->$property_name = wpinv_clean($property_value);
835 835
         }
836 836
         return $var;
837 837
 	}
838 838
 
839
-    return is_string( $var ) ? sanitize_text_field( stripslashes( $var ) ) : $var;
839
+    return is_string($var) ? sanitize_text_field(stripslashes($var)) : $var;
840 840
 }
841 841
 
842 842
 /**
@@ -845,43 +845,43 @@  discard block
 block discarded – undo
845 845
  * @param string $str Data to convert.
846 846
  * @return string|array
847 847
  */
848
-function getpaid_convert_price_string_to_options( $str ) {
848
+function getpaid_convert_price_string_to_options($str) {
849 849
 
850
-	$raw_options = array_map( 'trim', explode( ',', $str ) );
851
-    $options     = array();
850
+	$raw_options = array_map('trim', explode(',', $str));
851
+    $options = array();
852 852
 
853
-    foreach ( $raw_options as $option ) {
853
+    foreach ($raw_options as $option) {
854 854
 
855
-        if ( '' == $option ) {
855
+        if ('' == $option) {
856 856
             continue;
857 857
         }
858 858
 
859
-        $option = array_map( 'trim', explode( '|', $option ) );
859
+        $option = array_map('trim', explode('|', $option));
860 860
 
861 861
         $price = null;
862 862
         $label = null;
863 863
 
864
-        if ( isset( $option[0] ) && '' != $option[0] ) {
865
-            $label  = $option[0];
864
+        if (isset($option[0]) && '' != $option[0]) {
865
+            $label = $option[0];
866 866
         }
867 867
 
868
-        if ( isset( $option[1] ) && '' != $option[1] ) {
868
+        if (isset($option[1]) && '' != $option[1]) {
869 869
             $price = $option[1];
870 870
         }
871 871
 
872
-        if ( ! isset( $price ) ) {
872
+        if (!isset($price)) {
873 873
             $price = $label;
874 874
         }
875 875
 
876
-        if ( ! isset( $price ) || ! is_numeric( $price ) ) {
876
+        if (!isset($price) || !is_numeric($price)) {
877 877
             continue;
878 878
         }
879 879
 
880
-        if ( ! isset( $label ) ) {
880
+        if (!isset($label)) {
881 881
             $label = $price;
882 882
         }
883 883
 
884
-        $options[ "$label|$price" ] = $label;
884
+        $options["$label|$price"] = $label;
885 885
     }
886 886
 
887 887
     return $options;
@@ -890,14 +890,14 @@  discard block
 block discarded – undo
890 890
 /**
891 891
  * Returns the help tip.
892 892
  */
893
-function getpaid_get_help_tip( $tip, $additional_classes = '', $echo = false ) {
893
+function getpaid_get_help_tip($tip, $additional_classes = '', $echo = false) {
894 894
     $classes = 'wpi-help-tip dashicons dashicons-editor-help ' . $additional_classes;
895
-    $tip     = esc_attr( $tip );
895
+    $tip     = esc_attr($tip);
896 896
 
897
-    if ( $echo ) {
898
-        echo '<span class="' . esc_attr( $classes ) . '" data-tip="' . esc_attr( $tip ) . '"></span>';
897
+    if ($echo) {
898
+        echo '<span class="' . esc_attr($classes) . '" data-tip="' . esc_attr($tip) . '"></span>';
899 899
     } else {
900
-        return '<span class="' . esc_attr( $classes ) . '" data-tip="' . esc_attr( $tip ) . '"></span>';
900
+        return '<span class="' . esc_attr($classes) . '" data-tip="' . esc_attr($tip) . '"></span>';
901 901
     }
902 902
 
903 903
 }
@@ -905,18 +905,18 @@  discard block
 block discarded – undo
905 905
 /**
906 906
  * Formats a date
907 907
  */
908
-function getpaid_format_date( $date, $with_time = false ) {
908
+function getpaid_format_date($date, $with_time = false) {
909 909
 
910
-    if ( empty( $date ) || $date == '0000-00-00 00:00:00' ) {
910
+    if (empty($date) || $date == '0000-00-00 00:00:00') {
911 911
         return '';
912 912
     }
913 913
 
914 914
     $format = getpaid_date_format();
915 915
 
916
-    if ( $with_time ) {
916
+    if ($with_time) {
917 917
         $format .= ' ' . getpaid_time_format();
918 918
     }
919
-    return date_i18n( $format, strtotime( $date ) );
919
+    return date_i18n($format, strtotime($date));
920 920
 
921 921
 }
922 922
 
@@ -925,9 +925,9 @@  discard block
 block discarded – undo
925 925
  *
926 926
  * @return string
927 927
  */
928
-function getpaid_format_date_value( $date, $default = '&mdash;', $with_time = false ) {
929
-    $date = getpaid_format_date( $date, $with_time );
930
-    return empty( $date ) ? $default : $date;
928
+function getpaid_format_date_value($date, $default = '&mdash;', $with_time = false) {
929
+    $date = getpaid_format_date($date, $with_time);
930
+    return empty($date) ? $default : $date;
931 931
 }
932 932
 
933 933
 /**
@@ -936,7 +936,7 @@  discard block
 block discarded – undo
936 936
  * @return string
937 937
  */
938 938
 function getpaid_date_format() {
939
-	return apply_filters( 'getpaid_date_format', get_option( 'date_format' ) );
939
+	return apply_filters('getpaid_date_format', get_option('date_format'));
940 940
 }
941 941
 
942 942
 /**
@@ -945,7 +945,7 @@  discard block
 block discarded – undo
945 945
  * @return string
946 946
  */
947 947
 function getpaid_time_format() {
948
-	return apply_filters( 'getpaid_time_format', get_option( 'time_format' ) );
948
+	return apply_filters('getpaid_time_format', get_option('time_format'));
949 949
 }
950 950
 
951 951
 /**
@@ -955,16 +955,16 @@  discard block
 block discarded – undo
955 955
  * @param  integer $limit Limit size in characters.
956 956
  * @return string
957 957
  */
958
-function getpaid_limit_length( $string, $limit ) {
958
+function getpaid_limit_length($string, $limit) {
959 959
     $str_limit = $limit - 3;
960 960
 
961
-	if ( function_exists( 'mb_strimwidth' ) ) {
962
-		if ( mb_strlen( $string ) > $limit ) {
963
-			$string = mb_strimwidth( $string, 0, $str_limit ) . '...';
961
+	if (function_exists('mb_strimwidth')) {
962
+		if (mb_strlen($string) > $limit) {
963
+			$string = mb_strimwidth($string, 0, $str_limit) . '...';
964 964
 		}
965 965
 	} else {
966
-		if ( strlen( $string ) > $limit ) {
967
-			$string = substr( $string, 0, $str_limit ) . '...';
966
+		if (strlen($string) > $limit) {
967
+			$string = substr($string, 0, $str_limit) . '...';
968 968
 		}
969 969
 	}
970 970
     return $string;
@@ -978,7 +978,7 @@  discard block
 block discarded – undo
978 978
  * @since 1.0.19
979 979
  */
980 980
 function getpaid_api() {
981
-    return getpaid()->get( 'api' );
981
+    return getpaid()->get('api');
982 982
 }
983 983
 
984 984
 /**
@@ -988,7 +988,7 @@  discard block
 block discarded – undo
988 988
  * @since 1.0.19
989 989
  */
990 990
 function getpaid_post_types() {
991
-    return getpaid()->get( 'post_types' );
991
+    return getpaid()->get('post_types');
992 992
 }
993 993
 
994 994
 /**
@@ -998,7 +998,7 @@  discard block
 block discarded – undo
998 998
  * @since 1.0.19
999 999
  */
1000 1000
 function getpaid_session() {
1001
-    return getpaid()->get( 'session' );
1001
+    return getpaid()->get('session');
1002 1002
 }
1003 1003
 
1004 1004
 /**
@@ -1008,7 +1008,7 @@  discard block
 block discarded – undo
1008 1008
  * @since 1.0.19
1009 1009
  */
1010 1010
 function getpaid_notes() {
1011
-    return getpaid()->get( 'notes' );
1011
+    return getpaid()->get('notes');
1012 1012
 }
1013 1013
 
1014 1014
 /**
@@ -1017,7 +1017,7 @@  discard block
 block discarded – undo
1017 1017
  * @return GetPaid_Admin
1018 1018
  */
1019 1019
 function getpaid_admin() {
1020
-    return getpaid()->get( 'admin' );
1020
+    return getpaid()->get('admin');
1021 1021
 }
1022 1022
 
1023 1023
 /**
@@ -1027,8 +1027,8 @@  discard block
 block discarded – undo
1027 1027
  * @param string $base the base url
1028 1028
  * @return string
1029 1029
  */
1030
-function getpaid_get_authenticated_action_url( $action, $base = false ) {
1031
-    return wp_nonce_url( add_query_arg( 'getpaid-action', $action, $base ), 'getpaid-nonce', 'getpaid-nonce' );
1030
+function getpaid_get_authenticated_action_url($action, $base = false) {
1031
+    return wp_nonce_url(add_query_arg('getpaid-action', $action, $base), 'getpaid-nonce', 'getpaid-nonce');
1032 1032
 }
1033 1033
 
1034 1034
 /**
@@ -1036,11 +1036,11 @@  discard block
 block discarded – undo
1036 1036
  *
1037 1037
  * @return string
1038 1038
  */
1039
-function getpaid_get_post_type_label( $post_type, $plural = true ) {
1039
+function getpaid_get_post_type_label($post_type, $plural = true) {
1040 1040
 
1041
-    $post_type = get_post_type_object( $post_type );
1041
+    $post_type = get_post_type_object($post_type);
1042 1042
 
1043
-    if ( ! is_object( $post_type ) ) {
1043
+    if (!is_object($post_type)) {
1044 1044
         return null;
1045 1045
     }
1046 1046
 
@@ -1053,18 +1053,18 @@  discard block
 block discarded – undo
1053 1053
  *
1054 1054
  * @return mixed|null
1055 1055
  */
1056
-function getpaid_get_array_field( $array, $key, $secondary_key = null ) {
1056
+function getpaid_get_array_field($array, $key, $secondary_key = null) {
1057 1057
 
1058
-    if ( ! is_array( $array ) ) {
1058
+    if (!is_array($array)) {
1059 1059
         return null;
1060 1060
     }
1061 1061
 
1062
-    if ( ! empty( $secondary_key ) ) {
1063
-        $array = isset( $array[ $secondary_key ] ) ? $array[ $secondary_key ] : array();
1064
-        return getpaid_get_array_field( $array, $key );
1062
+    if (!empty($secondary_key)) {
1063
+        $array = isset($array[$secondary_key]) ? $array[$secondary_key] : array();
1064
+        return getpaid_get_array_field($array, $key);
1065 1065
     }
1066 1066
 
1067
-    return isset( $array[ $key ] ) ? $array[ $key ] : null;
1067
+    return isset($array[$key]) ? $array[$key] : null;
1068 1068
 
1069 1069
 }
1070 1070
 
@@ -1073,12 +1073,12 @@  discard block
 block discarded – undo
1073 1073
  *
1074 1074
  * @return array
1075 1075
  */
1076
-function getpaid_array_merge_if_empty( $args, $defaults ) {
1076
+function getpaid_array_merge_if_empty($args, $defaults) {
1077 1077
 
1078
-    foreach ( $defaults as $key => $value ) {
1078
+    foreach ($defaults as $key => $value) {
1079 1079
 
1080
-        if ( empty( $args[ $key ] ) ) {
1081
-            $args[ $key ] = $value;
1080
+        if (empty($args[$key])) {
1081
+            $args[$key] = $value;
1082 1082
         }
1083 1083
     }
1084 1084
 
@@ -1095,12 +1095,12 @@  discard block
 block discarded – undo
1095 1095
 
1096 1096
     $types = get_allowed_mime_types();
1097 1097
 
1098
-    if ( isset( $types['htm|html'] ) ) {
1099
-		unset( $types['htm|html'] );
1098
+    if (isset($types['htm|html'])) {
1099
+		unset($types['htm|html']);
1100 1100
 	}
1101 1101
 
1102
-    if ( isset( $types['js'] ) ) {
1103
-		unset( $types['js'] );
1102
+    if (isset($types['js'])) {
1103
+		unset($types['js']);
1104 1104
 	}
1105 1105
 
1106 1106
     return $types;
@@ -1108,21 +1108,21 @@  discard block
 block discarded – undo
1108 1108
 }
1109 1109
 
1110 1110
 
1111
-function getpaid_user_delete_invoice( $data ) {
1111
+function getpaid_user_delete_invoice($data) {
1112 1112
 
1113 1113
     // Ensure there is an invoice to delete.
1114
-    if ( empty( $data['invoice_id'] ) ) {
1114
+    if (empty($data['invoice_id'])) {
1115 1115
         return;
1116 1116
     }
1117 1117
 
1118
-    $invoice = new WPInv_Invoice( (int) $data['invoice_id'] );
1118
+    $invoice = new WPInv_Invoice((int) $data['invoice_id']);
1119 1119
 
1120 1120
     // Ensure that it exists and that it belongs to the current user.
1121
-    if ( ! $invoice->exists() || $invoice->get_customer_id() != get_current_user_id() ) {
1121
+    if (!$invoice->exists() || $invoice->get_customer_id() != get_current_user_id()) {
1122 1122
         $notice = 'perm_delete_invoice';
1123 1123
 
1124 1124
     // Can it be deleted?
1125
-    } elseif ( ! $invoice->needs_payment() ) {
1125
+    } elseif (!$invoice->needs_payment()) {
1126 1126
         $notice = 'cannot_delete_invoice';
1127 1127
 
1128 1128
     // Delete it.
@@ -1141,11 +1141,11 @@  discard block
 block discarded – undo
1141 1141
         )
1142 1142
     );
1143 1143
 
1144
-    wp_safe_redirect( $redirect );
1144
+    wp_safe_redirect($redirect);
1145 1145
     exit;
1146 1146
 
1147 1147
 }
1148
-add_action( 'getpaid_authenticated_action_delete_invoice', 'getpaid_user_delete_invoice' );
1148
+add_action('getpaid_authenticated_action_delete_invoice', 'getpaid_user_delete_invoice');
1149 1149
 
1150 1150
 /**
1151 1151
  * Converts string to lower case.
@@ -1156,11 +1156,11 @@  discard block
 block discarded – undo
1156 1156
  * @param string $charset Character set to use for conversion.
1157 1157
  * @return string Returns converted string.
1158 1158
  */
1159
-function getpaid_strtolower( $string, $charset = 'UTF-8' ) {
1160
-	if ( function_exists( 'mb_convert_case' ) ) {
1161
-		return mb_convert_case( $string, MB_CASE_LOWER, $charset );
1159
+function getpaid_strtolower($string, $charset = 'UTF-8') {
1160
+	if (function_exists('mb_convert_case')) {
1161
+		return mb_convert_case($string, MB_CASE_LOWER, $charset);
1162 1162
 	} else {
1163
-		return strtolower( $string );
1163
+		return strtolower($string);
1164 1164
 	}
1165 1165
 }
1166 1166
 
@@ -1173,10 +1173,10 @@  discard block
 block discarded – undo
1173 1173
  * @param string $charset Character set to use for conversion.
1174 1174
  * @return string Returns converted string.
1175 1175
  */
1176
-function getpaid_strtoupper( $string, $charset = 'UTF-8' ) {
1177
-	if ( function_exists( 'mb_convert_case' ) ) {
1178
-		return mb_convert_case( $string, MB_CASE_UPPER, $charset );
1176
+function getpaid_strtoupper($string, $charset = 'UTF-8') {
1177
+	if (function_exists('mb_convert_case')) {
1178
+		return mb_convert_case($string, MB_CASE_UPPER, $charset);
1179 1179
 	} else {
1180
-		return strtoupper( $string );
1180
+		return strtoupper($string);
1181 1181
 	}
1182 1182
 }
1183 1183
\ No newline at end of file
Please login to merge, or discard this patch.
includes/admin/views/wizard-thank-you.php 1 patch
Spacing   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -4,40 +4,40 @@
 block discarded – undo
4 4
  *
5 5
  */
6 6
 
7
-defined( 'ABSPATH' ) || exit;
7
+defined('ABSPATH') || exit;
8 8
 
9 9
 global $aui_bs5;
10 10
 ?>
11 11
 <div class="card shadow-sm my-5">
12 12
 	<div class="text-center card-body">
13
-		<h1 class="h3"><?php esc_html_e( 'Awesome, you are ready to Get Paid', 'invoicing' ); ?></h1>
13
+		<h1 class="h3"><?php esc_html_e('Awesome, you are ready to Get Paid', 'invoicing'); ?></h1>
14 14
 
15 15
 		<div class="geodirectory-message geodirectory-tracker">
16
-			<p><?php esc_html_e( 'Thank you for choosing GetPaid!', 'invoicing' ); ?> <i class="far fa-smile-beam"></i></p>
16
+			<p><?php esc_html_e('Thank you for choosing GetPaid!', 'invoicing'); ?> <i class="far fa-smile-beam"></i></p>
17 17
 		</div>
18 18
 
19 19
 		<div class="gp-setup-next-steps">
20 20
 			<div class="gp-setup-next-steps-first mb-4">
21 21
 				<div>
22
-					<h2 class="h3"><i class="fas fa-arrow-down"></i> <?php esc_html_e( 'Watch This', 'invoicing' ); ?> <i class="fas fa-arrow-down"></i></h2>
23
-					<div class="<?php echo( $aui_bs5 ? 'ratio ratio-16x9' : 'embed-responsive embed-responsive-16by9' ); ?> mb-4">
24
-						<iframe class="<?php echo( $aui_bs5 ? '' : 'embed-responsive-item' ); ?>" src="https://www.youtube.com/embed/TXZuPXHjt9E?rel=0" allowfullscreen></iframe>
22
+					<h2 class="h3"><i class="fas fa-arrow-down"></i> <?php esc_html_e('Watch This', 'invoicing'); ?> <i class="fas fa-arrow-down"></i></h2>
23
+					<div class="<?php echo($aui_bs5 ? 'ratio ratio-16x9' : 'embed-responsive embed-responsive-16by9'); ?> mb-4">
24
+						<iframe class="<?php echo($aui_bs5 ? '' : 'embed-responsive-item'); ?>" src="https://www.youtube.com/embed/TXZuPXHjt9E?rel=0" allowfullscreen></iframe>
25 25
 					</div>
26 26
 				</div>
27
-				<h2 class="h3"><?php esc_html_e( 'Next steps', 'invoicing' ); ?></h2>
27
+				<h2 class="h3"><?php esc_html_e('Next steps', 'invoicing'); ?></h2>
28 28
 
29 29
 				<div class="d-flex justify-content-between">
30
-					<a class="btn btn-outline-primary btn-sm" href="<?php echo esc_url( admin_url( 'post-new.php?post_type=wpi_item' ) ); ?>"><span class="h1 d-block"><i class="fas fa-box-open"></i></span> <?php esc_html_e( 'Create Item', 'invoicing' ); ?></a>
31
-					<a class="btn btn-outline-primary btn-sm" href="<?php echo esc_url( admin_url( 'post-new.php?post_type=wpi_payment_form' ) ); ?>"><span class="h1 d-block"><i class="fas fa-align-justify"></i></span> <?php esc_html_e( 'Create Payment Form', 'invoicing' ); ?></a>
32
-					<a class="btn btn-outline-primary btn-sm" href="<?php echo esc_url( admin_url( 'post-new.php?post_type=wpi_invoice' ) ); ?>"><span class="h1 d-block"><i class="fas fa-file-alt"></i></span> <?php esc_html_e( 'Create Invoice', 'invoicing' ); ?></a>
30
+					<a class="btn btn-outline-primary btn-sm" href="<?php echo esc_url(admin_url('post-new.php?post_type=wpi_item')); ?>"><span class="h1 d-block"><i class="fas fa-box-open"></i></span> <?php esc_html_e('Create Item', 'invoicing'); ?></a>
31
+					<a class="btn btn-outline-primary btn-sm" href="<?php echo esc_url(admin_url('post-new.php?post_type=wpi_payment_form')); ?>"><span class="h1 d-block"><i class="fas fa-align-justify"></i></span> <?php esc_html_e('Create Payment Form', 'invoicing'); ?></a>
32
+					<a class="btn btn-outline-primary btn-sm" href="<?php echo esc_url(admin_url('post-new.php?post_type=wpi_invoice')); ?>"><span class="h1 d-block"><i class="fas fa-file-alt"></i></span> <?php esc_html_e('Create Invoice', 'invoicing'); ?></a>
33 33
 				</div>
34 34
 
35
-				<h2 class="h3 mt-4"><?php esc_html_e( 'Learn more', 'invoicing' ); ?></h2>
35
+				<h2 class="h3 mt-4"><?php esc_html_e('Learn more', 'invoicing'); ?></h2>
36 36
 				<div class="gp-setup-next-steps-last mt-2 d-flex justify-content-between">
37
-					<a class="btn btn-outline-primary btn-sm" href="https://docs.wpgetpaid.com/collection/114-getting-started?utm_source=setupwizard&utm_medium=product&utm_content=getting-started&utm_campaign=invoicingplugin" target="_blank"><?php esc_html_e( 'Getting Started', 'invoicing' ); ?></a>
38
-					<a class="btn btn-outline-primary btn-sm" href="https://docs.wpgetpaid.com/?utm_source=setupwizard&utm_medium=product&utm_content=docs&utm_campaign=invoicingplugin" target="_blank"><?php esc_html_e( 'Documentation', 'invoicing' ); ?></a>
39
-					<a class="btn btn-outline-primary btn-sm" href="https://wpgetpaid.com/support/?utm_source=setupwizard&utm_medium=product&utm_content=docs&utm_campaign=invoicingyplugin" target="_blank"><?php esc_html_e( 'Support', 'invoicing' ); ?></a>
40
-					<a class="btn btn-outline-primary btn-sm" href="https://demos.ayecode.io/getpaid/?utm_source=setupwizard&utm_medium=product&utm_content=demos&utm_campaign=invoicingyplugin" target="_blank"><?php esc_html_e( 'Demos', 'invoicing' ); ?></a>
37
+					<a class="btn btn-outline-primary btn-sm" href="https://docs.wpgetpaid.com/collection/114-getting-started?utm_source=setupwizard&utm_medium=product&utm_content=getting-started&utm_campaign=invoicingplugin" target="_blank"><?php esc_html_e('Getting Started', 'invoicing'); ?></a>
38
+					<a class="btn btn-outline-primary btn-sm" href="https://docs.wpgetpaid.com/?utm_source=setupwizard&utm_medium=product&utm_content=docs&utm_campaign=invoicingplugin" target="_blank"><?php esc_html_e('Documentation', 'invoicing'); ?></a>
39
+					<a class="btn btn-outline-primary btn-sm" href="https://wpgetpaid.com/support/?utm_source=setupwizard&utm_medium=product&utm_content=docs&utm_campaign=invoicingyplugin" target="_blank"><?php esc_html_e('Support', 'invoicing'); ?></a>
40
+					<a class="btn btn-outline-primary btn-sm" href="https://demos.ayecode.io/getpaid/?utm_source=setupwizard&utm_medium=product&utm_content=demos&utm_campaign=invoicingyplugin" target="_blank"><?php esc_html_e('Demos', 'invoicing'); ?></a>
41 41
 				</div>
42 42
 			</div>
43 43
 		</div>
Please login to merge, or discard this patch.
includes/admin/views/wizard-plugins.php 1 patch
Spacing   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -4,31 +4,31 @@
 block discarded – undo
4 4
  *
5 5
  */
6 6
 
7
-defined( 'ABSPATH' ) || exit;
7
+defined('ABSPATH') || exit;
8 8
 
9 9
 global $aui_bs5;
10 10
 ?>
11 11
 <div class="card shadow-sm my-5">
12
-	<form method="post" class="text-center card-body" action="<?php echo esc_url( admin_url() ); ?>">
13
-		<?php getpaid_hidden_field( 'getpaid-admin-action', 'install_plugin' ); ?>
14
-		<?php wp_nonce_field( 'getpaid-nonce', 'getpaid-nonce' ); ?>
15
-		<?php getpaid_hidden_field( 'redirect', $next_url ); ?>
12
+	<form method="post" class="text-center card-body" action="<?php echo esc_url(admin_url()); ?>">
13
+		<?php getpaid_hidden_field('getpaid-admin-action', 'install_plugin'); ?>
14
+		<?php wp_nonce_field('getpaid-nonce', 'getpaid-nonce'); ?>
15
+		<?php getpaid_hidden_field('redirect', $next_url); ?>
16 16
 		<div class="gd-wizard-recommend">
17
-			<h2 class="gd-settings-title h3"><?php esc_html_e( 'Recommended Plugins', 'invoicing' ); ?></h2>
18
-			<p><?php esc_html_e( 'Below are a few of our own plugins that may help you.', 'invoicing' ); ?></p>
17
+			<h2 class="gd-settings-title h3"><?php esc_html_e('Recommended Plugins', 'invoicing'); ?></h2>
18
+			<p><?php esc_html_e('Below are a few of our own plugins that may help you.', 'invoicing'); ?></p>
19 19
 			<ul class="list-group">
20
-				<?php foreach ( $recommended_plugins as $key => $plugin ) : ?>
21
-				<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap <?php echo( $aui_bs5 ? 'text-start' : 'text-left' ); ?>">
22
-					<span class="mr-auto"><?php echo esc_html( $plugin['name'] ); ?></span>
23
-					<div class="<?php echo( $aui_bs5 ? 'form-check form-switch me-n2' : 'custom-control custom-switch mr-n2 getpaid-install-plugin-siwtch-div' ); ?>">
24
-						<input type="checkbox" name="plugins[<?php echo esc_attr( $plugin['slug'] ); ?>]" value="<?php echo esc_attr( $plugin['file'] ); ?>" class="<?php echo ( $aui_bs5 ? 'form-check-input' : 'custom-control-input' ); ?>" <?php if ( is_plugin_active( $plugin['file'] ) ) { echo 'checked';}?> id="ac-setting-updates<?php echo esc_attr( $key ); ?>">
25
-						<label class="<?php echo ( $aui_bs5 ? 'form-check-label' : 'custom-control-label' ); ?>" for="ac-setting-updates<?php echo esc_attr( $key ); ?>"></label>
20
+				<?php foreach ($recommended_plugins as $key => $plugin) : ?>
21
+				<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap <?php echo($aui_bs5 ? 'text-start' : 'text-left'); ?>">
22
+					<span class="mr-auto"><?php echo esc_html($plugin['name']); ?></span>
23
+					<div class="<?php echo($aui_bs5 ? 'form-check form-switch me-n2' : 'custom-control custom-switch mr-n2 getpaid-install-plugin-siwtch-div'); ?>">
24
+						<input type="checkbox" name="plugins[<?php echo esc_attr($plugin['slug']); ?>]" value="<?php echo esc_attr($plugin['file']); ?>" class="<?php echo ($aui_bs5 ? 'form-check-input' : 'custom-control-input'); ?>" <?php if (is_plugin_active($plugin['file'])) { echo 'checked'; }?> id="ac-setting-updates<?php echo esc_attr($key); ?>">
25
+						<label class="<?php echo ($aui_bs5 ? 'form-check-label' : 'custom-control-label'); ?>" for="ac-setting-updates<?php echo esc_attr($key); ?>"></label>
26 26
 					</div>
27
-					<small class="w-100"><?php echo esc_attr( $plugin['desc'] ); ?></small>
27
+					<small class="w-100"><?php echo esc_attr($plugin['desc']); ?></small>
28 28
 				</li>
29 29
 				<?php endforeach; ?>
30 30
 			</ul>
31
-			<p class="gp-setup-actions step text-center mt-4"><input type="submit" class="btn btn-primary button-next" value="<?php esc_attr_e( 'Continue', 'invoicing' ); ?>" name="save_step"/></p>
31
+			<p class="gp-setup-actions step text-center mt-4"><input type="submit" class="btn btn-primary button-next" value="<?php esc_attr_e('Continue', 'invoicing'); ?>" name="save_step"/></p>
32 32
 		</div>
33 33
 	</form>
34 34
 </div>
35 35
\ No newline at end of file
Please login to merge, or discard this patch.