Passed
Push — master ( 32accd...dc49db )
by Brian
05:22
created
includes/gateways/class-getpaid-bank-transfer-gateway.php 2 patches
Indentation   +221 added lines, -221 removed lines patch added patch discarded remove patch
@@ -13,30 +13,30 @@  discard block
 block discarded – undo
13 13
 class GetPaid_Bank_Transfer_Gateway extends GetPaid_Payment_Gateway {
14 14
 
15 15
     /**
16
-	 * Payment method id.
17
-	 *
18
-	 * @var string
19
-	 */
16
+     * Payment method id.
17
+     *
18
+     * @var string
19
+     */
20 20
     public $id = 'bank_transfer';
21 21
 
22
-	/**
23
-	 * An array of features that this gateway supports.
24
-	 *
25
-	 * @var array
26
-	 */
27
-	protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups' );
22
+    /**
23
+     * An array of features that this gateway supports.
24
+     *
25
+     * @var array
26
+     */
27
+    protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups' );
28 28
 
29 29
     /**
30
-	 * Payment method order.
31
-	 *
32
-	 * @var int
33
-	 */
34
-	public $order = 8;
30
+     * Payment method order.
31
+     *
32
+     * @var int
33
+     */
34
+    public $order = 8;
35 35
 
36 36
     /**
37
-	 * Class constructor.
38
-	 */
39
-	public function __construct() {
37
+     * Class constructor.
38
+     */
39
+    public function __construct() {
40 40
         parent::__construct();
41 41
 
42 42
         $this->title                = __( 'Direct bank transfer', 'invoicing' );
@@ -44,24 +44,24 @@  discard block
 block discarded – undo
44 44
         $this->checkout_button_text = __( 'Proceed', 'invoicing' );
45 45
         $this->instructions         = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) );
46 46
 
47
-		add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) );
48
-		add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 );
49
-		add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 );
50
-		add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 );
51
-		add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) );
52
-		add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 );
47
+        add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) );
48
+        add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 );
49
+        add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 );
50
+        add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 );
51
+        add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) );
52
+        add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 );
53 53
 
54 54
     }
55 55
 
56 56
     /**
57
-	 * Process Payment.
58
-	 *
59
-	 * @param WPInv_Invoice $invoice Invoice.
60
-	 * @param array $submission_data Posted checkout fields.
61
-	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
62
-	 * @return array
63
-	 */
64
-	public function process_payment( $invoice, $submission_data, $submission ) {
57
+     * Process Payment.
58
+     *
59
+     * @param WPInv_Invoice $invoice Invoice.
60
+     * @param array $submission_data Posted checkout fields.
61
+     * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
62
+     * @return array
63
+     */
64
+    public function process_payment( $invoice, $submission_data, $submission ) {
65 65
 
66 66
         // Add a transaction id.
67 67
         $invoice->set_transaction_id( $invoice->generate_key( 'bt_' ) );
@@ -82,66 +82,66 @@  discard block
 block discarded – undo
82 82
     }
83 83
 
84 84
     /**
85
-	 * Output for the order received page.
86
-	 *
87
-	 * @param WPInv_Invoice $invoice Invoice.
88
-	 */
89
-	public function thankyou_page( $invoice ) {
85
+     * Output for the order received page.
86
+     *
87
+     * @param WPInv_Invoice $invoice Invoice.
88
+     */
89
+    public function thankyou_page( $invoice ) {
90 90
 
91 91
         if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
92 92
 
93
-			echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL;
93
+            echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL;
94 94
 
95 95
             if ( ! empty( $this->instructions ) ) {
96 96
                 echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) );
97
-			}
97
+            }
98 98
 
99
-			$this->bank_details( $invoice );
99
+            $this->bank_details( $invoice );
100 100
 
101
-			echo '</div>';
101
+            echo '</div>';
102 102
 
103 103
         }
104 104
 
105
-	}
105
+    }
106 106
 
107 107
     /**
108
-	 * Add content to the WPI emails.
109
-	 *
110
-	 * @param WPInv_Invoice $invoice Invoice.
111
-	 * @param string     $email_type Email format: plain text or HTML.
112
-	 * @param bool     $sent_to_admin Sent to admin.
113
-	 */
114
-	public function email_instructions( $invoice, $email_type, $sent_to_admin ) {
108
+     * Add content to the WPI emails.
109
+     *
110
+     * @param WPInv_Invoice $invoice Invoice.
111
+     * @param string     $email_type Email format: plain text or HTML.
112
+     * @param bool     $sent_to_admin Sent to admin.
113
+     */
114
+    public function email_instructions( $invoice, $email_type, $sent_to_admin ) {
115 115
 
116
-		if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
116
+        if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
117 117
 
118
-			echo '<div class="wpi-email-row getpaid-bank-transfer-details">';
118
+            echo '<div class="wpi-email-row getpaid-bank-transfer-details">';
119 119
 
120
-			if ( $this->instructions ) {
121
-				echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL );
120
+            if ( $this->instructions ) {
121
+                echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL );
122 122
             }
123 123
 
124
-			$this->bank_details( $invoice );
124
+            $this->bank_details( $invoice );
125 125
 
126
-			echo '</div>';
126
+            echo '</div>';
127 127
 
128
-		}
128
+        }
129 129
 
130 130
     }
131 131
 
132 132
     /**
133
-	 * Get bank details and place into a list format.
134
-	 *
135
-	 * @param WPInv_Invoice $invoice Invoice.
136
-	 */
137
-	protected function bank_details( $invoice ) {
133
+     * Get bank details and place into a list format.
134
+     *
135
+     * @param WPInv_Invoice $invoice Invoice.
136
+     */
137
+    protected function bank_details( $invoice ) {
138 138
 
139
-		// Get the invoice country and country $locale.
140
-		$country = $invoice->get_country();
141
-		$locale  = $this->get_country_locale();
139
+        // Get the invoice country and country $locale.
140
+        $country = $invoice->get_country();
141
+        $locale  = $this->get_country_locale();
142 142
 
143
-		// Get sortcode label in the $locale array and use appropriate one.
144
-		$sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
143
+        // Get sortcode label in the $locale array and use appropriate one.
144
+        $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
145 145
 
146 146
         $bank_fields = array(
147 147
             'ac_name'   => __( 'Account Name', 'invoicing' ),
@@ -160,9 +160,9 @@  discard block
 block discarded – undo
160 160
 
161 161
             if ( ! empty( $value ) ) {
162 162
                 $bank_info[ $field ] = array(
163
-					'label' => $label,
164
-					'value' => $value,
165
-				);
163
+                    'label' => $label,
164
+                    'value' => $value,
165
+                );
166 166
             }
167 167
 }
168 168
 
@@ -172,139 +172,139 @@  discard block
 block discarded – undo
172 172
             return;
173 173
         }
174 174
 
175
-		echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) ) . '</h3>' . PHP_EOL;
175
+        echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) ) . '</h3>' . PHP_EOL;
176 176
 
177
-		echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL;
177
+        echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL;
178 178
 
179
-		foreach ( $bank_info as $key => $data ) {
180
-			echo "<tr class='getpaid-bank-transfer-" . esc_attr( $key ) . "'><th class='font-weight-bold'>" . wp_kses_post( $data['label'] ) . "</th><td class='w-75'>" . wp_kses_post( wptexturize( $data['value'] ) ) . "</td></tr>" . PHP_EOL;
181
-		}
179
+        foreach ( $bank_info as $key => $data ) {
180
+            echo "<tr class='getpaid-bank-transfer-" . esc_attr( $key ) . "'><th class='font-weight-bold'>" . wp_kses_post( $data['label'] ) . "</th><td class='w-75'>" . wp_kses_post( wptexturize( $data['value'] ) ) . "</td></tr>" . PHP_EOL;
181
+        }
182 182
 
183
-		echo '</table>';
183
+        echo '</table>';
184 184
 
185 185
     }
186 186
 
187 187
     /**
188
-	 * Get country locale if localized.
189
-	 *
190
-	 * @return array
191
-	 */
192
-	public function get_country_locale() {
193
-
194
-		if ( empty( $this->locale ) ) {
195
-
196
-			// Locale information to be used - only those that are not 'Sort Code'.
197
-			$this->locale = apply_filters(
198
-				'getpaid_get_bank_transfer_locale',
199
-				array(
200
-					'AU' => array(
201
-						'sortcode' => array(
202
-							'label' => __( 'BSB', 'invoicing' ),
203
-						),
204
-					),
205
-					'CA' => array(
206
-						'sortcode' => array(
207
-							'label' => __( 'Bank transit number', 'invoicing' ),
208
-						),
209
-					),
210
-					'IN' => array(
211
-						'sortcode' => array(
212
-							'label' => __( 'IFSC', 'invoicing' ),
213
-						),
214
-					),
215
-					'IT' => array(
216
-						'sortcode' => array(
217
-							'label' => __( 'Branch sort', 'invoicing' ),
218
-						),
219
-					),
220
-					'NZ' => array(
221
-						'sortcode' => array(
222
-							'label' => __( 'Bank code', 'invoicing' ),
223
-						),
224
-					),
225
-					'SE' => array(
226
-						'sortcode' => array(
227
-							'label' => __( 'Bank code', 'invoicing' ),
228
-						),
229
-					),
230
-					'US' => array(
231
-						'sortcode' => array(
232
-							'label' => __( 'Routing number', 'invoicing' ),
233
-						),
234
-					),
235
-					'ZA' => array(
236
-						'sortcode' => array(
237
-							'label' => __( 'Branch code', 'invoicing' ),
238
-						),
239
-					),
240
-				)
241
-			);
242
-
243
-		}
244
-
245
-		return $this->locale;
246
-
247
-	}
248
-
249
-	/**
250
-	 * Filters the gateway settings.
251
-	 *
252
-	 * @param array $admin_settings
253
-	 */
254
-	public function admin_settings( $admin_settings ) {
188
+     * Get country locale if localized.
189
+     *
190
+     * @return array
191
+     */
192
+    public function get_country_locale() {
193
+
194
+        if ( empty( $this->locale ) ) {
195
+
196
+            // Locale information to be used - only those that are not 'Sort Code'.
197
+            $this->locale = apply_filters(
198
+                'getpaid_get_bank_transfer_locale',
199
+                array(
200
+                    'AU' => array(
201
+                        'sortcode' => array(
202
+                            'label' => __( 'BSB', 'invoicing' ),
203
+                        ),
204
+                    ),
205
+                    'CA' => array(
206
+                        'sortcode' => array(
207
+                            'label' => __( 'Bank transit number', 'invoicing' ),
208
+                        ),
209
+                    ),
210
+                    'IN' => array(
211
+                        'sortcode' => array(
212
+                            'label' => __( 'IFSC', 'invoicing' ),
213
+                        ),
214
+                    ),
215
+                    'IT' => array(
216
+                        'sortcode' => array(
217
+                            'label' => __( 'Branch sort', 'invoicing' ),
218
+                        ),
219
+                    ),
220
+                    'NZ' => array(
221
+                        'sortcode' => array(
222
+                            'label' => __( 'Bank code', 'invoicing' ),
223
+                        ),
224
+                    ),
225
+                    'SE' => array(
226
+                        'sortcode' => array(
227
+                            'label' => __( 'Bank code', 'invoicing' ),
228
+                        ),
229
+                    ),
230
+                    'US' => array(
231
+                        'sortcode' => array(
232
+                            'label' => __( 'Routing number', 'invoicing' ),
233
+                        ),
234
+                    ),
235
+                    'ZA' => array(
236
+                        'sortcode' => array(
237
+                            'label' => __( 'Branch code', 'invoicing' ),
238
+                        ),
239
+                    ),
240
+                )
241
+            );
242
+
243
+        }
244
+
245
+        return $this->locale;
246
+
247
+    }
248
+
249
+    /**
250
+     * Filters the gateway settings.
251
+     *
252
+     * @param array $admin_settings
253
+     */
254
+    public function admin_settings( $admin_settings ) {
255 255
 
256 256
         $admin_settings['bank_transfer_desc']['std']    = __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' );
257
-		$admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' );
257
+        $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' );
258 258
 
259
-		$locale  = $this->get_country_locale();
259
+        $locale  = $this->get_country_locale();
260 260
 
261
-		// Get sortcode label in the $locale array and use appropriate one.
262
-		$country  = wpinv_default_billing_country();
263
-		$sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
261
+        // Get sortcode label in the $locale array and use appropriate one.
262
+        $country  = wpinv_default_billing_country();
263
+        $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
264 264
 
265
-		$admin_settings['bank_transfer_ac_name'] = array(
265
+        $admin_settings['bank_transfer_ac_name'] = array(
266 266
             'type' => 'text',
267 267
             'id'   => 'bank_transfer_ac_name',
268 268
             'name' => __( 'Account Name', 'invoicing' ),
269
-		);
269
+        );
270 270
 
271
-		$admin_settings['bank_transfer_ac_no'] = array(
271
+        $admin_settings['bank_transfer_ac_no'] = array(
272 272
             'type' => 'text',
273 273
             'id'   => 'bank_transfer_ac_no',
274 274
             'name' => __( 'Account Number', 'invoicing' ),
275
-		);
275
+        );
276 276
 
277
-		$admin_settings['bank_transfer_bank_name'] = array(
277
+        $admin_settings['bank_transfer_bank_name'] = array(
278 278
             'type' => 'text',
279 279
             'id'   => 'bank_transfer_bank_name',
280 280
             'name' => __( 'Bank Name', 'invoicing' ),
281
-		);
281
+        );
282 282
 
283
-		$admin_settings['bank_transfer_ifsc'] = array(
283
+        $admin_settings['bank_transfer_ifsc'] = array(
284 284
             'type' => 'text',
285 285
             'id'   => 'bank_transfer_ifsc',
286 286
             'name' => __( 'IFSC Code', 'invoicing' ),
287
-		);
287
+        );
288 288
 
289
-		$admin_settings['bank_transfer_iban'] = array(
289
+        $admin_settings['bank_transfer_iban'] = array(
290 290
             'type' => 'text',
291 291
             'id'   => 'bank_transfer_iban',
292 292
             'name' => __( 'IBAN', 'invoicing' ),
293
-		);
293
+        );
294 294
 
295
-		$admin_settings['bank_transfer_bic'] = array(
295
+        $admin_settings['bank_transfer_bic'] = array(
296 296
             'type' => 'text',
297 297
             'id'   => 'bank_transfer_bic',
298 298
             'name' => __( 'BIC/Swift Code', 'invoicing' ),
299
-		);
299
+        );
300 300
 
301
-		$admin_settings['bank_transfer_sort_code'] = array(
302
-			'type' => 'text',
303
-			'id'   => 'bank_transfer_sort_code',
304
-			'name' => $sortcode,
305
-		);
301
+        $admin_settings['bank_transfer_sort_code'] = array(
302
+            'type' => 'text',
303
+            'id'   => 'bank_transfer_sort_code',
304
+            'name' => $sortcode,
305
+        );
306 306
 
307
-		$admin_settings['bank_transfer_info'] = array(
307
+        $admin_settings['bank_transfer_info'] = array(
308 308
             'id'   => 'bank_transfer_info',
309 309
             'name' => __( 'Instructions', 'invoicing' ),
310 310
             'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ),
@@ -314,17 +314,17 @@  discard block
 block discarded – undo
314 314
             'rows' => 5,
315 315
         );
316 316
 
317
-		return $admin_settings;
318
-	}
317
+        return $admin_settings;
318
+    }
319 319
 
320
-	/**
321
-	 * Processes invoice addons.
322
-	 *
323
-	 * @param WPInv_Invoice $invoice
324
-	 * @param GetPaid_Form_Item[] $items
325
-	 * @return WPInv_Invoice
326
-	 */
327
-	public function process_addons( $invoice, $items ) {
320
+    /**
321
+     * Processes invoice addons.
322
+     *
323
+     * @param WPInv_Invoice $invoice
324
+     * @param GetPaid_Form_Item[] $items
325
+     * @return WPInv_Invoice
326
+     */
327
+    public function process_addons( $invoice, $items ) {
328 328
 
329 329
         foreach ( $items as $item ) {
330 330
             $invoice->add_item( $item );
@@ -332,66 +332,66 @@  discard block
 block discarded – undo
332 332
 
333 333
         $invoice->recalculate_total();
334 334
         $invoice->save();
335
-	}
335
+    }
336 336
 
337
-	/**
338
-	 * (Maybe) renews a bank transfer subscription profile.
339
-	 *
340
-	 *
337
+    /**
338
+     * (Maybe) renews a bank transfer subscription profile.
339
+     *
340
+     *
341 341
      * @param WPInv_Subscription $subscription
342
-	 */
343
-	public function maybe_renew_subscription( $subscription ) {
342
+     */
343
+    public function maybe_renew_subscription( $subscription ) {
344 344
 
345 345
         // Ensure its our subscription && it's active.
346 346
         if ( $this->id === $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) {
347
-			$subscription->create_payment();
347
+            $subscription->create_payment();
348 348
         }
349 349
 
350 350
     }
351 351
 
352
-	/**
353
-	 * Process a bank transfer payment.
354
-	 *
355
-	 *
352
+    /**
353
+     * Process a bank transfer payment.
354
+     *
355
+     *
356 356
      * @param WPInv_Invoice $invoice
357
-	 */
358
-	public function invoice_paid( $invoice ) {
359
-
360
-		// Abort if not paid by bank transfer.
361
-		if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) {
362
-			return;
363
-		}
364
-
365
-		// Is it a parent payment?
366
-		if ( 0 == $invoice->get_parent_id() ) {
367
-
368
-			// (Maybe) activate subscriptions.
369
-			$subscriptions = getpaid_get_invoice_subscriptions( $invoice );
370
-
371
-			if ( ! empty( $subscriptions ) ) {
372
-				$subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions );
373
-
374
-				foreach ( $subscriptions as $subscription ) {
375
-					if ( $subscription->exists() ) {
376
-						$duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
377
-						$expiry   = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) );
378
-
379
-						$subscription->set_next_renewal_date( $expiry );
380
-						$subscription->set_date_created( current_time( 'mysql' ) );
381
-						$subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() );
382
-						$subscription->activate();
383
-					}
384
-				}
357
+     */
358
+    public function invoice_paid( $invoice ) {
359
+
360
+        // Abort if not paid by bank transfer.
361
+        if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) {
362
+            return;
363
+        }
364
+
365
+        // Is it a parent payment?
366
+        if ( 0 == $invoice->get_parent_id() ) {
367
+
368
+            // (Maybe) activate subscriptions.
369
+            $subscriptions = getpaid_get_invoice_subscriptions( $invoice );
370
+
371
+            if ( ! empty( $subscriptions ) ) {
372
+                $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions );
373
+
374
+                foreach ( $subscriptions as $subscription ) {
375
+                    if ( $subscription->exists() ) {
376
+                        $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
377
+                        $expiry   = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) );
378
+
379
+                        $subscription->set_next_renewal_date( $expiry );
380
+                        $subscription->set_date_created( current_time( 'mysql' ) );
381
+                        $subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() );
382
+                        $subscription->activate();
383
+                    }
384
+                }
385 385
 }
386 386
 } else {
387 387
 
388
-			$subscription = getpaid_get_subscription( $invoice->get_subscription_id() );
388
+            $subscription = getpaid_get_subscription( $invoice->get_subscription_id() );
389 389
 
390
-			// Renew the subscription.
391
-			if ( $subscription && $subscription->exists() ) {
392
-				$subscription->add_payment( array(), $invoice );
393
-				$subscription->renew();
394
-					}
390
+            // Renew the subscription.
391
+            if ( $subscription && $subscription->exists() ) {
392
+                $subscription->add_payment( array(), $invoice );
393
+                $subscription->renew();
394
+                    }
395 395
 }
396 396
 
397 397
     }
Please login to merge, or discard this patch.
Spacing   +89 added lines, -89 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
  * Bank transfer Payment Gateway class.
@@ -24,7 +24,7 @@  discard block
 block discarded – undo
24 24
 	 *
25 25
 	 * @var array
26 26
 	 */
27
-	protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups' );
27
+	protected $supports = array('subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups');
28 28
 
29 29
     /**
30 30
 	 * Payment method order.
@@ -39,17 +39,17 @@  discard block
 block discarded – undo
39 39
 	public function __construct() {
40 40
         parent::__construct();
41 41
 
42
-        $this->title                = __( 'Direct bank transfer', 'invoicing' );
43
-        $this->method_title         = __( 'Bank transfer', 'invoicing' );
44
-        $this->checkout_button_text = __( 'Proceed', 'invoicing' );
45
-        $this->instructions         = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) );
42
+        $this->title                = __('Direct bank transfer', 'invoicing');
43
+        $this->method_title         = __('Bank transfer', 'invoicing');
44
+        $this->checkout_button_text = __('Proceed', 'invoicing');
45
+        $this->instructions         = apply_filters('wpinv_bank_instructions', $this->get_option('info'));
46 46
 
47
-		add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) );
48
-		add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 );
49
-		add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 );
50
-		add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 );
51
-		add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) );
52
-		add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 );
47
+		add_action('wpinv_receipt_end', array($this, 'thankyou_page'));
48
+		add_action('getpaid_invoice_line_items', array($this, 'thankyou_page'), 40);
49
+		add_action('wpinv_pdf_content_billing', array($this, 'thankyou_page'), 11);
50
+		add_action('wpinv_email_invoice_details', array($this, 'email_instructions'), 10, 3);
51
+		add_action('getpaid_should_renew_subscription', array($this, 'maybe_renew_subscription'));
52
+		add_action('getpaid_invoice_status_publish', array($this, 'invoice_paid'), 20);
53 53
 
54 54
     }
55 55
 
@@ -61,23 +61,23 @@  discard block
 block discarded – undo
61 61
 	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
62 62
 	 * @return array
63 63
 	 */
64
-	public function process_payment( $invoice, $submission_data, $submission ) {
64
+	public function process_payment($invoice, $submission_data, $submission) {
65 65
 
66 66
         // Add a transaction id.
67
-        $invoice->set_transaction_id( $invoice->generate_key( 'bt_' ) );
67
+        $invoice->set_transaction_id($invoice->generate_key('bt_'));
68 68
 
69 69
         // Set it as pending payment.
70
-        if ( ! $invoice->needs_payment() ) {
70
+        if (!$invoice->needs_payment()) {
71 71
             $invoice->mark_paid();
72
-        } elseif ( ! $invoice->is_paid() ) {
73
-            $invoice->set_status( 'wpi-onhold' );
72
+        } elseif (!$invoice->is_paid()) {
73
+            $invoice->set_status('wpi-onhold');
74 74
         }
75 75
 
76 76
         // Save it.
77 77
         $invoice->save();
78 78
 
79 79
         // Send to the success page.
80
-        wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) );
80
+        wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key()));
81 81
 
82 82
     }
83 83
 
@@ -86,17 +86,17 @@  discard block
 block discarded – undo
86 86
 	 *
87 87
 	 * @param WPInv_Invoice $invoice Invoice.
88 88
 	 */
89
-	public function thankyou_page( $invoice ) {
89
+	public function thankyou_page($invoice) {
90 90
 
91
-        if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
91
+        if ('bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment()) {
92 92
 
93 93
 			echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL;
94 94
 
95
-            if ( ! empty( $this->instructions ) ) {
96
-                echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) );
95
+            if (!empty($this->instructions)) {
96
+                echo wp_kses_post(wpautop(wptexturize($this->instructions)));
97 97
 			}
98 98
 
99
-			$this->bank_details( $invoice );
99
+			$this->bank_details($invoice);
100 100
 
101 101
 			echo '</div>';
102 102
 
@@ -111,17 +111,17 @@  discard block
 block discarded – undo
111 111
 	 * @param string     $email_type Email format: plain text or HTML.
112 112
 	 * @param bool     $sent_to_admin Sent to admin.
113 113
 	 */
114
-	public function email_instructions( $invoice, $email_type, $sent_to_admin ) {
114
+	public function email_instructions($invoice, $email_type, $sent_to_admin) {
115 115
 
116
-		if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
116
+		if (!$sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment()) {
117 117
 
118 118
 			echo '<div class="wpi-email-row getpaid-bank-transfer-details">';
119 119
 
120
-			if ( $this->instructions ) {
121
-				echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL );
120
+			if ($this->instructions) {
121
+				echo wp_kses_post(wpautop(wptexturize($this->instructions)) . PHP_EOL);
122 122
             }
123 123
 
124
-			$this->bank_details( $invoice );
124
+			$this->bank_details($invoice);
125 125
 
126 126
 			echo '</div>';
127 127
 
@@ -134,50 +134,50 @@  discard block
 block discarded – undo
134 134
 	 *
135 135
 	 * @param WPInv_Invoice $invoice Invoice.
136 136
 	 */
137
-	protected function bank_details( $invoice ) {
137
+	protected function bank_details($invoice) {
138 138
 
139 139
 		// Get the invoice country and country $locale.
140 140
 		$country = $invoice->get_country();
141 141
 		$locale  = $this->get_country_locale();
142 142
 
143 143
 		// Get sortcode label in the $locale array and use appropriate one.
144
-		$sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
144
+		$sortcode = isset($locale[$country]['sortcode']['label']) ? $locale[$country]['sortcode']['label'] : __('Sort code', 'invoicing');
145 145
 
146 146
         $bank_fields = array(
147
-            'ac_name'   => __( 'Account Name', 'invoicing' ),
148
-            'ac_no'     => __( 'Account Number', 'invoicing' ),
149
-            'bank_name' => __( 'Bank Name', 'invoicing' ),
150
-            'ifsc'      => __( 'IFSC code', 'invoicing' ),
151
-            'iban'      => __( 'IBAN', 'invoicing' ),
152
-            'bic'       => __( 'BIC/Swift code', 'invoicing' ),
147
+            'ac_name'   => __('Account Name', 'invoicing'),
148
+            'ac_no'     => __('Account Number', 'invoicing'),
149
+            'bank_name' => __('Bank Name', 'invoicing'),
150
+            'ifsc'      => __('IFSC code', 'invoicing'),
151
+            'iban'      => __('IBAN', 'invoicing'),
152
+            'bic'       => __('BIC/Swift code', 'invoicing'),
153 153
             'sort_code' => $sortcode,
154 154
         );
155 155
 
156 156
         $bank_info = array();
157 157
 
158
-        foreach ( $bank_fields as $field => $label ) {
159
-            $value = $this->get_option( $field );
158
+        foreach ($bank_fields as $field => $label) {
159
+            $value = $this->get_option($field);
160 160
 
161
-            if ( ! empty( $value ) ) {
162
-                $bank_info[ $field ] = array(
161
+            if (!empty($value)) {
162
+                $bank_info[$field] = array(
163 163
 					'label' => $label,
164 164
 					'value' => $value,
165 165
 				);
166 166
             }
167 167
 }
168 168
 
169
-        $bank_info = apply_filters( 'wpinv_bank_info', $bank_info );
169
+        $bank_info = apply_filters('wpinv_bank_info', $bank_info);
170 170
 
171
-        if ( empty( $bank_info ) ) {
171
+        if (empty($bank_info)) {
172 172
             return;
173 173
         }
174 174
 
175
-		echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) ) . '</h3>' . PHP_EOL;
175
+		echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html(apply_filters('wpinv_receipt_bank_details_title', __('Bank Details', 'invoicing'))) . '</h3>' . PHP_EOL;
176 176
 
177 177
 		echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL;
178 178
 
179
-		foreach ( $bank_info as $key => $data ) {
180
-			echo "<tr class='getpaid-bank-transfer-" . esc_attr( $key ) . "'><th class='font-weight-bold'>" . wp_kses_post( $data['label'] ) . "</th><td class='w-75'>" . wp_kses_post( wptexturize( $data['value'] ) ) . "</td></tr>" . PHP_EOL;
179
+		foreach ($bank_info as $key => $data) {
180
+			echo "<tr class='getpaid-bank-transfer-" . esc_attr($key) . "'><th class='font-weight-bold'>" . wp_kses_post($data['label']) . "</th><td class='w-75'>" . wp_kses_post(wptexturize($data['value'])) . "</td></tr>" . PHP_EOL;
181 181
 		}
182 182
 
183 183
 		echo '</table>';
@@ -191,7 +191,7 @@  discard block
 block discarded – undo
191 191
 	 */
192 192
 	public function get_country_locale() {
193 193
 
194
-		if ( empty( $this->locale ) ) {
194
+		if (empty($this->locale)) {
195 195
 
196 196
 			// Locale information to be used - only those that are not 'Sort Code'.
197 197
 			$this->locale = apply_filters(
@@ -199,42 +199,42 @@  discard block
 block discarded – undo
199 199
 				array(
200 200
 					'AU' => array(
201 201
 						'sortcode' => array(
202
-							'label' => __( 'BSB', 'invoicing' ),
202
+							'label' => __('BSB', 'invoicing'),
203 203
 						),
204 204
 					),
205 205
 					'CA' => array(
206 206
 						'sortcode' => array(
207
-							'label' => __( 'Bank transit number', 'invoicing' ),
207
+							'label' => __('Bank transit number', 'invoicing'),
208 208
 						),
209 209
 					),
210 210
 					'IN' => array(
211 211
 						'sortcode' => array(
212
-							'label' => __( 'IFSC', 'invoicing' ),
212
+							'label' => __('IFSC', 'invoicing'),
213 213
 						),
214 214
 					),
215 215
 					'IT' => array(
216 216
 						'sortcode' => array(
217
-							'label' => __( 'Branch sort', 'invoicing' ),
217
+							'label' => __('Branch sort', 'invoicing'),
218 218
 						),
219 219
 					),
220 220
 					'NZ' => array(
221 221
 						'sortcode' => array(
222
-							'label' => __( 'Bank code', 'invoicing' ),
222
+							'label' => __('Bank code', 'invoicing'),
223 223
 						),
224 224
 					),
225 225
 					'SE' => array(
226 226
 						'sortcode' => array(
227
-							'label' => __( 'Bank code', 'invoicing' ),
227
+							'label' => __('Bank code', 'invoicing'),
228 228
 						),
229 229
 					),
230 230
 					'US' => array(
231 231
 						'sortcode' => array(
232
-							'label' => __( 'Routing number', 'invoicing' ),
232
+							'label' => __('Routing number', 'invoicing'),
233 233
 						),
234 234
 					),
235 235
 					'ZA' => array(
236 236
 						'sortcode' => array(
237
-							'label' => __( 'Branch code', 'invoicing' ),
237
+							'label' => __('Branch code', 'invoicing'),
238 238
 						),
239 239
 					),
240 240
 				)
@@ -251,51 +251,51 @@  discard block
 block discarded – undo
251 251
 	 *
252 252
 	 * @param array $admin_settings
253 253
 	 */
254
-	public function admin_settings( $admin_settings ) {
254
+	public function admin_settings($admin_settings) {
255 255
 
256
-        $admin_settings['bank_transfer_desc']['std']    = __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' );
257
-		$admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' );
256
+        $admin_settings['bank_transfer_desc']['std'] = __("Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing');
257
+		$admin_settings['bank_transfer_active']['desc'] = __('Enable bank transfer', 'invoicing');
258 258
 
259
-		$locale  = $this->get_country_locale();
259
+		$locale = $this->get_country_locale();
260 260
 
261 261
 		// Get sortcode label in the $locale array and use appropriate one.
262 262
 		$country  = wpinv_default_billing_country();
263
-		$sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
263
+		$sortcode = isset($locale[$country]['sortcode']['label']) ? $locale[$country]['sortcode']['label'] : __('Sort code', 'invoicing');
264 264
 
265 265
 		$admin_settings['bank_transfer_ac_name'] = array(
266 266
             'type' => 'text',
267 267
             'id'   => 'bank_transfer_ac_name',
268
-            'name' => __( 'Account Name', 'invoicing' ),
268
+            'name' => __('Account Name', 'invoicing'),
269 269
 		);
270 270
 
271 271
 		$admin_settings['bank_transfer_ac_no'] = array(
272 272
             'type' => 'text',
273 273
             'id'   => 'bank_transfer_ac_no',
274
-            'name' => __( 'Account Number', 'invoicing' ),
274
+            'name' => __('Account Number', 'invoicing'),
275 275
 		);
276 276
 
277 277
 		$admin_settings['bank_transfer_bank_name'] = array(
278 278
             'type' => 'text',
279 279
             'id'   => 'bank_transfer_bank_name',
280
-            'name' => __( 'Bank Name', 'invoicing' ),
280
+            'name' => __('Bank Name', 'invoicing'),
281 281
 		);
282 282
 
283 283
 		$admin_settings['bank_transfer_ifsc'] = array(
284 284
             'type' => 'text',
285 285
             'id'   => 'bank_transfer_ifsc',
286
-            'name' => __( 'IFSC Code', 'invoicing' ),
286
+            'name' => __('IFSC Code', 'invoicing'),
287 287
 		);
288 288
 
289 289
 		$admin_settings['bank_transfer_iban'] = array(
290 290
             'type' => 'text',
291 291
             'id'   => 'bank_transfer_iban',
292
-            'name' => __( 'IBAN', 'invoicing' ),
292
+            'name' => __('IBAN', 'invoicing'),
293 293
 		);
294 294
 
295 295
 		$admin_settings['bank_transfer_bic'] = array(
296 296
             'type' => 'text',
297 297
             'id'   => 'bank_transfer_bic',
298
-            'name' => __( 'BIC/Swift Code', 'invoicing' ),
298
+            'name' => __('BIC/Swift Code', 'invoicing'),
299 299
 		);
300 300
 
301 301
 		$admin_settings['bank_transfer_sort_code'] = array(
@@ -306,10 +306,10 @@  discard block
 block discarded – undo
306 306
 
307 307
 		$admin_settings['bank_transfer_info'] = array(
308 308
             'id'   => 'bank_transfer_info',
309
-            'name' => __( 'Instructions', 'invoicing' ),
310
-            'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ),
309
+            'name' => __('Instructions', 'invoicing'),
310
+            'desc' => __('Instructions that will be added to the thank you page and emails.', 'invoicing'),
311 311
             'type' => 'textarea',
312
-            'std'  => __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' ),
312
+            'std'  => __("Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing'),
313 313
             'cols' => 50,
314 314
             'rows' => 5,
315 315
         );
@@ -324,10 +324,10 @@  discard block
 block discarded – undo
324 324
 	 * @param GetPaid_Form_Item[] $items
325 325
 	 * @return WPInv_Invoice
326 326
 	 */
327
-	public function process_addons( $invoice, $items ) {
327
+	public function process_addons($invoice, $items) {
328 328
 
329
-        foreach ( $items as $item ) {
330
-            $invoice->add_item( $item );
329
+        foreach ($items as $item) {
330
+            $invoice->add_item($item);
331 331
         }
332 332
 
333 333
         $invoice->recalculate_total();
@@ -340,10 +340,10 @@  discard block
 block discarded – undo
340 340
 	 *
341 341
      * @param WPInv_Subscription $subscription
342 342
 	 */
343
-	public function maybe_renew_subscription( $subscription ) {
343
+	public function maybe_renew_subscription($subscription) {
344 344
 
345 345
         // Ensure its our subscription && it's active.
346
-        if ( $this->id === $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) {
346
+        if ($this->id === $subscription->get_gateway() && $subscription->has_status('active trialling')) {
347 347
 			$subscription->create_payment();
348 348
         }
349 349
 
@@ -355,41 +355,41 @@  discard block
 block discarded – undo
355 355
 	 *
356 356
      * @param WPInv_Invoice $invoice
357 357
 	 */
358
-	public function invoice_paid( $invoice ) {
358
+	public function invoice_paid($invoice) {
359 359
 
360 360
 		// Abort if not paid by bank transfer.
361
-		if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) {
361
+		if ($this->id !== $invoice->get_gateway() || !$invoice->is_recurring()) {
362 362
 			return;
363 363
 		}
364 364
 
365 365
 		// Is it a parent payment?
366
-		if ( 0 == $invoice->get_parent_id() ) {
366
+		if (0 == $invoice->get_parent_id()) {
367 367
 
368 368
 			// (Maybe) activate subscriptions.
369
-			$subscriptions = getpaid_get_invoice_subscriptions( $invoice );
369
+			$subscriptions = getpaid_get_invoice_subscriptions($invoice);
370 370
 
371
-			if ( ! empty( $subscriptions ) ) {
372
-				$subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions );
371
+			if (!empty($subscriptions)) {
372
+				$subscriptions = is_array($subscriptions) ? $subscriptions : array($subscriptions);
373 373
 
374
-				foreach ( $subscriptions as $subscription ) {
375
-					if ( $subscription->exists() ) {
376
-						$duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
377
-						$expiry   = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) );
374
+				foreach ($subscriptions as $subscription) {
375
+					if ($subscription->exists()) {
376
+						$duration = strtotime($subscription->get_expiration()) - strtotime($subscription->get_date_created());
377
+						$expiry   = date('Y-m-d H:i:s', (current_time('timestamp') + $duration));
378 378
 
379
-						$subscription->set_next_renewal_date( $expiry );
380
-						$subscription->set_date_created( current_time( 'mysql' ) );
381
-						$subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() );
379
+						$subscription->set_next_renewal_date($expiry);
380
+						$subscription->set_date_created(current_time('mysql'));
381
+						$subscription->set_profile_id('bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id());
382 382
 						$subscription->activate();
383 383
 					}
384 384
 				}
385 385
 }
386 386
 } else {
387 387
 
388
-			$subscription = getpaid_get_subscription( $invoice->get_subscription_id() );
388
+			$subscription = getpaid_get_subscription($invoice->get_subscription_id());
389 389
 
390 390
 			// Renew the subscription.
391
-			if ( $subscription && $subscription->exists() ) {
392
-				$subscription->add_payment( array(), $invoice );
391
+			if ($subscription && $subscription->exists()) {
392
+				$subscription->add_payment(array(), $invoice);
393 393
 				$subscription->renew();
394 394
 					}
395 395
 }
Please login to merge, or discard this patch.
includes/gateways/class-getpaid-manual-gateway.php 2 patches
Indentation   +37 added lines, -37 removed lines patch added patch discarded remove patch
@@ -13,30 +13,30 @@  discard block
 block discarded – undo
13 13
 class GetPaid_Manual_Gateway extends GetPaid_Payment_Gateway {
14 14
 
15 15
     /**
16
-	 * Payment method id.
17
-	 *
18
-	 * @var string
19
-	 */
16
+     * Payment method id.
17
+     *
18
+     * @var string
19
+     */
20 20
     public $id = 'manual';
21 21
 
22 22
     /**
23
-	 * An array of features that this gateway supports.
24
-	 *
25
-	 * @var array
26
-	 */
23
+     * An array of features that this gateway supports.
24
+     *
25
+     * @var array
26
+     */
27 27
     protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups' );
28 28
 
29 29
     /**
30
-	 * Payment method order.
31
-	 *
32
-	 * @var int
33
-	 */
34
-	public $order = 11;
30
+     * Payment method order.
31
+     *
32
+     * @var int
33
+     */
34
+    public $order = 11;
35 35
 
36 36
     /**
37
-	 * Class constructor.
38
-	 */
39
-	public function __construct() {
37
+     * Class constructor.
38
+     */
39
+    public function __construct() {
40 40
         parent::__construct();
41 41
 
42 42
         $this->title        = __( 'Test Gateway', 'invoicing' );
@@ -46,15 +46,15 @@  discard block
 block discarded – undo
46 46
     }
47 47
 
48 48
     /**
49
-	 * Process Payment.
50
-	 *
51
-	 *
52
-	 * @param WPInv_Invoice $invoice Invoice.
53
-	 * @param array $submission_data Posted checkout fields.
54
-	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
55
-	 * @return array
56
-	 */
57
-	public function process_payment( $invoice, $submission_data, $submission ) {
49
+     * Process Payment.
50
+     *
51
+     *
52
+     * @param WPInv_Invoice $invoice Invoice.
53
+     * @param array $submission_data Posted checkout fields.
54
+     * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
55
+     * @return array
56
+     */
57
+    public function process_payment( $invoice, $submission_data, $submission ) {
58 58
 
59 59
         // Mark it as paid.
60 60
         $invoice->mark_paid();
@@ -84,12 +84,12 @@  discard block
 block discarded – undo
84 84
     }
85 85
 
86 86
     /**
87
-	 * (Maybe) renews a manual subscription profile.
88
-	 *
89
-	 *
87
+     * (Maybe) renews a manual subscription profile.
88
+     *
89
+     *
90 90
      * @param WPInv_Subscription $subscription
91
-	 */
92
-	public function maybe_renew_subscription( $subscription ) {
91
+     */
92
+    public function maybe_renew_subscription( $subscription ) {
93 93
 
94 94
         // Ensure its our subscription && it's active.
95 95
         if ( $this->id === $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) {
@@ -109,13 +109,13 @@  discard block
 block discarded – undo
109 109
     }
110 110
 
111 111
     /**
112
-	 * Processes invoice addons.
113
-	 *
114
-	 * @param WPInv_Invoice $invoice
115
-	 * @param GetPaid_Form_Item[] $items
116
-	 * @return WPInv_Invoice
117
-	 */
118
-	public function process_addons( $invoice, $items ) {
112
+     * Processes invoice addons.
113
+     *
114
+     * @param WPInv_Invoice $invoice
115
+     * @param GetPaid_Form_Item[] $items
116
+     * @return WPInv_Invoice
117
+     */
118
+    public function process_addons( $invoice, $items ) {
119 119
 
120 120
         foreach ( $items as $item ) {
121 121
             $invoice->add_item( $item );
Please login to merge, or discard this patch.
Spacing   +22 added lines, -22 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
  * Manual Payment Gateway class.
@@ -24,7 +24,7 @@  discard block
 block discarded – undo
24 24
 	 *
25 25
 	 * @var array
26 26
 	 */
27
-    protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups' );
27
+    protected $supports = array('subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups');
28 28
 
29 29
     /**
30 30
 	 * Payment method order.
@@ -39,10 +39,10 @@  discard block
 block discarded – undo
39 39
 	public function __construct() {
40 40
         parent::__construct();
41 41
 
42
-        $this->title        = __( 'Test Gateway', 'invoicing' );
43
-        $this->method_title = __( 'Test Gateway', 'invoicing' );
42
+        $this->title        = __('Test Gateway', 'invoicing');
43
+        $this->method_title = __('Test Gateway', 'invoicing');
44 44
 
45
-        add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) );
45
+        add_action('getpaid_should_renew_subscription', array($this, 'maybe_renew_subscription'));
46 46
     }
47 47
 
48 48
     /**
@@ -54,32 +54,32 @@  discard block
 block discarded – undo
54 54
 	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
55 55
 	 * @return array
56 56
 	 */
57
-	public function process_payment( $invoice, $submission_data, $submission ) {
57
+	public function process_payment($invoice, $submission_data, $submission) {
58 58
 
59 59
         // Mark it as paid.
60 60
         $invoice->mark_paid();
61 61
 
62 62
         // (Maybe) activate subscriptions.
63
-        $subscriptions = getpaid_get_invoice_subscriptions( $invoice );
63
+        $subscriptions = getpaid_get_invoice_subscriptions($invoice);
64 64
 
65
-        if ( ! empty( $subscriptions ) ) {
66
-            $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions );
65
+        if (!empty($subscriptions)) {
66
+            $subscriptions = is_array($subscriptions) ? $subscriptions : array($subscriptions);
67 67
 
68
-            foreach ( $subscriptions as $subscription ) {
69
-                if ( $subscription->exists() ) {
70
-                    $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
71
-                    $expiry   = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) );
68
+            foreach ($subscriptions as $subscription) {
69
+                if ($subscription->exists()) {
70
+                    $duration = strtotime($subscription->get_expiration()) - strtotime($subscription->get_date_created());
71
+                    $expiry   = date('Y-m-d H:i:s', (current_time('timestamp') + $duration));
72 72
 
73
-                    $subscription->set_next_renewal_date( $expiry );
74
-                    $subscription->set_date_created( current_time( 'mysql' ) );
75
-                    $subscription->set_profile_id( $invoice->generate_key( 'manual_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ) );
73
+                    $subscription->set_next_renewal_date($expiry);
74
+                    $subscription->set_date_created(current_time('mysql'));
75
+                    $subscription->set_profile_id($invoice->generate_key('manual_sub_' . $invoice->get_id() . '_' . $subscription->get_id()));
76 76
                     $subscription->activate();
77 77
                 }
78 78
             }
79 79
 }
80 80
 
81 81
         // Send to the success page.
82
-        wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) );
82
+        wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key()));
83 83
 
84 84
     }
85 85
 
@@ -89,10 +89,10 @@  discard block
 block discarded – undo
89 89
 	 *
90 90
      * @param WPInv_Subscription $subscription
91 91
 	 */
92
-	public function maybe_renew_subscription( $subscription ) {
92
+	public function maybe_renew_subscription($subscription) {
93 93
 
94 94
         // Ensure its our subscription && it's active.
95
-        if ( $this->id === $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) {
95
+        if ($this->id === $subscription->get_gateway() && $subscription->has_status('active trialling')) {
96 96
 
97 97
             // Renew the subscription.
98 98
             $subscription->add_payment(
@@ -115,10 +115,10 @@  discard block
 block discarded – undo
115 115
 	 * @param GetPaid_Form_Item[] $items
116 116
 	 * @return WPInv_Invoice
117 117
 	 */
118
-	public function process_addons( $invoice, $items ) {
118
+	public function process_addons($invoice, $items) {
119 119
 
120
-        foreach ( $items as $item ) {
121
-            $invoice->add_item( $item );
120
+        foreach ($items as $item) {
121
+            $invoice->add_item($item);
122 122
         }
123 123
 
124 124
         $invoice->recalculate_total();
Please login to merge, or discard this patch.
includes/wpinv-subscription.php 2 patches
Indentation   +1023 added lines, -1023 removed lines patch added patch discarded remove patch
@@ -15,125 +15,125 @@  discard block
 block discarded – undo
15 15
  */
16 16
 class WPInv_Subscription extends GetPaid_Data {
17 17
 
18
-	/**
19
-	 * Which data store to load.
20
-	 *
21
-	 * @var string
22
-	 */
23
-	protected $data_store_name = 'subscription';
24
-
25
-	/**
26
-	 * This is the name of this object type.
27
-	 *
28
-	 * @var string
29
-	 */
30
-	protected $object_type = 'subscription';
31
-
32
-	/**
33
-	 * Item Data array. This is the core item data exposed in APIs.
34
-	 *
35
-	 * @since 1.0.19
36
-	 * @var array
37
-	 */
38
-	protected $data = array(
39
-		'customer_id'       => 0,
40
-		'frequency'         => 1,
41
-		'period'            => 'D',
42
-		'initial_amount'    => null,
43
-		'recurring_amount'  => null,
44
-		'bill_times'        => 0,
45
-		'transaction_id'    => '',
46
-		'parent_payment_id' => null,
47
-		'product_id'        => 0,
48
-		'created'           => '0000-00-00 00:00:00',
49
-		'expiration'        => '0000-00-00 00:00:00',
50
-		'trial_period'      => '',
51
-		'status'            => 'pending',
52
-		'profile_id'        => '',
53
-		'gateway'           => '',
54
-		'customer'          => '',
55
-	);
56
-
57
-	/**
58
-	 * Stores the status transition information.
59
-	 *
60
-	 * @since 1.0.19
61
-	 * @var bool
62
-	 */
63
-	protected $status_transition = false;
64
-
65
-	/**
66
-	 * Get the subscription if ID is passed, otherwise the subscription is new and empty.
67
-	 *
68
-	 * @param  int|string|object|WPInv_Subscription $subscription Subscription id, profile_id, or object to read.
69
-	 * @param  bool $deprecated
70
-	 */
71
-	function __construct( $subscription = 0, $deprecated = false ) {
72
-
73
-		parent::__construct( $subscription );
74
-
75
-		if ( ! $deprecated && ! empty( $subscription ) && is_numeric( $subscription ) ) {
76
-			$this->set_id( $subscription );
77
-		} elseif ( $subscription instanceof self ) {
78
-			$this->set_id( $subscription->get_id() );
79
-		} elseif ( $deprecated && $subscription_id = self::get_subscription_id_by_field( $subscription, 'profile_id' ) ) {
80
-			$this->set_id( $subscription_id );
81
-		} elseif ( ! empty( $subscription->id ) ) {
82
-			$this->set_id( $subscription->id );
83
-		} else {
84
-			$this->set_object_read( true );
85
-		}
86
-
87
-		// Load the datastore.
88
-		$this->data_store = GetPaid_Data_Store::load( $this->data_store_name );
89
-
90
-		if ( $this->get_id() > 0 ) {
91
-			$this->data_store->read( $this );
92
-		}
93
-
94
-	}
95
-
96
-	/**
97
-	 * Given an invoice id, profile id, transaction id, it returns the subscription's id.
98
-	 *
99
-	 *
100
-	 * @static
101
-	 * @param string $value
102
-	 * @param string $field Either invoice_id, transaction_id or profile_id.
103
-	 * @since 1.0.19
104
-	 * @return int
105
-	 */
106
-	public static function get_subscription_id_by_field( $value, $field = 'profile_id' ) {
18
+    /**
19
+     * Which data store to load.
20
+     *
21
+     * @var string
22
+     */
23
+    protected $data_store_name = 'subscription';
24
+
25
+    /**
26
+     * This is the name of this object type.
27
+     *
28
+     * @var string
29
+     */
30
+    protected $object_type = 'subscription';
31
+
32
+    /**
33
+     * Item Data array. This is the core item data exposed in APIs.
34
+     *
35
+     * @since 1.0.19
36
+     * @var array
37
+     */
38
+    protected $data = array(
39
+        'customer_id'       => 0,
40
+        'frequency'         => 1,
41
+        'period'            => 'D',
42
+        'initial_amount'    => null,
43
+        'recurring_amount'  => null,
44
+        'bill_times'        => 0,
45
+        'transaction_id'    => '',
46
+        'parent_payment_id' => null,
47
+        'product_id'        => 0,
48
+        'created'           => '0000-00-00 00:00:00',
49
+        'expiration'        => '0000-00-00 00:00:00',
50
+        'trial_period'      => '',
51
+        'status'            => 'pending',
52
+        'profile_id'        => '',
53
+        'gateway'           => '',
54
+        'customer'          => '',
55
+    );
56
+
57
+    /**
58
+     * Stores the status transition information.
59
+     *
60
+     * @since 1.0.19
61
+     * @var bool
62
+     */
63
+    protected $status_transition = false;
64
+
65
+    /**
66
+     * Get the subscription if ID is passed, otherwise the subscription is new and empty.
67
+     *
68
+     * @param  int|string|object|WPInv_Subscription $subscription Subscription id, profile_id, or object to read.
69
+     * @param  bool $deprecated
70
+     */
71
+    function __construct( $subscription = 0, $deprecated = false ) {
72
+
73
+        parent::__construct( $subscription );
74
+
75
+        if ( ! $deprecated && ! empty( $subscription ) && is_numeric( $subscription ) ) {
76
+            $this->set_id( $subscription );
77
+        } elseif ( $subscription instanceof self ) {
78
+            $this->set_id( $subscription->get_id() );
79
+        } elseif ( $deprecated && $subscription_id = self::get_subscription_id_by_field( $subscription, 'profile_id' ) ) {
80
+            $this->set_id( $subscription_id );
81
+        } elseif ( ! empty( $subscription->id ) ) {
82
+            $this->set_id( $subscription->id );
83
+        } else {
84
+            $this->set_object_read( true );
85
+        }
86
+
87
+        // Load the datastore.
88
+        $this->data_store = GetPaid_Data_Store::load( $this->data_store_name );
89
+
90
+        if ( $this->get_id() > 0 ) {
91
+            $this->data_store->read( $this );
92
+        }
93
+
94
+    }
95
+
96
+    /**
97
+     * Given an invoice id, profile id, transaction id, it returns the subscription's id.
98
+     *
99
+     *
100
+     * @static
101
+     * @param string $value
102
+     * @param string $field Either invoice_id, transaction_id or profile_id.
103
+     * @since 1.0.19
104
+     * @return int
105
+     */
106
+    public static function get_subscription_id_by_field( $value, $field = 'profile_id' ) {
107 107
         global $wpdb;
108 108
 
109
-		// Trim the value.
110
-		$value = trim( $value );
109
+        // Trim the value.
110
+        $value = trim( $value );
111 111
 
112
-		if ( empty( $value ) ) {
113
-			return 0;
114
-		}
112
+        if ( empty( $value ) ) {
113
+            return 0;
114
+        }
115 115
 
116
-		if ( 'invoice_id' == $field ) {
117
-			$field = 'parent_payment_id';
118
-		}
116
+        if ( 'invoice_id' == $field ) {
117
+            $field = 'parent_payment_id';
118
+        }
119 119
 
120 120
         // Valid fields.
121 121
         $fields = array(
122
-			'parent_payment_id',
123
-			'transaction_id',
124
-			'profile_id',
125
-		);
126
-
127
-		// Ensure a field has been passed.
128
-		if ( empty( $field ) || ! in_array( $field, $fields ) ) {
129
-			return 0;
130
-		}
131
-
132
-		// Maybe retrieve from the cache.
133
-		$subscription_id   = wp_cache_get( $value, "getpaid_subscription_{$field}s_to_subscription_ids" );
134
-		if ( ! empty( $subscription_id ) ) {
135
-			return $subscription_id;
136
-		}
122
+            'parent_payment_id',
123
+            'transaction_id',
124
+            'profile_id',
125
+        );
126
+
127
+        // Ensure a field has been passed.
128
+        if ( empty( $field ) || ! in_array( $field, $fields ) ) {
129
+            return 0;
130
+        }
131
+
132
+        // Maybe retrieve from the cache.
133
+        $subscription_id   = wp_cache_get( $value, "getpaid_subscription_{$field}s_to_subscription_ids" );
134
+        if ( ! empty( $subscription_id ) ) {
135
+            return $subscription_id;
136
+        }
137 137
 
138 138
         // Fetch from the db.
139 139
         $table            = $wpdb->prefix . 'wpinv_subscriptions';
@@ -141,34 +141,34 @@  discard block
 block discarded – undo
141 141
             $wpdb->prepare( "SELECT `id` FROM $table WHERE `$field`=%s LIMIT 1", $value )
142 142
         );
143 143
 
144
-		if ( empty( $subscription_id ) ) {
145
-			return 0;
146
-		}
144
+        if ( empty( $subscription_id ) ) {
145
+            return 0;
146
+        }
147 147
 
148
-		// Update the cache with our data.
149
-		wp_cache_set( $value, $subscription_id, "getpaid_subscription_{$field}s_to_subscription_ids" );
148
+        // Update the cache with our data.
149
+        wp_cache_set( $value, $subscription_id, "getpaid_subscription_{$field}s_to_subscription_ids" );
150 150
 
151
-		return $subscription_id;
152
-	}
151
+        return $subscription_id;
152
+    }
153 153
 
154
-	/**
154
+    /**
155 155
      * Clears the subscription's cache.
156 156
      */
157 157
     public function clear_cache() {
158
-		wp_cache_delete( $this->get_parent_payment_id(), 'getpaid_subscription_parent_payment_ids_to_subscription_ids' );
159
-		wp_cache_delete( $this->get_transaction_id(), 'getpaid_subscription_transaction_ids_to_subscription_ids' );
160
-		wp_cache_delete( $this->get_profile_id(), 'getpaid_subscription_profile_ids_to_subscription_ids' );
161
-		wp_cache_delete( $this->get_id(), 'getpaid_subscriptions' );
162
-	}
158
+        wp_cache_delete( $this->get_parent_payment_id(), 'getpaid_subscription_parent_payment_ids_to_subscription_ids' );
159
+        wp_cache_delete( $this->get_transaction_id(), 'getpaid_subscription_transaction_ids_to_subscription_ids' );
160
+        wp_cache_delete( $this->get_profile_id(), 'getpaid_subscription_profile_ids_to_subscription_ids' );
161
+        wp_cache_delete( $this->get_id(), 'getpaid_subscriptions' );
162
+    }
163 163
 
164
-	/**
164
+    /**
165 165
      * Checks if a subscription key is set.
166 166
      */
167 167
     public function _isset( $key ) {
168 168
         return isset( $this->data[ $key ] ) || method_exists( $this, "get_$key" );
169
-	}
169
+    }
170 170
 
171
-	/*
171
+    /*
172 172
 	|--------------------------------------------------------------------------
173 173
 	| CRUD methods
174 174
 	|--------------------------------------------------------------------------
@@ -177,57 +177,57 @@  discard block
 block discarded – undo
177 177
 	|
178 178
     */
179 179
 
180
-	/*
180
+    /*
181 181
 	|--------------------------------------------------------------------------
182 182
 	| Getters
183 183
 	|--------------------------------------------------------------------------
184 184
 	*/
185 185
 
186
-	/**
187
-	 * Get customer id.
188
-	 *
189
-	 * @since 1.0.19
190
-	 * @param  string $context View or edit context.
191
-	 * @return int
192
-	 */
193
-	public function get_customer_id( $context = 'view' ) {
194
-		return (int) $this->get_prop( 'customer_id', $context );
195
-	}
196
-
197
-	/**
198
-	 * Get customer information.
199
-	 *
200
-	 * @since 1.0.19
201
-	 * @param  string $context View or edit context.
202
-	 * @return WP_User|false WP_User object on success, false on failure.
203
-	 */
204
-	public function get_customer( $context = 'view' ) {
205
-		return get_userdata( $this->get_customer_id( $context ) );
206
-	}
207
-
208
-	/**
209
-	 * Get parent invoice id.
210
-	 *
211
-	 * @since 1.0.19
212
-	 * @param  string $context View or edit context.
213
-	 * @return int
214
-	 */
215
-	public function get_parent_invoice_id( $context = 'view' ) {
216
-		return (int) $this->get_prop( 'parent_payment_id', $context );
217
-	}
218
-
219
-	/**
220
-	 * Alias for self::get_parent_invoice_id().
221
-	 *
222
-	 * @since 1.0.19
223
-	 * @param  string $context View or edit context.
224
-	 * @return int
225
-	 */
186
+    /**
187
+     * Get customer id.
188
+     *
189
+     * @since 1.0.19
190
+     * @param  string $context View or edit context.
191
+     * @return int
192
+     */
193
+    public function get_customer_id( $context = 'view' ) {
194
+        return (int) $this->get_prop( 'customer_id', $context );
195
+    }
196
+
197
+    /**
198
+     * Get customer information.
199
+     *
200
+     * @since 1.0.19
201
+     * @param  string $context View or edit context.
202
+     * @return WP_User|false WP_User object on success, false on failure.
203
+     */
204
+    public function get_customer( $context = 'view' ) {
205
+        return get_userdata( $this->get_customer_id( $context ) );
206
+    }
207
+
208
+    /**
209
+     * Get parent invoice id.
210
+     *
211
+     * @since 1.0.19
212
+     * @param  string $context View or edit context.
213
+     * @return int
214
+     */
215
+    public function get_parent_invoice_id( $context = 'view' ) {
216
+        return (int) $this->get_prop( 'parent_payment_id', $context );
217
+    }
218
+
219
+    /**
220
+     * Alias for self::get_parent_invoice_id().
221
+     *
222
+     * @since 1.0.19
223
+     * @param  string $context View or edit context.
224
+     * @return int
225
+     */
226 226
     public function get_parent_payment_id( $context = 'view' ) {
227 227
         return $this->get_parent_invoice_id( $context );
228
-	}
228
+    }
229 229
 
230
-	/**
230
+    /**
231 231
      * Alias for self::get_parent_invoice_id().
232 232
      *
233 233
      * @since  1.0.0
@@ -237,484 +237,484 @@  discard block
 block discarded – undo
237 237
         return $this->get_parent_invoice_id( $context );
238 238
     }
239 239
 
240
-	/**
241
-	 * Get parent invoice.
242
-	 *
243
-	 * @since 1.0.19
244
-	 * @param  string $context View or edit context.
245
-	 * @return WPInv_Invoice
246
-	 */
247
-	public function get_parent_invoice( $context = 'view' ) {
248
-		return new WPInv_Invoice( $this->get_parent_invoice_id( $context ) );
249
-	}
250
-
251
-	/**
252
-	 * Alias for self::get_parent_invoice().
253
-	 *
254
-	 * @since 1.0.19
255
-	 * @param  string $context View or edit context.
256
-	 * @return WPInv_Invoice
257
-	 */
258
-    public function get_parent_payment( $context = 'view' ) {
259
-        return $this->get_parent_invoice( $context );
260
-	}
261
-
262
-	/**
263
-	 * Get subscription's product id.
264
-	 *
265
-	 * @since 1.0.19
266
-	 * @param  string $context View or edit context.
267
-	 * @return int
268
-	 */
269
-	public function get_product_id( $context = 'view' ) {
270
-		return (int) $this->get_prop( 'product_id', $context );
271
-	}
272
-
273
-	/**
274
-	 * Get the subscription product.
275
-	 *
276
-	 * @since 1.0.19
277
-	 * @param  string $context View or edit context.
278
-	 * @return WPInv_Item
279
-	 */
280
-	public function get_product( $context = 'view' ) {
281
-		return new WPInv_Item( $this->get_product_id( $context ) );
282
-	}
283
-
284
-	/**
285
-	 * Get parent invoice's gateway.
286
-	 *
287
-	 * Here for backwards compatibility.
288
-	 *
289
-	 * @since 1.0.19
290
-	 * @param  string $context View or edit context.
291
-	 * @return string
292
-	 */
293
-	public function get_gateway( $context = 'view' ) {
294
-		return $this->get_parent_invoice( $context )->get_gateway();
295
-	}
296
-
297
-	/**
298
-	 * Get the period of a renewal.
299
-	 *
300
-	 * @since 1.0.19
301
-	 * @param  string $context View or edit context.
302
-	 * @return string
303
-	 */
304
-	public function get_period( $context = 'view' ) {
305
-		return $this->get_prop( 'period', $context );
306
-	}
307
-
308
-	/**
309
-	 * Get number of periods each renewal is valid for.
310
-	 *
311
-	 * @since 1.0.19
312
-	 * @param  string $context View or edit context.
313
-	 * @return int
314
-	 */
315
-	public function get_frequency( $context = 'view' ) {
316
-		return (int) $this->get_prop( 'frequency', $context );
317
-	}
318
-
319
-	/**
320
-	 * Get the initial amount for the subscription.
321
-	 *
322
-	 * @since 1.0.19
323
-	 * @param  string $context View or edit context.
324
-	 * @return float
325
-	 */
326
-	public function get_initial_amount( $context = 'view' ) {
327
-		return (float) wpinv_sanitize_amount( $this->get_prop( 'initial_amount', $context ) );
328
-	}
329
-
330
-	/**
331
-	 * Get the recurring amount for the subscription.
332
-	 *
333
-	 * @since 1.0.19
334
-	 * @param  string $context View or edit context.
335
-	 * @return float
336
-	 */
337
-	public function get_recurring_amount( $context = 'view' ) {
338
-		return (float) wpinv_sanitize_amount( $this->get_prop( 'recurring_amount', $context ) );
339
-	}
340
-
341
-	/**
342
-	 * Get number of times that this subscription can be renewed.
343
-	 *
344
-	 * @since 1.0.19
345
-	 * @param  string $context View or edit context.
346
-	 * @return int
347
-	 */
348
-	public function get_bill_times( $context = 'view' ) {
349
-		return (int) $this->get_prop( 'bill_times', $context );
350
-	}
351
-
352
-	/**
353
-	 * Get transaction id of this subscription's parent invoice.
354
-	 *
355
-	 * @since 1.0.19
356
-	 * @param  string $context View or edit context.
357
-	 * @return string
358
-	 */
359
-	public function get_transaction_id( $context = 'view' ) {
360
-		return $this->get_prop( 'transaction_id', $context );
361
-	}
362
-
363
-	/**
364
-	 * Get the date that the subscription was created.
365
-	 *
366
-	 * @since 1.0.19
367
-	 * @param  string $context View or edit context.
368
-	 * @return string
369
-	 */
370
-	public function get_created( $context = 'view' ) {
371
-		return $this->get_prop( 'created', $context );
372
-	}
373
-
374
-	/**
375
-	 * Alias for self::get_created().
376
-	 *
377
-	 * @since 1.0.19
378
-	 * @param  string $context View or edit context.
379
-	 * @return string
380
-	 */
381
-	public function get_date_created( $context = 'view' ) {
382
-		return $this->get_created( $context );
383
-	}
384
-
385
-	/**
386
-	 * Retrieves the creation date in a timestamp
387
-	 *
388
-	 * @since  1.0.0
389
-	 * @return int
390
-	 */
391
-	public function get_time_created() {
392
-		$created = $this->get_date_created();
393
-		return empty( $created ) ? current_time( 'timestamp' ) : strtotime( $created, current_time( 'timestamp' ) );
394
-	}
395
-
396
-	/**
397
-	 * Get GMT date when the subscription was created.
398
-	 *
399
-	 * @since 1.0.19
400
-	 * @param  string $context View or edit context.
401
-	 * @return string
402
-	 */
403
-	public function get_date_created_gmt( $context = 'view' ) {
404
-        $date = $this->get_date_created( $context );
240
+    /**
241
+     * Get parent invoice.
242
+     *
243
+     * @since 1.0.19
244
+     * @param  string $context View or edit context.
245
+     * @return WPInv_Invoice
246
+     */
247
+    public function get_parent_invoice( $context = 'view' ) {
248
+        return new WPInv_Invoice( $this->get_parent_invoice_id( $context ) );
249
+    }
250
+
251
+    /**
252
+     * Alias for self::get_parent_invoice().
253
+     *
254
+     * @since 1.0.19
255
+     * @param  string $context View or edit context.
256
+     * @return WPInv_Invoice
257
+     */
258
+    public function get_parent_payment( $context = 'view' ) {
259
+        return $this->get_parent_invoice( $context );
260
+    }
261
+
262
+    /**
263
+     * Get subscription's product id.
264
+     *
265
+     * @since 1.0.19
266
+     * @param  string $context View or edit context.
267
+     * @return int
268
+     */
269
+    public function get_product_id( $context = 'view' ) {
270
+        return (int) $this->get_prop( 'product_id', $context );
271
+    }
272
+
273
+    /**
274
+     * Get the subscription product.
275
+     *
276
+     * @since 1.0.19
277
+     * @param  string $context View or edit context.
278
+     * @return WPInv_Item
279
+     */
280
+    public function get_product( $context = 'view' ) {
281
+        return new WPInv_Item( $this->get_product_id( $context ) );
282
+    }
283
+
284
+    /**
285
+     * Get parent invoice's gateway.
286
+     *
287
+     * Here for backwards compatibility.
288
+     *
289
+     * @since 1.0.19
290
+     * @param  string $context View or edit context.
291
+     * @return string
292
+     */
293
+    public function get_gateway( $context = 'view' ) {
294
+        return $this->get_parent_invoice( $context )->get_gateway();
295
+    }
296
+
297
+    /**
298
+     * Get the period of a renewal.
299
+     *
300
+     * @since 1.0.19
301
+     * @param  string $context View or edit context.
302
+     * @return string
303
+     */
304
+    public function get_period( $context = 'view' ) {
305
+        return $this->get_prop( 'period', $context );
306
+    }
307
+
308
+    /**
309
+     * Get number of periods each renewal is valid for.
310
+     *
311
+     * @since 1.0.19
312
+     * @param  string $context View or edit context.
313
+     * @return int
314
+     */
315
+    public function get_frequency( $context = 'view' ) {
316
+        return (int) $this->get_prop( 'frequency', $context );
317
+    }
318
+
319
+    /**
320
+     * Get the initial amount for the subscription.
321
+     *
322
+     * @since 1.0.19
323
+     * @param  string $context View or edit context.
324
+     * @return float
325
+     */
326
+    public function get_initial_amount( $context = 'view' ) {
327
+        return (float) wpinv_sanitize_amount( $this->get_prop( 'initial_amount', $context ) );
328
+    }
329
+
330
+    /**
331
+     * Get the recurring amount for the subscription.
332
+     *
333
+     * @since 1.0.19
334
+     * @param  string $context View or edit context.
335
+     * @return float
336
+     */
337
+    public function get_recurring_amount( $context = 'view' ) {
338
+        return (float) wpinv_sanitize_amount( $this->get_prop( 'recurring_amount', $context ) );
339
+    }
340
+
341
+    /**
342
+     * Get number of times that this subscription can be renewed.
343
+     *
344
+     * @since 1.0.19
345
+     * @param  string $context View or edit context.
346
+     * @return int
347
+     */
348
+    public function get_bill_times( $context = 'view' ) {
349
+        return (int) $this->get_prop( 'bill_times', $context );
350
+    }
351
+
352
+    /**
353
+     * Get transaction id of this subscription's parent invoice.
354
+     *
355
+     * @since 1.0.19
356
+     * @param  string $context View or edit context.
357
+     * @return string
358
+     */
359
+    public function get_transaction_id( $context = 'view' ) {
360
+        return $this->get_prop( 'transaction_id', $context );
361
+    }
362
+
363
+    /**
364
+     * Get the date that the subscription was created.
365
+     *
366
+     * @since 1.0.19
367
+     * @param  string $context View or edit context.
368
+     * @return string
369
+     */
370
+    public function get_created( $context = 'view' ) {
371
+        return $this->get_prop( 'created', $context );
372
+    }
373
+
374
+    /**
375
+     * Alias for self::get_created().
376
+     *
377
+     * @since 1.0.19
378
+     * @param  string $context View or edit context.
379
+     * @return string
380
+     */
381
+    public function get_date_created( $context = 'view' ) {
382
+        return $this->get_created( $context );
383
+    }
384
+
385
+    /**
386
+     * Retrieves the creation date in a timestamp
387
+     *
388
+     * @since  1.0.0
389
+     * @return int
390
+     */
391
+    public function get_time_created() {
392
+        $created = $this->get_date_created();
393
+        return empty( $created ) ? current_time( 'timestamp' ) : strtotime( $created, current_time( 'timestamp' ) );
394
+    }
395
+
396
+    /**
397
+     * Get GMT date when the subscription was created.
398
+     *
399
+     * @since 1.0.19
400
+     * @param  string $context View or edit context.
401
+     * @return string
402
+     */
403
+    public function get_date_created_gmt( $context = 'view' ) {
404
+        $date = $this->get_date_created( $context );
405
+
406
+        if ( $date ) {
407
+            $date = get_gmt_from_date( $date );
408
+        }
409
+        return $date;
410
+    }
411
+
412
+    /**
413
+     * Get the date that the subscription will renew.
414
+     *
415
+     * @since 1.0.19
416
+     * @param  string $context View or edit context.
417
+     * @return string
418
+     */
419
+    public function get_next_renewal_date( $context = 'view' ) {
420
+        return $this->get_prop( 'expiration', $context );
421
+    }
422
+
423
+    /**
424
+     * Alias for self::get_next_renewal_date().
425
+     *
426
+     * @since 1.0.19
427
+     * @param  string $context View or edit context.
428
+     * @return string
429
+     */
430
+    public function get_expiration( $context = 'view' ) {
431
+        return $this->get_next_renewal_date( $context );
432
+    }
433
+
434
+    /**
435
+     * Retrieves the expiration date in a timestamp
436
+     *
437
+     * @since  1.0.0
438
+     * @return int
439
+     */
440
+    public function get_expiration_time() {
441
+        $expiration = $this->get_expiration();
442
+
443
+        if ( empty( $expiration ) || '0000-00-00 00:00:00' == $expiration ) {
444
+            return current_time( 'timestamp' );
445
+        }
446
+
447
+        $expiration = strtotime( $expiration, current_time( 'timestamp' ) );
448
+        return $expiration < current_time( 'timestamp' ) ? current_time( 'timestamp' ) : $expiration;
449
+    }
450
+
451
+    /**
452
+     * Get GMT date when the subscription will renew.
453
+     *
454
+     * @since 1.0.19
455
+     * @param  string $context View or edit context.
456
+     * @return string
457
+     */
458
+    public function get_next_renewal_date_gmt( $context = 'view' ) {
459
+        $date = $this->get_next_renewal_date( $context );
460
+
461
+        if ( $date ) {
462
+            $date = get_gmt_from_date( $date );
463
+        }
464
+        return $date;
465
+    }
466
+
467
+    /**
468
+     * Get the subscription's trial period.
469
+     *
470
+     * @since 1.0.19
471
+     * @param  string $context View or edit context.
472
+     * @return string
473
+     */
474
+    public function get_trial_period( $context = 'view' ) {
475
+        return $this->get_prop( 'trial_period', $context );
476
+    }
477
+
478
+    /**
479
+     * Get the subscription's status.
480
+     *
481
+     * @since 1.0.19
482
+     * @param  string $context View or edit context.
483
+     * @return string
484
+     */
485
+    public function get_status( $context = 'view' ) {
486
+        return $this->get_prop( 'status', $context );
487
+    }
488
+
489
+    /**
490
+     * Get the subscription's profile id.
491
+     *
492
+     * @since 1.0.19
493
+     * @param  string $context View or edit context.
494
+     * @return string
495
+     */
496
+    public function get_profile_id( $context = 'view' ) {
497
+        return $this->get_prop( 'profile_id', $context );
498
+    }
499
+
500
+    /*
501
+	|--------------------------------------------------------------------------
502
+	| Setters
503
+	|--------------------------------------------------------------------------
504
+	*/
505
+
506
+    /**
507
+     * Set customer id.
508
+     *
509
+     * @since 1.0.19
510
+     * @param  int $value The customer's id.
511
+     */
512
+    public function set_customer_id( $value ) {
513
+        $this->set_prop( 'customer_id', (int) $value );
514
+    }
515
+
516
+    /**
517
+     * Set parent invoice id.
518
+     *
519
+     * @since 1.0.19
520
+     * @param  int $value The parent invoice id.
521
+     */
522
+    public function set_parent_invoice_id( $value ) {
523
+        $this->set_prop( 'parent_payment_id', (int) $value );
524
+    }
525
+
526
+    /**
527
+     * Alias for self::set_parent_invoice_id().
528
+     *
529
+     * @since 1.0.19
530
+     * @param  int $value The parent invoice id.
531
+     */
532
+    public function set_parent_payment_id( $value ) {
533
+        $this->set_parent_invoice_id( $value );
534
+    }
535
+
536
+    /**
537
+     * Alias for self::set_parent_invoice_id().
538
+     *
539
+     * @since 1.0.19
540
+     * @param  int $value The parent invoice id.
541
+     */
542
+    public function set_original_payment_id( $value ) {
543
+        $this->set_parent_invoice_id( $value );
544
+    }
545
+
546
+    /**
547
+     * Set subscription's product id.
548
+     *
549
+     * @since 1.0.19
550
+     * @param  int $value The subscription product id.
551
+     */
552
+    public function set_product_id( $value ) {
553
+        $this->set_prop( 'product_id', (int) $value );
554
+    }
555
+
556
+    /**
557
+     * Set the period of a renewal.
558
+     *
559
+     * @since 1.0.19
560
+     * @param  string $value The renewal period.
561
+     */
562
+    public function set_period( $value ) {
563
+        $this->set_prop( 'period', $value );
564
+    }
565
+
566
+    /**
567
+     * Set number of periods each renewal is valid for.
568
+     *
569
+     * @since 1.0.19
570
+     * @param  int $value The subscription frequency.
571
+     */
572
+    public function set_frequency( $value ) {
573
+        $value = empty( $value ) ? 1 : (int) $value;
574
+        $this->set_prop( 'frequency', absint( $value ) );
575
+    }
576
+
577
+    /**
578
+     * Set the initial amount for the subscription.
579
+     *
580
+     * @since 1.0.19
581
+     * @param  float $value The initial subcription amount.
582
+     */
583
+    public function set_initial_amount( $value ) {
584
+        $this->set_prop( 'initial_amount', wpinv_sanitize_amount( $value ) );
585
+    }
586
+
587
+    /**
588
+     * Set the recurring amount for the subscription.
589
+     *
590
+     * @since 1.0.19
591
+     * @param  float $value The recurring subcription amount.
592
+     */
593
+    public function set_recurring_amount( $value ) {
594
+        $this->set_prop( 'recurring_amount', wpinv_sanitize_amount( $value ) );
595
+    }
596
+
597
+    /**
598
+     * Set number of times that this subscription can be renewed.
599
+     *
600
+     * @since 1.0.19
601
+     * @param  int $value Bill times.
602
+     */
603
+    public function set_bill_times( $value ) {
604
+        $this->set_prop( 'bill_times', (int) $value );
605
+    }
606
+
607
+    /**
608
+     * Get transaction id of this subscription's parent invoice.
609
+     *
610
+     * @since 1.0.19
611
+     * @param string $value Bill times.
612
+     */
613
+    public function set_transaction_id( $value ) {
614
+        $this->set_prop( 'transaction_id', sanitize_text_field( $value ) );
615
+    }
616
+
617
+    /**
618
+     * Set date when this subscription started.
619
+     *
620
+     * @since 1.0.19
621
+     * @param string $value strtotime compliant date.
622
+     */
623
+    public function set_created( $value ) {
624
+        $date = strtotime( $value );
405 625
 
406
-        if ( $date ) {
407
-            $date = get_gmt_from_date( $date );
626
+        if ( $date && $value !== '0000-00-00 00:00:00' ) {
627
+            $this->set_prop( 'created', date( 'Y-m-d H:i:s', $date ) );
628
+            return;
408 629
         }
409
-		return $date;
410
-	}
411
-
412
-	/**
413
-	 * Get the date that the subscription will renew.
414
-	 *
415
-	 * @since 1.0.19
416
-	 * @param  string $context View or edit context.
417
-	 * @return string
418
-	 */
419
-	public function get_next_renewal_date( $context = 'view' ) {
420
-		return $this->get_prop( 'expiration', $context );
421
-	}
422
-
423
-	/**
424
-	 * Alias for self::get_next_renewal_date().
425
-	 *
426
-	 * @since 1.0.19
427
-	 * @param  string $context View or edit context.
428
-	 * @return string
429
-	 */
430
-	public function get_expiration( $context = 'view' ) {
431
-		return $this->get_next_renewal_date( $context );
432
-	}
433
-
434
-	/**
435
-	 * Retrieves the expiration date in a timestamp
436
-	 *
437
-	 * @since  1.0.0
438
-	 * @return int
439
-	 */
440
-	public function get_expiration_time() {
441
-		$expiration = $this->get_expiration();
442
-
443
-		if ( empty( $expiration ) || '0000-00-00 00:00:00' == $expiration ) {
444
-			return current_time( 'timestamp' );
445
-		}
446
-
447
-		$expiration = strtotime( $expiration, current_time( 'timestamp' ) );
448
-		return $expiration < current_time( 'timestamp' ) ? current_time( 'timestamp' ) : $expiration;
449
-	}
450
-
451
-	/**
452
-	 * Get GMT date when the subscription will renew.
453
-	 *
454
-	 * @since 1.0.19
455
-	 * @param  string $context View or edit context.
456
-	 * @return string
457
-	 */
458
-	public function get_next_renewal_date_gmt( $context = 'view' ) {
459
-        $date = $this->get_next_renewal_date( $context );
460 630
 
461
-        if ( $date ) {
462
-            $date = get_gmt_from_date( $date );
463
-        }
464
-		return $date;
465
-	}
466
-
467
-	/**
468
-	 * Get the subscription's trial period.
469
-	 *
470
-	 * @since 1.0.19
471
-	 * @param  string $context View or edit context.
472
-	 * @return string
473
-	 */
474
-	public function get_trial_period( $context = 'view' ) {
475
-		return $this->get_prop( 'trial_period', $context );
476
-	}
477
-
478
-	/**
479
-	 * Get the subscription's status.
480
-	 *
481
-	 * @since 1.0.19
482
-	 * @param  string $context View or edit context.
483
-	 * @return string
484
-	 */
485
-	public function get_status( $context = 'view' ) {
486
-		return $this->get_prop( 'status', $context );
487
-	}
488
-
489
-	/**
490
-	 * Get the subscription's profile id.
491
-	 *
492
-	 * @since 1.0.19
493
-	 * @param  string $context View or edit context.
494
-	 * @return string
495
-	 */
496
-	public function get_profile_id( $context = 'view' ) {
497
-		return $this->get_prop( 'profile_id', $context );
498
-	}
499
-
500
-	/*
501
-	|--------------------------------------------------------------------------
502
-	| Setters
503
-	|--------------------------------------------------------------------------
504
-	*/
631
+        $this->set_prop( 'created', '' );
505 632
 
506
-	/**
507
-	 * Set customer id.
508
-	 *
509
-	 * @since 1.0.19
510
-	 * @param  int $value The customer's id.
511
-	 */
512
-	public function set_customer_id( $value ) {
513
-		$this->set_prop( 'customer_id', (int) $value );
514
-	}
515
-
516
-	/**
517
-	 * Set parent invoice id.
518
-	 *
519
-	 * @since 1.0.19
520
-	 * @param  int $value The parent invoice id.
521
-	 */
522
-	public function set_parent_invoice_id( $value ) {
523
-		$this->set_prop( 'parent_payment_id', (int) $value );
524
-	}
525
-
526
-	/**
527
-	 * Alias for self::set_parent_invoice_id().
528
-	 *
529
-	 * @since 1.0.19
530
-	 * @param  int $value The parent invoice id.
531
-	 */
532
-    public function set_parent_payment_id( $value ) {
533
-        $this->set_parent_invoice_id( $value );
534
-	}
633
+    }
535 634
 
536
-	/**
537
-     * Alias for self::set_parent_invoice_id().
635
+    /**
636
+     * Alias for self::set_created().
538 637
      *
539 638
      * @since 1.0.19
540
-	 * @param  int $value The parent invoice id.
639
+     * @param string $value strtotime compliant date.
541 640
      */
542
-    public function set_original_payment_id( $value ) {
543
-        $this->set_parent_invoice_id( $value );
544
-	}
545
-
546
-	/**
547
-	 * Set subscription's product id.
548
-	 *
549
-	 * @since 1.0.19
550
-	 * @param  int $value The subscription product id.
551
-	 */
552
-	public function set_product_id( $value ) {
553
-		$this->set_prop( 'product_id', (int) $value );
554
-	}
555
-
556
-	/**
557
-	 * Set the period of a renewal.
558
-	 *
559
-	 * @since 1.0.19
560
-	 * @param  string $value The renewal period.
561
-	 */
562
-	public function set_period( $value ) {
563
-		$this->set_prop( 'period', $value );
564
-	}
565
-
566
-	/**
567
-	 * Set number of periods each renewal is valid for.
568
-	 *
569
-	 * @since 1.0.19
570
-	 * @param  int $value The subscription frequency.
571
-	 */
572
-	public function set_frequency( $value ) {
573
-		$value = empty( $value ) ? 1 : (int) $value;
574
-		$this->set_prop( 'frequency', absint( $value ) );
575
-	}
576
-
577
-	/**
578
-	 * Set the initial amount for the subscription.
579
-	 *
580
-	 * @since 1.0.19
581
-	 * @param  float $value The initial subcription amount.
582
-	 */
583
-	public function set_initial_amount( $value ) {
584
-		$this->set_prop( 'initial_amount', wpinv_sanitize_amount( $value ) );
585
-	}
586
-
587
-	/**
588
-	 * Set the recurring amount for the subscription.
589
-	 *
590
-	 * @since 1.0.19
591
-	 * @param  float $value The recurring subcription amount.
592
-	 */
593
-	public function set_recurring_amount( $value ) {
594
-		$this->set_prop( 'recurring_amount', wpinv_sanitize_amount( $value ) );
595
-	}
596
-
597
-	/**
598
-	 * Set number of times that this subscription can be renewed.
599
-	 *
600
-	 * @since 1.0.19
601
-	 * @param  int $value Bill times.
602
-	 */
603
-	public function set_bill_times( $value ) {
604
-		$this->set_prop( 'bill_times', (int) $value );
605
-	}
606
-
607
-	/**
608
-	 * Get transaction id of this subscription's parent invoice.
609
-	 *
610
-	 * @since 1.0.19
611
-	 * @param string $value Bill times.
612
-	 */
613
-	public function set_transaction_id( $value ) {
614
-		$this->set_prop( 'transaction_id', sanitize_text_field( $value ) );
615
-	}
616
-
617
-	/**
618
-	 * Set date when this subscription started.
619
-	 *
620
-	 * @since 1.0.19
621
-	 * @param string $value strtotime compliant date.
622
-	 */
623
-	public function set_created( $value ) {
641
+    public function set_date_created( $value ) {
642
+        $this->set_created( $value );
643
+    }
644
+
645
+    /**
646
+     * Set the date that the subscription will renew.
647
+     *
648
+     * @since 1.0.19
649
+     * @param string $value strtotime compliant date.
650
+     */
651
+    public function set_next_renewal_date( $value ) {
624 652
         $date = strtotime( $value );
625 653
 
626 654
         if ( $date && $value !== '0000-00-00 00:00:00' ) {
627
-            $this->set_prop( 'created', date( 'Y-m-d H:i:s', $date ) );
655
+            $this->set_prop( 'expiration', date( 'Y-m-d H:i:s', $date ) );
628 656
             return;
629 657
         }
630 658
 
631
-		$this->set_prop( 'created', '' );
659
+        $this->set_prop( 'expiration', '' );
632 660
 
633
-	}
661
+    }
634 662
 
635
-	/**
636
-	 * Alias for self::set_created().
637
-	 *
638
-	 * @since 1.0.19
639
-	 * @param string $value strtotime compliant date.
640
-	 */
641
-	public function set_date_created( $value ) {
642
-		$this->set_created( $value );
663
+    /**
664
+     * Alias for self::set_next_renewal_date().
665
+     *
666
+     * @since 1.0.19
667
+     * @param string $value strtotime compliant date.
668
+     */
669
+    public function set_expiration( $value ) {
670
+        $this->set_next_renewal_date( $value );
643 671
     }
644 672
 
645
-	/**
646
-	 * Set the date that the subscription will renew.
647
-	 *
648
-	 * @since 1.0.19
649
-	 * @param string $value strtotime compliant date.
650
-	 */
651
-	public function set_next_renewal_date( $value ) {
652
-		$date = strtotime( $value );
673
+    /**
674
+     * Set the subscription's trial period.
675
+     *
676
+     * @since 1.0.19
677
+     * @param string $value trial period e.g 1 year.
678
+     */
679
+    public function set_trial_period( $value ) {
680
+        $this->set_prop( 'trial_period', $value );
681
+    }
653 682
 
654
-        if ( $date && $value !== '0000-00-00 00:00:00' ) {
655
-            $this->set_prop( 'expiration', date( 'Y-m-d H:i:s', $date ) );
683
+    /**
684
+     * Set the subscription's status.
685
+     *
686
+     * @since 1.0.19
687
+     * @param string $new_status    New subscription status.
688
+     */
689
+    public function set_status( $new_status ) {
690
+
691
+        // Abort if this is not a valid status;
692
+        if ( ! array_key_exists( $new_status, getpaid_get_subscription_statuses() ) ) {
656 693
             return;
657
-		}
658
-
659
-		$this->set_prop( 'expiration', '' );
660
-
661
-	}
662
-
663
-	/**
664
-	 * Alias for self::set_next_renewal_date().
665
-	 *
666
-	 * @since 1.0.19
667
-	 * @param string $value strtotime compliant date.
668
-	 */
669
-	public function set_expiration( $value ) {
670
-		$this->set_next_renewal_date( $value );
671
-    }
672
-
673
-	/**
674
-	 * Set the subscription's trial period.
675
-	 *
676
-	 * @since 1.0.19
677
-	 * @param string $value trial period e.g 1 year.
678
-	 */
679
-	public function set_trial_period( $value ) {
680
-		$this->set_prop( 'trial_period', $value );
681
-	}
682
-
683
-	/**
684
-	 * Set the subscription's status.
685
-	 *
686
-	 * @since 1.0.19
687
-	 * @param string $new_status    New subscription status.
688
-	 */
689
-	public function set_status( $new_status ) {
690
-
691
-		// Abort if this is not a valid status;
692
-		if ( ! array_key_exists( $new_status, getpaid_get_subscription_statuses() ) ) {
693
-			return;
694
-		}
695
-
696
-		$old_status = ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $this->get_status();
697
-		if ( true === $this->object_read && $old_status !== $new_status ) {
698
-			$this->status_transition = array(
699
-				'from' => $old_status,
700
-				'to'   => $new_status,
701
-			);
702
-		}
703
-
704
-		$this->set_prop( 'status', $new_status );
705
-	}
706
-
707
-	/**
708
-	 * Set the subscription's (remote) profile id.
709
-	 *
710
-	 * @since 1.0.19
711
-	 * @param  string $value the remote profile id.
712
-	 */
713
-	public function set_profile_id( $value ) {
714
-		$this->set_prop( 'profile_id', sanitize_text_field( $value ) );
715
-	}
716
-
717
-	/*
694
+        }
695
+
696
+        $old_status = ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $this->get_status();
697
+        if ( true === $this->object_read && $old_status !== $new_status ) {
698
+            $this->status_transition = array(
699
+                'from' => $old_status,
700
+                'to'   => $new_status,
701
+            );
702
+        }
703
+
704
+        $this->set_prop( 'status', $new_status );
705
+    }
706
+
707
+    /**
708
+     * Set the subscription's (remote) profile id.
709
+     *
710
+     * @since 1.0.19
711
+     * @param  string $value the remote profile id.
712
+     */
713
+    public function set_profile_id( $value ) {
714
+        $this->set_prop( 'profile_id', sanitize_text_field( $value ) );
715
+    }
716
+
717
+    /*
718 718
 	|--------------------------------------------------------------------------
719 719
 	| Boolean methods
720 720
 	|--------------------------------------------------------------------------
@@ -723,55 +723,55 @@  discard block
 block discarded – undo
723 723
 	|
724 724
 	*/
725 725
 
726
-	/**
726
+    /**
727 727
      * Checks if the subscription has a given status.
728
-	 *
729
-	 * @param string|array String or array of strings to check for.
730
-	 * @return bool
728
+     *
729
+     * @param string|array String or array of strings to check for.
730
+     * @return bool
731 731
      */
732 732
     public function has_status( $status ) {
733 733
         return in_array( $this->get_status(), wpinv_clean( wpinv_parse_list( $status ) ) );
734
-	}
734
+    }
735 735
 
736
-	/**
736
+    /**
737 737
      * Checks if the subscription has a trial period.
738
-	 *
739
-	 * @return bool
738
+     *
739
+     * @return bool
740 740
      */
741 741
     public function has_trial_period() {
742
-		$period = $this->get_trial_period();
742
+        $period = $this->get_trial_period();
743 743
         return ! empty( $period );
744
-	}
745
-
746
-	/**
747
-	 * Is the subscription active?
748
-	 *
749
-	 * @return bool
750
-	 */
751
-	public function is_active() {
752
-		return $this->has_status( 'active trialling' ) && ! $this->is_expired();
753
-	}
754
-
755
-	/**
756
-	 * Is the subscription expired?
757
-	 *
758
-	 * @return bool
759
-	 */
760
-	public function is_expired() {
761
-		return $this->has_status( 'expired' ) || ( $this->has_status( 'active cancelled trialling' ) && $this->get_expiration_time() < current_time( 'timestamp' ) );
762
-	}
763
-
764
-	/**
765
-	 * Is this the last renewals?
766
-	 *
767
-	 * @return bool
768
-	 */
769
-	public function is_last_renewal() {
770
-		$max_bills = $this->get_bill_times();
771
-		return ! empty( $max_bills ) && $max_bills <= $this->get_times_billed();
772
-	}
773
-
774
-	/*
744
+    }
745
+
746
+    /**
747
+     * Is the subscription active?
748
+     *
749
+     * @return bool
750
+     */
751
+    public function is_active() {
752
+        return $this->has_status( 'active trialling' ) && ! $this->is_expired();
753
+    }
754
+
755
+    /**
756
+     * Is the subscription expired?
757
+     *
758
+     * @return bool
759
+     */
760
+    public function is_expired() {
761
+        return $this->has_status( 'expired' ) || ( $this->has_status( 'active cancelled trialling' ) && $this->get_expiration_time() < current_time( 'timestamp' ) );
762
+    }
763
+
764
+    /**
765
+     * Is this the last renewals?
766
+     *
767
+     * @return bool
768
+     */
769
+    public function is_last_renewal() {
770
+        $max_bills = $this->get_bill_times();
771
+        return ! empty( $max_bills ) && $max_bills <= $this->get_times_billed();
772
+    }
773
+
774
+    /*
775 775
 	|--------------------------------------------------------------------------
776 776
 	| Additional methods
777 777
 	|--------------------------------------------------------------------------
@@ -780,27 +780,27 @@  discard block
 block discarded – undo
780 780
 	|
781 781
 	*/
782 782
 
783
-	/**
784
-	 * Backwards compatibilty.
785
-	 */
786
-	public function create( $data = array() ) {
783
+    /**
784
+     * Backwards compatibilty.
785
+     */
786
+    public function create( $data = array() ) {
787 787
 
788
-		// Set the properties.
789
-		if ( is_array( $data ) ) {
790
-			$this->set_props( $data );
791
-		}
788
+        // Set the properties.
789
+        if ( is_array( $data ) ) {
790
+            $this->set_props( $data );
791
+        }
792 792
 
793
-		// Save the item.
794
-		return $this->save();
793
+        // Save the item.
794
+        return $this->save();
795 795
 
796
-	}
796
+    }
797 797
 
798
-	/**
799
-	 * Backwards compatibilty.
800
-	 */
801
-	public function update( $args = array() ) {
802
-		return $this->create( $args );
803
-	}
798
+    /**
799
+     * Backwards compatibilty.
800
+     */
801
+    public function update( $args = array() ) {
802
+        return $this->create( $args );
803
+    }
804 804
 
805 805
     /**
806 806
      * Retrieve renewal payments for a subscription
@@ -810,22 +810,22 @@  discard block
 block discarded – undo
810 810
      */
811 811
     public function get_child_payments( $hide_pending = true ) {
812 812
 
813
-		$statuses = array( 'publish', 'wpi-processing', 'wpi-renewal' );
813
+        $statuses = array( 'publish', 'wpi-processing', 'wpi-renewal' );
814 814
 
815
-		if ( ! $hide_pending ) {
816
-			$statuses = array_keys( wpinv_get_invoice_statuses() );
817
-		}
815
+        if ( ! $hide_pending ) {
816
+            $statuses = array_keys( wpinv_get_invoice_statuses() );
817
+        }
818 818
 
819 819
         return get_posts(
820
-			array(
821
-            	'post_parent' => $this->get_parent_payment_id(),
822
-            	'numberposts' => -1,
823
-            	'post_status' => $statuses,
824
-            	'orderby'     => 'ID',
825
-            	'order'       => 'ASC',
826
-            	'post_type'   => 'wpi_invoice',
827
-			)
828
-		);
820
+            array(
821
+                'post_parent' => $this->get_parent_payment_id(),
822
+                'numberposts' => -1,
823
+                'post_status' => $statuses,
824
+                'orderby'     => 'ID',
825
+                'order'       => 'ASC',
826
+                'post_type'   => 'wpi_invoice',
827
+            )
828
+        );
829 829
     }
830 830
 
831 831
     /**
@@ -835,7 +835,7 @@  discard block
 block discarded – undo
835 835
      * @return int
836 836
      */
837 837
     public function get_total_payments() {
838
-		return getpaid_count_subscription_invoices( $this->get_parent_invoice_id(), $this->get_id() );
838
+        return getpaid_count_subscription_invoices( $this->get_parent_invoice_id(), $this->get_id() );
839 839
     }
840 840
 
841 841
     /**
@@ -859,56 +859,56 @@  discard block
 block discarded – undo
859 859
      *
860 860
      * @since  2.4
861 861
      * @param  array $args Array of values for the payment, including amount and transaction ID
862
-	 * @param  WPInv_Invoice $invoice If adding an existing invoice.
862
+     * @param  WPInv_Invoice $invoice If adding an existing invoice.
863 863
      * @return bool
864 864
      */
865 865
     public function add_payment( $args = array(), $invoice = false ) {
866 866
 
867
-		// Process each payment once.
867
+        // Process each payment once.
868 868
         if ( ! empty( $args['transaction_id'] ) && $this->payment_exists( $args['transaction_id'] ) ) {
869 869
             return false;
870 870
         }
871 871
 
872
-		// Are we creating a new invoice?
873
-		if ( empty( $invoice ) ) {
874
-			$invoice = $this->create_payment();
872
+        // Are we creating a new invoice?
873
+        if ( empty( $invoice ) ) {
874
+            $invoice = $this->create_payment();
875 875
 
876
-			if ( empty( $invoice ) ) {
877
-				return false;
878
-			}
876
+            if ( empty( $invoice ) ) {
877
+                return false;
878
+            }
879 879
 }
880 880
 
881
-		$invoice->set_status( 'wpi-renewal' );
881
+        $invoice->set_status( 'wpi-renewal' );
882 882
 
883
-		// Maybe set a transaction id.
884
-		if ( ! empty( $args['transaction_id'] ) ) {
885
-			$invoice->set_transaction_id( $args['transaction_id'] );
886
-		}
883
+        // Maybe set a transaction id.
884
+        if ( ! empty( $args['transaction_id'] ) ) {
885
+            $invoice->set_transaction_id( $args['transaction_id'] );
886
+        }
887 887
 
888
-		// Set the completed date.
889
-		$invoice->set_completed_date( current_time( 'mysql' ) );
888
+        // Set the completed date.
889
+        $invoice->set_completed_date( current_time( 'mysql' ) );
890 890
 
891
-		// And the gateway.
892
-		if ( ! empty( $args['gateway'] ) ) {
893
-			$invoice->set_gateway( $args['gateway'] );
894
-		}
891
+        // And the gateway.
892
+        if ( ! empty( $args['gateway'] ) ) {
893
+            $invoice->set_gateway( $args['gateway'] );
894
+        }
895 895
 
896
-		$invoice->save();
896
+        $invoice->save();
897 897
 
898
-		if ( ! $invoice->exists() ) {
899
-			return false;
900
-		}
898
+        if ( ! $invoice->exists() ) {
899
+            return false;
900
+        }
901 901
 
902
-		do_action( 'getpaid_after_create_subscription_renewal_invoice', $invoice, $this );
903
-		do_action( 'wpinv_recurring_add_subscription_payment', $invoice, $this );
902
+        do_action( 'getpaid_after_create_subscription_renewal_invoice', $invoice, $this );
903
+        do_action( 'wpinv_recurring_add_subscription_payment', $invoice, $this );
904 904
         do_action( 'wpinv_recurring_record_payment', $invoice->get_id(), $this->get_parent_invoice_id(), $invoice->get_recurring_total(), $invoice->get_transaction_id() );
905 905
 
906 906
         update_post_meta( $invoice->get_id(), '_wpinv_subscription_id', $this->id );
907 907
 
908 908
         return $invoice->get_id();
909
-	}
909
+    }
910 910
 
911
-	/**
911
+    /**
912 912
      * Creates a new invoice and returns it.
913 913
      *
914 914
      * @since  1.0.19
@@ -916,124 +916,124 @@  discard block
 block discarded – undo
916 916
      */
917 917
     public function create_payment() {
918 918
 
919
-		$parent_invoice = $this->get_parent_payment();
920
-
921
-		if ( ! $parent_invoice->exists() ) {
922
-			return false;
923
-		}
924
-
925
-		// Duplicate the parent invoice.
926
-		$invoice = getpaid_duplicate_invoice( $parent_invoice );
927
-		$invoice->set_parent_id( $parent_invoice->get_id() );
928
-		$invoice->set_subscription_id( $this->get_id() );
929
-		$invoice->set_remote_subscription_id( $this->get_profile_id() );
930
-
931
-		// Set invoice items.
932
-		$subscription_group = getpaid_get_invoice_subscription_group( $parent_invoice->get_id(), $this->get_id() );
933
-		$allowed_items      = empty( $subscription_group ) ? array( $this->get_product_id() ) : array_keys( $subscription_group['items'] );
934
-		$invoice_items      = array();
935
-
936
-		foreach ( $invoice->get_items() as $item ) {
937
-			if ( in_array( $item->get_id(), $allowed_items ) ) {
938
-				$invoice_items[] = $item;
939
-			}
940
-		}
941
-
942
-		$invoice->set_items( $invoice_items );
943
-
944
-		if ( ! empty( $subscription_group['fees'] ) ) {
945
-			$invoice->set_fees( $subscription_group['fees'] );
946
-		}
947
-
948
-		// Maybe recalculate discount (Pre-GetPaid Fix).
949
-		$discount = new WPInv_Discount( $invoice->get_discount_code() );
950
-		if ( $discount->exists() && $discount->is_recurring() && 0 == $invoice->get_total_discount() ) {
951
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
952
-		}
953
-
954
-		$invoice->recalculate_total();
955
-		$invoice->set_status( 'wpi-pending' );
956
-		$invoice->save();
957
-
958
-		return $invoice->exists() ? $invoice : false;
959
-    }
960
-
961
-	/**
962
-	 * Renews or completes a subscription
963
-	 *
964
-	 * @since  1.0.0
965
-	 * @return int The subscription's id
966
-	 */
967
-	public function renew() {
968
-
969
-		// Complete subscription if applicable
970
-		if ( $this->is_last_renewal() ) {
971
-			return $this->complete();
972
-		}
973
-
974
-		// Calculate new expiration
975
-		$frequency      = $this->get_frequency();
976
-		$period         = $this->get_period();
977
-		$new_expiration = strtotime( "+ $frequency $period", $this->get_expiration_time() );
978
-
979
-		$this->set_expiration( date( 'Y-m-d H:i:s', $new_expiration ) );
980
-		$this->set_status( 'active' );
981
-		$this->save();
982
-
983
-		do_action( 'getpaid_subscription_renewed', $this );
984
-
985
-		return $this->get_id();
986
-	}
987
-
988
-	/**
989
-	 * Marks a subscription as completed
990
-	 *
991
-	 * Subscription is completed when the number of payments matches the billing_times field
992
-	 *
993
-	 * @since  1.0.0
994
-	 * @return int|bool Subscription id or false if the subscription is cancelled.
995
-	 */
996
-	public function complete() {
997
-
998
-		// Only mark a subscription as complete if it's not already cancelled.
999
-		if ( $this->has_status( 'cancelled' ) ) {
1000
-			return false;
1001
-		}
1002
-
1003
-		$this->set_status( 'completed' );
1004
-		return $this->save();
1005
-
1006
-	}
1007
-
1008
-	/**
1009
-	 * Marks a subscription as expired
1010
-	 *
1011
-	 * @since  1.0.0
1012
-	 * @param  bool $check_expiration
1013
-	 * @return int|bool Subscription id or false if $check_expiration is true and expiration date is in the future.
1014
-	 */
1015
-	public function expire( $check_expiration = false ) {
1016
-
1017
-		if ( $check_expiration && $this->get_expiration_time() > current_time( 'timestamp' ) ) {
1018
-			// Do not mark as expired since real expiration date is in the future
1019
-			return false;
1020
-		}
1021
-
1022
-		$this->set_status( 'expired' );
1023
-		return $this->save();
1024
-
1025
-	}
1026
-
1027
-	/**
1028
-	 * Marks a subscription as failing
1029
-	 *
1030
-	 * @since  2.4.2
1031
-	 * @return int Subscription id.
1032
-	 */
1033
-	public function failing() {
1034
-		$this->set_status( 'failing' );
1035
-		return $this->save();
1036
-	}
919
+        $parent_invoice = $this->get_parent_payment();
920
+
921
+        if ( ! $parent_invoice->exists() ) {
922
+            return false;
923
+        }
924
+
925
+        // Duplicate the parent invoice.
926
+        $invoice = getpaid_duplicate_invoice( $parent_invoice );
927
+        $invoice->set_parent_id( $parent_invoice->get_id() );
928
+        $invoice->set_subscription_id( $this->get_id() );
929
+        $invoice->set_remote_subscription_id( $this->get_profile_id() );
930
+
931
+        // Set invoice items.
932
+        $subscription_group = getpaid_get_invoice_subscription_group( $parent_invoice->get_id(), $this->get_id() );
933
+        $allowed_items      = empty( $subscription_group ) ? array( $this->get_product_id() ) : array_keys( $subscription_group['items'] );
934
+        $invoice_items      = array();
935
+
936
+        foreach ( $invoice->get_items() as $item ) {
937
+            if ( in_array( $item->get_id(), $allowed_items ) ) {
938
+                $invoice_items[] = $item;
939
+            }
940
+        }
941
+
942
+        $invoice->set_items( $invoice_items );
943
+
944
+        if ( ! empty( $subscription_group['fees'] ) ) {
945
+            $invoice->set_fees( $subscription_group['fees'] );
946
+        }
947
+
948
+        // Maybe recalculate discount (Pre-GetPaid Fix).
949
+        $discount = new WPInv_Discount( $invoice->get_discount_code() );
950
+        if ( $discount->exists() && $discount->is_recurring() && 0 == $invoice->get_total_discount() ) {
951
+            $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
952
+        }
953
+
954
+        $invoice->recalculate_total();
955
+        $invoice->set_status( 'wpi-pending' );
956
+        $invoice->save();
957
+
958
+        return $invoice->exists() ? $invoice : false;
959
+    }
960
+
961
+    /**
962
+     * Renews or completes a subscription
963
+     *
964
+     * @since  1.0.0
965
+     * @return int The subscription's id
966
+     */
967
+    public function renew() {
968
+
969
+        // Complete subscription if applicable
970
+        if ( $this->is_last_renewal() ) {
971
+            return $this->complete();
972
+        }
973
+
974
+        // Calculate new expiration
975
+        $frequency      = $this->get_frequency();
976
+        $period         = $this->get_period();
977
+        $new_expiration = strtotime( "+ $frequency $period", $this->get_expiration_time() );
978
+
979
+        $this->set_expiration( date( 'Y-m-d H:i:s', $new_expiration ) );
980
+        $this->set_status( 'active' );
981
+        $this->save();
982
+
983
+        do_action( 'getpaid_subscription_renewed', $this );
984
+
985
+        return $this->get_id();
986
+    }
987
+
988
+    /**
989
+     * Marks a subscription as completed
990
+     *
991
+     * Subscription is completed when the number of payments matches the billing_times field
992
+     *
993
+     * @since  1.0.0
994
+     * @return int|bool Subscription id or false if the subscription is cancelled.
995
+     */
996
+    public function complete() {
997
+
998
+        // Only mark a subscription as complete if it's not already cancelled.
999
+        if ( $this->has_status( 'cancelled' ) ) {
1000
+            return false;
1001
+        }
1002
+
1003
+        $this->set_status( 'completed' );
1004
+        return $this->save();
1005
+
1006
+    }
1007
+
1008
+    /**
1009
+     * Marks a subscription as expired
1010
+     *
1011
+     * @since  1.0.0
1012
+     * @param  bool $check_expiration
1013
+     * @return int|bool Subscription id or false if $check_expiration is true and expiration date is in the future.
1014
+     */
1015
+    public function expire( $check_expiration = false ) {
1016
+
1017
+        if ( $check_expiration && $this->get_expiration_time() > current_time( 'timestamp' ) ) {
1018
+            // Do not mark as expired since real expiration date is in the future
1019
+            return false;
1020
+        }
1021
+
1022
+        $this->set_status( 'expired' );
1023
+        return $this->save();
1024
+
1025
+    }
1026
+
1027
+    /**
1028
+     * Marks a subscription as failing
1029
+     *
1030
+     * @since  2.4.2
1031
+     * @return int Subscription id.
1032
+     */
1033
+    public function failing() {
1034
+        $this->set_status( 'failing' );
1035
+        return $this->save();
1036
+    }
1037 1037
 
1038 1038
     /**
1039 1039
      * Marks a subscription as cancelled
@@ -1042,19 +1042,19 @@  discard block
 block discarded – undo
1042 1042
      * @return int Subscription id.
1043 1043
      */
1044 1044
     public function cancel() {
1045
-		$this->set_status( 'cancelled' );
1046
-		return $this->save();
1045
+        $this->set_status( 'cancelled' );
1046
+        return $this->save();
1047 1047
     }
1048 1048
 
1049
-	/**
1050
-	 * Determines if a subscription can be cancelled both locally and with a payment processor.
1051
-	 *
1052
-	 * @since  1.0.0
1053
-	 * @return bool
1054
-	 */
1055
-	public function can_cancel() {
1056
-		return apply_filters( 'wpinv_subscription_can_cancel', $this->has_status( $this->get_cancellable_statuses() ), $this );
1057
-	}
1049
+    /**
1050
+     * Determines if a subscription can be cancelled both locally and with a payment processor.
1051
+     *
1052
+     * @since  1.0.0
1053
+     * @return bool
1054
+     */
1055
+    public function can_cancel() {
1056
+        return apply_filters( 'wpinv_subscription_can_cancel', $this->has_status( $this->get_cancellable_statuses() ), $this );
1057
+    }
1058 1058
 
1059 1059
     /**
1060 1060
      * Returns an array of subscription statuses that can be cancelled
@@ -1067,109 +1067,109 @@  discard block
 block discarded – undo
1067 1067
         return apply_filters( 'wpinv_recurring_cancellable_statuses', array( 'active', 'trialling', 'failing' ) );
1068 1068
     }
1069 1069
 
1070
-	/**
1071
-	 * Retrieves the URL to cancel subscription
1072
-	 *
1073
-	 * @since  1.0.0
1074
-	 * @return string
1075
-	 */
1076
-	public function get_cancel_url() {
1077
-		$url = getpaid_get_authenticated_action_url( 'subscription_cancel', $this->get_view_url() );
1078
-		return apply_filters( 'wpinv_subscription_cancel_url', $url, $this );
1079
-	}
1080
-
1081
-	/**
1082
-	 * Retrieves the URL to view a subscription
1083
-	 *
1084
-	 * @since  1.0.19
1085
-	 * @return string
1086
-	 */
1087
-	public function get_view_url() {
1088
-
1089
-		$url = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) );
1090
-		$url = add_query_arg( 'subscription', $this->get_id(), $url );
1091
-
1092
-		return apply_filters( 'getpaid_get_subscription_view_url', $url, $this );
1093
-	}
1094
-
1095
-	/**
1096
-	 * Determines if subscription can be manually renewed
1097
-	 *
1098
-	 * This method is filtered by payment gateways in order to return true on subscriptions
1099
-	 * that can be renewed manually
1100
-	 *
1101
-	 * @since  2.5
1102
-	 * @return bool
1103
-	 */
1104
-	public function can_renew() {
1105
-		return apply_filters( 'wpinv_subscription_can_renew', true, $this );
1106
-	}
1107
-
1108
-	/**
1109
-	 * Retrieves the URL to renew a subscription
1110
-	 *
1111
-	 * @since  2.5
1112
-	 * @return string
1113
-	 */
1114
-	public function get_renew_url() {
1115
-		$url = wp_nonce_url(
1070
+    /**
1071
+     * Retrieves the URL to cancel subscription
1072
+     *
1073
+     * @since  1.0.0
1074
+     * @return string
1075
+     */
1076
+    public function get_cancel_url() {
1077
+        $url = getpaid_get_authenticated_action_url( 'subscription_cancel', $this->get_view_url() );
1078
+        return apply_filters( 'wpinv_subscription_cancel_url', $url, $this );
1079
+    }
1080
+
1081
+    /**
1082
+     * Retrieves the URL to view a subscription
1083
+     *
1084
+     * @since  1.0.19
1085
+     * @return string
1086
+     */
1087
+    public function get_view_url() {
1088
+
1089
+        $url = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) );
1090
+        $url = add_query_arg( 'subscription', $this->get_id(), $url );
1091
+
1092
+        return apply_filters( 'getpaid_get_subscription_view_url', $url, $this );
1093
+    }
1094
+
1095
+    /**
1096
+     * Determines if subscription can be manually renewed
1097
+     *
1098
+     * This method is filtered by payment gateways in order to return true on subscriptions
1099
+     * that can be renewed manually
1100
+     *
1101
+     * @since  2.5
1102
+     * @return bool
1103
+     */
1104
+    public function can_renew() {
1105
+        return apply_filters( 'wpinv_subscription_can_renew', true, $this );
1106
+    }
1107
+
1108
+    /**
1109
+     * Retrieves the URL to renew a subscription
1110
+     *
1111
+     * @since  2.5
1112
+     * @return string
1113
+     */
1114
+    public function get_renew_url() {
1115
+        $url = wp_nonce_url(
1116 1116
             add_query_arg(
1117 1117
                 array(
1118
-					'getpaid-action' => 'renew_subscription',
1119
-					'sub_id'         => $this->get_id,
1118
+                    'getpaid-action' => 'renew_subscription',
1119
+                    'sub_id'         => $this->get_id,
1120 1120
                 )
1121 1121
             ),
1122 1122
             'getpaid-nonce'
1123 1123
         );
1124
-		return apply_filters( 'wpinv_subscription_renew_url', $url, $this );
1125
-	}
1126
-
1127
-	/**
1128
-	 * Determines if subscription can have their payment method updated
1129
-	 *
1130
-	 * @since  1.0.0
1131
-	 * @return bool
1132
-	 */
1133
-	public function can_update() {
1134
-		return apply_filters( 'wpinv_subscription_can_update', false, $this );
1135
-	}
1136
-
1137
-	/**
1138
-	 * Retrieves the URL to update subscription
1139
-	 *
1140
-	 * @since  1.0.0
1141
-	 * @return string
1142
-	 */
1143
-	public function get_update_url() {
1144
-		$url = add_query_arg(
1124
+        return apply_filters( 'wpinv_subscription_renew_url', $url, $this );
1125
+    }
1126
+
1127
+    /**
1128
+     * Determines if subscription can have their payment method updated
1129
+     *
1130
+     * @since  1.0.0
1131
+     * @return bool
1132
+     */
1133
+    public function can_update() {
1134
+        return apply_filters( 'wpinv_subscription_can_update', false, $this );
1135
+    }
1136
+
1137
+    /**
1138
+     * Retrieves the URL to update subscription
1139
+     *
1140
+     * @since  1.0.0
1141
+     * @return string
1142
+     */
1143
+    public function get_update_url() {
1144
+        $url = add_query_arg(
1145 1145
             array(
1146
-				'action'          => 'update',
1147
-				'subscription_id' => $this->get_id(),
1146
+                'action'          => 'update',
1147
+                'subscription_id' => $this->get_id(),
1148 1148
             )
1149 1149
         );
1150
-		return apply_filters( 'wpinv_subscription_update_url', $url, $this );
1151
-	}
1152
-
1153
-	/**
1154
-	 * Retrieves the subscription status label
1155
-	 *
1156
-	 * @since  1.0.0
1157
-	 * @return string
1158
-	 */
1159
-	public function get_status_label() {
1160
-		return getpaid_get_subscription_status_label( $this->get_status() );
1161
-	}
1162
-
1163
-	/**
1164
-	 * Retrieves the subscription status class
1165
-	 *
1166
-	 * @since  1.0.19
1167
-	 * @return string
1168
-	 */
1169
-	public function get_status_class() {
1170
-		$statuses = getpaid_get_subscription_status_classes();
1171
-		return isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : 'badge-dark';
1172
-	}
1150
+        return apply_filters( 'wpinv_subscription_update_url', $url, $this );
1151
+    }
1152
+
1153
+    /**
1154
+     * Retrieves the subscription status label
1155
+     *
1156
+     * @since  1.0.0
1157
+     * @return string
1158
+     */
1159
+    public function get_status_label() {
1160
+        return getpaid_get_subscription_status_label( $this->get_status() );
1161
+    }
1162
+
1163
+    /**
1164
+     * Retrieves the subscription status class
1165
+     *
1166
+     * @since  1.0.19
1167
+     * @return string
1168
+     */
1169
+    public function get_status_class() {
1170
+        $statuses = getpaid_get_subscription_status_classes();
1171
+        return isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : 'badge-dark';
1172
+    }
1173 1173
 
1174 1174
     /**
1175 1175
      * Retrieves the subscription status label
@@ -1179,11 +1179,11 @@  discard block
 block discarded – undo
1179 1179
      */
1180 1180
     public function get_status_label_html() {
1181 1181
 
1182
-		$status_label = sanitize_text_field( $this->get_status_label() );
1183
-		$class        = esc_attr( $this->get_status_class() );
1184
-		$status       = sanitize_html_class( $this->get_status() );
1182
+        $status_label = sanitize_text_field( $this->get_status_label() );
1183
+        $class        = esc_attr( $this->get_status_class() );
1184
+        $status       = sanitize_html_class( $this->get_status() );
1185 1185
 
1186
-		return "<span class='bsui'><span class='badge $class $status'>$status_label</span></span>";
1186
+        return "<span class='bsui'><span class='badge $class $status'>$status_label</span></span>";
1187 1187
     }
1188 1188
 
1189 1189
     /**
@@ -1194,75 +1194,75 @@  discard block
 block discarded – undo
1194 1194
      * @return bool
1195 1195
      */
1196 1196
     public function payment_exists( $txn_id = '' ) {
1197
-		$invoice_id = WPInv_Invoice::get_invoice_id_by_field( $txn_id, 'transaction_id' );
1197
+        $invoice_id = WPInv_Invoice::get_invoice_id_by_field( $txn_id, 'transaction_id' );
1198 1198
         return ! empty( $invoice_id );
1199
-	}
1200
-
1201
-	/**
1202
-	 * Handle the status transition.
1203
-	 */
1204
-	protected function status_transition() {
1205
-		$status_transition = $this->status_transition;
1206
-
1207
-		// Reset status transition variable.
1208
-		$this->status_transition = false;
1209
-
1210
-		if ( $status_transition ) {
1211
-			try {
1212
-
1213
-				// Fire a hook for the status change.
1214
-				do_action( 'wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition );
1215
-				do_action( 'getpaid_subscription_' . $status_transition['to'], $this, $status_transition );
1216
-
1217
-				if ( ! empty( $status_transition['from'] ) ) {
1218
-
1219
-					/* translators: 1: old subscription status 2: new subscription status */
1220
-					$transition_note = sprintf( __( 'Subscription status changed from %1$s to %2$s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['from'] ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1221
-
1222
-					// Note the transition occurred.
1223
-					$this->get_parent_payment()->add_note( $transition_note, false, false, true );
1224
-
1225
-					// Fire another hook.
1226
-					do_action( 'getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this );
1227
-					do_action( 'getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to'] );
1228
-
1229
-				} else {
1230
-					/* translators: %s: new invoice status */
1231
-					$transition_note = sprintf( __( 'Subscription status set to %s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1232
-
1233
-					// Note the transition occurred.
1234
-					$this->get_parent_payment()->add_note( $transition_note, false, false, true );
1235
-
1236
-				}
1237
-			} catch ( Exception $e ) {
1238
-				$this->get_parent_payment()->add_note( __( 'Error during subscription status transition.', 'invoicing' ) . ' ' . $e->getMessage() );
1239
-			}
1240
-		}
1241
-
1242
-	}
1243
-
1244
-	/**
1245
-	 * Save data to the database.
1246
-	 *
1247
-	 * @since 1.0.19
1248
-	 * @return int subscription ID
1249
-	 */
1250
-	public function save() {
1251
-		parent::save();
1252
-		$this->status_transition();
1253
-		return $this->get_id();
1254
-	}
1255
-
1256
-	/**
1257
-	 * Activates a subscription.
1258
-	 *
1259
-	 * @since 1.0.19
1260
-	 * @return int subscription ID
1261
-	 */
1262
-	public function activate() {
1263
-		$status = 'trialling' === $this->get_status() ? 'trialling' : 'active';
1264
-		$this->set_status( $status );
1265
-		return $this->save();
1266
-	}
1199
+    }
1200
+
1201
+    /**
1202
+     * Handle the status transition.
1203
+     */
1204
+    protected function status_transition() {
1205
+        $status_transition = $this->status_transition;
1206
+
1207
+        // Reset status transition variable.
1208
+        $this->status_transition = false;
1209
+
1210
+        if ( $status_transition ) {
1211
+            try {
1212
+
1213
+                // Fire a hook for the status change.
1214
+                do_action( 'wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition );
1215
+                do_action( 'getpaid_subscription_' . $status_transition['to'], $this, $status_transition );
1216
+
1217
+                if ( ! empty( $status_transition['from'] ) ) {
1218
+
1219
+                    /* translators: 1: old subscription status 2: new subscription status */
1220
+                    $transition_note = sprintf( __( 'Subscription status changed from %1$s to %2$s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['from'] ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1221
+
1222
+                    // Note the transition occurred.
1223
+                    $this->get_parent_payment()->add_note( $transition_note, false, false, true );
1224
+
1225
+                    // Fire another hook.
1226
+                    do_action( 'getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this );
1227
+                    do_action( 'getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to'] );
1228
+
1229
+                } else {
1230
+                    /* translators: %s: new invoice status */
1231
+                    $transition_note = sprintf( __( 'Subscription status set to %s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1232
+
1233
+                    // Note the transition occurred.
1234
+                    $this->get_parent_payment()->add_note( $transition_note, false, false, true );
1235
+
1236
+                }
1237
+            } catch ( Exception $e ) {
1238
+                $this->get_parent_payment()->add_note( __( 'Error during subscription status transition.', 'invoicing' ) . ' ' . $e->getMessage() );
1239
+            }
1240
+        }
1241
+
1242
+    }
1243
+
1244
+    /**
1245
+     * Save data to the database.
1246
+     *
1247
+     * @since 1.0.19
1248
+     * @return int subscription ID
1249
+     */
1250
+    public function save() {
1251
+        parent::save();
1252
+        $this->status_transition();
1253
+        return $this->get_id();
1254
+    }
1255
+
1256
+    /**
1257
+     * Activates a subscription.
1258
+     *
1259
+     * @since 1.0.19
1260
+     * @return int subscription ID
1261
+     */
1262
+    public function activate() {
1263
+        $status = 'trialling' === $this->get_status() ? 'trialling' : 'active';
1264
+        $this->set_status( $status );
1265
+        return $this->save();
1266
+    }
1267 1267
 
1268 1268
 }
Please login to merge, or discard this patch.
Spacing   +228 added lines, -228 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
  * The Subscription Class
@@ -68,27 +68,27 @@  discard block
 block discarded – undo
68 68
 	 * @param  int|string|object|WPInv_Subscription $subscription Subscription id, profile_id, or object to read.
69 69
 	 * @param  bool $deprecated
70 70
 	 */
71
-	function __construct( $subscription = 0, $deprecated = false ) {
71
+	function __construct($subscription = 0, $deprecated = false) {
72 72
 
73
-		parent::__construct( $subscription );
73
+		parent::__construct($subscription);
74 74
 
75
-		if ( ! $deprecated && ! empty( $subscription ) && is_numeric( $subscription ) ) {
76
-			$this->set_id( $subscription );
77
-		} elseif ( $subscription instanceof self ) {
78
-			$this->set_id( $subscription->get_id() );
79
-		} elseif ( $deprecated && $subscription_id = self::get_subscription_id_by_field( $subscription, 'profile_id' ) ) {
80
-			$this->set_id( $subscription_id );
81
-		} elseif ( ! empty( $subscription->id ) ) {
82
-			$this->set_id( $subscription->id );
75
+		if (!$deprecated && !empty($subscription) && is_numeric($subscription)) {
76
+			$this->set_id($subscription);
77
+		} elseif ($subscription instanceof self) {
78
+			$this->set_id($subscription->get_id());
79
+		} elseif ($deprecated && $subscription_id = self::get_subscription_id_by_field($subscription, 'profile_id')) {
80
+			$this->set_id($subscription_id);
81
+		} elseif (!empty($subscription->id)) {
82
+			$this->set_id($subscription->id);
83 83
 		} else {
84
-			$this->set_object_read( true );
84
+			$this->set_object_read(true);
85 85
 		}
86 86
 
87 87
 		// Load the datastore.
88
-		$this->data_store = GetPaid_Data_Store::load( $this->data_store_name );
88
+		$this->data_store = GetPaid_Data_Store::load($this->data_store_name);
89 89
 
90
-		if ( $this->get_id() > 0 ) {
91
-			$this->data_store->read( $this );
90
+		if ($this->get_id() > 0) {
91
+			$this->data_store->read($this);
92 92
 		}
93 93
 
94 94
 	}
@@ -103,17 +103,17 @@  discard block
 block discarded – undo
103 103
 	 * @since 1.0.19
104 104
 	 * @return int
105 105
 	 */
106
-	public static function get_subscription_id_by_field( $value, $field = 'profile_id' ) {
106
+	public static function get_subscription_id_by_field($value, $field = 'profile_id') {
107 107
         global $wpdb;
108 108
 
109 109
 		// Trim the value.
110
-		$value = trim( $value );
110
+		$value = trim($value);
111 111
 
112
-		if ( empty( $value ) ) {
112
+		if (empty($value)) {
113 113
 			return 0;
114 114
 		}
115 115
 
116
-		if ( 'invoice_id' == $field ) {
116
+		if ('invoice_id' == $field) {
117 117
 			$field = 'parent_payment_id';
118 118
 		}
119 119
 
@@ -125,28 +125,28 @@  discard block
 block discarded – undo
125 125
 		);
126 126
 
127 127
 		// Ensure a field has been passed.
128
-		if ( empty( $field ) || ! in_array( $field, $fields ) ) {
128
+		if (empty($field) || !in_array($field, $fields)) {
129 129
 			return 0;
130 130
 		}
131 131
 
132 132
 		// Maybe retrieve from the cache.
133
-		$subscription_id   = wp_cache_get( $value, "getpaid_subscription_{$field}s_to_subscription_ids" );
134
-		if ( ! empty( $subscription_id ) ) {
133
+		$subscription_id = wp_cache_get($value, "getpaid_subscription_{$field}s_to_subscription_ids");
134
+		if (!empty($subscription_id)) {
135 135
 			return $subscription_id;
136 136
 		}
137 137
 
138 138
         // Fetch from the db.
139 139
         $table            = $wpdb->prefix . 'wpinv_subscriptions';
140 140
         $subscription_id  = (int) $wpdb->get_var(
141
-            $wpdb->prepare( "SELECT `id` FROM $table WHERE `$field`=%s LIMIT 1", $value )
141
+            $wpdb->prepare("SELECT `id` FROM $table WHERE `$field`=%s LIMIT 1", $value)
142 142
         );
143 143
 
144
-		if ( empty( $subscription_id ) ) {
144
+		if (empty($subscription_id)) {
145 145
 			return 0;
146 146
 		}
147 147
 
148 148
 		// Update the cache with our data.
149
-		wp_cache_set( $value, $subscription_id, "getpaid_subscription_{$field}s_to_subscription_ids" );
149
+		wp_cache_set($value, $subscription_id, "getpaid_subscription_{$field}s_to_subscription_ids");
150 150
 
151 151
 		return $subscription_id;
152 152
 	}
@@ -155,17 +155,17 @@  discard block
 block discarded – undo
155 155
      * Clears the subscription's cache.
156 156
      */
157 157
     public function clear_cache() {
158
-		wp_cache_delete( $this->get_parent_payment_id(), 'getpaid_subscription_parent_payment_ids_to_subscription_ids' );
159
-		wp_cache_delete( $this->get_transaction_id(), 'getpaid_subscription_transaction_ids_to_subscription_ids' );
160
-		wp_cache_delete( $this->get_profile_id(), 'getpaid_subscription_profile_ids_to_subscription_ids' );
161
-		wp_cache_delete( $this->get_id(), 'getpaid_subscriptions' );
158
+		wp_cache_delete($this->get_parent_payment_id(), 'getpaid_subscription_parent_payment_ids_to_subscription_ids');
159
+		wp_cache_delete($this->get_transaction_id(), 'getpaid_subscription_transaction_ids_to_subscription_ids');
160
+		wp_cache_delete($this->get_profile_id(), 'getpaid_subscription_profile_ids_to_subscription_ids');
161
+		wp_cache_delete($this->get_id(), 'getpaid_subscriptions');
162 162
 	}
163 163
 
164 164
 	/**
165 165
      * Checks if a subscription key is set.
166 166
      */
167
-    public function _isset( $key ) {
168
-        return isset( $this->data[ $key ] ) || method_exists( $this, "get_$key" );
167
+    public function _isset($key) {
168
+        return isset($this->data[$key]) || method_exists($this, "get_$key");
169 169
 	}
170 170
 
171 171
 	/*
@@ -190,8 +190,8 @@  discard block
 block discarded – undo
190 190
 	 * @param  string $context View or edit context.
191 191
 	 * @return int
192 192
 	 */
193
-	public function get_customer_id( $context = 'view' ) {
194
-		return (int) $this->get_prop( 'customer_id', $context );
193
+	public function get_customer_id($context = 'view') {
194
+		return (int) $this->get_prop('customer_id', $context);
195 195
 	}
196 196
 
197 197
 	/**
@@ -201,8 +201,8 @@  discard block
 block discarded – undo
201 201
 	 * @param  string $context View or edit context.
202 202
 	 * @return WP_User|false WP_User object on success, false on failure.
203 203
 	 */
204
-	public function get_customer( $context = 'view' ) {
205
-		return get_userdata( $this->get_customer_id( $context ) );
204
+	public function get_customer($context = 'view') {
205
+		return get_userdata($this->get_customer_id($context));
206 206
 	}
207 207
 
208 208
 	/**
@@ -212,8 +212,8 @@  discard block
 block discarded – undo
212 212
 	 * @param  string $context View or edit context.
213 213
 	 * @return int
214 214
 	 */
215
-	public function get_parent_invoice_id( $context = 'view' ) {
216
-		return (int) $this->get_prop( 'parent_payment_id', $context );
215
+	public function get_parent_invoice_id($context = 'view') {
216
+		return (int) $this->get_prop('parent_payment_id', $context);
217 217
 	}
218 218
 
219 219
 	/**
@@ -223,8 +223,8 @@  discard block
 block discarded – undo
223 223
 	 * @param  string $context View or edit context.
224 224
 	 * @return int
225 225
 	 */
226
-    public function get_parent_payment_id( $context = 'view' ) {
227
-        return $this->get_parent_invoice_id( $context );
226
+    public function get_parent_payment_id($context = 'view') {
227
+        return $this->get_parent_invoice_id($context);
228 228
 	}
229 229
 
230 230
 	/**
@@ -233,8 +233,8 @@  discard block
 block discarded – undo
233 233
      * @since  1.0.0
234 234
      * @return int
235 235
      */
236
-    public function get_original_payment_id( $context = 'view' ) {
237
-        return $this->get_parent_invoice_id( $context );
236
+    public function get_original_payment_id($context = 'view') {
237
+        return $this->get_parent_invoice_id($context);
238 238
     }
239 239
 
240 240
 	/**
@@ -244,8 +244,8 @@  discard block
 block discarded – undo
244 244
 	 * @param  string $context View or edit context.
245 245
 	 * @return WPInv_Invoice
246 246
 	 */
247
-	public function get_parent_invoice( $context = 'view' ) {
248
-		return new WPInv_Invoice( $this->get_parent_invoice_id( $context ) );
247
+	public function get_parent_invoice($context = 'view') {
248
+		return new WPInv_Invoice($this->get_parent_invoice_id($context));
249 249
 	}
250 250
 
251 251
 	/**
@@ -255,8 +255,8 @@  discard block
 block discarded – undo
255 255
 	 * @param  string $context View or edit context.
256 256
 	 * @return WPInv_Invoice
257 257
 	 */
258
-    public function get_parent_payment( $context = 'view' ) {
259
-        return $this->get_parent_invoice( $context );
258
+    public function get_parent_payment($context = 'view') {
259
+        return $this->get_parent_invoice($context);
260 260
 	}
261 261
 
262 262
 	/**
@@ -266,8 +266,8 @@  discard block
 block discarded – undo
266 266
 	 * @param  string $context View or edit context.
267 267
 	 * @return int
268 268
 	 */
269
-	public function get_product_id( $context = 'view' ) {
270
-		return (int) $this->get_prop( 'product_id', $context );
269
+	public function get_product_id($context = 'view') {
270
+		return (int) $this->get_prop('product_id', $context);
271 271
 	}
272 272
 
273 273
 	/**
@@ -277,8 +277,8 @@  discard block
 block discarded – undo
277 277
 	 * @param  string $context View or edit context.
278 278
 	 * @return WPInv_Item
279 279
 	 */
280
-	public function get_product( $context = 'view' ) {
281
-		return new WPInv_Item( $this->get_product_id( $context ) );
280
+	public function get_product($context = 'view') {
281
+		return new WPInv_Item($this->get_product_id($context));
282 282
 	}
283 283
 
284 284
 	/**
@@ -290,8 +290,8 @@  discard block
 block discarded – undo
290 290
 	 * @param  string $context View or edit context.
291 291
 	 * @return string
292 292
 	 */
293
-	public function get_gateway( $context = 'view' ) {
294
-		return $this->get_parent_invoice( $context )->get_gateway();
293
+	public function get_gateway($context = 'view') {
294
+		return $this->get_parent_invoice($context)->get_gateway();
295 295
 	}
296 296
 
297 297
 	/**
@@ -301,8 +301,8 @@  discard block
 block discarded – undo
301 301
 	 * @param  string $context View or edit context.
302 302
 	 * @return string
303 303
 	 */
304
-	public function get_period( $context = 'view' ) {
305
-		return $this->get_prop( 'period', $context );
304
+	public function get_period($context = 'view') {
305
+		return $this->get_prop('period', $context);
306 306
 	}
307 307
 
308 308
 	/**
@@ -312,8 +312,8 @@  discard block
 block discarded – undo
312 312
 	 * @param  string $context View or edit context.
313 313
 	 * @return int
314 314
 	 */
315
-	public function get_frequency( $context = 'view' ) {
316
-		return (int) $this->get_prop( 'frequency', $context );
315
+	public function get_frequency($context = 'view') {
316
+		return (int) $this->get_prop('frequency', $context);
317 317
 	}
318 318
 
319 319
 	/**
@@ -323,8 +323,8 @@  discard block
 block discarded – undo
323 323
 	 * @param  string $context View or edit context.
324 324
 	 * @return float
325 325
 	 */
326
-	public function get_initial_amount( $context = 'view' ) {
327
-		return (float) wpinv_sanitize_amount( $this->get_prop( 'initial_amount', $context ) );
326
+	public function get_initial_amount($context = 'view') {
327
+		return (float) wpinv_sanitize_amount($this->get_prop('initial_amount', $context));
328 328
 	}
329 329
 
330 330
 	/**
@@ -334,8 +334,8 @@  discard block
 block discarded – undo
334 334
 	 * @param  string $context View or edit context.
335 335
 	 * @return float
336 336
 	 */
337
-	public function get_recurring_amount( $context = 'view' ) {
338
-		return (float) wpinv_sanitize_amount( $this->get_prop( 'recurring_amount', $context ) );
337
+	public function get_recurring_amount($context = 'view') {
338
+		return (float) wpinv_sanitize_amount($this->get_prop('recurring_amount', $context));
339 339
 	}
340 340
 
341 341
 	/**
@@ -345,8 +345,8 @@  discard block
 block discarded – undo
345 345
 	 * @param  string $context View or edit context.
346 346
 	 * @return int
347 347
 	 */
348
-	public function get_bill_times( $context = 'view' ) {
349
-		return (int) $this->get_prop( 'bill_times', $context );
348
+	public function get_bill_times($context = 'view') {
349
+		return (int) $this->get_prop('bill_times', $context);
350 350
 	}
351 351
 
352 352
 	/**
@@ -356,8 +356,8 @@  discard block
 block discarded – undo
356 356
 	 * @param  string $context View or edit context.
357 357
 	 * @return string
358 358
 	 */
359
-	public function get_transaction_id( $context = 'view' ) {
360
-		return $this->get_prop( 'transaction_id', $context );
359
+	public function get_transaction_id($context = 'view') {
360
+		return $this->get_prop('transaction_id', $context);
361 361
 	}
362 362
 
363 363
 	/**
@@ -367,8 +367,8 @@  discard block
 block discarded – undo
367 367
 	 * @param  string $context View or edit context.
368 368
 	 * @return string
369 369
 	 */
370
-	public function get_created( $context = 'view' ) {
371
-		return $this->get_prop( 'created', $context );
370
+	public function get_created($context = 'view') {
371
+		return $this->get_prop('created', $context);
372 372
 	}
373 373
 
374 374
 	/**
@@ -378,8 +378,8 @@  discard block
 block discarded – undo
378 378
 	 * @param  string $context View or edit context.
379 379
 	 * @return string
380 380
 	 */
381
-	public function get_date_created( $context = 'view' ) {
382
-		return $this->get_created( $context );
381
+	public function get_date_created($context = 'view') {
382
+		return $this->get_created($context);
383 383
 	}
384 384
 
385 385
 	/**
@@ -390,7 +390,7 @@  discard block
 block discarded – undo
390 390
 	 */
391 391
 	public function get_time_created() {
392 392
 		$created = $this->get_date_created();
393
-		return empty( $created ) ? current_time( 'timestamp' ) : strtotime( $created, current_time( 'timestamp' ) );
393
+		return empty($created) ? current_time('timestamp') : strtotime($created, current_time('timestamp'));
394 394
 	}
395 395
 
396 396
 	/**
@@ -400,11 +400,11 @@  discard block
 block discarded – undo
400 400
 	 * @param  string $context View or edit context.
401 401
 	 * @return string
402 402
 	 */
403
-	public function get_date_created_gmt( $context = 'view' ) {
404
-        $date = $this->get_date_created( $context );
403
+	public function get_date_created_gmt($context = 'view') {
404
+        $date = $this->get_date_created($context);
405 405
 
406
-        if ( $date ) {
407
-            $date = get_gmt_from_date( $date );
406
+        if ($date) {
407
+            $date = get_gmt_from_date($date);
408 408
         }
409 409
 		return $date;
410 410
 	}
@@ -416,8 +416,8 @@  discard block
 block discarded – undo
416 416
 	 * @param  string $context View or edit context.
417 417
 	 * @return string
418 418
 	 */
419
-	public function get_next_renewal_date( $context = 'view' ) {
420
-		return $this->get_prop( 'expiration', $context );
419
+	public function get_next_renewal_date($context = 'view') {
420
+		return $this->get_prop('expiration', $context);
421 421
 	}
422 422
 
423 423
 	/**
@@ -427,8 +427,8 @@  discard block
 block discarded – undo
427 427
 	 * @param  string $context View or edit context.
428 428
 	 * @return string
429 429
 	 */
430
-	public function get_expiration( $context = 'view' ) {
431
-		return $this->get_next_renewal_date( $context );
430
+	public function get_expiration($context = 'view') {
431
+		return $this->get_next_renewal_date($context);
432 432
 	}
433 433
 
434 434
 	/**
@@ -440,12 +440,12 @@  discard block
 block discarded – undo
440 440
 	public function get_expiration_time() {
441 441
 		$expiration = $this->get_expiration();
442 442
 
443
-		if ( empty( $expiration ) || '0000-00-00 00:00:00' == $expiration ) {
444
-			return current_time( 'timestamp' );
443
+		if (empty($expiration) || '0000-00-00 00:00:00' == $expiration) {
444
+			return current_time('timestamp');
445 445
 		}
446 446
 
447
-		$expiration = strtotime( $expiration, current_time( 'timestamp' ) );
448
-		return $expiration < current_time( 'timestamp' ) ? current_time( 'timestamp' ) : $expiration;
447
+		$expiration = strtotime($expiration, current_time('timestamp'));
448
+		return $expiration < current_time('timestamp') ? current_time('timestamp') : $expiration;
449 449
 	}
450 450
 
451 451
 	/**
@@ -455,11 +455,11 @@  discard block
 block discarded – undo
455 455
 	 * @param  string $context View or edit context.
456 456
 	 * @return string
457 457
 	 */
458
-	public function get_next_renewal_date_gmt( $context = 'view' ) {
459
-        $date = $this->get_next_renewal_date( $context );
458
+	public function get_next_renewal_date_gmt($context = 'view') {
459
+        $date = $this->get_next_renewal_date($context);
460 460
 
461
-        if ( $date ) {
462
-            $date = get_gmt_from_date( $date );
461
+        if ($date) {
462
+            $date = get_gmt_from_date($date);
463 463
         }
464 464
 		return $date;
465 465
 	}
@@ -471,8 +471,8 @@  discard block
 block discarded – undo
471 471
 	 * @param  string $context View or edit context.
472 472
 	 * @return string
473 473
 	 */
474
-	public function get_trial_period( $context = 'view' ) {
475
-		return $this->get_prop( 'trial_period', $context );
474
+	public function get_trial_period($context = 'view') {
475
+		return $this->get_prop('trial_period', $context);
476 476
 	}
477 477
 
478 478
 	/**
@@ -482,8 +482,8 @@  discard block
 block discarded – undo
482 482
 	 * @param  string $context View or edit context.
483 483
 	 * @return string
484 484
 	 */
485
-	public function get_status( $context = 'view' ) {
486
-		return $this->get_prop( 'status', $context );
485
+	public function get_status($context = 'view') {
486
+		return $this->get_prop('status', $context);
487 487
 	}
488 488
 
489 489
 	/**
@@ -493,8 +493,8 @@  discard block
 block discarded – undo
493 493
 	 * @param  string $context View or edit context.
494 494
 	 * @return string
495 495
 	 */
496
-	public function get_profile_id( $context = 'view' ) {
497
-		return $this->get_prop( 'profile_id', $context );
496
+	public function get_profile_id($context = 'view') {
497
+		return $this->get_prop('profile_id', $context);
498 498
 	}
499 499
 
500 500
 	/*
@@ -509,8 +509,8 @@  discard block
 block discarded – undo
509 509
 	 * @since 1.0.19
510 510
 	 * @param  int $value The customer's id.
511 511
 	 */
512
-	public function set_customer_id( $value ) {
513
-		$this->set_prop( 'customer_id', (int) $value );
512
+	public function set_customer_id($value) {
513
+		$this->set_prop('customer_id', (int) $value);
514 514
 	}
515 515
 
516 516
 	/**
@@ -519,8 +519,8 @@  discard block
 block discarded – undo
519 519
 	 * @since 1.0.19
520 520
 	 * @param  int $value The parent invoice id.
521 521
 	 */
522
-	public function set_parent_invoice_id( $value ) {
523
-		$this->set_prop( 'parent_payment_id', (int) $value );
522
+	public function set_parent_invoice_id($value) {
523
+		$this->set_prop('parent_payment_id', (int) $value);
524 524
 	}
525 525
 
526 526
 	/**
@@ -529,8 +529,8 @@  discard block
 block discarded – undo
529 529
 	 * @since 1.0.19
530 530
 	 * @param  int $value The parent invoice id.
531 531
 	 */
532
-    public function set_parent_payment_id( $value ) {
533
-        $this->set_parent_invoice_id( $value );
532
+    public function set_parent_payment_id($value) {
533
+        $this->set_parent_invoice_id($value);
534 534
 	}
535 535
 
536 536
 	/**
@@ -539,8 +539,8 @@  discard block
 block discarded – undo
539 539
      * @since 1.0.19
540 540
 	 * @param  int $value The parent invoice id.
541 541
      */
542
-    public function set_original_payment_id( $value ) {
543
-        $this->set_parent_invoice_id( $value );
542
+    public function set_original_payment_id($value) {
543
+        $this->set_parent_invoice_id($value);
544 544
 	}
545 545
 
546 546
 	/**
@@ -549,8 +549,8 @@  discard block
 block discarded – undo
549 549
 	 * @since 1.0.19
550 550
 	 * @param  int $value The subscription product id.
551 551
 	 */
552
-	public function set_product_id( $value ) {
553
-		$this->set_prop( 'product_id', (int) $value );
552
+	public function set_product_id($value) {
553
+		$this->set_prop('product_id', (int) $value);
554 554
 	}
555 555
 
556 556
 	/**
@@ -559,8 +559,8 @@  discard block
 block discarded – undo
559 559
 	 * @since 1.0.19
560 560
 	 * @param  string $value The renewal period.
561 561
 	 */
562
-	public function set_period( $value ) {
563
-		$this->set_prop( 'period', $value );
562
+	public function set_period($value) {
563
+		$this->set_prop('period', $value);
564 564
 	}
565 565
 
566 566
 	/**
@@ -569,9 +569,9 @@  discard block
 block discarded – undo
569 569
 	 * @since 1.0.19
570 570
 	 * @param  int $value The subscription frequency.
571 571
 	 */
572
-	public function set_frequency( $value ) {
573
-		$value = empty( $value ) ? 1 : (int) $value;
574
-		$this->set_prop( 'frequency', absint( $value ) );
572
+	public function set_frequency($value) {
573
+		$value = empty($value) ? 1 : (int) $value;
574
+		$this->set_prop('frequency', absint($value));
575 575
 	}
576 576
 
577 577
 	/**
@@ -580,8 +580,8 @@  discard block
 block discarded – undo
580 580
 	 * @since 1.0.19
581 581
 	 * @param  float $value The initial subcription amount.
582 582
 	 */
583
-	public function set_initial_amount( $value ) {
584
-		$this->set_prop( 'initial_amount', wpinv_sanitize_amount( $value ) );
583
+	public function set_initial_amount($value) {
584
+		$this->set_prop('initial_amount', wpinv_sanitize_amount($value));
585 585
 	}
586 586
 
587 587
 	/**
@@ -590,8 +590,8 @@  discard block
 block discarded – undo
590 590
 	 * @since 1.0.19
591 591
 	 * @param  float $value The recurring subcription amount.
592 592
 	 */
593
-	public function set_recurring_amount( $value ) {
594
-		$this->set_prop( 'recurring_amount', wpinv_sanitize_amount( $value ) );
593
+	public function set_recurring_amount($value) {
594
+		$this->set_prop('recurring_amount', wpinv_sanitize_amount($value));
595 595
 	}
596 596
 
597 597
 	/**
@@ -600,8 +600,8 @@  discard block
 block discarded – undo
600 600
 	 * @since 1.0.19
601 601
 	 * @param  int $value Bill times.
602 602
 	 */
603
-	public function set_bill_times( $value ) {
604
-		$this->set_prop( 'bill_times', (int) $value );
603
+	public function set_bill_times($value) {
604
+		$this->set_prop('bill_times', (int) $value);
605 605
 	}
606 606
 
607 607
 	/**
@@ -610,8 +610,8 @@  discard block
 block discarded – undo
610 610
 	 * @since 1.0.19
611 611
 	 * @param string $value Bill times.
612 612
 	 */
613
-	public function set_transaction_id( $value ) {
614
-		$this->set_prop( 'transaction_id', sanitize_text_field( $value ) );
613
+	public function set_transaction_id($value) {
614
+		$this->set_prop('transaction_id', sanitize_text_field($value));
615 615
 	}
616 616
 
617 617
 	/**
@@ -620,15 +620,15 @@  discard block
 block discarded – undo
620 620
 	 * @since 1.0.19
621 621
 	 * @param string $value strtotime compliant date.
622 622
 	 */
623
-	public function set_created( $value ) {
624
-        $date = strtotime( $value );
623
+	public function set_created($value) {
624
+        $date = strtotime($value);
625 625
 
626
-        if ( $date && $value !== '0000-00-00 00:00:00' ) {
627
-            $this->set_prop( 'created', date( 'Y-m-d H:i:s', $date ) );
626
+        if ($date && $value !== '0000-00-00 00:00:00') {
627
+            $this->set_prop('created', date('Y-m-d H:i:s', $date));
628 628
             return;
629 629
         }
630 630
 
631
-		$this->set_prop( 'created', '' );
631
+		$this->set_prop('created', '');
632 632
 
633 633
 	}
634 634
 
@@ -638,8 +638,8 @@  discard block
 block discarded – undo
638 638
 	 * @since 1.0.19
639 639
 	 * @param string $value strtotime compliant date.
640 640
 	 */
641
-	public function set_date_created( $value ) {
642
-		$this->set_created( $value );
641
+	public function set_date_created($value) {
642
+		$this->set_created($value);
643 643
     }
644 644
 
645 645
 	/**
@@ -648,15 +648,15 @@  discard block
 block discarded – undo
648 648
 	 * @since 1.0.19
649 649
 	 * @param string $value strtotime compliant date.
650 650
 	 */
651
-	public function set_next_renewal_date( $value ) {
652
-		$date = strtotime( $value );
651
+	public function set_next_renewal_date($value) {
652
+		$date = strtotime($value);
653 653
 
654
-        if ( $date && $value !== '0000-00-00 00:00:00' ) {
655
-            $this->set_prop( 'expiration', date( 'Y-m-d H:i:s', $date ) );
654
+        if ($date && $value !== '0000-00-00 00:00:00') {
655
+            $this->set_prop('expiration', date('Y-m-d H:i:s', $date));
656 656
             return;
657 657
 		}
658 658
 
659
-		$this->set_prop( 'expiration', '' );
659
+		$this->set_prop('expiration', '');
660 660
 
661 661
 	}
662 662
 
@@ -666,8 +666,8 @@  discard block
 block discarded – undo
666 666
 	 * @since 1.0.19
667 667
 	 * @param string $value strtotime compliant date.
668 668
 	 */
669
-	public function set_expiration( $value ) {
670
-		$this->set_next_renewal_date( $value );
669
+	public function set_expiration($value) {
670
+		$this->set_next_renewal_date($value);
671 671
     }
672 672
 
673 673
 	/**
@@ -676,8 +676,8 @@  discard block
 block discarded – undo
676 676
 	 * @since 1.0.19
677 677
 	 * @param string $value trial period e.g 1 year.
678 678
 	 */
679
-	public function set_trial_period( $value ) {
680
-		$this->set_prop( 'trial_period', $value );
679
+	public function set_trial_period($value) {
680
+		$this->set_prop('trial_period', $value);
681 681
 	}
682 682
 
683 683
 	/**
@@ -686,22 +686,22 @@  discard block
 block discarded – undo
686 686
 	 * @since 1.0.19
687 687
 	 * @param string $new_status    New subscription status.
688 688
 	 */
689
-	public function set_status( $new_status ) {
689
+	public function set_status($new_status) {
690 690
 
691 691
 		// Abort if this is not a valid status;
692
-		if ( ! array_key_exists( $new_status, getpaid_get_subscription_statuses() ) ) {
692
+		if (!array_key_exists($new_status, getpaid_get_subscription_statuses())) {
693 693
 			return;
694 694
 		}
695 695
 
696
-		$old_status = ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $this->get_status();
697
-		if ( true === $this->object_read && $old_status !== $new_status ) {
696
+		$old_status = !empty($this->status_transition['from']) ? $this->status_transition['from'] : $this->get_status();
697
+		if (true === $this->object_read && $old_status !== $new_status) {
698 698
 			$this->status_transition = array(
699 699
 				'from' => $old_status,
700 700
 				'to'   => $new_status,
701 701
 			);
702 702
 		}
703 703
 
704
-		$this->set_prop( 'status', $new_status );
704
+		$this->set_prop('status', $new_status);
705 705
 	}
706 706
 
707 707
 	/**
@@ -710,8 +710,8 @@  discard block
 block discarded – undo
710 710
 	 * @since 1.0.19
711 711
 	 * @param  string $value the remote profile id.
712 712
 	 */
713
-	public function set_profile_id( $value ) {
714
-		$this->set_prop( 'profile_id', sanitize_text_field( $value ) );
713
+	public function set_profile_id($value) {
714
+		$this->set_prop('profile_id', sanitize_text_field($value));
715 715
 	}
716 716
 
717 717
 	/*
@@ -729,8 +729,8 @@  discard block
 block discarded – undo
729 729
 	 * @param string|array String or array of strings to check for.
730 730
 	 * @return bool
731 731
      */
732
-    public function has_status( $status ) {
733
-        return in_array( $this->get_status(), wpinv_clean( wpinv_parse_list( $status ) ) );
732
+    public function has_status($status) {
733
+        return in_array($this->get_status(), wpinv_clean(wpinv_parse_list($status)));
734 734
 	}
735 735
 
736 736
 	/**
@@ -740,7 +740,7 @@  discard block
 block discarded – undo
740 740
      */
741 741
     public function has_trial_period() {
742 742
 		$period = $this->get_trial_period();
743
-        return ! empty( $period );
743
+        return !empty($period);
744 744
 	}
745 745
 
746 746
 	/**
@@ -749,7 +749,7 @@  discard block
 block discarded – undo
749 749
 	 * @return bool
750 750
 	 */
751 751
 	public function is_active() {
752
-		return $this->has_status( 'active trialling' ) && ! $this->is_expired();
752
+		return $this->has_status('active trialling') && !$this->is_expired();
753 753
 	}
754 754
 
755 755
 	/**
@@ -758,7 +758,7 @@  discard block
 block discarded – undo
758 758
 	 * @return bool
759 759
 	 */
760 760
 	public function is_expired() {
761
-		return $this->has_status( 'expired' ) || ( $this->has_status( 'active cancelled trialling' ) && $this->get_expiration_time() < current_time( 'timestamp' ) );
761
+		return $this->has_status('expired') || ($this->has_status('active cancelled trialling') && $this->get_expiration_time() < current_time('timestamp'));
762 762
 	}
763 763
 
764 764
 	/**
@@ -768,7 +768,7 @@  discard block
 block discarded – undo
768 768
 	 */
769 769
 	public function is_last_renewal() {
770 770
 		$max_bills = $this->get_bill_times();
771
-		return ! empty( $max_bills ) && $max_bills <= $this->get_times_billed();
771
+		return !empty($max_bills) && $max_bills <= $this->get_times_billed();
772 772
 	}
773 773
 
774 774
 	/*
@@ -783,11 +783,11 @@  discard block
 block discarded – undo
783 783
 	/**
784 784
 	 * Backwards compatibilty.
785 785
 	 */
786
-	public function create( $data = array() ) {
786
+	public function create($data = array()) {
787 787
 
788 788
 		// Set the properties.
789
-		if ( is_array( $data ) ) {
790
-			$this->set_props( $data );
789
+		if (is_array($data)) {
790
+			$this->set_props($data);
791 791
 		}
792 792
 
793 793
 		// Save the item.
@@ -798,8 +798,8 @@  discard block
 block discarded – undo
798 798
 	/**
799 799
 	 * Backwards compatibilty.
800 800
 	 */
801
-	public function update( $args = array() ) {
802
-		return $this->create( $args );
801
+	public function update($args = array()) {
802
+		return $this->create($args);
803 803
 	}
804 804
 
805 805
     /**
@@ -808,12 +808,12 @@  discard block
 block discarded – undo
808 808
      * @since  1.0.0
809 809
      * @return WP_Post[]
810 810
      */
811
-    public function get_child_payments( $hide_pending = true ) {
811
+    public function get_child_payments($hide_pending = true) {
812 812
 
813
-		$statuses = array( 'publish', 'wpi-processing', 'wpi-renewal' );
813
+		$statuses = array('publish', 'wpi-processing', 'wpi-renewal');
814 814
 
815
-		if ( ! $hide_pending ) {
816
-			$statuses = array_keys( wpinv_get_invoice_statuses() );
815
+		if (!$hide_pending) {
816
+			$statuses = array_keys(wpinv_get_invoice_statuses());
817 817
 		}
818 818
 
819 819
         return get_posts(
@@ -835,7 +835,7 @@  discard block
 block discarded – undo
835 835
      * @return int
836 836
      */
837 837
     public function get_total_payments() {
838
-		return getpaid_count_subscription_invoices( $this->get_parent_invoice_id(), $this->get_id() );
838
+		return getpaid_count_subscription_invoices($this->get_parent_invoice_id(), $this->get_id());
839 839
     }
840 840
 
841 841
     /**
@@ -847,7 +847,7 @@  discard block
 block discarded – undo
847 847
     public function get_times_billed() {
848 848
         $times_billed = $this->get_total_payments();
849 849
 
850
-        if ( (float) $this->get_initial_amount() == 0 && $times_billed > 0 ) {
850
+        if ((float) $this->get_initial_amount() == 0 && $times_billed > 0) {
851 851
             $times_billed--;
852 852
         }
853 853
 
@@ -862,48 +862,48 @@  discard block
 block discarded – undo
862 862
 	 * @param  WPInv_Invoice $invoice If adding an existing invoice.
863 863
      * @return bool
864 864
      */
865
-    public function add_payment( $args = array(), $invoice = false ) {
865
+    public function add_payment($args = array(), $invoice = false) {
866 866
 
867 867
 		// Process each payment once.
868
-        if ( ! empty( $args['transaction_id'] ) && $this->payment_exists( $args['transaction_id'] ) ) {
868
+        if (!empty($args['transaction_id']) && $this->payment_exists($args['transaction_id'])) {
869 869
             return false;
870 870
         }
871 871
 
872 872
 		// Are we creating a new invoice?
873
-		if ( empty( $invoice ) ) {
873
+		if (empty($invoice)) {
874 874
 			$invoice = $this->create_payment();
875 875
 
876
-			if ( empty( $invoice ) ) {
876
+			if (empty($invoice)) {
877 877
 				return false;
878 878
 			}
879 879
 }
880 880
 
881
-		$invoice->set_status( 'wpi-renewal' );
881
+		$invoice->set_status('wpi-renewal');
882 882
 
883 883
 		// Maybe set a transaction id.
884
-		if ( ! empty( $args['transaction_id'] ) ) {
885
-			$invoice->set_transaction_id( $args['transaction_id'] );
884
+		if (!empty($args['transaction_id'])) {
885
+			$invoice->set_transaction_id($args['transaction_id']);
886 886
 		}
887 887
 
888 888
 		// Set the completed date.
889
-		$invoice->set_completed_date( current_time( 'mysql' ) );
889
+		$invoice->set_completed_date(current_time('mysql'));
890 890
 
891 891
 		// And the gateway.
892
-		if ( ! empty( $args['gateway'] ) ) {
893
-			$invoice->set_gateway( $args['gateway'] );
892
+		if (!empty($args['gateway'])) {
893
+			$invoice->set_gateway($args['gateway']);
894 894
 		}
895 895
 
896 896
 		$invoice->save();
897 897
 
898
-		if ( ! $invoice->exists() ) {
898
+		if (!$invoice->exists()) {
899 899
 			return false;
900 900
 		}
901 901
 
902
-		do_action( 'getpaid_after_create_subscription_renewal_invoice', $invoice, $this );
903
-		do_action( 'wpinv_recurring_add_subscription_payment', $invoice, $this );
904
-        do_action( 'wpinv_recurring_record_payment', $invoice->get_id(), $this->get_parent_invoice_id(), $invoice->get_recurring_total(), $invoice->get_transaction_id() );
902
+		do_action('getpaid_after_create_subscription_renewal_invoice', $invoice, $this);
903
+		do_action('wpinv_recurring_add_subscription_payment', $invoice, $this);
904
+        do_action('wpinv_recurring_record_payment', $invoice->get_id(), $this->get_parent_invoice_id(), $invoice->get_recurring_total(), $invoice->get_transaction_id());
905 905
 
906
-        update_post_meta( $invoice->get_id(), '_wpinv_subscription_id', $this->id );
906
+        update_post_meta($invoice->get_id(), '_wpinv_subscription_id', $this->id);
907 907
 
908 908
         return $invoice->get_id();
909 909
 	}
@@ -918,41 +918,41 @@  discard block
 block discarded – undo
918 918
 
919 919
 		$parent_invoice = $this->get_parent_payment();
920 920
 
921
-		if ( ! $parent_invoice->exists() ) {
921
+		if (!$parent_invoice->exists()) {
922 922
 			return false;
923 923
 		}
924 924
 
925 925
 		// Duplicate the parent invoice.
926
-		$invoice = getpaid_duplicate_invoice( $parent_invoice );
927
-		$invoice->set_parent_id( $parent_invoice->get_id() );
928
-		$invoice->set_subscription_id( $this->get_id() );
929
-		$invoice->set_remote_subscription_id( $this->get_profile_id() );
926
+		$invoice = getpaid_duplicate_invoice($parent_invoice);
927
+		$invoice->set_parent_id($parent_invoice->get_id());
928
+		$invoice->set_subscription_id($this->get_id());
929
+		$invoice->set_remote_subscription_id($this->get_profile_id());
930 930
 
931 931
 		// Set invoice items.
932
-		$subscription_group = getpaid_get_invoice_subscription_group( $parent_invoice->get_id(), $this->get_id() );
933
-		$allowed_items      = empty( $subscription_group ) ? array( $this->get_product_id() ) : array_keys( $subscription_group['items'] );
932
+		$subscription_group = getpaid_get_invoice_subscription_group($parent_invoice->get_id(), $this->get_id());
933
+		$allowed_items      = empty($subscription_group) ? array($this->get_product_id()) : array_keys($subscription_group['items']);
934 934
 		$invoice_items      = array();
935 935
 
936
-		foreach ( $invoice->get_items() as $item ) {
937
-			if ( in_array( $item->get_id(), $allowed_items ) ) {
936
+		foreach ($invoice->get_items() as $item) {
937
+			if (in_array($item->get_id(), $allowed_items)) {
938 938
 				$invoice_items[] = $item;
939 939
 			}
940 940
 		}
941 941
 
942
-		$invoice->set_items( $invoice_items );
942
+		$invoice->set_items($invoice_items);
943 943
 
944
-		if ( ! empty( $subscription_group['fees'] ) ) {
945
-			$invoice->set_fees( $subscription_group['fees'] );
944
+		if (!empty($subscription_group['fees'])) {
945
+			$invoice->set_fees($subscription_group['fees']);
946 946
 		}
947 947
 
948 948
 		// Maybe recalculate discount (Pre-GetPaid Fix).
949
-		$discount = new WPInv_Discount( $invoice->get_discount_code() );
950
-		if ( $discount->exists() && $discount->is_recurring() && 0 == $invoice->get_total_discount() ) {
951
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
949
+		$discount = new WPInv_Discount($invoice->get_discount_code());
950
+		if ($discount->exists() && $discount->is_recurring() && 0 == $invoice->get_total_discount()) {
951
+			$invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount));
952 952
 		}
953 953
 
954 954
 		$invoice->recalculate_total();
955
-		$invoice->set_status( 'wpi-pending' );
955
+		$invoice->set_status('wpi-pending');
956 956
 		$invoice->save();
957 957
 
958 958
 		return $invoice->exists() ? $invoice : false;
@@ -967,20 +967,20 @@  discard block
 block discarded – undo
967 967
 	public function renew() {
968 968
 
969 969
 		// Complete subscription if applicable
970
-		if ( $this->is_last_renewal() ) {
970
+		if ($this->is_last_renewal()) {
971 971
 			return $this->complete();
972 972
 		}
973 973
 
974 974
 		// Calculate new expiration
975 975
 		$frequency      = $this->get_frequency();
976 976
 		$period         = $this->get_period();
977
-		$new_expiration = strtotime( "+ $frequency $period", $this->get_expiration_time() );
977
+		$new_expiration = strtotime("+ $frequency $period", $this->get_expiration_time());
978 978
 
979
-		$this->set_expiration( date( 'Y-m-d H:i:s', $new_expiration ) );
980
-		$this->set_status( 'active' );
979
+		$this->set_expiration(date('Y-m-d H:i:s', $new_expiration));
980
+		$this->set_status('active');
981 981
 		$this->save();
982 982
 
983
-		do_action( 'getpaid_subscription_renewed', $this );
983
+		do_action('getpaid_subscription_renewed', $this);
984 984
 
985 985
 		return $this->get_id();
986 986
 	}
@@ -996,11 +996,11 @@  discard block
 block discarded – undo
996 996
 	public function complete() {
997 997
 
998 998
 		// Only mark a subscription as complete if it's not already cancelled.
999
-		if ( $this->has_status( 'cancelled' ) ) {
999
+		if ($this->has_status('cancelled')) {
1000 1000
 			return false;
1001 1001
 		}
1002 1002
 
1003
-		$this->set_status( 'completed' );
1003
+		$this->set_status('completed');
1004 1004
 		return $this->save();
1005 1005
 
1006 1006
 	}
@@ -1012,14 +1012,14 @@  discard block
 block discarded – undo
1012 1012
 	 * @param  bool $check_expiration
1013 1013
 	 * @return int|bool Subscription id or false if $check_expiration is true and expiration date is in the future.
1014 1014
 	 */
1015
-	public function expire( $check_expiration = false ) {
1015
+	public function expire($check_expiration = false) {
1016 1016
 
1017
-		if ( $check_expiration && $this->get_expiration_time() > current_time( 'timestamp' ) ) {
1017
+		if ($check_expiration && $this->get_expiration_time() > current_time('timestamp')) {
1018 1018
 			// Do not mark as expired since real expiration date is in the future
1019 1019
 			return false;
1020 1020
 		}
1021 1021
 
1022
-		$this->set_status( 'expired' );
1022
+		$this->set_status('expired');
1023 1023
 		return $this->save();
1024 1024
 
1025 1025
 	}
@@ -1031,7 +1031,7 @@  discard block
 block discarded – undo
1031 1031
 	 * @return int Subscription id.
1032 1032
 	 */
1033 1033
 	public function failing() {
1034
-		$this->set_status( 'failing' );
1034
+		$this->set_status('failing');
1035 1035
 		return $this->save();
1036 1036
 	}
1037 1037
 
@@ -1042,7 +1042,7 @@  discard block
 block discarded – undo
1042 1042
      * @return int Subscription id.
1043 1043
      */
1044 1044
     public function cancel() {
1045
-		$this->set_status( 'cancelled' );
1045
+		$this->set_status('cancelled');
1046 1046
 		return $this->save();
1047 1047
     }
1048 1048
 
@@ -1053,7 +1053,7 @@  discard block
 block discarded – undo
1053 1053
 	 * @return bool
1054 1054
 	 */
1055 1055
 	public function can_cancel() {
1056
-		return apply_filters( 'wpinv_subscription_can_cancel', $this->has_status( $this->get_cancellable_statuses() ), $this );
1056
+		return apply_filters('wpinv_subscription_can_cancel', $this->has_status($this->get_cancellable_statuses()), $this);
1057 1057
 	}
1058 1058
 
1059 1059
     /**
@@ -1064,7 +1064,7 @@  discard block
 block discarded – undo
1064 1064
      * @return      array
1065 1065
      */
1066 1066
     public function get_cancellable_statuses() {
1067
-        return apply_filters( 'wpinv_recurring_cancellable_statuses', array( 'active', 'trialling', 'failing' ) );
1067
+        return apply_filters('wpinv_recurring_cancellable_statuses', array('active', 'trialling', 'failing'));
1068 1068
     }
1069 1069
 
1070 1070
 	/**
@@ -1074,8 +1074,8 @@  discard block
 block discarded – undo
1074 1074
 	 * @return string
1075 1075
 	 */
1076 1076
 	public function get_cancel_url() {
1077
-		$url = getpaid_get_authenticated_action_url( 'subscription_cancel', $this->get_view_url() );
1078
-		return apply_filters( 'wpinv_subscription_cancel_url', $url, $this );
1077
+		$url = getpaid_get_authenticated_action_url('subscription_cancel', $this->get_view_url());
1078
+		return apply_filters('wpinv_subscription_cancel_url', $url, $this);
1079 1079
 	}
1080 1080
 
1081 1081
 	/**
@@ -1086,10 +1086,10 @@  discard block
 block discarded – undo
1086 1086
 	 */
1087 1087
 	public function get_view_url() {
1088 1088
 
1089
-		$url = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) );
1090
-		$url = add_query_arg( 'subscription', $this->get_id(), $url );
1089
+		$url = getpaid_get_tab_url('gp-subscriptions', get_permalink((int) wpinv_get_option('invoice_subscription_page')));
1090
+		$url = add_query_arg('subscription', $this->get_id(), $url);
1091 1091
 
1092
-		return apply_filters( 'getpaid_get_subscription_view_url', $url, $this );
1092
+		return apply_filters('getpaid_get_subscription_view_url', $url, $this);
1093 1093
 	}
1094 1094
 
1095 1095
 	/**
@@ -1102,7 +1102,7 @@  discard block
 block discarded – undo
1102 1102
 	 * @return bool
1103 1103
 	 */
1104 1104
 	public function can_renew() {
1105
-		return apply_filters( 'wpinv_subscription_can_renew', true, $this );
1105
+		return apply_filters('wpinv_subscription_can_renew', true, $this);
1106 1106
 	}
1107 1107
 
1108 1108
 	/**
@@ -1121,7 +1121,7 @@  discard block
 block discarded – undo
1121 1121
             ),
1122 1122
             'getpaid-nonce'
1123 1123
         );
1124
-		return apply_filters( 'wpinv_subscription_renew_url', $url, $this );
1124
+		return apply_filters('wpinv_subscription_renew_url', $url, $this);
1125 1125
 	}
1126 1126
 
1127 1127
 	/**
@@ -1131,7 +1131,7 @@  discard block
 block discarded – undo
1131 1131
 	 * @return bool
1132 1132
 	 */
1133 1133
 	public function can_update() {
1134
-		return apply_filters( 'wpinv_subscription_can_update', false, $this );
1134
+		return apply_filters('wpinv_subscription_can_update', false, $this);
1135 1135
 	}
1136 1136
 
1137 1137
 	/**
@@ -1147,7 +1147,7 @@  discard block
 block discarded – undo
1147 1147
 				'subscription_id' => $this->get_id(),
1148 1148
             )
1149 1149
         );
1150
-		return apply_filters( 'wpinv_subscription_update_url', $url, $this );
1150
+		return apply_filters('wpinv_subscription_update_url', $url, $this);
1151 1151
 	}
1152 1152
 
1153 1153
 	/**
@@ -1157,7 +1157,7 @@  discard block
 block discarded – undo
1157 1157
 	 * @return string
1158 1158
 	 */
1159 1159
 	public function get_status_label() {
1160
-		return getpaid_get_subscription_status_label( $this->get_status() );
1160
+		return getpaid_get_subscription_status_label($this->get_status());
1161 1161
 	}
1162 1162
 
1163 1163
 	/**
@@ -1168,7 +1168,7 @@  discard block
 block discarded – undo
1168 1168
 	 */
1169 1169
 	public function get_status_class() {
1170 1170
 		$statuses = getpaid_get_subscription_status_classes();
1171
-		return isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : 'badge-dark';
1171
+		return isset($statuses[$this->get_status()]) ? $statuses[$this->get_status()] : 'badge-dark';
1172 1172
 	}
1173 1173
 
1174 1174
     /**
@@ -1179,9 +1179,9 @@  discard block
 block discarded – undo
1179 1179
      */
1180 1180
     public function get_status_label_html() {
1181 1181
 
1182
-		$status_label = sanitize_text_field( $this->get_status_label() );
1183
-		$class        = esc_attr( $this->get_status_class() );
1184
-		$status       = sanitize_html_class( $this->get_status() );
1182
+		$status_label = sanitize_text_field($this->get_status_label());
1183
+		$class        = esc_attr($this->get_status_class());
1184
+		$status       = sanitize_html_class($this->get_status());
1185 1185
 
1186 1186
 		return "<span class='bsui'><span class='badge $class $status'>$status_label</span></span>";
1187 1187
     }
@@ -1193,9 +1193,9 @@  discard block
 block discarded – undo
1193 1193
      * @param  string $txn_id The transaction ID from the merchant processor
1194 1194
      * @return bool
1195 1195
      */
1196
-    public function payment_exists( $txn_id = '' ) {
1197
-		$invoice_id = WPInv_Invoice::get_invoice_id_by_field( $txn_id, 'transaction_id' );
1198
-        return ! empty( $invoice_id );
1196
+    public function payment_exists($txn_id = '') {
1197
+		$invoice_id = WPInv_Invoice::get_invoice_id_by_field($txn_id, 'transaction_id');
1198
+        return !empty($invoice_id);
1199 1199
 	}
1200 1200
 
1201 1201
 	/**
@@ -1207,35 +1207,35 @@  discard block
 block discarded – undo
1207 1207
 		// Reset status transition variable.
1208 1208
 		$this->status_transition = false;
1209 1209
 
1210
-		if ( $status_transition ) {
1210
+		if ($status_transition) {
1211 1211
 			try {
1212 1212
 
1213 1213
 				// Fire a hook for the status change.
1214
-				do_action( 'wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition );
1215
-				do_action( 'getpaid_subscription_' . $status_transition['to'], $this, $status_transition );
1214
+				do_action('wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition);
1215
+				do_action('getpaid_subscription_' . $status_transition['to'], $this, $status_transition);
1216 1216
 
1217
-				if ( ! empty( $status_transition['from'] ) ) {
1217
+				if (!empty($status_transition['from'])) {
1218 1218
 
1219 1219
 					/* translators: 1: old subscription status 2: new subscription status */
1220
-					$transition_note = sprintf( __( 'Subscription status changed from %1$s to %2$s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['from'] ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1220
+					$transition_note = sprintf(__('Subscription status changed from %1$s to %2$s.', 'invoicing'), getpaid_get_subscription_status_label($status_transition['from']), getpaid_get_subscription_status_label($status_transition['to']));
1221 1221
 
1222 1222
 					// Note the transition occurred.
1223
-					$this->get_parent_payment()->add_note( $transition_note, false, false, true );
1223
+					$this->get_parent_payment()->add_note($transition_note, false, false, true);
1224 1224
 
1225 1225
 					// Fire another hook.
1226
-					do_action( 'getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this );
1227
-					do_action( 'getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to'] );
1226
+					do_action('getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this);
1227
+					do_action('getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to']);
1228 1228
 
1229 1229
 				} else {
1230 1230
 					/* translators: %s: new invoice status */
1231
-					$transition_note = sprintf( __( 'Subscription status set to %s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1231
+					$transition_note = sprintf(__('Subscription status set to %s.', 'invoicing'), getpaid_get_subscription_status_label($status_transition['to']));
1232 1232
 
1233 1233
 					// Note the transition occurred.
1234
-					$this->get_parent_payment()->add_note( $transition_note, false, false, true );
1234
+					$this->get_parent_payment()->add_note($transition_note, false, false, true);
1235 1235
 
1236 1236
 				}
1237
-			} catch ( Exception $e ) {
1238
-				$this->get_parent_payment()->add_note( __( 'Error during subscription status transition.', 'invoicing' ) . ' ' . $e->getMessage() );
1237
+			} catch (Exception $e) {
1238
+				$this->get_parent_payment()->add_note(__('Error during subscription status transition.', 'invoicing') . ' ' . $e->getMessage());
1239 1239
 			}
1240 1240
 		}
1241 1241
 
@@ -1261,7 +1261,7 @@  discard block
 block discarded – undo
1261 1261
 	 */
1262 1262
 	public function activate() {
1263 1263
 		$status = 'trialling' === $this->get_status() ? 'trialling' : 'active';
1264
-		$this->set_status( $status );
1264
+		$this->set_status($status);
1265 1265
 		return $this->save();
1266 1266
 	}
1267 1267
 
Please login to merge, or discard this patch.
includes/class-getpaid-subscription-notification-emails.php 2 patches
Indentation   +269 added lines, -269 removed lines patch added patch discarded remove patch
@@ -13,311 +13,311 @@
 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_trialling' => 'subscription_trial',
32
-				'getpaid_subscription_cancelled' => 'subscription_cancelled',
33
-				'getpaid_subscription_expired'   => 'subscription_expired',
34
-				'getpaid_subscription_completed' => 'subscription_complete',
35
-				'getpaid_daily_maintenance'      => 'renewal_reminder',
36
-			)
37
-		);
38
-
39
-		$this->init_hooks();
25
+     */
26
+    public function __construct() {
27
+
28
+        $this->subscription_actions = apply_filters(
29
+            'getpaid_notification_email_subscription_triggers',
30
+            array(
31
+                'getpaid_subscription_trialling' => 'subscription_trial',
32
+                'getpaid_subscription_cancelled' => 'subscription_cancelled',
33
+                'getpaid_subscription_expired'   => 'subscription_expired',
34
+                'getpaid_subscription_completed' => 'subscription_complete',
35
+                'getpaid_daily_maintenance'      => 'renewal_reminder',
36
+            )
37
+        );
38
+
39
+        $this->init_hooks();
40 40
 
41 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
-	}
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
+    }
224 67
 
225 68
     /**
226
-	 * Sends a new trial notification.
227
-	 *
228
-	 * @param WPInv_Subscription $subscription
229
-	 */
230
-	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 ) {
231 75
 
232
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
233
-		$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
+        }
234 82
 
235
-	}
83
+        return $merge_tags;
236 84
 
237
-	/**
238
-	 * Sends a cancelled subscription notification.
239
-	 *
240
-	 * @param WPInv_Subscription $subscription
241
-	 */
242
-	public function subscription_cancelled( $subscription ) {
85
+    }
243 86
 
244
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
245
-		$this->send_email( $subscription, $email, __FUNCTION__ );
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
+        );
246 113
 
247
-	}
114
+    }
248 115
 
249
-	/**
250
-	 * Sends a subscription expired notification.
251
-	 *
252
-	 * @param WPInv_Subscription $subscription
253
-	 */
254
-	public function subscription_expired( $subscription ) {
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
+    }
255 125
 
256
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
257
-		$this->send_email( $subscription, $email, __FUNCTION__ );
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() );
258 134
 
259
-	}
135
+        $cc = $invoice->get_email_cc();
260 136
 
261
-	/**
262
-	 * Sends a completed subscription notification.
263
-	 *
264
-	 * @param WPInv_Subscription $subscription
265
-	 */
266
-	public function subscription_complete( $subscription ) {
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
+        }
267 141
 
268
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
269
-		$this->send_email( $subscription, $email, __FUNCTION__ );
142
+        return $recipients;
143
+    }
270 144
 
271
-	}
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 );
272 222
 
273
-	/**
274
-	 * Sends a subscription renewal reminder notification.
275
-	 *
276
-	 */
277
-	public function renewal_reminder() {
223
+    }
278 224
 
279
-		$email = new GetPaid_Notification_Email( __FUNCTION__ );
225
+    /**
226
+     * Sends a new trial notification.
227
+     *
228
+     * @param WPInv_Subscription $subscription
229
+     */
230
+    public function subscription_trial( $subscription ) {
280 231
 
281
-		// Fetch reminder days.
282
-		$reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
232
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
233
+        $this->send_email( $subscription, $email, __FUNCTION__ );
283 234
 
284
-		// Abort if non is set.
285
-		if ( empty( $reminder_days ) ) {
286
-			return;
287
-		}
235
+    }
288 236
 
289
-		// Fetch matching subscriptions.
237
+    /**
238
+     * Sends a cancelled subscription notification.
239
+     *
240
+     * @param WPInv_Subscription $subscription
241
+     */
242
+    public function subscription_cancelled( $subscription ) {
243
+
244
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
245
+        $this->send_email( $subscription, $email, __FUNCTION__ );
246
+
247
+    }
248
+
249
+    /**
250
+     * Sends a subscription expired notification.
251
+     *
252
+     * @param WPInv_Subscription $subscription
253
+     */
254
+    public function subscription_expired( $subscription ) {
255
+
256
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
257
+        $this->send_email( $subscription, $email, __FUNCTION__ );
258
+
259
+    }
260
+
261
+    /**
262
+     * Sends a completed subscription notification.
263
+     *
264
+     * @param WPInv_Subscription $subscription
265
+     */
266
+    public function subscription_complete( $subscription ) {
267
+
268
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
269
+        $this->send_email( $subscription, $email, __FUNCTION__ );
270
+
271
+    }
272
+
273
+    /**
274
+     * Sends a subscription renewal reminder notification.
275
+     *
276
+     */
277
+    public function renewal_reminder() {
278
+
279
+        $email = new GetPaid_Notification_Email( __FUNCTION__ );
280
+
281
+        // Fetch reminder days.
282
+        $reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
283
+
284
+        // Abort if non is set.
285
+        if ( empty( $reminder_days ) ) {
286
+            return;
287
+        }
288
+
289
+        // Fetch matching subscriptions.
290 290
         $args  = array(
291 291
             'number'             => -1,
292
-			'count_total'        => false,
293
-			'status'             => 'trialling active',
292
+            'count_total'        => false,
293
+            'status'             => 'trialling active',
294 294
             'date_expires_query' => array(
295
-				'relation' => 'OR',
295
+                'relation' => 'OR',
296 296
             ),
297
-		);
297
+        );
298 298
 
299
-		foreach ( $reminder_days as $days ) {
300
-			$date = date_parse( date( 'Y-m-d', strtotime( "+$days days", current_time( 'timestamp' ) ) ) );
299
+        foreach ( $reminder_days as $days ) {
300
+            $date = date_parse( date( 'Y-m-d', strtotime( "+$days days", current_time( 'timestamp' ) ) ) );
301 301
 
302
-			$args['date_expires_query'][] = array(
303
-				'year'  => $date['year'],
304
-				'month' => $date['month'],
305
-				'day'   => $date['day'],
306
-			);
302
+            $args['date_expires_query'][] = array(
303
+                'year'  => $date['year'],
304
+                'month' => $date['month'],
305
+                'day'   => $date['day'],
306
+            );
307 307
 
308
-		}
308
+        }
309 309
 
310
-		$subscriptions = new GetPaid_Subscriptions_Query( $args );
310
+        $subscriptions = new GetPaid_Subscriptions_Query( $args );
311 311
 
312 312
         foreach ( $subscriptions->get_results() as $subscription ) {
313 313
 
314
-			// Skip packages.
315
-			if ( apply_filters( 'getpaid_send_subscription_renewal_reminder_email', true ) ) {
316
-				$email->object = $subscription;
317
-            	$this->send_email( $subscription, $email, __FUNCTION__ );
318
-			}
319
-		}
314
+            // Skip packages.
315
+            if ( apply_filters( 'getpaid_send_subscription_renewal_reminder_email', true ) ) {
316
+                $email->object = $subscription;
317
+                $this->send_email( $subscription, $email, __FUNCTION__ );
318
+            }
319
+        }
320 320
 
321
-	}
321
+    }
322 322
 
323 323
 }
Please login to merge, or discard this patch.
Spacing   +73 added lines, -73 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.
@@ -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
 
@@ -227,10 +227,10 @@  discard block
 block discarded – undo
227 227
 	 *
228 228
 	 * @param WPInv_Subscription $subscription
229 229
 	 */
230
-	public function subscription_trial( $subscription ) {
230
+	public function subscription_trial($subscription) {
231 231
 
232
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
233
-		$this->send_email( $subscription, $email, __FUNCTION__ );
232
+		$email = new GetPaid_Notification_Email(__FUNCTION__, $subscription);
233
+		$this->send_email($subscription, $email, __FUNCTION__);
234 234
 
235 235
 	}
236 236
 
@@ -239,10 +239,10 @@  discard block
 block discarded – undo
239 239
 	 *
240 240
 	 * @param WPInv_Subscription $subscription
241 241
 	 */
242
-	public function subscription_cancelled( $subscription ) {
242
+	public function subscription_cancelled($subscription) {
243 243
 
244
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
245
-		$this->send_email( $subscription, $email, __FUNCTION__ );
244
+		$email = new GetPaid_Notification_Email(__FUNCTION__, $subscription);
245
+		$this->send_email($subscription, $email, __FUNCTION__);
246 246
 
247 247
 	}
248 248
 
@@ -251,10 +251,10 @@  discard block
 block discarded – undo
251 251
 	 *
252 252
 	 * @param WPInv_Subscription $subscription
253 253
 	 */
254
-	public function subscription_expired( $subscription ) {
254
+	public function subscription_expired($subscription) {
255 255
 
256
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
257
-		$this->send_email( $subscription, $email, __FUNCTION__ );
256
+		$email = new GetPaid_Notification_Email(__FUNCTION__, $subscription);
257
+		$this->send_email($subscription, $email, __FUNCTION__);
258 258
 
259 259
 	}
260 260
 
@@ -263,10 +263,10 @@  discard block
 block discarded – undo
263 263
 	 *
264 264
 	 * @param WPInv_Subscription $subscription
265 265
 	 */
266
-	public function subscription_complete( $subscription ) {
266
+	public function subscription_complete($subscription) {
267 267
 
268
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $subscription );
269
-		$this->send_email( $subscription, $email, __FUNCTION__ );
268
+		$email = new GetPaid_Notification_Email(__FUNCTION__, $subscription);
269
+		$this->send_email($subscription, $email, __FUNCTION__);
270 270
 
271 271
 	}
272 272
 
@@ -276,18 +276,18 @@  discard block
 block discarded – undo
276 276
 	 */
277 277
 	public function renewal_reminder() {
278 278
 
279
-		$email = new GetPaid_Notification_Email( __FUNCTION__ );
279
+		$email = new GetPaid_Notification_Email(__FUNCTION__);
280 280
 
281 281
 		// Fetch reminder days.
282
-		$reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
282
+		$reminder_days = array_unique(wp_parse_id_list($email->get_option('days')));
283 283
 
284 284
 		// Abort if non is set.
285
-		if ( empty( $reminder_days ) ) {
285
+		if (empty($reminder_days)) {
286 286
 			return;
287 287
 		}
288 288
 
289 289
 		// Fetch matching subscriptions.
290
-        $args  = array(
290
+        $args = array(
291 291
             'number'             => -1,
292 292
 			'count_total'        => false,
293 293
 			'status'             => 'trialling active',
@@ -296,8 +296,8 @@  discard block
 block discarded – undo
296 296
             ),
297 297
 		);
298 298
 
299
-		foreach ( $reminder_days as $days ) {
300
-			$date = date_parse( date( 'Y-m-d', strtotime( "+$days days", current_time( 'timestamp' ) ) ) );
299
+		foreach ($reminder_days as $days) {
300
+			$date = date_parse(date('Y-m-d', strtotime("+$days days", current_time('timestamp'))));
301 301
 
302 302
 			$args['date_expires_query'][] = array(
303 303
 				'year'  => $date['year'],
@@ -307,14 +307,14 @@  discard block
 block discarded – undo
307 307
 
308 308
 		}
309 309
 
310
-		$subscriptions = new GetPaid_Subscriptions_Query( $args );
310
+		$subscriptions = new GetPaid_Subscriptions_Query($args);
311 311
 
312
-        foreach ( $subscriptions->get_results() as $subscription ) {
312
+        foreach ($subscriptions->get_results() as $subscription) {
313 313
 
314 314
 			// Skip packages.
315
-			if ( apply_filters( 'getpaid_send_subscription_renewal_reminder_email', true ) ) {
315
+			if (apply_filters('getpaid_send_subscription_renewal_reminder_email', true)) {
316 316
 				$email->object = $subscription;
317
-            	$this->send_email( $subscription, $email, __FUNCTION__ );
317
+            	$this->send_email($subscription, $email, __FUNCTION__);
318 318
 			}
319 319
 		}
320 320
 
Please login to merge, or discard this patch.
invoicing.php 2 patches
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -19,16 +19,16 @@  discard block
 block discarded – undo
19 19
 
20 20
 // Define constants.
21 21
 if ( ! defined( 'WPINV_PLUGIN_FILE' ) ) {
22
-	define( 'WPINV_PLUGIN_FILE', __FILE__ );
22
+    define( 'WPINV_PLUGIN_FILE', __FILE__ );
23 23
 }
24 24
 
25 25
 if ( ! defined( 'WPINV_VERSION' ) ) {
26
-	define( 'WPINV_VERSION', '2.6.10' );
26
+    define( 'WPINV_VERSION', '2.6.10' );
27 27
 }
28 28
 
29 29
 // Include the main Invoicing class.
30 30
 if ( ! class_exists( 'WPInv_Plugin', false ) ) {
31
-	require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php';
31
+    require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php';
32 32
 }
33 33
 
34 34
 /**
@@ -43,7 +43,7 @@  discard block
 block discarded – undo
43 43
         $GLOBALS['invoicing'] = new WPInv_Plugin();
44 44
     }
45 45
 
46
-	return $GLOBALS['invoicing'];
46
+    return $GLOBALS['invoicing'];
47 47
 }
48 48
 
49 49
 /**
Please login to merge, or discard this patch.
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -15,20 +15,20 @@  discard block
 block discarded – undo
15 15
  * @package GetPaid
16 16
  */
17 17
 
18
-defined( 'ABSPATH' ) || exit;
18
+defined('ABSPATH') || exit;
19 19
 
20 20
 // Define constants.
21
-if ( ! defined( 'WPINV_PLUGIN_FILE' ) ) {
22
-	define( 'WPINV_PLUGIN_FILE', __FILE__ );
21
+if (!defined('WPINV_PLUGIN_FILE')) {
22
+	define('WPINV_PLUGIN_FILE', __FILE__);
23 23
 }
24 24
 
25
-if ( ! defined( 'WPINV_VERSION' ) ) {
26
-	define( 'WPINV_VERSION', '2.6.10' );
25
+if (!defined('WPINV_VERSION')) {
26
+	define('WPINV_VERSION', '2.6.10');
27 27
 }
28 28
 
29 29
 // Include the main Invoicing class.
30
-if ( ! class_exists( 'WPInv_Plugin', false ) ) {
31
-	require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php';
30
+if (!class_exists('WPInv_Plugin', false)) {
31
+	require_once plugin_dir_path(WPINV_PLUGIN_FILE) . 'includes/class-wpinv.php';
32 32
 }
33 33
 
34 34
 /**
@@ -39,7 +39,7 @@  discard block
 block discarded – undo
39 39
  */
40 40
 function getpaid() {
41 41
 
42
-    if ( empty( $GLOBALS['invoicing'] ) ) {
42
+    if (empty($GLOBALS['invoicing'])) {
43 43
         $GLOBALS['invoicing'] = new WPInv_Plugin();
44 44
     }
45 45
 
@@ -52,9 +52,9 @@  discard block
 block discarded – undo
52 52
  * @since  2.0.8
53 53
  */
54 54
 function getpaid_deactivation_hook() {
55
-    update_option( 'wpinv_flush_permalinks', 1 );
55
+    update_option('wpinv_flush_permalinks', 1);
56 56
 }
57
-register_deactivation_hook( __FILE__, 'getpaid_deactivation_hook' );
57
+register_deactivation_hook(__FILE__, 'getpaid_deactivation_hook');
58 58
 
59 59
 /**
60 60
  * @deprecated
@@ -64,4 +64,4 @@  discard block
 block discarded – undo
64 64
 }
65 65
 
66 66
 // Kickstart the plugin.
67
-add_action( 'plugins_loaded', 'getpaid', -100 );
67
+add_action('plugins_loaded', 'getpaid', -100);
Please login to merge, or discard this patch.
templates/invoice/invoice-meta.php 1 patch
Spacing   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -7,50 +7,50 @@
 block discarded – undo
7 7
  * @version 1.0.19
8 8
  */
9 9
 
10
-defined( 'ABSPATH' ) || exit;
10
+defined('ABSPATH') || exit;
11 11
 
12
-$class = ! is_singular( 'page' ) ? 'px-1' : '';
12
+$class = !is_singular('page') ? 'px-1' : '';
13 13
 ?>
14 14
 
15
-        <?php do_action( 'getpaid_before_invoice_meta', $invoice ); ?>
15
+        <?php do_action('getpaid_before_invoice_meta', $invoice); ?>
16 16
         <div class="getpaid-invoice-meta-data">
17 17
 
18
-            <?php do_action( 'getpaid_before_invoice_meta_table', $invoice ); ?>
18
+            <?php do_action('getpaid_before_invoice_meta_table', $invoice); ?>
19 19
             <table class="table table-bordered">
20 20
                 <tbody>
21 21
 
22
-                    <?php do_action( 'getpaid_before_invoice_meta_rows', $invoice ); ?>
23
-                    <?php foreach ( $meta as $key => $data ) : ?>
22
+                    <?php do_action('getpaid_before_invoice_meta_rows', $invoice); ?>
23
+                    <?php foreach ($meta as $key => $data) : ?>
24 24
 
25
-                        <?php if ( ! empty( $data['value'] ) ) : ?>
25
+                        <?php if (!empty($data['value'])) : ?>
26 26
 
27
-                            <?php do_action( "getpaid_before_invoice_meta_$key", $invoice, $data ); ?>
27
+                            <?php do_action("getpaid_before_invoice_meta_$key", $invoice, $data); ?>
28 28
 
29
-                            <tr class="getpaid-invoice-meta-<?php echo esc_attr( $key ); ?>">
29
+                            <tr class="getpaid-invoice-meta-<?php echo esc_attr($key); ?>">
30 30
 
31
-                                <th class="<?php echo esc_attr( $class ); ?> font-weight-bold" style="width: 40%">
32
-                                    <?php echo esc_html( $data['label'] ); ?>
31
+                                <th class="<?php echo esc_attr($class); ?> font-weight-bold" style="width: 40%">
32
+                                    <?php echo esc_html($data['label']); ?>
33 33
                                 </th>
34 34
 
35
-                                <td class="<?php echo esc_attr( $class ); ?> <?php echo 'invoice_total' === $key ? 'font-weight-bold' : 'font-weight-normal'; ?> text-break" style="width: 60%">
36
-                                    <span class="getpaid-invoice-meta-<?php echo esc_attr( $key ); ?>-value"><?php echo wp_kses_post( $data['value'] ); ?></span>
35
+                                <td class="<?php echo esc_attr($class); ?> <?php echo 'invoice_total' === $key ? 'font-weight-bold' : 'font-weight-normal'; ?> text-break" style="width: 60%">
36
+                                    <span class="getpaid-invoice-meta-<?php echo esc_attr($key); ?>-value"><?php echo wp_kses_post($data['value']); ?></span>
37 37
                                 </td>
38 38
 
39 39
                             </tr>
40 40
 
41
-                            <?php do_action( "getpaid_after_invoice_meta_$key", $invoice, $data ); ?>
41
+                            <?php do_action("getpaid_after_invoice_meta_$key", $invoice, $data); ?>
42 42
 
43 43
                         <?php endif; ?>
44 44
 
45 45
                     <?php endforeach; ?>
46
-                    <?php do_action( 'getpaid_after_invoice_meta_rows', $invoice ); ?>
46
+                    <?php do_action('getpaid_after_invoice_meta_rows', $invoice); ?>
47 47
 
48 48
                 </tbody>
49 49
             </table>
50
-            <?php do_action( 'getpaid_after_invoice_meta_table', $invoice ); ?>
50
+            <?php do_action('getpaid_after_invoice_meta_table', $invoice); ?>
51 51
 
52 52
 
53 53
         </div>
54
-        <?php do_action( 'getpaid_after_invoice_meta', $invoice ); ?>
54
+        <?php do_action('getpaid_after_invoice_meta', $invoice); ?>
55 55
 
56 56
 <?php
Please login to merge, or discard this patch.
includes/class-getpaid-invoice-notification-emails.php 2 patches
Indentation   +428 added lines, -428 removed lines patch added patch discarded remove patch
@@ -12,487 +12,487 @@
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Invoice_Notification_Emails {
14 14
 
15
-	/**
16
-	 * The array of invoice email actions.
17
-	 *
18
-	 * @param array
19
-	 */
20
-	public $invoice_actions;
21
-
22
-	/**
23
-	 * Class constructor
24
-	 *
25
-	 */
26
-	public function __construct() {
27
-
28
-		$this->invoice_actions = apply_filters(
29
-			'getpaid_notification_email_invoice_triggers',
30
-			array(
31
-				'getpaid_new_invoice'                   => array( 'new_invoice', 'user_invoice' ),
32
-				'getpaid_invoice_status_wpi-cancelled'  => 'cancelled_invoice',
33
-				'getpaid_invoice_status_wpi-failed'     => 'failed_invoice',
34
-				'getpaid_invoice_status_wpi-onhold'     => 'onhold_invoice',
35
-				'getpaid_invoice_status_wpi-processing' => 'processing_invoice',
36
-				'getpaid_invoice_status_publish'        => 'completed_invoice',
37
-				'getpaid_invoice_status_wpi-renewal'    => 'completed_invoice',
38
-				'getpaid_invoice_status_wpi-refunded'   => 'refunded_invoice',
39
-				'getpaid_new_customer_note'             => 'user_note',
40
-				'getpaid_daily_maintenance'             => 'overdue',
41
-			)
42
-		);
43
-
44
-		$this->init_hooks();
45
-
46
-	}
47
-
48
-	/**
49
-	 * Registers email hooks.
50
-	 */
51
-	public function init_hooks() {
52
-
53
-		add_filter( 'getpaid_get_email_merge_tags', array( $this, 'invoice_merge_tags' ), 10, 2 );
54
-		add_filter( 'getpaid_invoice_email_recipients', array( $this, 'filter_email_recipients' ), 10, 2 );
55
-
56
-		foreach ( $this->invoice_actions as $hook => $email_type ) {
57
-			$this->init_email_type_hook( $hook, $email_type );
58
-		}
59
-	}
60
-
61
-	/**
62
-	 * Registers an email hook for an invoice action.
63
-	 *
64
-	 * @param string $hook
65
-	 * @param string|array $email_type
66
-	 */
67
-	public function init_email_type_hook( $hook, $email_type ) {
68
-
69
-		$email_type = wpinv_parse_list( $email_type );
70
-
71
-		foreach ( $email_type as $type ) {
72
-
73
-			$email = new GetPaid_Notification_Email( $type );
74
-
75
-			// Abort if it is not active.
76
-			if ( ! $email->is_active() ) {
77
-				continue;
78
-			}
79
-
80
-			if ( method_exists( $this, $type ) ) {
81
-				add_action( $hook, array( $this, $type ), 100, 2 );
82
-				continue;
83
-			}
84
-
85
-			do_action( 'getpaid_invoice_init_email_type_hook', $type, $hook );
86
-		}
87
-
88
-	}
89
-
90
-	/**
91
-	 * Filters invoice merge tags.
92
-	 *
93
-	 * @param array $merge_tags
94
-	 * @param mixed|WPInv_Invoice|WPInv_Subscription $object
95
-	 */
96
-	public function invoice_merge_tags( $merge_tags, $object ) {
97
-
98
-		if ( is_a( $object, 'WPInv_Invoice' ) ) {
99
-			return array_merge(
100
-				$merge_tags,
101
-				$this->get_invoice_merge_tags( $object )
102
-			);
103
-		}
104
-
105
-		if ( is_a( $object, 'WPInv_Subscription' ) ) {
106
-			return array_merge(
107
-				$merge_tags,
108
-				$this->get_invoice_merge_tags( $object->get_parent_payment() )
109
-			);
110
-		}
111
-
112
-		return $merge_tags;
113
-
114
-	}
115
-
116
-	/**
117
-	 * Generates invoice merge tags.
118
-	 *
119
-	 * @param WPInv_Invoice $invoice
120
-	 * @return array
121
-	 */
122
-	public function get_invoice_merge_tags( $invoice ) {
123
-
124
-		// Abort if it does not exist.
125
-		if ( ! $invoice->get_id() ) {
126
-			return array();
127
-		}
128
-
129
-		$merge_tags = array(
130
-			'{name}'                 => sanitize_text_field( $invoice->get_user_full_name() ),
131
-			'{full_name}'            => sanitize_text_field( $invoice->get_user_full_name() ),
132
-			'{first_name}'           => sanitize_text_field( $invoice->get_first_name() ),
133
-			'{last_name}'            => sanitize_text_field( $invoice->get_last_name() ),
134
-			'{email}'                => sanitize_email( $invoice->get_email() ),
135
-			'{invoice_number}'       => sanitize_text_field( $invoice->get_number() ),
136
-			'{invoice_currency}'     => sanitize_text_field( $invoice->get_currency() ),
137
-			'{invoice_total}'        => sanitize_text_field( wpinv_price( $invoice->get_total(), $invoice->get_currency() ) ),
138
-			'{invoice_link}'         => esc_url( $invoice->get_view_url() ),
139
-			'{invoice_pay_link}'     => esc_url( $invoice->get_checkout_payment_url() ),
140
-			'{invoice_receipt_link}' => esc_url( $invoice->get_receipt_url() ),
141
-			'{invoice_date}'         => getpaid_format_date_value( $invoice->get_date_created() ),
142
-			'{invoice_due_date}'     => getpaid_format_date_value( $invoice->get_due_date(), __( 'on receipt', 'invoicing' ) ),
143
-			'{invoice_quote}'        => sanitize_text_field( strtolower( $invoice->get_label() ) ),
144
-			'{invoice_label}'        => sanitize_text_field( ucfirst( $invoice->get_label() ) ),
145
-			'{invoice_description}'  => wp_kses_post( $invoice->get_description() ),
146
-			'{subscription_name}'    => wp_kses_post( $invoice->get_subscription_name() ),
147
-			'{is_was}'               => strtotime( $invoice->get_due_date() ) < current_time( 'timestamp' ) ? __( 'was', 'invoicing' ) : __( 'is', 'invoicing' ),
148
-		);
149
-
150
-		$payment_form_data = $invoice->get_meta( 'payment_form_data', true );
151
-
152
-		if ( is_array( $payment_form_data ) ) {
153
-
154
-			foreach ( $payment_form_data as $label => $value ) {
155
-
156
-				$label = preg_replace( '/[^a-z0-9]+/', '_', strtolower( $label ) );
157
-				$value = is_array( $value ) ? implode( ', ', $value ) : $value;
158
-
159
-				if ( is_scalar( $value ) ) {
160
-					$merge_tags[ "{{$label}}" ] = wp_kses_post( $value );
161
-				}
162
-			}
163
-		}
164
-
165
-		return apply_filters( 'getpaid_invoice_email_merge_tags', $merge_tags, $invoice );
166
-	}
167
-
168
-	/**
169
-	 * Helper function to send an email.
170
-	 *
171
-	 * @param WPInv_Invoice $invoice
172
-	 * @param GetPaid_Notification_Email $email
173
-	 * @param string $type
174
-	 * @param string|array $recipients
175
-	 * @param array $extra_args Extra template args.
176
-	 */
177
-	public function send_email( $invoice, $email, $type, $recipients, $extra_args = array() ) {
178
-
179
-		do_action( 'getpaid_before_send_invoice_notification', $type, $invoice, $email );
180
-
181
-		$skip = $invoice->is_free() && wpinv_get_option( 'skip_email_free_invoice' );
182
-		if ( apply_filters( 'getpaid_skip_invoice_email', $skip, $type, $invoice ) ) {
183
-			return;
184
-		}
185
-
186
-		$mailer     = new GetPaid_Notification_Email_Sender();
187
-		$merge_tags = $email->get_merge_tags();
188
-
189
-		$result = $mailer->send(
190
-			apply_filters( 'getpaid_invoice_email_recipients', wpinv_parse_list( $recipients ), $email ),
191
-			$email->add_merge_tags( $email->get_subject(), $merge_tags ),
192
-			$email->get_content( $merge_tags, $extra_args ),
193
-			$email->get_attachments()
194
-		);
195
-
196
-		// Maybe send a copy to the admin.
197
-		if ( $email->include_admin_bcc() ) {
198
-			$mailer->send(
199
-				wpinv_get_admin_email(),
200
-				$email->add_merge_tags( $email->get_subject() . __( ' - ADMIN BCC COPY', 'invoicing' ), $merge_tags ),
201
-				$email->get_content( $merge_tags ),
202
-				$email->get_attachments()
203
-			);
204
-		}
205
-
206
-		if ( $result ) {
207
-			$invoice->add_system_note(
208
-				sprintf(
209
-					__( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ),
210
-					sanitize_key( $type ),
211
-					$email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
212
-				)
213
-			);
214
-		} else {
215
-			$invoice->add_system_note(
216
-				sprintf(
217
-					__( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ),
218
-					sanitize_key( $type ),
219
-					$email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
220
-				)
221
-			);
222
-		}
223
-
224
-		do_action( 'getpaid_after_send_invoice_notification', $type, $invoice, $email );
225
-
226
-		return $result;
227
-	}
228
-
229
-	/**
230
-	 * Also send emails to any cc users.
231
-	 *
232
-	 * @param array $recipients
233
-	 * @param GetPaid_Notification_Email $email
234
-	 */
235
-	public function filter_email_recipients( $recipients, $email ) {
236
-
237
-		if ( ! $email->is_admin_email() ) {
238
-			$cc   = $email->object->get_email_cc();
239
-			$cc_2 = get_user_meta( $email->object->get_user_id(), '_wpinv_email_cc', true );
240
-
241
-			if ( ! empty( $cc ) ) {
242
-				$cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) );
243
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) );
244
-			}
245
-
246
-			if ( ! empty( $cc_2 ) ) {
247
-				$cc_2 = array_map( 'sanitize_email', wpinv_parse_list( $cc_2 ) );
248
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc_2 ) ) );
249
-			}
15
+    /**
16
+     * The array of invoice email actions.
17
+     *
18
+     * @param array
19
+     */
20
+    public $invoice_actions;
21
+
22
+    /**
23
+     * Class constructor
24
+     *
25
+     */
26
+    public function __construct() {
27
+
28
+        $this->invoice_actions = apply_filters(
29
+            'getpaid_notification_email_invoice_triggers',
30
+            array(
31
+                'getpaid_new_invoice'                   => array( 'new_invoice', 'user_invoice' ),
32
+                'getpaid_invoice_status_wpi-cancelled'  => 'cancelled_invoice',
33
+                'getpaid_invoice_status_wpi-failed'     => 'failed_invoice',
34
+                'getpaid_invoice_status_wpi-onhold'     => 'onhold_invoice',
35
+                'getpaid_invoice_status_wpi-processing' => 'processing_invoice',
36
+                'getpaid_invoice_status_publish'        => 'completed_invoice',
37
+                'getpaid_invoice_status_wpi-renewal'    => 'completed_invoice',
38
+                'getpaid_invoice_status_wpi-refunded'   => 'refunded_invoice',
39
+                'getpaid_new_customer_note'             => 'user_note',
40
+                'getpaid_daily_maintenance'             => 'overdue',
41
+            )
42
+        );
43
+
44
+        $this->init_hooks();
45
+
46
+    }
47
+
48
+    /**
49
+     * Registers email hooks.
50
+     */
51
+    public function init_hooks() {
52
+
53
+        add_filter( 'getpaid_get_email_merge_tags', array( $this, 'invoice_merge_tags' ), 10, 2 );
54
+        add_filter( 'getpaid_invoice_email_recipients', array( $this, 'filter_email_recipients' ), 10, 2 );
55
+
56
+        foreach ( $this->invoice_actions as $hook => $email_type ) {
57
+            $this->init_email_type_hook( $hook, $email_type );
58
+        }
59
+    }
60
+
61
+    /**
62
+     * Registers an email hook for an invoice action.
63
+     *
64
+     * @param string $hook
65
+     * @param string|array $email_type
66
+     */
67
+    public function init_email_type_hook( $hook, $email_type ) {
68
+
69
+        $email_type = wpinv_parse_list( $email_type );
70
+
71
+        foreach ( $email_type as $type ) {
72
+
73
+            $email = new GetPaid_Notification_Email( $type );
74
+
75
+            // Abort if it is not active.
76
+            if ( ! $email->is_active() ) {
77
+                continue;
78
+            }
79
+
80
+            if ( method_exists( $this, $type ) ) {
81
+                add_action( $hook, array( $this, $type ), 100, 2 );
82
+                continue;
83
+            }
84
+
85
+            do_action( 'getpaid_invoice_init_email_type_hook', $type, $hook );
86
+        }
87
+
88
+    }
89
+
90
+    /**
91
+     * Filters invoice merge tags.
92
+     *
93
+     * @param array $merge_tags
94
+     * @param mixed|WPInv_Invoice|WPInv_Subscription $object
95
+     */
96
+    public function invoice_merge_tags( $merge_tags, $object ) {
97
+
98
+        if ( is_a( $object, 'WPInv_Invoice' ) ) {
99
+            return array_merge(
100
+                $merge_tags,
101
+                $this->get_invoice_merge_tags( $object )
102
+            );
103
+        }
104
+
105
+        if ( is_a( $object, 'WPInv_Subscription' ) ) {
106
+            return array_merge(
107
+                $merge_tags,
108
+                $this->get_invoice_merge_tags( $object->get_parent_payment() )
109
+            );
110
+        }
111
+
112
+        return $merge_tags;
113
+
114
+    }
115
+
116
+    /**
117
+     * Generates invoice merge tags.
118
+     *
119
+     * @param WPInv_Invoice $invoice
120
+     * @return array
121
+     */
122
+    public function get_invoice_merge_tags( $invoice ) {
123
+
124
+        // Abort if it does not exist.
125
+        if ( ! $invoice->get_id() ) {
126
+            return array();
127
+        }
128
+
129
+        $merge_tags = array(
130
+            '{name}'                 => sanitize_text_field( $invoice->get_user_full_name() ),
131
+            '{full_name}'            => sanitize_text_field( $invoice->get_user_full_name() ),
132
+            '{first_name}'           => sanitize_text_field( $invoice->get_first_name() ),
133
+            '{last_name}'            => sanitize_text_field( $invoice->get_last_name() ),
134
+            '{email}'                => sanitize_email( $invoice->get_email() ),
135
+            '{invoice_number}'       => sanitize_text_field( $invoice->get_number() ),
136
+            '{invoice_currency}'     => sanitize_text_field( $invoice->get_currency() ),
137
+            '{invoice_total}'        => sanitize_text_field( wpinv_price( $invoice->get_total(), $invoice->get_currency() ) ),
138
+            '{invoice_link}'         => esc_url( $invoice->get_view_url() ),
139
+            '{invoice_pay_link}'     => esc_url( $invoice->get_checkout_payment_url() ),
140
+            '{invoice_receipt_link}' => esc_url( $invoice->get_receipt_url() ),
141
+            '{invoice_date}'         => getpaid_format_date_value( $invoice->get_date_created() ),
142
+            '{invoice_due_date}'     => getpaid_format_date_value( $invoice->get_due_date(), __( 'on receipt', 'invoicing' ) ),
143
+            '{invoice_quote}'        => sanitize_text_field( strtolower( $invoice->get_label() ) ),
144
+            '{invoice_label}'        => sanitize_text_field( ucfirst( $invoice->get_label() ) ),
145
+            '{invoice_description}'  => wp_kses_post( $invoice->get_description() ),
146
+            '{subscription_name}'    => wp_kses_post( $invoice->get_subscription_name() ),
147
+            '{is_was}'               => strtotime( $invoice->get_due_date() ) < current_time( 'timestamp' ) ? __( 'was', 'invoicing' ) : __( 'is', 'invoicing' ),
148
+        );
149
+
150
+        $payment_form_data = $invoice->get_meta( 'payment_form_data', true );
151
+
152
+        if ( is_array( $payment_form_data ) ) {
153
+
154
+            foreach ( $payment_form_data as $label => $value ) {
155
+
156
+                $label = preg_replace( '/[^a-z0-9]+/', '_', strtolower( $label ) );
157
+                $value = is_array( $value ) ? implode( ', ', $value ) : $value;
158
+
159
+                if ( is_scalar( $value ) ) {
160
+                    $merge_tags[ "{{$label}}" ] = wp_kses_post( $value );
161
+                }
162
+            }
163
+        }
164
+
165
+        return apply_filters( 'getpaid_invoice_email_merge_tags', $merge_tags, $invoice );
166
+    }
167
+
168
+    /**
169
+     * Helper function to send an email.
170
+     *
171
+     * @param WPInv_Invoice $invoice
172
+     * @param GetPaid_Notification_Email $email
173
+     * @param string $type
174
+     * @param string|array $recipients
175
+     * @param array $extra_args Extra template args.
176
+     */
177
+    public function send_email( $invoice, $email, $type, $recipients, $extra_args = array() ) {
178
+
179
+        do_action( 'getpaid_before_send_invoice_notification', $type, $invoice, $email );
180
+
181
+        $skip = $invoice->is_free() && wpinv_get_option( 'skip_email_free_invoice' );
182
+        if ( apply_filters( 'getpaid_skip_invoice_email', $skip, $type, $invoice ) ) {
183
+            return;
184
+        }
185
+
186
+        $mailer     = new GetPaid_Notification_Email_Sender();
187
+        $merge_tags = $email->get_merge_tags();
188
+
189
+        $result = $mailer->send(
190
+            apply_filters( 'getpaid_invoice_email_recipients', wpinv_parse_list( $recipients ), $email ),
191
+            $email->add_merge_tags( $email->get_subject(), $merge_tags ),
192
+            $email->get_content( $merge_tags, $extra_args ),
193
+            $email->get_attachments()
194
+        );
195
+
196
+        // Maybe send a copy to the admin.
197
+        if ( $email->include_admin_bcc() ) {
198
+            $mailer->send(
199
+                wpinv_get_admin_email(),
200
+                $email->add_merge_tags( $email->get_subject() . __( ' - ADMIN BCC COPY', 'invoicing' ), $merge_tags ),
201
+                $email->get_content( $merge_tags ),
202
+                $email->get_attachments()
203
+            );
204
+        }
205
+
206
+        if ( $result ) {
207
+            $invoice->add_system_note(
208
+                sprintf(
209
+                    __( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ),
210
+                    sanitize_key( $type ),
211
+                    $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
212
+                )
213
+            );
214
+        } else {
215
+            $invoice->add_system_note(
216
+                sprintf(
217
+                    __( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ),
218
+                    sanitize_key( $type ),
219
+                    $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
220
+                )
221
+            );
222
+        }
223
+
224
+        do_action( 'getpaid_after_send_invoice_notification', $type, $invoice, $email );
225
+
226
+        return $result;
227
+    }
228
+
229
+    /**
230
+     * Also send emails to any cc users.
231
+     *
232
+     * @param array $recipients
233
+     * @param GetPaid_Notification_Email $email
234
+     */
235
+    public function filter_email_recipients( $recipients, $email ) {
236
+
237
+        if ( ! $email->is_admin_email() ) {
238
+            $cc   = $email->object->get_email_cc();
239
+            $cc_2 = get_user_meta( $email->object->get_user_id(), '_wpinv_email_cc', true );
240
+
241
+            if ( ! empty( $cc ) ) {
242
+                $cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) );
243
+                $recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) );
244
+            }
245
+
246
+            if ( ! empty( $cc_2 ) ) {
247
+                $cc_2 = array_map( 'sanitize_email', wpinv_parse_list( $cc_2 ) );
248
+                $recipients = array_filter( array_unique( array_merge( $recipients, $cc_2 ) ) );
249
+            }
250 250
 }
251 251
 
252
-		return $recipients;
252
+        return $recipients;
253 253
 
254
-	}
254
+    }
255 255
 
256
-	/**
257
-	 * Sends a new invoice notification.
258
-	 *
259
-	 * @param WPInv_Invoice $invoice
260
-	 */
261
-	public function new_invoice( $invoice ) {
256
+    /**
257
+     * Sends a new invoice notification.
258
+     *
259
+     * @param WPInv_Invoice $invoice
260
+     */
261
+    public function new_invoice( $invoice ) {
262 262
 
263
-		// Only send this email for invoices created via the admin page.
264
-		if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_paid() || $this->is_payment_form_invoice( $invoice->get_id() ) ) {
265
-			return;
266
-		}
263
+        // Only send this email for invoices created via the admin page.
264
+        if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_paid() || $this->is_payment_form_invoice( $invoice->get_id() ) ) {
265
+            return;
266
+        }
267 267
 
268
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
269
-		$recipient = wpinv_get_admin_email();
268
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
269
+        $recipient = wpinv_get_admin_email();
270 270
 
271
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
271
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
272 272
 
273
-	}
273
+    }
274 274
 
275
-	/**
276
-	 * Sends a cancelled invoice notification.
277
-	 *
278
-	 * @param WPInv_Invoice $invoice
279
-	 */
280
-	public function cancelled_invoice( $invoice ) {
275
+    /**
276
+     * Sends a cancelled invoice notification.
277
+     *
278
+     * @param WPInv_Invoice $invoice
279
+     */
280
+    public function cancelled_invoice( $invoice ) {
281 281
 
282
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
283
-		$recipient = $invoice->get_email();
282
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
283
+        $recipient = $invoice->get_email();
284 284
 
285
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
286
-	}
285
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
286
+    }
287 287
 
288
-	/**
289
-	 * Sends a failed invoice notification.
290
-	 *
291
-	 * @param WPInv_Invoice $invoice
292
-	 */
293
-	public function failed_invoice( $invoice ) {
288
+    /**
289
+     * Sends a failed invoice notification.
290
+     *
291
+     * @param WPInv_Invoice $invoice
292
+     */
293
+    public function failed_invoice( $invoice ) {
294 294
 
295
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
296
-		$recipient = wpinv_get_admin_email();
295
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
296
+        $recipient = wpinv_get_admin_email();
297 297
 
298
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
298
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
299 299
 
300
-	}
300
+    }
301 301
 
302
-	/**
303
-	 * Sends a notification whenever an invoice is put on hold.
304
-	 *
305
-	 * @param WPInv_Invoice $invoice
306
-	 */
307
-	public function onhold_invoice( $invoice ) {
302
+    /**
303
+     * Sends a notification whenever an invoice is put on hold.
304
+     *
305
+     * @param WPInv_Invoice $invoice
306
+     */
307
+    public function onhold_invoice( $invoice ) {
308 308
 
309
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
310
-		$recipient = $invoice->get_email();
309
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
310
+        $recipient = $invoice->get_email();
311 311
 
312
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
312
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
313 313
 
314
-	}
314
+    }
315 315
 
316
-	/**
317
-	 * Sends a notification whenever an invoice is marked as processing payment.
318
-	 *
319
-	 * @param WPInv_Invoice $invoice
320
-	 */
321
-	public function processing_invoice( $invoice ) {
316
+    /**
317
+     * Sends a notification whenever an invoice is marked as processing payment.
318
+     *
319
+     * @param WPInv_Invoice $invoice
320
+     */
321
+    public function processing_invoice( $invoice ) {
322 322
 
323
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
324
-		$recipient = $invoice->get_email();
323
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
324
+        $recipient = $invoice->get_email();
325 325
 
326
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
326
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
327 327
 
328
-	}
328
+    }
329 329
 
330
-	/**
331
-	 * Sends a notification whenever an invoice is paid.
332
-	 *
333
-	 * @param WPInv_Invoice $invoice
334
-	 */
335
-	public function completed_invoice( $invoice ) {
330
+    /**
331
+     * Sends a notification whenever an invoice is paid.
332
+     *
333
+     * @param WPInv_Invoice $invoice
334
+     */
335
+    public function completed_invoice( $invoice ) {
336 336
 
337
-		// (Maybe) abort if it is a renewal invoice.
338
-		if ( $invoice->is_renewal() && ! wpinv_get_option( 'email_completed_invoice_renewal_active', false ) ) {
339
-			return;
340
-		}
337
+        // (Maybe) abort if it is a renewal invoice.
338
+        if ( $invoice->is_renewal() && ! wpinv_get_option( 'email_completed_invoice_renewal_active', false ) ) {
339
+            return;
340
+        }
341 341
 
342
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
343
-		$recipient = $invoice->get_email();
342
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
343
+        $recipient = $invoice->get_email();
344 344
 
345
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
345
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
346 346
 
347
-	}
347
+    }
348 348
 
349
-	/**
350
-	 * Sends a notification whenever an invoice is refunded.
351
-	 *
352
-	 * @param WPInv_Invoice $invoice
353
-	 */
354
-	public function refunded_invoice( $invoice ) {
349
+    /**
350
+     * Sends a notification whenever an invoice is refunded.
351
+     *
352
+     * @param WPInv_Invoice $invoice
353
+     */
354
+    public function refunded_invoice( $invoice ) {
355 355
 
356
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
357
-		$recipient = $invoice->get_email();
358
-
359
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
356
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
357
+        $recipient = $invoice->get_email();
358
+
359
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
360 360
 
361
-	}
361
+    }
362 362
 
363
-	/**
364
-	 * Notifies a user about new invoices
365
-	 *
366
-	 * @param WPInv_Invoice $invoice
367
-	 * @param bool $force
368
-	 */
369
-	public function user_invoice( $invoice, $force = false ) {
363
+    /**
364
+     * Notifies a user about new invoices
365
+     *
366
+     * @param WPInv_Invoice $invoice
367
+     * @param bool $force
368
+     */
369
+    public function user_invoice( $invoice, $force = false ) {
370 370
 
371
-		if ( ! $force && ! empty( $GLOBALS['wpinv_skip_invoice_notification'] ) ) {
372
-			return;
373
-		}
374
-
375
-		// Only send this email for invoices created via the admin page.
376
-		if ( ! $invoice->is_type( 'invoice' ) || ( empty( $force ) && $invoice->is_paid() ) || ( empty( $force ) && $this->is_payment_form_invoice( $invoice->get_id() ) ) ) {
377
-			return;
378
-		}
371
+        if ( ! $force && ! empty( $GLOBALS['wpinv_skip_invoice_notification'] ) ) {
372
+            return;
373
+        }
374
+
375
+        // Only send this email for invoices created via the admin page.
376
+        if ( ! $invoice->is_type( 'invoice' ) || ( empty( $force ) && $invoice->is_paid() ) || ( empty( $force ) && $this->is_payment_form_invoice( $invoice->get_id() ) ) ) {
377
+            return;
378
+        }
379 379
 
380
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
381
-		$recipient = $invoice->get_email();
382
-
383
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
380
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
381
+        $recipient = $invoice->get_email();
382
+
383
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
384 384
 
385
-	}
386
-
387
-	/**
388
-	 * Checks if an invoice is a payment form invoice.
389
-	 *
390
-	 * @param int $invoice
391
-	 * @return bool
392
-	 */
393
-	public function is_payment_form_invoice( $invoice ) {
394
-		$is_payment_form_invoice = empty( $_GET['getpaid-admin-action'] ) && ( 'payment_form' === get_post_meta( $invoice, 'wpinv_created_via', true ) || 'geodirectory' === get_post_meta( $invoice, 'wpinv_created_via', true ) );
395
-		return apply_filters( 'getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice );
396
-	}
385
+    }
386
+
387
+    /**
388
+     * Checks if an invoice is a payment form invoice.
389
+     *
390
+     * @param int $invoice
391
+     * @return bool
392
+     */
393
+    public function is_payment_form_invoice( $invoice ) {
394
+        $is_payment_form_invoice = empty( $_GET['getpaid-admin-action'] ) && ( 'payment_form' === get_post_meta( $invoice, 'wpinv_created_via', true ) || 'geodirectory' === get_post_meta( $invoice, 'wpinv_created_via', true ) );
395
+        return apply_filters( 'getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice );
396
+    }
397 397
 
398
-	/**
399
-	 * Notifies admin about new invoice notes
400
-	 *
401
-	 * @param WPInv_Invoice $invoice
402
-	 * @param string $note
403
-	 */
404
-	public function user_note( $invoice, $note ) {
405
-
406
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
407
-		$recipient = $invoice->get_email();
398
+    /**
399
+     * Notifies admin about new invoice notes
400
+     *
401
+     * @param WPInv_Invoice $invoice
402
+     * @param string $note
403
+     */
404
+    public function user_note( $invoice, $note ) {
405
+
406
+        $email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
407
+        $recipient = $invoice->get_email();
408 408
 
409
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient, array( 'customer_note' => $note ) );
410
-
411
-	}
412
-
413
-	/**
414
-	 * (Force) Sends overdue notices.
415
-	 *
416
-	 * @param WPInv_Invoice $invoice
417
-	 */
418
-	public function force_send_overdue_notice( $invoice ) {
419
-		$email = new GetPaid_Notification_Email( 'overdue', $invoice );
420
-		return $this->send_email( $invoice, $email, 'overdue', $invoice->get_email() );
421
-	}
422
-
423
-	/**
424
-	 * Sends overdue notices.
425
-	 *
426
-	 * @TODO: Create an invoices query class.
427
-	 */
428
-	public function overdue() {
429
-		global $wpdb;
430
-
431
-		$email = new GetPaid_Notification_Email( __FUNCTION__ );
432
-
433
-		// Fetch reminder days.
434
-		$reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
435
-
436
-		// Abort if non is set.
437
-		if ( empty( $reminder_days ) ) {
438
-			return;
439
-		}
440
-
441
-		// Retrieve date query.
442
-		$date_query = $this->get_date_query( $reminder_days );
443
-
444
-		// Invoices table.
445
-		$table = $wpdb->prefix . 'getpaid_invoices';
446
-
447
-		// Fetch invoices.
448
-		$invoices  = $wpdb->get_col(
449
-			"SELECT posts.ID FROM $wpdb->posts as posts
409
+        return $this->send_email( $invoice, $email, __FUNCTION__, $recipient, array( 'customer_note' => $note ) );
410
+
411
+    }
412
+
413
+    /**
414
+     * (Force) Sends overdue notices.
415
+     *
416
+     * @param WPInv_Invoice $invoice
417
+     */
418
+    public function force_send_overdue_notice( $invoice ) {
419
+        $email = new GetPaid_Notification_Email( 'overdue', $invoice );
420
+        return $this->send_email( $invoice, $email, 'overdue', $invoice->get_email() );
421
+    }
422
+
423
+    /**
424
+     * Sends overdue notices.
425
+     *
426
+     * @TODO: Create an invoices query class.
427
+     */
428
+    public function overdue() {
429
+        global $wpdb;
430
+
431
+        $email = new GetPaid_Notification_Email( __FUNCTION__ );
432
+
433
+        // Fetch reminder days.
434
+        $reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
435
+
436
+        // Abort if non is set.
437
+        if ( empty( $reminder_days ) ) {
438
+            return;
439
+        }
440
+
441
+        // Retrieve date query.
442
+        $date_query = $this->get_date_query( $reminder_days );
443
+
444
+        // Invoices table.
445
+        $table = $wpdb->prefix . 'getpaid_invoices';
446
+
447
+        // Fetch invoices.
448
+        $invoices  = $wpdb->get_col(
449
+            "SELECT posts.ID FROM $wpdb->posts as posts
450 450
 			LEFT JOIN $table as invoices ON invoices.post_id = posts.ID
451 451
 			WHERE posts.post_type = 'wpi_invoice' AND posts.post_status = 'wpi-pending' $date_query"
452 452
         );
453 453
 
454
-		foreach ( $invoices as $invoice ) {
454
+        foreach ( $invoices as $invoice ) {
455 455
 
456
-			// Only send this email for invoices created via the admin page.
457
-			if ( ! $this->is_payment_form_invoice( $invoice ) ) {
458
-				$invoice       = new WPInv_Invoice( $invoice );
459
-				$email->object = $invoice;
456
+            // Only send this email for invoices created via the admin page.
457
+            if ( ! $this->is_payment_form_invoice( $invoice ) ) {
458
+                $invoice       = new WPInv_Invoice( $invoice );
459
+                $email->object = $invoice;
460 460
 
461
-				if ( $invoice->needs_payment() ) {
462
-					$this->send_email( $invoice, $email, __FUNCTION__, $invoice->get_email() );
463
-				}
461
+                if ( $invoice->needs_payment() ) {
462
+                    $this->send_email( $invoice, $email, __FUNCTION__, $invoice->get_email() );
463
+                }
464 464
 }
465 465
 }
466 466
 
467
-	}
467
+    }
468 468
 
469
-	/**
470
-	 * Calculates the date query for an invoices query
471
-	 *
472
-	 * @param array $reminder_days
473
-	 * @return string
474
-	 */
475
-	public function get_date_query( $reminder_days ) {
469
+    /**
470
+     * Calculates the date query for an invoices query
471
+     *
472
+     * @param array $reminder_days
473
+     * @return string
474
+     */
475
+    public function get_date_query( $reminder_days ) {
476 476
 
477
-		$date_query = array(
478
-			'relation' => 'OR',
479
-		);
477
+        $date_query = array(
478
+            'relation' => 'OR',
479
+        );
480 480
 
481
-		foreach ( $reminder_days as $days ) {
482
-			$date = date_parse( date( 'Y-m-d', strtotime( "-$days days", current_time( 'timestamp' ) ) ) );
481
+        foreach ( $reminder_days as $days ) {
482
+            $date = date_parse( date( 'Y-m-d', strtotime( "-$days days", current_time( 'timestamp' ) ) ) );
483 483
 
484
-			$date_query[] = array(
485
-				'year'  => $date['year'],
486
-				'month' => $date['month'],
487
-				'day'   => $date['day'],
488
-			);
484
+            $date_query[] = array(
485
+                'year'  => $date['year'],
486
+                'month' => $date['month'],
487
+                'day'   => $date['day'],
488
+            );
489 489
 
490
-		}
490
+        }
491 491
 
492
-		$date_query = new WP_Date_Query( $date_query, 'invoices.due_date' );
492
+        $date_query = new WP_Date_Query( $date_query, 'invoices.due_date' );
493 493
 
494
-		return $date_query->get_sql();
494
+        return $date_query->get_sql();
495 495
 
496
-	}
496
+    }
497 497
 
498 498
 }
Please login to merge, or discard this patch.
Spacing   +125 added lines, -125 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  *
5 5
  */
6 6
 
7
-defined( 'ABSPATH' ) || exit;
7
+defined('ABSPATH') || exit;
8 8
 
9 9
 /**
10 10
  * This class handles invoice notificaiton emails.
@@ -28,7 +28,7 @@  discard block
 block discarded – undo
28 28
 		$this->invoice_actions = apply_filters(
29 29
 			'getpaid_notification_email_invoice_triggers',
30 30
 			array(
31
-				'getpaid_new_invoice'                   => array( 'new_invoice', 'user_invoice' ),
31
+				'getpaid_new_invoice'                   => array('new_invoice', 'user_invoice'),
32 32
 				'getpaid_invoice_status_wpi-cancelled'  => 'cancelled_invoice',
33 33
 				'getpaid_invoice_status_wpi-failed'     => 'failed_invoice',
34 34
 				'getpaid_invoice_status_wpi-onhold'     => 'onhold_invoice',
@@ -50,11 +50,11 @@  discard block
 block discarded – undo
50 50
 	 */
51 51
 	public function init_hooks() {
52 52
 
53
-		add_filter( 'getpaid_get_email_merge_tags', array( $this, 'invoice_merge_tags' ), 10, 2 );
54
-		add_filter( 'getpaid_invoice_email_recipients', array( $this, 'filter_email_recipients' ), 10, 2 );
53
+		add_filter('getpaid_get_email_merge_tags', array($this, 'invoice_merge_tags'), 10, 2);
54
+		add_filter('getpaid_invoice_email_recipients', array($this, 'filter_email_recipients'), 10, 2);
55 55
 
56
-		foreach ( $this->invoice_actions as $hook => $email_type ) {
57
-			$this->init_email_type_hook( $hook, $email_type );
56
+		foreach ($this->invoice_actions as $hook => $email_type) {
57
+			$this->init_email_type_hook($hook, $email_type);
58 58
 		}
59 59
 	}
60 60
 
@@ -64,25 +64,25 @@  discard block
 block discarded – undo
64 64
 	 * @param string $hook
65 65
 	 * @param string|array $email_type
66 66
 	 */
67
-	public function init_email_type_hook( $hook, $email_type ) {
67
+	public function init_email_type_hook($hook, $email_type) {
68 68
 
69
-		$email_type = wpinv_parse_list( $email_type );
69
+		$email_type = wpinv_parse_list($email_type);
70 70
 
71
-		foreach ( $email_type as $type ) {
71
+		foreach ($email_type as $type) {
72 72
 
73
-			$email = new GetPaid_Notification_Email( $type );
73
+			$email = new GetPaid_Notification_Email($type);
74 74
 
75 75
 			// Abort if it is not active.
76
-			if ( ! $email->is_active() ) {
76
+			if (!$email->is_active()) {
77 77
 				continue;
78 78
 			}
79 79
 
80
-			if ( method_exists( $this, $type ) ) {
81
-				add_action( $hook, array( $this, $type ), 100, 2 );
80
+			if (method_exists($this, $type)) {
81
+				add_action($hook, array($this, $type), 100, 2);
82 82
 				continue;
83 83
 			}
84 84
 
85
-			do_action( 'getpaid_invoice_init_email_type_hook', $type, $hook );
85
+			do_action('getpaid_invoice_init_email_type_hook', $type, $hook);
86 86
 		}
87 87
 
88 88
 	}
@@ -93,19 +93,19 @@  discard block
 block discarded – undo
93 93
 	 * @param array $merge_tags
94 94
 	 * @param mixed|WPInv_Invoice|WPInv_Subscription $object
95 95
 	 */
96
-	public function invoice_merge_tags( $merge_tags, $object ) {
96
+	public function invoice_merge_tags($merge_tags, $object) {
97 97
 
98
-		if ( is_a( $object, 'WPInv_Invoice' ) ) {
98
+		if (is_a($object, 'WPInv_Invoice')) {
99 99
 			return array_merge(
100 100
 				$merge_tags,
101
-				$this->get_invoice_merge_tags( $object )
101
+				$this->get_invoice_merge_tags($object)
102 102
 			);
103 103
 		}
104 104
 
105
-		if ( is_a( $object, 'WPInv_Subscription' ) ) {
105
+		if (is_a($object, 'WPInv_Subscription')) {
106 106
 			return array_merge(
107 107
 				$merge_tags,
108
-				$this->get_invoice_merge_tags( $object->get_parent_payment() )
108
+				$this->get_invoice_merge_tags($object->get_parent_payment())
109 109
 			);
110 110
 		}
111 111
 
@@ -119,50 +119,50 @@  discard block
 block discarded – undo
119 119
 	 * @param WPInv_Invoice $invoice
120 120
 	 * @return array
121 121
 	 */
122
-	public function get_invoice_merge_tags( $invoice ) {
122
+	public function get_invoice_merge_tags($invoice) {
123 123
 
124 124
 		// Abort if it does not exist.
125
-		if ( ! $invoice->get_id() ) {
125
+		if (!$invoice->get_id()) {
126 126
 			return array();
127 127
 		}
128 128
 
129 129
 		$merge_tags = array(
130
-			'{name}'                 => sanitize_text_field( $invoice->get_user_full_name() ),
131
-			'{full_name}'            => sanitize_text_field( $invoice->get_user_full_name() ),
132
-			'{first_name}'           => sanitize_text_field( $invoice->get_first_name() ),
133
-			'{last_name}'            => sanitize_text_field( $invoice->get_last_name() ),
134
-			'{email}'                => sanitize_email( $invoice->get_email() ),
135
-			'{invoice_number}'       => sanitize_text_field( $invoice->get_number() ),
136
-			'{invoice_currency}'     => sanitize_text_field( $invoice->get_currency() ),
137
-			'{invoice_total}'        => sanitize_text_field( wpinv_price( $invoice->get_total(), $invoice->get_currency() ) ),
138
-			'{invoice_link}'         => esc_url( $invoice->get_view_url() ),
139
-			'{invoice_pay_link}'     => esc_url( $invoice->get_checkout_payment_url() ),
140
-			'{invoice_receipt_link}' => esc_url( $invoice->get_receipt_url() ),
141
-			'{invoice_date}'         => getpaid_format_date_value( $invoice->get_date_created() ),
142
-			'{invoice_due_date}'     => getpaid_format_date_value( $invoice->get_due_date(), __( 'on receipt', 'invoicing' ) ),
143
-			'{invoice_quote}'        => sanitize_text_field( strtolower( $invoice->get_label() ) ),
144
-			'{invoice_label}'        => sanitize_text_field( ucfirst( $invoice->get_label() ) ),
145
-			'{invoice_description}'  => wp_kses_post( $invoice->get_description() ),
146
-			'{subscription_name}'    => wp_kses_post( $invoice->get_subscription_name() ),
147
-			'{is_was}'               => strtotime( $invoice->get_due_date() ) < current_time( 'timestamp' ) ? __( 'was', 'invoicing' ) : __( 'is', 'invoicing' ),
130
+			'{name}'                 => sanitize_text_field($invoice->get_user_full_name()),
131
+			'{full_name}'            => sanitize_text_field($invoice->get_user_full_name()),
132
+			'{first_name}'           => sanitize_text_field($invoice->get_first_name()),
133
+			'{last_name}'            => sanitize_text_field($invoice->get_last_name()),
134
+			'{email}'                => sanitize_email($invoice->get_email()),
135
+			'{invoice_number}'       => sanitize_text_field($invoice->get_number()),
136
+			'{invoice_currency}'     => sanitize_text_field($invoice->get_currency()),
137
+			'{invoice_total}'        => sanitize_text_field(wpinv_price($invoice->get_total(), $invoice->get_currency())),
138
+			'{invoice_link}'         => esc_url($invoice->get_view_url()),
139
+			'{invoice_pay_link}'     => esc_url($invoice->get_checkout_payment_url()),
140
+			'{invoice_receipt_link}' => esc_url($invoice->get_receipt_url()),
141
+			'{invoice_date}'         => getpaid_format_date_value($invoice->get_date_created()),
142
+			'{invoice_due_date}'     => getpaid_format_date_value($invoice->get_due_date(), __('on receipt', 'invoicing')),
143
+			'{invoice_quote}'        => sanitize_text_field(strtolower($invoice->get_label())),
144
+			'{invoice_label}'        => sanitize_text_field(ucfirst($invoice->get_label())),
145
+			'{invoice_description}'  => wp_kses_post($invoice->get_description()),
146
+			'{subscription_name}'    => wp_kses_post($invoice->get_subscription_name()),
147
+			'{is_was}'               => strtotime($invoice->get_due_date()) < current_time('timestamp') ? __('was', 'invoicing') : __('is', 'invoicing'),
148 148
 		);
149 149
 
150
-		$payment_form_data = $invoice->get_meta( 'payment_form_data', true );
150
+		$payment_form_data = $invoice->get_meta('payment_form_data', true);
151 151
 
152
-		if ( is_array( $payment_form_data ) ) {
152
+		if (is_array($payment_form_data)) {
153 153
 
154
-			foreach ( $payment_form_data as $label => $value ) {
154
+			foreach ($payment_form_data as $label => $value) {
155 155
 
156
-				$label = preg_replace( '/[^a-z0-9]+/', '_', strtolower( $label ) );
157
-				$value = is_array( $value ) ? implode( ', ', $value ) : $value;
156
+				$label = preg_replace('/[^a-z0-9]+/', '_', strtolower($label));
157
+				$value = is_array($value) ? implode(', ', $value) : $value;
158 158
 
159
-				if ( is_scalar( $value ) ) {
160
-					$merge_tags[ "{{$label}}" ] = wp_kses_post( $value );
159
+				if (is_scalar($value)) {
160
+					$merge_tags["{{$label}}"] = wp_kses_post($value);
161 161
 				}
162 162
 			}
163 163
 		}
164 164
 
165
-		return apply_filters( 'getpaid_invoice_email_merge_tags', $merge_tags, $invoice );
165
+		return apply_filters('getpaid_invoice_email_merge_tags', $merge_tags, $invoice);
166 166
 	}
167 167
 
168 168
 	/**
@@ -174,12 +174,12 @@  discard block
 block discarded – undo
174 174
 	 * @param string|array $recipients
175 175
 	 * @param array $extra_args Extra template args.
176 176
 	 */
177
-	public function send_email( $invoice, $email, $type, $recipients, $extra_args = array() ) {
177
+	public function send_email($invoice, $email, $type, $recipients, $extra_args = array()) {
178 178
 
179
-		do_action( 'getpaid_before_send_invoice_notification', $type, $invoice, $email );
179
+		do_action('getpaid_before_send_invoice_notification', $type, $invoice, $email);
180 180
 
181
-		$skip = $invoice->is_free() && wpinv_get_option( 'skip_email_free_invoice' );
182
-		if ( apply_filters( 'getpaid_skip_invoice_email', $skip, $type, $invoice ) ) {
181
+		$skip = $invoice->is_free() && wpinv_get_option('skip_email_free_invoice');
182
+		if (apply_filters('getpaid_skip_invoice_email', $skip, $type, $invoice)) {
183 183
 			return;
184 184
 		}
185 185
 
@@ -187,41 +187,41 @@  discard block
 block discarded – undo
187 187
 		$merge_tags = $email->get_merge_tags();
188 188
 
189 189
 		$result = $mailer->send(
190
-			apply_filters( 'getpaid_invoice_email_recipients', wpinv_parse_list( $recipients ), $email ),
191
-			$email->add_merge_tags( $email->get_subject(), $merge_tags ),
192
-			$email->get_content( $merge_tags, $extra_args ),
190
+			apply_filters('getpaid_invoice_email_recipients', wpinv_parse_list($recipients), $email),
191
+			$email->add_merge_tags($email->get_subject(), $merge_tags),
192
+			$email->get_content($merge_tags, $extra_args),
193 193
 			$email->get_attachments()
194 194
 		);
195 195
 
196 196
 		// Maybe send a copy to the admin.
197
-		if ( $email->include_admin_bcc() ) {
197
+		if ($email->include_admin_bcc()) {
198 198
 			$mailer->send(
199 199
 				wpinv_get_admin_email(),
200
-				$email->add_merge_tags( $email->get_subject() . __( ' - ADMIN BCC COPY', 'invoicing' ), $merge_tags ),
201
-				$email->get_content( $merge_tags ),
200
+				$email->add_merge_tags($email->get_subject() . __(' - ADMIN BCC COPY', 'invoicing'), $merge_tags),
201
+				$email->get_content($merge_tags),
202 202
 				$email->get_attachments()
203 203
 			);
204 204
 		}
205 205
 
206
-		if ( $result ) {
206
+		if ($result) {
207 207
 			$invoice->add_system_note(
208 208
 				sprintf(
209
-					__( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ),
210
-					sanitize_key( $type ),
211
-					$email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
209
+					__('Successfully sent %1$s notification email to %2$s.', 'invoicing'),
210
+					sanitize_key($type),
211
+					$email->is_admin_email() ? __('admin') : __('the customer')
212 212
 				)
213 213
 			);
214 214
 		} else {
215 215
 			$invoice->add_system_note(
216 216
 				sprintf(
217
-					__( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ),
218
-					sanitize_key( $type ),
219
-					$email->is_admin_email() ? __( 'admin' ) : __( 'the customer' )
217
+					__('Failed sending %1$s notification email to %2$s.', 'invoicing'),
218
+					sanitize_key($type),
219
+					$email->is_admin_email() ? __('admin') : __('the customer')
220 220
 				)
221 221
 			);
222 222
 		}
223 223
 
224
-		do_action( 'getpaid_after_send_invoice_notification', $type, $invoice, $email );
224
+		do_action('getpaid_after_send_invoice_notification', $type, $invoice, $email);
225 225
 
226 226
 		return $result;
227 227
 	}
@@ -232,20 +232,20 @@  discard block
 block discarded – undo
232 232
 	 * @param array $recipients
233 233
 	 * @param GetPaid_Notification_Email $email
234 234
 	 */
235
-	public function filter_email_recipients( $recipients, $email ) {
235
+	public function filter_email_recipients($recipients, $email) {
236 236
 
237
-		if ( ! $email->is_admin_email() ) {
237
+		if (!$email->is_admin_email()) {
238 238
 			$cc   = $email->object->get_email_cc();
239
-			$cc_2 = get_user_meta( $email->object->get_user_id(), '_wpinv_email_cc', true );
239
+			$cc_2 = get_user_meta($email->object->get_user_id(), '_wpinv_email_cc', true);
240 240
 
241
-			if ( ! empty( $cc ) ) {
242
-				$cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) );
243
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) );
241
+			if (!empty($cc)) {
242
+				$cc = array_map('sanitize_email', wpinv_parse_list($cc));
243
+				$recipients = array_filter(array_unique(array_merge($recipients, $cc)));
244 244
 			}
245 245
 
246
-			if ( ! empty( $cc_2 ) ) {
247
-				$cc_2 = array_map( 'sanitize_email', wpinv_parse_list( $cc_2 ) );
248
-				$recipients = array_filter( array_unique( array_merge( $recipients, $cc_2 ) ) );
246
+			if (!empty($cc_2)) {
247
+				$cc_2 = array_map('sanitize_email', wpinv_parse_list($cc_2));
248
+				$recipients = array_filter(array_unique(array_merge($recipients, $cc_2)));
249 249
 			}
250 250
 }
251 251
 
@@ -258,17 +258,17 @@  discard block
 block discarded – undo
258 258
 	 *
259 259
 	 * @param WPInv_Invoice $invoice
260 260
 	 */
261
-	public function new_invoice( $invoice ) {
261
+	public function new_invoice($invoice) {
262 262
 
263 263
 		// Only send this email for invoices created via the admin page.
264
-		if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_paid() || $this->is_payment_form_invoice( $invoice->get_id() ) ) {
264
+		if (!$invoice->is_type('invoice') || $invoice->is_paid() || $this->is_payment_form_invoice($invoice->get_id())) {
265 265
 			return;
266 266
 		}
267 267
 
268
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
268
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
269 269
 		$recipient = wpinv_get_admin_email();
270 270
 
271
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
271
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
272 272
 
273 273
 	}
274 274
 
@@ -277,12 +277,12 @@  discard block
 block discarded – undo
277 277
 	 *
278 278
 	 * @param WPInv_Invoice $invoice
279 279
 	 */
280
-	public function cancelled_invoice( $invoice ) {
280
+	public function cancelled_invoice($invoice) {
281 281
 
282
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
282
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
283 283
 		$recipient = $invoice->get_email();
284 284
 
285
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
285
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
286 286
 	}
287 287
 
288 288
 	/**
@@ -290,12 +290,12 @@  discard block
 block discarded – undo
290 290
 	 *
291 291
 	 * @param WPInv_Invoice $invoice
292 292
 	 */
293
-	public function failed_invoice( $invoice ) {
293
+	public function failed_invoice($invoice) {
294 294
 
295
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
295
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
296 296
 		$recipient = wpinv_get_admin_email();
297 297
 
298
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
298
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
299 299
 
300 300
 	}
301 301
 
@@ -304,12 +304,12 @@  discard block
 block discarded – undo
304 304
 	 *
305 305
 	 * @param WPInv_Invoice $invoice
306 306
 	 */
307
-	public function onhold_invoice( $invoice ) {
307
+	public function onhold_invoice($invoice) {
308 308
 
309
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
309
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
310 310
 		$recipient = $invoice->get_email();
311 311
 
312
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
312
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
313 313
 
314 314
 	}
315 315
 
@@ -318,12 +318,12 @@  discard block
 block discarded – undo
318 318
 	 *
319 319
 	 * @param WPInv_Invoice $invoice
320 320
 	 */
321
-	public function processing_invoice( $invoice ) {
321
+	public function processing_invoice($invoice) {
322 322
 
323
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
323
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
324 324
 		$recipient = $invoice->get_email();
325 325
 
326
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
326
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
327 327
 
328 328
 	}
329 329
 
@@ -332,17 +332,17 @@  discard block
 block discarded – undo
332 332
 	 *
333 333
 	 * @param WPInv_Invoice $invoice
334 334
 	 */
335
-	public function completed_invoice( $invoice ) {
335
+	public function completed_invoice($invoice) {
336 336
 
337 337
 		// (Maybe) abort if it is a renewal invoice.
338
-		if ( $invoice->is_renewal() && ! wpinv_get_option( 'email_completed_invoice_renewal_active', false ) ) {
338
+		if ($invoice->is_renewal() && !wpinv_get_option('email_completed_invoice_renewal_active', false)) {
339 339
 			return;
340 340
 		}
341 341
 
342
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
342
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
343 343
 		$recipient = $invoice->get_email();
344 344
 
345
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
345
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
346 346
 
347 347
 	}
348 348
 
@@ -351,12 +351,12 @@  discard block
 block discarded – undo
351 351
 	 *
352 352
 	 * @param WPInv_Invoice $invoice
353 353
 	 */
354
-	public function refunded_invoice( $invoice ) {
354
+	public function refunded_invoice($invoice) {
355 355
 
356
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
356
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
357 357
 		$recipient = $invoice->get_email();
358 358
 
359
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
359
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
360 360
 
361 361
 	}
362 362
 
@@ -366,21 +366,21 @@  discard block
 block discarded – undo
366 366
 	 * @param WPInv_Invoice $invoice
367 367
 	 * @param bool $force
368 368
 	 */
369
-	public function user_invoice( $invoice, $force = false ) {
369
+	public function user_invoice($invoice, $force = false) {
370 370
 
371
-		if ( ! $force && ! empty( $GLOBALS['wpinv_skip_invoice_notification'] ) ) {
371
+		if (!$force && !empty($GLOBALS['wpinv_skip_invoice_notification'])) {
372 372
 			return;
373 373
 		}
374 374
 
375 375
 		// Only send this email for invoices created via the admin page.
376
-		if ( ! $invoice->is_type( 'invoice' ) || ( empty( $force ) && $invoice->is_paid() ) || ( empty( $force ) && $this->is_payment_form_invoice( $invoice->get_id() ) ) ) {
376
+		if (!$invoice->is_type('invoice') || (empty($force) && $invoice->is_paid()) || (empty($force) && $this->is_payment_form_invoice($invoice->get_id()))) {
377 377
 			return;
378 378
 		}
379 379
 
380
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
380
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
381 381
 		$recipient = $invoice->get_email();
382 382
 
383
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient );
383
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient);
384 384
 
385 385
 	}
386 386
 
@@ -390,9 +390,9 @@  discard block
 block discarded – undo
390 390
 	 * @param int $invoice
391 391
 	 * @return bool
392 392
 	 */
393
-	public function is_payment_form_invoice( $invoice ) {
394
-		$is_payment_form_invoice = empty( $_GET['getpaid-admin-action'] ) && ( 'payment_form' === get_post_meta( $invoice, 'wpinv_created_via', true ) || 'geodirectory' === get_post_meta( $invoice, 'wpinv_created_via', true ) );
395
-		return apply_filters( 'getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice );
393
+	public function is_payment_form_invoice($invoice) {
394
+		$is_payment_form_invoice = empty($_GET['getpaid-admin-action']) && ('payment_form' === get_post_meta($invoice, 'wpinv_created_via', true) || 'geodirectory' === get_post_meta($invoice, 'wpinv_created_via', true));
395
+		return apply_filters('getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice);
396 396
 	}
397 397
 
398 398
 	/**
@@ -401,12 +401,12 @@  discard block
 block discarded – undo
401 401
 	 * @param WPInv_Invoice $invoice
402 402
 	 * @param string $note
403 403
 	 */
404
-	public function user_note( $invoice, $note ) {
404
+	public function user_note($invoice, $note) {
405 405
 
406
-		$email     = new GetPaid_Notification_Email( __FUNCTION__, $invoice );
406
+		$email     = new GetPaid_Notification_Email(__FUNCTION__, $invoice);
407 407
 		$recipient = $invoice->get_email();
408 408
 
409
-		return $this->send_email( $invoice, $email, __FUNCTION__, $recipient, array( 'customer_note' => $note ) );
409
+		return $this->send_email($invoice, $email, __FUNCTION__, $recipient, array('customer_note' => $note));
410 410
 
411 411
 	}
412 412
 
@@ -415,9 +415,9 @@  discard block
 block discarded – undo
415 415
 	 *
416 416
 	 * @param WPInv_Invoice $invoice
417 417
 	 */
418
-	public function force_send_overdue_notice( $invoice ) {
419
-		$email = new GetPaid_Notification_Email( 'overdue', $invoice );
420
-		return $this->send_email( $invoice, $email, 'overdue', $invoice->get_email() );
418
+	public function force_send_overdue_notice($invoice) {
419
+		$email = new GetPaid_Notification_Email('overdue', $invoice);
420
+		return $this->send_email($invoice, $email, 'overdue', $invoice->get_email());
421 421
 	}
422 422
 
423 423
 	/**
@@ -428,38 +428,38 @@  discard block
 block discarded – undo
428 428
 	public function overdue() {
429 429
 		global $wpdb;
430 430
 
431
-		$email = new GetPaid_Notification_Email( __FUNCTION__ );
431
+		$email = new GetPaid_Notification_Email(__FUNCTION__);
432 432
 
433 433
 		// Fetch reminder days.
434
-		$reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) );
434
+		$reminder_days = array_unique(wp_parse_id_list($email->get_option('days')));
435 435
 
436 436
 		// Abort if non is set.
437
-		if ( empty( $reminder_days ) ) {
437
+		if (empty($reminder_days)) {
438 438
 			return;
439 439
 		}
440 440
 
441 441
 		// Retrieve date query.
442
-		$date_query = $this->get_date_query( $reminder_days );
442
+		$date_query = $this->get_date_query($reminder_days);
443 443
 
444 444
 		// Invoices table.
445 445
 		$table = $wpdb->prefix . 'getpaid_invoices';
446 446
 
447 447
 		// Fetch invoices.
448
-		$invoices  = $wpdb->get_col(
448
+		$invoices = $wpdb->get_col(
449 449
 			"SELECT posts.ID FROM $wpdb->posts as posts
450 450
 			LEFT JOIN $table as invoices ON invoices.post_id = posts.ID
451 451
 			WHERE posts.post_type = 'wpi_invoice' AND posts.post_status = 'wpi-pending' $date_query"
452 452
         );
453 453
 
454
-		foreach ( $invoices as $invoice ) {
454
+		foreach ($invoices as $invoice) {
455 455
 
456 456
 			// Only send this email for invoices created via the admin page.
457
-			if ( ! $this->is_payment_form_invoice( $invoice ) ) {
458
-				$invoice       = new WPInv_Invoice( $invoice );
457
+			if (!$this->is_payment_form_invoice($invoice)) {
458
+				$invoice       = new WPInv_Invoice($invoice);
459 459
 				$email->object = $invoice;
460 460
 
461
-				if ( $invoice->needs_payment() ) {
462
-					$this->send_email( $invoice, $email, __FUNCTION__, $invoice->get_email() );
461
+				if ($invoice->needs_payment()) {
462
+					$this->send_email($invoice, $email, __FUNCTION__, $invoice->get_email());
463 463
 				}
464 464
 }
465 465
 }
@@ -472,14 +472,14 @@  discard block
 block discarded – undo
472 472
 	 * @param array $reminder_days
473 473
 	 * @return string
474 474
 	 */
475
-	public function get_date_query( $reminder_days ) {
475
+	public function get_date_query($reminder_days) {
476 476
 
477 477
 		$date_query = array(
478 478
 			'relation' => 'OR',
479 479
 		);
480 480
 
481
-		foreach ( $reminder_days as $days ) {
482
-			$date = date_parse( date( 'Y-m-d', strtotime( "-$days days", current_time( 'timestamp' ) ) ) );
481
+		foreach ($reminder_days as $days) {
482
+			$date = date_parse(date('Y-m-d', strtotime("-$days days", current_time('timestamp'))));
483 483
 
484 484
 			$date_query[] = array(
485 485
 				'year'  => $date['year'],
@@ -489,7 +489,7 @@  discard block
 block discarded – undo
489 489
 
490 490
 		}
491 491
 
492
-		$date_query = new WP_Date_Query( $date_query, 'invoices.due_date' );
492
+		$date_query = new WP_Date_Query($date_query, 'invoices.due_date');
493 493
 
494 494
 		return $date_query->get_sql();
495 495
 
Please login to merge, or discard this patch.
templates/invoice/line-totals.php 2 patches
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -39,40 +39,40 @@
 block discarded – undo
39 39
                                 if ( 'tax' === $key ) {
40 40
                                     wpinv_the_price( $invoice->get_total_tax(), $invoice->get_currency() );
41 41
 
42
-								if ( wpinv_use_taxes() && ! $invoice->get_disable_taxes() ) {
42
+                                if ( wpinv_use_taxes() && ! $invoice->get_disable_taxes() ) {
43 43
 
44
-									$taxes = $invoice->get_total_tax();
45
-									if ( empty( $taxes ) && GetPaid_Payment_Form_Submission_Taxes::is_eu_transaction( $invoice->get_country() ) ) {
46
-										echo ' <em class="text-muted small">';
47
-										_x( '(Reverse charged)', 'This is a legal term for reverse charging tax in the EU', 'invoicing' );
48
-										echo '</em>';
44
+                                    $taxes = $invoice->get_total_tax();
45
+                                    if ( empty( $taxes ) && GetPaid_Payment_Form_Submission_Taxes::is_eu_transaction( $invoice->get_country() ) ) {
46
+                                        echo ' <em class="text-muted small">';
47
+                                        _x( '(Reverse charged)', 'This is a legal term for reverse charging tax in the EU', 'invoicing' );
48
+                                        echo '</em>';
49 49
                                     }
50 50
 }
51 51
 }
52 52
 
53 53
                                 // Total Fee.
54 54
                                 if ( 'fee' === $key ) {
55
-								wpinv_the_price( $invoice->get_total_fees(), $invoice->get_currency() );
55
+                                wpinv_the_price( $invoice->get_total_fees(), $invoice->get_currency() );
56 56
                                 }
57 57
 
58 58
                                 // Total discount.
59 59
                                 if ( 'discount' === $key ) {
60
-								wpinv_the_price( $invoice->get_total_discount(), $invoice->get_currency() );
60
+                                wpinv_the_price( $invoice->get_total_discount(), $invoice->get_currency() );
61 61
                                 }
62 62
 
63 63
                                 // Shipping.
64 64
                                 if ( 'shipping' === $key ) {
65
-								wpinv_the_price( $invoice->get_shipping(), $invoice->get_currency() );
65
+                                wpinv_the_price( $invoice->get_shipping(), $invoice->get_currency() );
66 66
                                 }
67 67
 
68 68
                                 // Sub total.
69 69
                                 if ( 'subtotal' === $key ) {
70
-								wpinv_the_price( $invoice->get_subtotal(), $invoice->get_currency() );
70
+                                wpinv_the_price( $invoice->get_subtotal(), $invoice->get_currency() );
71 71
                                 }
72 72
 
73 73
                                 // Total.
74 74
                                 if ( 'total' === $key ) {
75
-								wpinv_the_price( $invoice->get_total(), $invoice->get_currency() );
75
+                                wpinv_the_price( $invoice->get_total(), $invoice->get_currency() );
76 76
                                 }
77 77
 
78 78
                                 // Fires when printing a cart total.
Please login to merge, or discard this patch.
Spacing   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -9,26 +9,26 @@  discard block
 block discarded – undo
9 9
  * @var WPInv_Invoice $invoice
10 10
  */
11 11
 
12
-defined( 'ABSPATH' ) || exit;
12
+defined('ABSPATH') || exit;
13 13
 
14 14
 // Totals rows.
15
-$totals = getpaid_invoice_totals_rows( $invoice );
15
+$totals = getpaid_invoice_totals_rows($invoice);
16 16
 
17
-do_action( 'getpaid_before_invoice_line_totals', $invoice, $totals );
17
+do_action('getpaid_before_invoice_line_totals', $invoice, $totals);
18 18
 
19 19
 ?>
20 20
 <div class='getpaid-invoice-line-totals'>
21 21
     <div class="row">
22 22
         <div class="col-12 offset-sm-6 col-sm-6 border-sm-left pl-sm-0">
23 23
 
24
-            <?php foreach ( $totals as $key => $label ) : ?>
24
+            <?php foreach ($totals as $key => $label) : ?>
25 25
 
26
-                <div class="getpaid-invoice-line-totals-col <?php echo esc_attr( $key ); ?>">
26
+                <div class="getpaid-invoice-line-totals-col <?php echo esc_attr($key); ?>">
27 27
 
28 28
                     <div class="form-row">
29 29
 
30 30
                         <div class="col-8 getpaid-invoice-line-totals-label">
31
-                            <?php echo esc_html( $label ); ?>
31
+                            <?php echo esc_html($label); ?>
32 32
                         </div>
33 33
 
34 34
                         <div class="col-4 getpaid-invoice-line-totals-value pl-0">
@@ -36,47 +36,47 @@  discard block
 block discarded – undo
36 36
                             <?php
37 37
 
38 38
                                 // Total tax.
39
-                                if ( 'tax' === $key ) {
40
-                                    wpinv_the_price( $invoice->get_total_tax(), $invoice->get_currency() );
39
+                                if ('tax' === $key) {
40
+                                    wpinv_the_price($invoice->get_total_tax(), $invoice->get_currency());
41 41
 
42
-								if ( wpinv_use_taxes() && ! $invoice->get_disable_taxes() ) {
42
+								if (wpinv_use_taxes() && !$invoice->get_disable_taxes()) {
43 43
 
44 44
 									$taxes = $invoice->get_total_tax();
45
-									if ( empty( $taxes ) && GetPaid_Payment_Form_Submission_Taxes::is_eu_transaction( $invoice->get_country() ) ) {
45
+									if (empty($taxes) && GetPaid_Payment_Form_Submission_Taxes::is_eu_transaction($invoice->get_country())) {
46 46
 										echo ' <em class="text-muted small">';
47
-										_x( '(Reverse charged)', 'This is a legal term for reverse charging tax in the EU', 'invoicing' );
47
+										_x('(Reverse charged)', 'This is a legal term for reverse charging tax in the EU', 'invoicing');
48 48
 										echo '</em>';
49 49
                                     }
50 50
 }
51 51
 }
52 52
 
53 53
                                 // Total Fee.
54
-                                if ( 'fee' === $key ) {
55
-								wpinv_the_price( $invoice->get_total_fees(), $invoice->get_currency() );
54
+                                if ('fee' === $key) {
55
+								wpinv_the_price($invoice->get_total_fees(), $invoice->get_currency());
56 56
                                 }
57 57
 
58 58
                                 // Total discount.
59
-                                if ( 'discount' === $key ) {
60
-								wpinv_the_price( $invoice->get_total_discount(), $invoice->get_currency() );
59
+                                if ('discount' === $key) {
60
+								wpinv_the_price($invoice->get_total_discount(), $invoice->get_currency());
61 61
                                 }
62 62
 
63 63
                                 // Shipping.
64
-                                if ( 'shipping' === $key ) {
65
-								wpinv_the_price( $invoice->get_shipping(), $invoice->get_currency() );
64
+                                if ('shipping' === $key) {
65
+								wpinv_the_price($invoice->get_shipping(), $invoice->get_currency());
66 66
                                 }
67 67
 
68 68
                                 // Sub total.
69
-                                if ( 'subtotal' === $key ) {
70
-								wpinv_the_price( $invoice->get_subtotal(), $invoice->get_currency() );
69
+                                if ('subtotal' === $key) {
70
+								wpinv_the_price($invoice->get_subtotal(), $invoice->get_currency());
71 71
                                 }
72 72
 
73 73
                                 // Total.
74
-                                if ( 'total' === $key ) {
75
-								wpinv_the_price( $invoice->get_total(), $invoice->get_currency() );
74
+                                if ('total' === $key) {
75
+								wpinv_the_price($invoice->get_total(), $invoice->get_currency());
76 76
                                 }
77 77
 
78 78
                                 // Fires when printing a cart total.
79
-                                do_action( "getpaid_invoice_cart_totals_$key", $invoice );
79
+                                do_action("getpaid_invoice_cart_totals_$key", $invoice);
80 80
 
81 81
                             ?>
82 82
 
@@ -90,4 +90,4 @@  discard block
 block discarded – undo
90 90
     </div>
91 91
 </div> <!-- end .getpaid-invoice-line-totals -->
92 92
 
93
-<?php do_action( 'getpaid_after_invoice_line_totals', $invoice, $totals ); ?>
93
+<?php do_action('getpaid_after_invoice_line_totals', $invoice, $totals); ?>
Please login to merge, or discard this patch.
includes/admin/register-settings.php 2 patches
Indentation   +309 added lines, -309 removed lines patch added patch discarded remove patch
@@ -192,13 +192,13 @@  discard block
 block discarded – undo
192 192
     $name       = isset( $option['name'] ) ? $option['name'] : '';
193 193
     $cb         = "wpinv_{$option['type']}_callback";
194 194
     $section    = "wpinv_settings_{$tab}_$section";
195
-	$is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page'];
195
+    $is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page'];
196 196
 
197
-	if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) {
198
-		$tip   = wpinv_clean( $option['desc'] );
199
-		$name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>";
200
-		unset( $option['desc'] );
201
-	}
197
+    if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) {
198
+        $tip   = wpinv_clean( $option['desc'] );
199
+        $name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>";
200
+        unset( $option['desc'] );
201
+    }
202 202
 
203 203
     // Loop through all tabs.
204 204
     add_settings_field(
@@ -225,9 +225,9 @@  discard block
 block discarded – undo
225 225
             'faux'            => isset( $option['faux'] ) ? $option['faux'] : false,
226 226
             'onchange'        => isset( $option['onchange'] ) ? $option['onchange'] : '',
227 227
             'custom'          => isset( $option['custom'] ) ? $option['custom'] : '',
228
-			'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '',
229
-			'class'           => isset( $option['class'] ) ? $option['class'] : '',
230
-			'style'           => isset( $option['style'] ) ? $option['style'] : '',
228
+            'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '',
229
+            'class'           => isset( $option['class'] ) ? $option['class'] : '',
230
+            'style'           => isset( $option['style'] ) ? $option['style'] : '',
231 231
             'cols'            => isset( $option['cols'] ) && (int) $option['cols'] > 0 ? (int) $option['cols'] : 50,
232 232
             'rows'            => isset( $option['rows'] ) && (int) $option['rows'] > 0 ? (int) $option['rows'] : 5,
233 233
         )
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
  * @return array
242 242
  */
243 243
 function wpinv_get_registered_settings() {
244
-	return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) );
244
+    return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) );
245 245
 }
246 246
 
247 247
 /**
@@ -260,18 +260,18 @@  discard block
 block discarded – undo
260 260
  */
261 261
 function wpinv_settings_sanitize( $input = array() ) {
262 262
 
263
-	$wpinv_options = wpinv_get_options();
264
-	$raw_referrer  = wp_get_raw_referer();
263
+    $wpinv_options = wpinv_get_options();
264
+    $raw_referrer  = wp_get_raw_referer();
265 265
 
266 266
     if ( empty( $raw_referrer ) ) {
267
-		return array_merge( $wpinv_options, $input );
267
+        return array_merge( $wpinv_options, $input );
268 268
     }
269 269
 
270 270
     wp_parse_str( $raw_referrer, $referrer );
271 271
 
272
-	if ( in_array( 'gp-setup', $referrer ) ) {
273
-		return array_merge( $wpinv_options, $input );
274
-	}
272
+    if ( in_array( 'gp-setup', $referrer ) ) {
273
+        return array_merge( $wpinv_options, $input );
274
+    }
275 275
 
276 276
     $settings = wpinv_get_registered_settings();
277 277
     $tab      = isset( $referrer['tab'] ) ? $referrer['tab'] : 'general';
@@ -293,10 +293,10 @@  discard block
 block discarded – undo
293 293
         }
294 294
 
295 295
         // General filter
296
-		$input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key );
296
+        $input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key );
297 297
 
298
-		// Key specific filter.
299
-		$input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] );
298
+        // Key specific filter.
299
+        $input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] );
300 300
     }
301 301
 
302 302
     // Loop through the whitelist and unset any that are empty for the tab being saved
@@ -339,14 +339,14 @@  discard block
 block discarded – undo
339 339
 
340 340
     foreach ( $new_rates as $rate ) {
341 341
 
342
-		$rate['rate']    = wpinv_sanitize_amount( $rate['rate'] );
343
-		$rate['name']    = sanitize_text_field( $rate['name'] );
344
-		$rate['state']   = sanitize_text_field( $rate['state'] );
345
-		$rate['country'] = sanitize_text_field( $rate['country'] );
346
-		$rate['global']  = empty( $rate['state'] );
347
-		$tax_rates[]     = $rate;
342
+        $rate['rate']    = wpinv_sanitize_amount( $rate['rate'] );
343
+        $rate['name']    = sanitize_text_field( $rate['name'] );
344
+        $rate['state']   = sanitize_text_field( $rate['state'] );
345
+        $rate['country'] = sanitize_text_field( $rate['country'] );
346
+        $rate['global']  = empty( $rate['state'] );
347
+        $tax_rates[]     = $rate;
348 348
 
349
-	}
349
+    }
350 350
 
351 351
     update_option( 'wpinv_tax_rates', $tax_rates );
352 352
 
@@ -359,21 +359,21 @@  discard block
 block discarded – undo
359 359
         return $input;
360 360
     }
361 361
 
362
-	if ( empty( $_POST['wpinv_tax_rules_nonce'] ) || ! wp_verify_nonce( $_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules' ) ) {
363
-		return $input;
364
-	}
362
+    if ( empty( $_POST['wpinv_tax_rules_nonce'] ) || ! wp_verify_nonce( $_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules' ) ) {
363
+        return $input;
364
+    }
365 365
 
366 366
     $new_rules = ! empty( $_POST['tax_rules'] ) ? wp_kses_post_deep( array_values( $_POST['tax_rules'] ) ) : array();
367 367
     $tax_rules = array();
368 368
 
369 369
     foreach ( $new_rules as $rule ) {
370 370
 
371
-		$rule['key']      = sanitize_title_with_dashes( $rule['key'] );
372
-		$rule['label']    = sanitize_text_field( $rule['label'] );
373
-		$rule['tax_base'] = sanitize_text_field( $rule['tax_base'] );
374
-		$tax_rules[]      = $rule;
371
+        $rule['key']      = sanitize_title_with_dashes( $rule['key'] );
372
+        $rule['label']    = sanitize_text_field( $rule['label'] );
373
+        $rule['tax_base'] = sanitize_text_field( $rule['tax_base'] );
374
+        $tax_rules[]      = $rule;
375 375
 
376
-	}
376
+    }
377 377
 
378 378
     update_option( 'wpinv_tax_rules', $tax_rules );
379 379
 
@@ -386,11 +386,11 @@  discard block
 block discarded – undo
386 386
     $tabs['general']  = __( 'General', 'invoicing' );
387 387
     $tabs['gateways'] = __( 'Payment Gateways', 'invoicing' );
388 388
     $tabs['taxes']    = __( 'Taxes', 'invoicing' );
389
-	$tabs['emails']   = __( 'Emails', 'invoicing' );
389
+    $tabs['emails']   = __( 'Emails', 'invoicing' );
390 390
 
391
-	if ( count( getpaid_get_integration_settings() ) > 0 ) {
392
-		$tabs['integrations'] = __( 'Integrations', 'invoicing' );
393
-	}
391
+    if ( count( getpaid_get_integration_settings() ) > 0 ) {
392
+        $tabs['integrations'] = __( 'Integrations', 'invoicing' );
393
+    }
394 394
 
395 395
     $tabs['privacy']  = __( 'Privacy', 'invoicing' );
396 396
     $tabs['misc']     = __( 'Misc', 'invoicing' );
@@ -421,53 +421,53 @@  discard block
 block discarded – undo
421 421
         'general'      => apply_filters(
422 422
             'wpinv_settings_sections_general',
423 423
             array(
424
-				'main'             => __( 'General Settings', 'invoicing' ),
425
-				'page_section'     => __( 'Page Settings', 'invoicing' ),
426
-				'currency_section' => __( 'Currency Settings', 'invoicing' ),
427
-				'labels'           => __( 'Label Texts', 'invoicing' ),
424
+                'main'             => __( 'General Settings', 'invoicing' ),
425
+                'page_section'     => __( 'Page Settings', 'invoicing' ),
426
+                'currency_section' => __( 'Currency Settings', 'invoicing' ),
427
+                'labels'           => __( 'Label Texts', 'invoicing' ),
428 428
             )
429 429
         ),
430 430
         'gateways'     => apply_filters(
431 431
             'wpinv_settings_sections_gateways',
432 432
             array(
433
-				'main' => __( 'Gateway Settings', 'invoicing' ),
433
+                'main' => __( 'Gateway Settings', 'invoicing' ),
434 434
             )
435 435
         ),
436 436
         'taxes'        => apply_filters(
437 437
             'wpinv_settings_sections_taxes',
438 438
             array(
439
-				'main'  => __( 'Tax Settings', 'invoicing' ),
440
-				'rules' => __( 'Tax Rules', 'invoicing' ),
441
-				'rates' => __( 'Tax Rates', 'invoicing' ),
442
-				'vat'   => __( 'EU VAT Settings', 'invoicing' ),
439
+                'main'  => __( 'Tax Settings', 'invoicing' ),
440
+                'rules' => __( 'Tax Rules', 'invoicing' ),
441
+                'rates' => __( 'Tax Rates', 'invoicing' ),
442
+                'vat'   => __( 'EU VAT Settings', 'invoicing' ),
443 443
             )
444 444
         ),
445 445
         'emails'       => apply_filters(
446 446
             'wpinv_settings_sections_emails',
447 447
             array(
448
-				'main' => __( 'Email Settings', 'invoicing' ),
448
+                'main' => __( 'Email Settings', 'invoicing' ),
449 449
             )
450 450
         ),
451 451
 
452
-		'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ),
452
+        'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ),
453 453
 
454 454
         'privacy'      => apply_filters(
455 455
             'wpinv_settings_sections_privacy',
456 456
             array(
457
-				'main' => __( 'Privacy policy', 'invoicing' ),
457
+                'main' => __( 'Privacy policy', 'invoicing' ),
458 458
             )
459 459
         ),
460 460
         'misc'         => apply_filters(
461 461
             'wpinv_settings_sections_misc',
462 462
             array(
463
-				'main'       => __( 'Miscellaneous', 'invoicing' ),
464
-				'custom-css' => __( 'Custom CSS', 'invoicing' ),
463
+                'main'       => __( 'Miscellaneous', 'invoicing' ),
464
+                'custom-css' => __( 'Custom CSS', 'invoicing' ),
465 465
             )
466 466
         ),
467 467
         'tools'        => apply_filters(
468 468
             'wpinv_settings_sections_tools',
469 469
             array(
470
-				'main' => __( 'Diagnostic Tools', 'invoicing' ),
470
+                'main' => __( 'Diagnostic Tools', 'invoicing' ),
471 471
             )
472 472
         ),
473 473
     );
@@ -478,46 +478,46 @@  discard block
 block discarded – undo
478 478
 }
479 479
 
480 480
 function wpinv_get_pages( $with_slug = false, $default_label = null ) {
481
-	$pages_options = array();
481
+    $pages_options = array();
482 482
 
483
-	if ( $default_label !== null && $default_label !== false ) {
484
-		$pages_options = array( '' => $default_label ); // Blank option
485
-	}
483
+    if ( $default_label !== null && $default_label !== false ) {
484
+        $pages_options = array( '' => $default_label ); // Blank option
485
+    }
486 486
 
487
-	$pages = get_pages();
488
-	if ( $pages ) {
489
-		foreach ( $pages as $page ) {
490
-			$title = $with_slug ? $page->post_title . ' (' . $page->post_name . ')' : $page->post_title;
487
+    $pages = get_pages();
488
+    if ( $pages ) {
489
+        foreach ( $pages as $page ) {
490
+            $title = $with_slug ? $page->post_title . ' (' . $page->post_name . ')' : $page->post_title;
491 491
             $pages_options[ $page->ID ] = $title;
492
-		}
493
-	}
492
+        }
493
+    }
494 494
 
495
-	return $pages_options;
495
+    return $pages_options;
496 496
 }
497 497
 
498 498
 function wpinv_header_callback( $args ) {
499
-	if ( ! empty( $args['desc'] ) ) {
499
+    if ( ! empty( $args['desc'] ) ) {
500 500
         echo wp_kses_post( $args['desc'] );
501 501
     }
502 502
 }
503 503
 
504 504
 function wpinv_hidden_callback( $args ) {
505 505
 
506
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
507
-	$value   = wpinv_get_option( $args['id'], $std );
506
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
507
+    $value   = wpinv_get_option( $args['id'], $std );
508 508
 
509
-	if ( isset( $args['set_value'] ) ) {
510
-		$value = $args['set_value'];
511
-	}
509
+    if ( isset( $args['set_value'] ) ) {
510
+        $value = $args['set_value'];
511
+    }
512 512
 
513
-	if ( isset( $args['faux'] ) && true === $args['faux'] ) {
514
-		$args['readonly'] = true;
515
-		$name  = '';
516
-	} else {
517
-		$name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']';
518
-	}
513
+    if ( isset( $args['faux'] ) && true === $args['faux'] ) {
514
+        $args['readonly'] = true;
515
+        $name  = '';
516
+    } else {
517
+        $name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']';
518
+    }
519 519
 
520
-	echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />';
520
+    echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />';
521 521
 
522 522
 }
523 523
 
@@ -526,12 +526,12 @@  discard block
 block discarded – undo
526 526
  */
527 527
 function wpinv_checkbox_callback( $args ) {
528 528
 
529
-	$std = isset( $args['std'] ) ? $args['std'] : '';
530
-	$std = wpinv_get_option( $args['id'], $std );
531
-	$id  = esc_attr( $args['id'] );
529
+    $std = isset( $args['std'] ) ? $args['std'] : '';
530
+    $std = wpinv_get_option( $args['id'], $std );
531
+    $id  = esc_attr( $args['id'] );
532 532
 
533
-	getpaid_hidden_field( "wpinv_settings[$id]", '0' );
534
-	?>
533
+    getpaid_hidden_field( "wpinv_settings[$id]", '0' );
534
+    ?>
535 535
 		<fieldset>
536 536
 			<label>
537 537
 				<input id="wpinv-settings-<?php echo esc_attr( $id ); ?>" name="wpinv_settings[<?php echo esc_attr( $id ); ?>]" <?php checked( empty( $std ), false ); ?> value="1" type="checkbox" />
@@ -543,75 +543,75 @@  discard block
 block discarded – undo
543 543
 
544 544
 function wpinv_multicheck_callback( $args ) {
545 545
 
546
-	$sanitize_id = wpinv_sanitize_key( $args['id'] );
547
-	$class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
546
+    $sanitize_id = wpinv_sanitize_key( $args['id'] );
547
+    $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
548 548
 
549
-	if ( ! empty( $args['options'] ) ) {
549
+    if ( ! empty( $args['options'] ) ) {
550 550
 
551
-		$std     = isset( $args['std'] ) ? $args['std'] : array();
552
-		$value   = wpinv_get_option( $args['id'], $std );
551
+        $std     = isset( $args['std'] ) ? $args['std'] : array();
552
+        $value   = wpinv_get_option( $args['id'], $std );
553 553
 
554
-		echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">';
554
+        echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">';
555 555
         foreach ( $args['options'] as $key => $option ) :
556
-			$sanitize_key = esc_attr( wpinv_sanitize_key( $key ) );
557
-			if ( in_array( $sanitize_key, $value ) ) {
558
-				$enabled = $sanitize_key;
559
-			} else {
560
-				$enabled = null;
561
-			}
562
-			echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/>&nbsp;';
563
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>';
564
-		endforeach;
565
-		echo '</div>';
566
-		echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>';
567
-	}
556
+            $sanitize_key = esc_attr( wpinv_sanitize_key( $key ) );
557
+            if ( in_array( $sanitize_key, $value ) ) {
558
+                $enabled = $sanitize_key;
559
+            } else {
560
+                $enabled = null;
561
+            }
562
+            echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/>&nbsp;';
563
+            echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>';
564
+        endforeach;
565
+        echo '</div>';
566
+        echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>';
567
+    }
568 568
 }
569 569
 
570 570
 function wpinv_payment_icons_callback( $args ) {
571 571
 
572 572
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
573
-	$value   = wpinv_get_option( $args['id'], false );
573
+    $value   = wpinv_get_option( $args['id'], false );
574 574
 
575
-	if ( ! empty( $args['options'] ) ) {
576
-		foreach ( $args['options'] as $key => $option ) {
575
+    if ( ! empty( $args['options'] ) ) {
576
+        foreach ( $args['options'] as $key => $option ) {
577 577
             $sanitize_key = wpinv_sanitize_key( $key );
578 578
 
579
-			if ( empty( $value ) ) {
580
-				$enabled = $option;
581
-			} else {
582
-				$enabled = null;
583
-			}
584
-
585
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
586
-
587
-				echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
588
-
589
-				if ( wpinv_string_is_image_url( $key ) ) {
590
-				echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
591
-				} else {
592
-				$card = strtolower( str_replace( ' ', '', $option ) );
593
-
594
-				if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) {
595
-					$image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' );
596
-					} else {
597
-					$image       = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false );
598
-					$content_dir = WP_CONTENT_DIR;
599
-
600
-					if ( function_exists( 'wp_normalize_path' ) ) {
601
-						// Replaces backslashes with forward slashes for Windows systems
602
-						$image = wp_normalize_path( $image );
603
-						$content_dir = wp_normalize_path( $content_dir );
604
-						}
605
-
606
-					$image = str_replace( $content_dir, content_url(), $image );
607
-					}
608
-
609
-				echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
610
-				}
611
-			echo wp_kses_post( $option ) . '</label>';
612
-		}
613
-		echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>';
614
-	}
579
+            if ( empty( $value ) ) {
580
+                $enabled = $option;
581
+            } else {
582
+                $enabled = null;
583
+            }
584
+
585
+            echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
586
+
587
+                echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
588
+
589
+                if ( wpinv_string_is_image_url( $key ) ) {
590
+                echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
591
+                } else {
592
+                $card = strtolower( str_replace( ' ', '', $option ) );
593
+
594
+                if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) {
595
+                    $image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' );
596
+                    } else {
597
+                    $image       = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false );
598
+                    $content_dir = WP_CONTENT_DIR;
599
+
600
+                    if ( function_exists( 'wp_normalize_path' ) ) {
601
+                        // Replaces backslashes with forward slashes for Windows systems
602
+                        $image = wp_normalize_path( $image );
603
+                        $content_dir = wp_normalize_path( $content_dir );
604
+                        }
605
+
606
+                    $image = str_replace( $content_dir, content_url(), $image );
607
+                    }
608
+
609
+                echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
610
+                }
611
+            echo wp_kses_post( $option ) . '</label>';
612
+        }
613
+        echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>';
614
+    }
615 615
 }
616 616
 
617 617
 /**
@@ -619,9 +619,9 @@  discard block
 block discarded – undo
619 619
  */
620 620
 function wpinv_radio_callback( $args ) {
621 621
 
622
-	$std = isset( $args['std'] ) ? $args['std'] : '';
623
-	$std = wpinv_get_option( $args['id'], $std );
624
-	?>
622
+    $std = isset( $args['std'] ) ? $args['std'] : '';
623
+    $std = wpinv_get_option( $args['id'], $std );
624
+    ?>
625 625
 		<fieldset>
626 626
 			<ul id="wpinv-settings-<?php echo esc_attr( $args['id'] ); ?>" style="margin-top: 0;">
627 627
 				<?php foreach ( $args['options'] as $key => $option ) : ?>
@@ -635,7 +635,7 @@  discard block
 block discarded – undo
635 635
 			</ul>
636 636
 		</fieldset>
637 637
 	<?php
638
-	getpaid_settings_description_callback( $args );
638
+    getpaid_settings_description_callback( $args );
639 639
 }
640 640
 
641 641
 /**
@@ -643,10 +643,10 @@  discard block
 block discarded – undo
643 643
  */
644 644
 function getpaid_settings_description_callback( $args ) {
645 645
 
646
-	if ( ! empty( $args['desc'] ) ) {
647
-		$description = $args['desc'];
648
-		echo wp_kses_post( "<p class='description'>$description</p>" );
649
-	}
646
+    if ( ! empty( $args['desc'] ) ) {
647
+        $description = $args['desc'];
648
+        echo wp_kses_post( "<p class='description'>$description</p>" );
649
+    }
650 650
 
651 651
 }
652 652
 
@@ -655,7 +655,7 @@  discard block
 block discarded – undo
655 655
  */
656 656
 function wpinv_gateways_callback() {
657 657
 
658
-	?>
658
+    ?>
659 659
 		</td>
660 660
 	</tr>
661 661
 	<tr class="bsui">
@@ -669,26 +669,26 @@  discard block
 block discarded – undo
669 669
 
670 670
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
671 671
     $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
672
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
673
-	$value   = wpinv_get_option( $args['id'], $std );
672
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
673
+    $value   = wpinv_get_option( $args['id'], $std );
674 674
 
675
-	echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >';
675
+    echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >';
676 676
 
677
-	foreach ( $args['options'] as $key => $option ) :
677
+    foreach ( $args['options'] as $key => $option ) :
678 678
 
679
-		echo '<option value="' . esc_attr( $key ) . '" ';
679
+        echo '<option value="' . esc_attr( $key ) . '" ';
680 680
 
681
-		if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) {
681
+        if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) {
682 682
             selected( $key, $args['selected'] );
683 683
         } else {
684 684
             selected( $key, $value );
685 685
         }
686 686
 
687
-		echo '>' . esc_html( $option['admin_label'] ) . '</option>';
688
-	endforeach;
687
+        echo '>' . esc_html( $option['admin_label'] ) . '</option>';
688
+    endforeach;
689 689
 
690
-	echo '</select>';
691
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
690
+    echo '</select>';
691
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
692 692
 }
693 693
 
694 694
 /**
@@ -699,38 +699,38 @@  discard block
 block discarded – undo
699 699
  */
700 700
 function wpinv_settings_attrs_helper( $args ) {
701 701
 
702
-	$value = isset( $args['std'] ) ? $args['std'] : '';
703
-	$id    = esc_attr( $args['id'] );
704
-	$value = is_scalar( $value ) ? $value : '';
705
-
706
-	$attrs = array(
707
-		'name'     => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]",
708
-		'readonly' => ! empty( $args['faux'] ),
709
-		'value'    => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ),
710
-		'id'       => 'wpinv-settings-' . $args['id'],
711
-		'style'    => $args['style'],
712
-		'class'    => $args['class'],
713
-		'placeholder' => $args['placeholder'],
714
-		'data-placeholder' => $args['placeholder'],
715
-	);
702
+    $value = isset( $args['std'] ) ? $args['std'] : '';
703
+    $id    = esc_attr( $args['id'] );
704
+    $value = is_scalar( $value ) ? $value : '';
705
+
706
+    $attrs = array(
707
+        'name'     => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]",
708
+        'readonly' => ! empty( $args['faux'] ),
709
+        'value'    => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ),
710
+        'id'       => 'wpinv-settings-' . $args['id'],
711
+        'style'    => $args['style'],
712
+        'class'    => $args['class'],
713
+        'placeholder' => $args['placeholder'],
714
+        'data-placeholder' => $args['placeholder'],
715
+    );
716 716
 
717
-	if ( ! empty( $args['onchange'] ) ) {
718
-		$attrs['onchange'] = $args['onchange'];
719
-	}
717
+    if ( ! empty( $args['onchange'] ) ) {
718
+        $attrs['onchange'] = $args['onchange'];
719
+    }
720 720
 
721
-	foreach ( $attrs as $key => $value ) {
721
+    foreach ( $attrs as $key => $value ) {
722 722
 
723
-		if ( false === $value ) {
724
-			continue;
725
-		}
723
+        if ( false === $value ) {
724
+            continue;
725
+        }
726 726
 
727
-		if ( true === $value ) {
728
-			echo ' ' . esc_attr( $key );
729
-		} else {
730
-			echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
731
-		}
727
+        if ( true === $value ) {
728
+            echo ' ' . esc_attr( $key );
729
+        } else {
730
+            echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
731
+        }
732 732
 
733
-	}
733
+    }
734 734
 
735 735
 }
736 736
 
@@ -739,9 +739,9 @@  discard block
 block discarded – undo
739 739
  */
740 740
 function wpinv_text_callback( $args ) {
741 741
 
742
-	$desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
742
+    $desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
743 743
 
744
-	?>
744
+    ?>
745 745
 		<label style="width: 100%;">
746 746
 			<input type="text" <?php wpinv_settings_attrs_helper( $args ); ?>>
747 747
 			<?php echo wp_kses_post( $desc ); ?>
@@ -755,9 +755,9 @@  discard block
 block discarded – undo
755 755
  */
756 756
 function wpinv_number_callback( $args ) {
757 757
 
758
-	$desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
758
+    $desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
759 759
 
760
-	?>
760
+    ?>
761 761
 		<label style="width: 100%;">
762 762
 			<input type="number" step="<?php echo esc_attr( $args['step'] ); ?>" max="<?php echo intval( $args['max'] ); ?>" min="<?php echo intval( $args['min'] ); ?>" <?php wpinv_settings_attrs_helper( $args ); ?>>
763 763
 			<?php echo wp_kses_post( $desc ); ?>
@@ -769,34 +769,34 @@  discard block
 block discarded – undo
769 769
 function wpinv_textarea_callback( $args ) {
770 770
 
771 771
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
772
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
773
-	$value   = wpinv_get_option( $args['id'], $std );
772
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
773
+    $value   = wpinv_get_option( $args['id'], $std );
774 774
 
775 775
     $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
776 776
     $class = ( isset( $args['class'] ) && ! is_null( $args['class'] ) ) ? $args['class'] : 'large-text';
777 777
 
778
-	echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
779
-	echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
778
+    echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
779
+    echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
780 780
 
781 781
 }
782 782
 
783 783
 function wpinv_password_callback( $args ) {
784 784
 
785 785
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
786
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
787
-	$value   = wpinv_get_option( $args['id'], $std );
786
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
787
+    $value   = wpinv_get_option( $args['id'], $std );
788 788
 
789
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
790
-	echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
791
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
789
+    $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
790
+    echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
791
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
792 792
 
793 793
 }
794 794
 
795 795
 function wpinv_missing_callback( $args ) {
796
-	printf(
797
-		esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ),
798
-		'<strong>' . esc_html( $args['id'] ) . '</strong>'
799
-	);
796
+    printf(
797
+        esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ),
798
+        '<strong>' . esc_html( $args['id'] ) . '</strong>'
799
+    );
800 800
 }
801 801
 
802 802
 /**
@@ -804,13 +804,13 @@  discard block
 block discarded – undo
804 804
  */
805 805
 function wpinv_select_callback( $args ) {
806 806
 
807
-	$desc   = wp_kses_post( $args['desc'] );
808
-	$desc   = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
809
-	$value  = isset( $args['std'] ) ? $args['std'] : '';
810
-	$value  = wpinv_get_option( $args['id'], $value );
811
-	$rand   = uniqid( 'random_id' );
807
+    $desc   = wp_kses_post( $args['desc'] );
808
+    $desc   = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
809
+    $value  = isset( $args['std'] ) ? $args['std'] : '';
810
+    $value  = wpinv_get_option( $args['id'], $value );
811
+    $rand   = uniqid( 'random_id' );
812 812
 
813
-	?>
813
+    ?>
814 814
 		<label style="width: 100%;">
815 815
 			<select <?php wpinv_settings_attrs_helper( $args ); ?> data-allow-clear="true">
816 816
 				<?php foreach ( $args['options'] as $option => $name ) : ?>
@@ -843,50 +843,50 @@  discard block
 block discarded – undo
843 843
 function wpinv_color_select_callback( $args ) {
844 844
 
845 845
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
846
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
847
-	$value   = wpinv_get_option( $args['id'], $std );
846
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
847
+    $value   = wpinv_get_option( $args['id'], $std );
848 848
 
849
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>';
849
+    echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>';
850 850
 
851
-	foreach ( $args['options'] as $option => $color ) {
852
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>';
853
-	}
851
+    foreach ( $args['options'] as $option => $color ) {
852
+        echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>';
853
+    }
854 854
 
855
-	echo '</select>';
856
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
855
+    echo '</select>';
856
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
857 857
 
858 858
 }
859 859
 
860 860
 function wpinv_rich_editor_callback( $args ) {
861
-	global $wp_version;
861
+    global $wp_version;
862 862
 
863 863
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
864 864
 
865
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
866
-	$value   = wpinv_get_option( $args['id'], $std );
865
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
866
+    $value   = wpinv_get_option( $args['id'], $std );
867 867
 
868
-	if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) {
869
-		$value = $std;
870
-	}
868
+    if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) {
869
+        $value = $std;
870
+    }
871 871
 
872
-	$rows = isset( $args['size'] ) ? $args['size'] : 20;
872
+    $rows = isset( $args['size'] ) ? $args['size'] : 20;
873 873
 
874
-	echo '<div class="getpaid-settings-editor-input">';
875
-	if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) {
876
-		wp_editor(
874
+    echo '<div class="getpaid-settings-editor-input">';
875
+    if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) {
876
+        wp_editor(
877 877
             stripslashes( $value ),
878 878
             'wpinv_settings_' . esc_attr( $args['id'] ),
879 879
             array(
880
-				'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']',
881
-				'textarea_rows' => absint( $rows ),
882
-				'media_buttons' => false,
880
+                'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']',
881
+                'textarea_rows' => absint( $rows ),
882
+                'media_buttons' => false,
883 883
             )
884 884
         );
885
-	} else {
886
-		echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
887
-	}
885
+    } else {
886
+        echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
887
+    }
888 888
 
889
-	echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
889
+    echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
890 890
 
891 891
 }
892 892
 
@@ -894,51 +894,51 @@  discard block
 block discarded – undo
894 894
 
895 895
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
896 896
 
897
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
898
-	$value   = wpinv_get_option( $args['id'], $std );
897
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
898
+    $value   = wpinv_get_option( $args['id'], $std );
899 899
 
900
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
901
-	echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
902
-	echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>';
903
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
900
+    $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
901
+    echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
902
+    echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>';
903
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
904 904
 
905 905
 }
906 906
 
907 907
 function wpinv_color_callback( $args ) {
908 908
 
909
-	$std         = isset( $args['std'] ) ? $args['std'] : '';
910
-	$value       = wpinv_get_option( $args['id'], $std );
909
+    $std         = isset( $args['std'] ) ? $args['std'] : '';
910
+    $value       = wpinv_get_option( $args['id'], $std );
911 911
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
912 912
 
913
-	echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />';
914
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
913
+    echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />';
914
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
915 915
 
916 916
 }
917 917
 
918 918
 function wpinv_country_states_callback( $args ) {
919 919
 
920
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
921
-	$value   = wpinv_get_option( $args['id'], $std );
920
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
921
+    $value   = wpinv_get_option( $args['id'], $std );
922 922
 
923 923
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
924 924
 
925
-	if ( isset( $args['placeholder'] ) ) {
926
-		$placeholder = $args['placeholder'];
927
-	} else {
928
-		$placeholder = '';
929
-	}
925
+    if ( isset( $args['placeholder'] ) ) {
926
+        $placeholder = $args['placeholder'];
927
+    } else {
928
+        $placeholder = '';
929
+    }
930 930
 
931
-	$states = wpinv_get_country_states();
931
+    $states = wpinv_get_country_states();
932 932
 
933
-	$class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2';
934
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>';
933
+    $class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2';
934
+    echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>';
935 935
 
936
-	foreach ( $states as $option => $name ) {
937
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>';
938
-	}
936
+    foreach ( $states as $option => $name ) {
937
+        echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>';
938
+    }
939 939
 
940
-	echo '</select>';
941
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
940
+    echo '</select>';
941
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
942 942
 
943 943
 }
944 944
 
@@ -947,7 +947,7 @@  discard block
 block discarded – undo
947 947
  */
948 948
 function wpinv_tax_rates_callback() {
949 949
 
950
-	?>
950
+    ?>
951 951
 		</td>
952 952
 	</tr>
953 953
 	<tr class="bsui">
@@ -963,9 +963,9 @@  discard block
 block discarded – undo
963 963
  */
964 964
 function wpinv_tax_rate_callback( $tax_rate, $key ) {
965 965
 
966
-	$key                      = sanitize_key( $key );
967
-	$tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate'];
968
-	include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php';
966
+    $key                      = sanitize_key( $key );
967
+    $tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate'];
968
+    include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php';
969 969
 
970 970
 }
971 971
 
@@ -974,7 +974,7 @@  discard block
 block discarded – undo
974 974
  */
975 975
 function wpinv_tax_rules_callback() {
976 976
 
977
-	?>
977
+    ?>
978 978
 		</td>
979 979
 	</tr>
980 980
 	<tr class="bsui">
@@ -1012,14 +1012,14 @@  discard block
 block discarded – undo
1012 1012
                 <td>
1013 1013
 					<a href="
1014 1014
                     <?php
1015
-						echo esc_url(
1016
-							wp_nonce_url(
1017
-								add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
1018
-								'getpaid-nonce',
1019
-								'getpaid-nonce'
1020
-							)
1021
-						);
1022
-					?>
1015
+                        echo esc_url(
1016
+                            wp_nonce_url(
1017
+                                add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
1018
+                                'getpaid-nonce',
1019
+                                'getpaid-nonce'
1020
+                            )
1021
+                        );
1022
+                    ?>
1023 1023
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1024 1024
                 </td>
1025 1025
             </tr>
@@ -1031,14 +1031,14 @@  discard block
 block discarded – undo
1031 1031
                 <td>
1032 1032
 					<a href="
1033 1033
                     <?php
1034
-						echo esc_url(
1035
-							wp_nonce_url(
1036
-								add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ),
1037
-								'getpaid-nonce',
1038
-								'getpaid-nonce'
1039
-							)
1040
-						);
1041
-					?>
1034
+                        echo esc_url(
1035
+                            wp_nonce_url(
1036
+                                add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ),
1037
+                                'getpaid-nonce',
1038
+                                'getpaid-nonce'
1039
+                            )
1040
+                        );
1041
+                    ?>
1042 1042
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1043 1043
                 </td>
1044 1044
             </tr>
@@ -1050,14 +1050,14 @@  discard block
 block discarded – undo
1050 1050
                 <td>
1051 1051
 					<a href="
1052 1052
                     <?php
1053
-						echo esc_url(
1054
-							wp_nonce_url(
1055
-								add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ),
1056
-								'getpaid-nonce',
1057
-								'getpaid-nonce'
1058
-							)
1059
-						);
1060
-					?>
1053
+                        echo esc_url(
1054
+                            wp_nonce_url(
1055
+                                add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ),
1056
+                                'getpaid-nonce',
1057
+                                'getpaid-nonce'
1058
+                            )
1059
+                        );
1060
+                    ?>
1061 1061
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1062 1062
                 </td>
1063 1063
             </tr>
@@ -1070,14 +1070,14 @@  discard block
 block discarded – undo
1070 1070
                 <td>
1071 1071
 					<a href="
1072 1072
                     <?php
1073
-						echo esc_url(
1074
-							wp_nonce_url(
1075
-								add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ),
1076
-								'getpaid-nonce',
1077
-								'getpaid-nonce'
1078
-							)
1079
-						);
1080
-					?>
1073
+                        echo esc_url(
1074
+                            wp_nonce_url(
1075
+                                add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ),
1076
+                                'getpaid-nonce',
1077
+                                'getpaid-nonce'
1078
+                            )
1079
+                        );
1080
+                    ?>
1081 1081
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1082 1082
                 </td>
1083 1083
             </tr>
@@ -1090,8 +1090,8 @@  discard block
 block discarded – undo
1090 1090
                 <td>
1091 1091
 					<a href="
1092 1092
                     <?php
1093
-						echo esc_url( admin_url( 'index.php?page=gp-setup' ) );
1094
-					?>
1093
+                        echo esc_url( admin_url( 'index.php?page=gp-setup' ) );
1094
+                    ?>
1095 1095
                     " class="button button-primary"><?php esc_html_e( 'Launch', 'invoicing' ); ?></a>
1096 1096
                 </td>
1097 1097
             </tr>
@@ -1105,19 +1105,19 @@  discard block
 block discarded – undo
1105 1105
 
1106 1106
 
1107 1107
 function wpinv_descriptive_text_callback( $args ) {
1108
-	echo wp_kses_post( $args['desc'] );
1108
+    echo wp_kses_post( $args['desc'] );
1109 1109
 }
1110 1110
 
1111 1111
 function wpinv_raw_html_callback( $args ) {
1112
-	echo wp_kses( $args['desc'], getpaid_allowed_html() );
1112
+    echo wp_kses( $args['desc'], getpaid_allowed_html() );
1113 1113
 }
1114 1114
 
1115 1115
 function wpinv_hook_callback( $args ) {
1116
-	do_action( 'wpinv_' . $args['id'], $args );
1116
+    do_action( 'wpinv_' . $args['id'], $args );
1117 1117
 }
1118 1118
 
1119 1119
 function wpinv_set_settings_cap() {
1120
-	return wpinv_get_capability();
1120
+    return wpinv_get_capability();
1121 1121
 }
1122 1122
 add_filter( 'option_page_capability_wpinv_settings', 'wpinv_set_settings_cap' );
1123 1123
 
@@ -1141,15 +1141,15 @@  discard block
 block discarded – undo
1141 1141
  */
1142 1142
 function wpinv_get_merge_tags_help_text( $subscription = false ) {
1143 1143
 
1144
-	$url  = $subscription ? 'https://gist.github.com/picocodes/3d213982d57c34edf7a46fd3f0e8583e' : 'https://gist.github.com/picocodes/43bdc4d4bbba844534b2722e2af0b58f';
1145
-	$link = sprintf(
1146
-		'<strong><a href="%s" target="_blank">%s</a></strong>',
1147
-		$url,
1148
-		esc_html__( 'View available merge tags.', 'wpinv-quotes' )
1149
-	);
1144
+    $url  = $subscription ? 'https://gist.github.com/picocodes/3d213982d57c34edf7a46fd3f0e8583e' : 'https://gist.github.com/picocodes/43bdc4d4bbba844534b2722e2af0b58f';
1145
+    $link = sprintf(
1146
+        '<strong><a href="%s" target="_blank">%s</a></strong>',
1147
+        $url,
1148
+        esc_html__( 'View available merge tags.', 'wpinv-quotes' )
1149
+    );
1150 1150
 
1151
-	$description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' );
1151
+    $description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' );
1152 1152
 
1153
-	return "$description $link";
1153
+    return "$description $link";
1154 1154
 
1155 1155
 }
Please login to merge, or discard this patch.
Spacing   +381 added lines, -381 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @since   1.0.0
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * Retrieves all default settings.
@@ -16,13 +16,13 @@  discard block
 block discarded – undo
16 16
 function wpinv_get_settings() {
17 17
     $defaults = array();
18 18
 
19
-    foreach ( array_values( wpinv_get_registered_settings() ) as $tab_settings ) {
19
+    foreach (array_values(wpinv_get_registered_settings()) as $tab_settings) {
20 20
 
21
-        foreach ( array_values( $tab_settings ) as $section_settings ) {
21
+        foreach (array_values($tab_settings) as $section_settings) {
22 22
 
23
-            foreach ( $section_settings as $key => $setting ) {
24
-                if ( isset( $setting['std'] ) ) {
25
-                    $defaults[ $key ] = $setting['std'];
23
+            foreach ($section_settings as $key => $setting) {
24
+                if (isset($setting['std'])) {
25
+                    $defaults[$key] = $setting['std'];
26 26
                 }
27 27
             }
28 28
 }
@@ -41,12 +41,12 @@  discard block
 block discarded – undo
41 41
     global $wpinv_options;
42 42
 
43 43
     // Try fetching the saved options.
44
-    if ( empty( $wpinv_options ) ) {
45
-        $wpinv_options = get_option( 'wpinv_settings' );
44
+    if (empty($wpinv_options)) {
45
+        $wpinv_options = get_option('wpinv_settings');
46 46
     }
47 47
 
48 48
     // If that fails, don't fetch the default settings to prevent a loop.
49
-    if ( ! is_array( $wpinv_options ) ) {
49
+    if (!is_array($wpinv_options)) {
50 50
         $wpinv_options = array();
51 51
     }
52 52
 
@@ -60,13 +60,13 @@  discard block
 block discarded – undo
60 60
  * @param mixed $default The default value to use if the setting has not been set.
61 61
  * @return mixed
62 62
  */
63
-function wpinv_get_option( $key = '', $default = false ) {
63
+function wpinv_get_option($key = '', $default = false) {
64 64
 
65 65
     $options = wpinv_get_options();
66
-    $value   = isset( $options[ $key ] ) ? $options[ $key ] : $default;
67
-    $value   = apply_filters( 'wpinv_get_option', $value, $key, $default );
66
+    $value   = isset($options[$key]) ? $options[$key] : $default;
67
+    $value   = apply_filters('wpinv_get_option', $value, $key, $default);
68 68
 
69
-    return apply_filters( 'wpinv_get_option_' . $key, $value, $key, $default );
69
+    return apply_filters('wpinv_get_option_' . $key, $value, $key, $default);
70 70
 }
71 71
 
72 72
 /**
@@ -75,11 +75,11 @@  discard block
 block discarded – undo
75 75
  * @param array $options the new options.
76 76
  * @return bool
77 77
  */
78
-function wpinv_update_options( $options ) {
78
+function wpinv_update_options($options) {
79 79
     global $wpinv_options;
80 80
 
81 81
     // update the option.
82
-    if ( is_array( $options ) && update_option( 'wpinv_settings', $options ) ) {
82
+    if (is_array($options) && update_option('wpinv_settings', $options)) {
83 83
         $wpinv_options = $options;
84 84
         return true;
85 85
     }
@@ -94,24 +94,24 @@  discard block
 block discarded – undo
94 94
  * @param mixed $value The setting value.
95 95
  * @return bool
96 96
  */
97
-function wpinv_update_option( $key = '', $value = false ) {
97
+function wpinv_update_option($key = '', $value = false) {
98 98
 
99 99
     // If no key, exit.
100
-    if ( empty( $key ) ) {
100
+    if (empty($key)) {
101 101
         return false;
102 102
     }
103 103
 
104 104
     // Maybe delete the option instead.
105
-    if ( is_null( $value ) ) {
106
-        return wpinv_delete_option( $key );
105
+    if (is_null($value)) {
106
+        return wpinv_delete_option($key);
107 107
     }
108 108
 
109 109
     // Prepare the new options.
110 110
     $options         = wpinv_get_options();
111
-    $options[ $key ] = apply_filters( 'wpinv_update_option', $value, $key );
111
+    $options[$key] = apply_filters('wpinv_update_option', $value, $key);
112 112
 
113 113
     // Save the new options.
114
-    return wpinv_update_options( $options );
114
+    return wpinv_update_options($options);
115 115
 
116 116
 }
117 117
 
@@ -121,18 +121,18 @@  discard block
 block discarded – undo
121 121
  * @param string $key the setting key.
122 122
  * @return bool
123 123
  */
124
-function wpinv_delete_option( $key = '' ) {
124
+function wpinv_delete_option($key = '') {
125 125
 
126 126
     // If no key, exit
127
-    if ( empty( $key ) ) {
127
+    if (empty($key)) {
128 128
         return false;
129 129
     }
130 130
 
131 131
     $options = wpinv_get_options();
132 132
 
133
-    if ( isset( $options[ $key ] ) ) {
134
-        unset( $options[ $key ] );
135
-        return wpinv_update_options( $options );
133
+    if (isset($options[$key])) {
134
+        unset($options[$key]);
135
+        return wpinv_update_options($options);
136 136
     }
137 137
 
138 138
     return true;
@@ -146,14 +146,14 @@  discard block
 block discarded – undo
146 146
 function wpinv_register_settings() {
147 147
 
148 148
     // Loop through all tabs.
149
-    foreach ( wpinv_get_registered_settings() as $tab => $sections ) {
149
+    foreach (wpinv_get_registered_settings() as $tab => $sections) {
150 150
 
151 151
         // In each tab, loop through sections.
152
-        foreach ( $sections as $section => $settings ) {
152
+        foreach ($sections as $section => $settings) {
153 153
 
154 154
             // Check for backwards compatibility
155
-            $section_tabs = wpinv_get_settings_tab_sections( $tab );
156
-            if ( ! is_array( $section_tabs ) || ! array_key_exists( $section, $section_tabs ) ) {
155
+            $section_tabs = wpinv_get_settings_tab_sections($tab);
156
+            if (!is_array($section_tabs) || !array_key_exists($section, $section_tabs)) {
157 157
                 $section = 'main';
158 158
                 $settings = $sections;
159 159
             }
@@ -166,18 +166,18 @@  discard block
 block discarded – undo
166 166
                 'wpinv_settings_' . $tab . '_' . $section
167 167
             );
168 168
 
169
-            foreach ( $settings as $option ) {
170
-                if ( ! empty( $option['id'] ) ) {
171
-                    wpinv_register_settings_option( $tab, $section, $option );
169
+            foreach ($settings as $option) {
170
+                if (!empty($option['id'])) {
171
+                    wpinv_register_settings_option($tab, $section, $option);
172 172
                 }
173 173
             }
174 174
 }
175 175
     }
176 176
 
177 177
     // Creates our settings in the options table.
178
-    register_setting( 'wpinv_settings', 'wpinv_settings', 'wpinv_settings_sanitize' );
178
+    register_setting('wpinv_settings', 'wpinv_settings', 'wpinv_settings_sanitize');
179 179
 }
180
-add_action( 'admin_init', 'wpinv_register_settings' );
180
+add_action('admin_init', 'wpinv_register_settings');
181 181
 
182 182
 /**
183 183
  * Register a single settings option.
@@ -187,49 +187,49 @@  discard block
 block discarded – undo
187 187
  * @param string $option
188 188
  *
189 189
  */
190
-function wpinv_register_settings_option( $tab, $section, $option ) {
190
+function wpinv_register_settings_option($tab, $section, $option) {
191 191
 
192
-    $name       = isset( $option['name'] ) ? $option['name'] : '';
192
+    $name       = isset($option['name']) ? $option['name'] : '';
193 193
     $cb         = "wpinv_{$option['type']}_callback";
194 194
     $section    = "wpinv_settings_{$tab}_$section";
195
-	$is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page'];
195
+	$is_wizzard = is_admin() && isset($_GET['page']) && 'gp-setup' == $_GET['page'];
196 196
 
197
-	if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) {
198
-		$tip   = wpinv_clean( $option['desc'] );
197
+	if (isset($option['desc']) && (!$is_wizzard && !empty($option['help-tip']))) {
198
+		$tip   = wpinv_clean($option['desc']);
199 199
 		$name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>";
200
-		unset( $option['desc'] );
200
+		unset($option['desc']);
201 201
 	}
202 202
 
203 203
     // Loop through all tabs.
204 204
     add_settings_field(
205 205
         'wpinv_settings[' . $option['id'] . ']',
206 206
         $name,
207
-        function_exists( $cb ) ? $cb : 'wpinv_missing_callback',
207
+        function_exists($cb) ? $cb : 'wpinv_missing_callback',
208 208
         $section,
209 209
         $section,
210 210
         array(
211 211
             'section'         => $section,
212
-            'id'              => isset( $option['id'] ) ? $option['id'] : uniqid( 'wpinv-' ),
213
-            'desc'            => isset( $option['desc'] ) ? $option['desc'] : '',
212
+            'id'              => isset($option['id']) ? $option['id'] : uniqid('wpinv-'),
213
+            'desc'            => isset($option['desc']) ? $option['desc'] : '',
214 214
             'name'            => $name,
215
-            'size'            => isset( $option['size'] ) ? $option['size'] : null,
216
-            'options'         => isset( $option['options'] ) ? $option['options'] : '',
217
-            'selected'        => isset( $option['selected'] ) ? $option['selected'] : null,
218
-            'std'             => isset( $option['std'] ) ? $option['std'] : '',
219
-            'min'             => isset( $option['min'] ) ? $option['min'] : 0,
220
-            'max'             => isset( $option['max'] ) ? $option['max'] : 999999,
221
-            'step'            => isset( $option['step'] ) ? $option['step'] : 1,
222
-            'placeholder'     => isset( $option['placeholder'] ) ? $option['placeholder'] : null,
223
-            'allow_blank'     => isset( $option['allow_blank'] ) ? $option['allow_blank'] : true,
224
-            'readonly'        => isset( $option['readonly'] ) ? $option['readonly'] : false,
225
-            'faux'            => isset( $option['faux'] ) ? $option['faux'] : false,
226
-            'onchange'        => isset( $option['onchange'] ) ? $option['onchange'] : '',
227
-            'custom'          => isset( $option['custom'] ) ? $option['custom'] : '',
228
-			'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '',
229
-			'class'           => isset( $option['class'] ) ? $option['class'] : '',
230
-			'style'           => isset( $option['style'] ) ? $option['style'] : '',
231
-            'cols'            => isset( $option['cols'] ) && (int) $option['cols'] > 0 ? (int) $option['cols'] : 50,
232
-            'rows'            => isset( $option['rows'] ) && (int) $option['rows'] > 0 ? (int) $option['rows'] : 5,
215
+            'size'            => isset($option['size']) ? $option['size'] : null,
216
+            'options'         => isset($option['options']) ? $option['options'] : '',
217
+            'selected'        => isset($option['selected']) ? $option['selected'] : null,
218
+            'std'             => isset($option['std']) ? $option['std'] : '',
219
+            'min'             => isset($option['min']) ? $option['min'] : 0,
220
+            'max'             => isset($option['max']) ? $option['max'] : 999999,
221
+            'step'            => isset($option['step']) ? $option['step'] : 1,
222
+            'placeholder'     => isset($option['placeholder']) ? $option['placeholder'] : null,
223
+            'allow_blank'     => isset($option['allow_blank']) ? $option['allow_blank'] : true,
224
+            'readonly'        => isset($option['readonly']) ? $option['readonly'] : false,
225
+            'faux'            => isset($option['faux']) ? $option['faux'] : false,
226
+            'onchange'        => isset($option['onchange']) ? $option['onchange'] : '',
227
+            'custom'          => isset($option['custom']) ? $option['custom'] : '',
228
+			'default_content' => isset($option['default_content']) ? $option['default_content'] : '',
229
+			'class'           => isset($option['class']) ? $option['class'] : '',
230
+			'style'           => isset($option['style']) ? $option['style'] : '',
231
+            'cols'            => isset($option['cols']) && (int) $option['cols'] > 0 ? (int) $option['cols'] : 50,
232
+            'rows'            => isset($option['rows']) && (int) $option['rows'] > 0 ? (int) $option['rows'] : 5,
233 233
         )
234 234
     );
235 235
 
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
  * @return array
242 242
  */
243 243
 function wpinv_get_registered_settings() {
244
-	return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) );
244
+	return array_filter(apply_filters('wpinv_registered_settings', wpinv_get_data('admin-settings')));
245 245
 }
246 246
 
247 247
 /**
@@ -250,7 +250,7 @@  discard block
 block discarded – undo
250 250
  * @return array
251 251
  */
252 252
 function getpaid_get_integration_settings() {
253
-    return apply_filters( 'getpaid_integration_settings', array() );
253
+    return apply_filters('getpaid_integration_settings', array());
254 254
 }
255 255
 
256 256
 /**
@@ -258,153 +258,153 @@  discard block
 block discarded – undo
258 258
  *
259 259
  * @return array
260 260
  */
261
-function wpinv_settings_sanitize( $input = array() ) {
261
+function wpinv_settings_sanitize($input = array()) {
262 262
 
263 263
 	$wpinv_options = wpinv_get_options();
264 264
 	$raw_referrer  = wp_get_raw_referer();
265 265
 
266
-    if ( empty( $raw_referrer ) ) {
267
-		return array_merge( $wpinv_options, $input );
266
+    if (empty($raw_referrer)) {
267
+		return array_merge($wpinv_options, $input);
268 268
     }
269 269
 
270
-    wp_parse_str( $raw_referrer, $referrer );
270
+    wp_parse_str($raw_referrer, $referrer);
271 271
 
272
-	if ( in_array( 'gp-setup', $referrer ) ) {
273
-		return array_merge( $wpinv_options, $input );
272
+	if (in_array('gp-setup', $referrer)) {
273
+		return array_merge($wpinv_options, $input);
274 274
 	}
275 275
 
276 276
     $settings = wpinv_get_registered_settings();
277
-    $tab      = isset( $referrer['tab'] ) ? $referrer['tab'] : 'general';
278
-    $section  = isset( $referrer['section'] ) ? $referrer['section'] : 'main';
277
+    $tab      = isset($referrer['tab']) ? $referrer['tab'] : 'general';
278
+    $section  = isset($referrer['section']) ? $referrer['section'] : 'main';
279 279
 
280 280
     $input = $input ? $input : array();
281
-    $input = apply_filters( 'wpinv_settings_tab_' . $tab . '_sanitize', $input );
282
-    $input = apply_filters( 'wpinv_settings_' . $tab . '-' . $section . '_sanitize', $input );
281
+    $input = apply_filters('wpinv_settings_tab_' . $tab . '_sanitize', $input);
282
+    $input = apply_filters('wpinv_settings_' . $tab . '-' . $section . '_sanitize', $input);
283 283
 
284 284
     // Loop through each setting being saved and pass it through a sanitization filter
285
-    foreach ( $input as $key => $value ) {
285
+    foreach ($input as $key => $value) {
286 286
 
287 287
         // Get the setting type (checkbox, select, etc)
288
-        $type = isset( $settings[ $tab ][ $section ][ $key ]['type'] ) ? $settings[ $tab ][ $section ][ $key ]['type'] : false;
288
+        $type = isset($settings[$tab][$section][$key]['type']) ? $settings[$tab][$section][$key]['type'] : false;
289 289
 
290
-        if ( $type ) {
290
+        if ($type) {
291 291
             // Field type specific filter
292
-            $input[ $key ] = apply_filters( "wpinv_settings_sanitize_$type", $value, $key );
292
+            $input[$key] = apply_filters("wpinv_settings_sanitize_$type", $value, $key);
293 293
         }
294 294
 
295 295
         // General filter
296
-		$input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key );
296
+		$input[$key] = apply_filters('wpinv_settings_sanitize', $input[$key], $key);
297 297
 
298 298
 		// Key specific filter.
299
-		$input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] );
299
+		$input[$key] = apply_filters("wpinv_settings_sanitize_$key", $input[$key]);
300 300
     }
301 301
 
302 302
     // Loop through the whitelist and unset any that are empty for the tab being saved
303
-    $main_settings    = isset( $settings[ $tab ] ) ? $settings[ $tab ] : array(); // Check for extensions that aren't using new sections
304
-    $section_settings = ! empty( $settings[ $tab ][ $section ] ) ? $settings[ $tab ][ $section ] : array();
303
+    $main_settings    = isset($settings[$tab]) ? $settings[$tab] : array(); // Check for extensions that aren't using new sections
304
+    $section_settings = !empty($settings[$tab][$section]) ? $settings[$tab][$section] : array();
305 305
 
306
-    $found_settings   = array_merge( $main_settings, $section_settings );
306
+    $found_settings   = array_merge($main_settings, $section_settings);
307 307
 
308
-    if ( ! empty( $found_settings ) ) {
309
-        foreach ( $found_settings as $key => $value ) {
308
+    if (!empty($found_settings)) {
309
+        foreach ($found_settings as $key => $value) {
310 310
 
311 311
             // settings used to have numeric keys, now they have keys that match the option ID. This ensures both methods work
312
-            if ( is_numeric( $key ) ) {
312
+            if (is_numeric($key)) {
313 313
                 $key = $value['id'];
314 314
             }
315 315
 
316
-            if ( ! isset( $input[ $key ] ) && isset( $wpinv_options[ $key ] ) ) {
317
-                unset( $wpinv_options[ $key ] );
316
+            if (!isset($input[$key]) && isset($wpinv_options[$key])) {
317
+                unset($wpinv_options[$key]);
318 318
             }
319 319
         }
320 320
     }
321 321
 
322 322
     // Merge our new settings with the existing
323
-    $output = array_merge( $wpinv_options, $input );
323
+    $output = array_merge($wpinv_options, $input);
324 324
 
325
-    add_settings_error( 'wpinv-notices', '', __( 'Settings updated.', 'invoicing' ), 'updated' );
325
+    add_settings_error('wpinv-notices', '', __('Settings updated.', 'invoicing'), 'updated');
326 326
 
327 327
     return $output;
328 328
 }
329
-add_filter( 'wpinv_settings_sanitize_text', 'trim', 10, 1 );
330
-add_filter( 'wpinv_settings_sanitize_tax_rate', 'wpinv_sanitize_amount' );
329
+add_filter('wpinv_settings_sanitize_text', 'trim', 10, 1);
330
+add_filter('wpinv_settings_sanitize_tax_rate', 'wpinv_sanitize_amount');
331 331
 
332
-function wpinv_settings_sanitize_tax_rates( $input ) {
333
-    if ( ! wpinv_current_user_can_manage_invoicing() ) {
332
+function wpinv_settings_sanitize_tax_rates($input) {
333
+    if (!wpinv_current_user_can_manage_invoicing()) {
334 334
         return $input;
335 335
     }
336 336
 
337
-    $new_rates = ! empty( $_POST['tax_rates'] ) ? wp_kses_post_deep( array_values( $_POST['tax_rates'] ) ) : array();
337
+    $new_rates = !empty($_POST['tax_rates']) ? wp_kses_post_deep(array_values($_POST['tax_rates'])) : array();
338 338
     $tax_rates = array();
339 339
 
340
-    foreach ( $new_rates as $rate ) {
340
+    foreach ($new_rates as $rate) {
341 341
 
342
-		$rate['rate']    = wpinv_sanitize_amount( $rate['rate'] );
343
-		$rate['name']    = sanitize_text_field( $rate['name'] );
344
-		$rate['state']   = sanitize_text_field( $rate['state'] );
345
-		$rate['country'] = sanitize_text_field( $rate['country'] );
346
-		$rate['global']  = empty( $rate['state'] );
342
+		$rate['rate']    = wpinv_sanitize_amount($rate['rate']);
343
+		$rate['name']    = sanitize_text_field($rate['name']);
344
+		$rate['state']   = sanitize_text_field($rate['state']);
345
+		$rate['country'] = sanitize_text_field($rate['country']);
346
+		$rate['global']  = empty($rate['state']);
347 347
 		$tax_rates[]     = $rate;
348 348
 
349 349
 	}
350 350
 
351
-    update_option( 'wpinv_tax_rates', $tax_rates );
351
+    update_option('wpinv_tax_rates', $tax_rates);
352 352
 
353 353
     return $input;
354 354
 }
355
-add_filter( 'wpinv_settings_taxes-rates_sanitize', 'wpinv_settings_sanitize_tax_rates' );
355
+add_filter('wpinv_settings_taxes-rates_sanitize', 'wpinv_settings_sanitize_tax_rates');
356 356
 
357
-function wpinv_settings_sanitize_tax_rules( $input ) {
358
-    if ( ! wpinv_current_user_can_manage_invoicing() ) {
357
+function wpinv_settings_sanitize_tax_rules($input) {
358
+    if (!wpinv_current_user_can_manage_invoicing()) {
359 359
         return $input;
360 360
     }
361 361
 
362
-	if ( empty( $_POST['wpinv_tax_rules_nonce'] ) || ! wp_verify_nonce( $_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules' ) ) {
362
+	if (empty($_POST['wpinv_tax_rules_nonce']) || !wp_verify_nonce($_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules')) {
363 363
 		return $input;
364 364
 	}
365 365
 
366
-    $new_rules = ! empty( $_POST['tax_rules'] ) ? wp_kses_post_deep( array_values( $_POST['tax_rules'] ) ) : array();
366
+    $new_rules = !empty($_POST['tax_rules']) ? wp_kses_post_deep(array_values($_POST['tax_rules'])) : array();
367 367
     $tax_rules = array();
368 368
 
369
-    foreach ( $new_rules as $rule ) {
369
+    foreach ($new_rules as $rule) {
370 370
 
371
-		$rule['key']      = sanitize_title_with_dashes( $rule['key'] );
372
-		$rule['label']    = sanitize_text_field( $rule['label'] );
373
-		$rule['tax_base'] = sanitize_text_field( $rule['tax_base'] );
371
+		$rule['key']      = sanitize_title_with_dashes($rule['key']);
372
+		$rule['label']    = sanitize_text_field($rule['label']);
373
+		$rule['tax_base'] = sanitize_text_field($rule['tax_base']);
374 374
 		$tax_rules[]      = $rule;
375 375
 
376 376
 	}
377 377
 
378
-    update_option( 'wpinv_tax_rules', $tax_rules );
378
+    update_option('wpinv_tax_rules', $tax_rules);
379 379
 
380 380
     return $input;
381 381
 }
382
-add_filter( 'wpinv_settings_taxes-rules_sanitize', 'wpinv_settings_sanitize_tax_rules' );
382
+add_filter('wpinv_settings_taxes-rules_sanitize', 'wpinv_settings_sanitize_tax_rules');
383 383
 
384 384
 function wpinv_get_settings_tabs() {
385 385
     $tabs             = array();
386
-    $tabs['general']  = __( 'General', 'invoicing' );
387
-    $tabs['gateways'] = __( 'Payment Gateways', 'invoicing' );
388
-    $tabs['taxes']    = __( 'Taxes', 'invoicing' );
389
-	$tabs['emails']   = __( 'Emails', 'invoicing' );
386
+    $tabs['general']  = __('General', 'invoicing');
387
+    $tabs['gateways'] = __('Payment Gateways', 'invoicing');
388
+    $tabs['taxes']    = __('Taxes', 'invoicing');
389
+	$tabs['emails'] = __('Emails', 'invoicing');
390 390
 
391
-	if ( count( getpaid_get_integration_settings() ) > 0 ) {
392
-		$tabs['integrations'] = __( 'Integrations', 'invoicing' );
391
+	if (count(getpaid_get_integration_settings()) > 0) {
392
+		$tabs['integrations'] = __('Integrations', 'invoicing');
393 393
 	}
394 394
 
395
-    $tabs['privacy']  = __( 'Privacy', 'invoicing' );
396
-    $tabs['misc']     = __( 'Misc', 'invoicing' );
397
-    $tabs['tools']    = __( 'Tools', 'invoicing' );
395
+    $tabs['privacy']  = __('Privacy', 'invoicing');
396
+    $tabs['misc']     = __('Misc', 'invoicing');
397
+    $tabs['tools']    = __('Tools', 'invoicing');
398 398
 
399
-    return apply_filters( 'wpinv_settings_tabs', $tabs );
399
+    return apply_filters('wpinv_settings_tabs', $tabs);
400 400
 }
401 401
 
402
-function wpinv_get_settings_tab_sections( $tab = false ) {
402
+function wpinv_get_settings_tab_sections($tab = false) {
403 403
     $tabs     = false;
404 404
     $sections = wpinv_get_registered_settings_sections();
405 405
 
406
-    if ( $tab && ! empty( $sections[ $tab ] ) ) {
407
-        $tabs = $sections[ $tab ];
406
+    if ($tab && !empty($sections[$tab])) {
407
+        $tabs = $sections[$tab];
408 408
     }
409 409
 
410 410
     return $tabs;
@@ -413,7 +413,7 @@  discard block
 block discarded – undo
413 413
 function wpinv_get_registered_settings_sections() {
414 414
     static $sections = false;
415 415
 
416
-    if ( false !== $sections ) {
416
+    if (false !== $sections) {
417 417
         return $sections;
418 418
     }
419 419
 
@@ -421,231 +421,231 @@  discard block
 block discarded – undo
421 421
         'general'      => apply_filters(
422 422
             'wpinv_settings_sections_general',
423 423
             array(
424
-				'main'             => __( 'General Settings', 'invoicing' ),
425
-				'page_section'     => __( 'Page Settings', 'invoicing' ),
426
-				'currency_section' => __( 'Currency Settings', 'invoicing' ),
427
-				'labels'           => __( 'Label Texts', 'invoicing' ),
424
+				'main'             => __('General Settings', 'invoicing'),
425
+				'page_section'     => __('Page Settings', 'invoicing'),
426
+				'currency_section' => __('Currency Settings', 'invoicing'),
427
+				'labels'           => __('Label Texts', 'invoicing'),
428 428
             )
429 429
         ),
430 430
         'gateways'     => apply_filters(
431 431
             'wpinv_settings_sections_gateways',
432 432
             array(
433
-				'main' => __( 'Gateway Settings', 'invoicing' ),
433
+				'main' => __('Gateway Settings', 'invoicing'),
434 434
             )
435 435
         ),
436 436
         'taxes'        => apply_filters(
437 437
             'wpinv_settings_sections_taxes',
438 438
             array(
439
-				'main'  => __( 'Tax Settings', 'invoicing' ),
440
-				'rules' => __( 'Tax Rules', 'invoicing' ),
441
-				'rates' => __( 'Tax Rates', 'invoicing' ),
442
-				'vat'   => __( 'EU VAT Settings', 'invoicing' ),
439
+				'main'  => __('Tax Settings', 'invoicing'),
440
+				'rules' => __('Tax Rules', 'invoicing'),
441
+				'rates' => __('Tax Rates', 'invoicing'),
442
+				'vat'   => __('EU VAT Settings', 'invoicing'),
443 443
             )
444 444
         ),
445 445
         'emails'       => apply_filters(
446 446
             'wpinv_settings_sections_emails',
447 447
             array(
448
-				'main' => __( 'Email Settings', 'invoicing' ),
448
+				'main' => __('Email Settings', 'invoicing'),
449 449
             )
450 450
         ),
451 451
 
452
-		'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ),
452
+		'integrations' => wp_list_pluck(getpaid_get_integration_settings(), 'label', 'id'),
453 453
 
454 454
         'privacy'      => apply_filters(
455 455
             'wpinv_settings_sections_privacy',
456 456
             array(
457
-				'main' => __( 'Privacy policy', 'invoicing' ),
457
+				'main' => __('Privacy policy', 'invoicing'),
458 458
             )
459 459
         ),
460 460
         'misc'         => apply_filters(
461 461
             'wpinv_settings_sections_misc',
462 462
             array(
463
-				'main'       => __( 'Miscellaneous', 'invoicing' ),
464
-				'custom-css' => __( 'Custom CSS', 'invoicing' ),
463
+				'main'       => __('Miscellaneous', 'invoicing'),
464
+				'custom-css' => __('Custom CSS', 'invoicing'),
465 465
             )
466 466
         ),
467 467
         'tools'        => apply_filters(
468 468
             'wpinv_settings_sections_tools',
469 469
             array(
470
-				'main' => __( 'Diagnostic Tools', 'invoicing' ),
470
+				'main' => __('Diagnostic Tools', 'invoicing'),
471 471
             )
472 472
         ),
473 473
     );
474 474
 
475
-    $sections = apply_filters( 'wpinv_settings_sections', $sections );
475
+    $sections = apply_filters('wpinv_settings_sections', $sections);
476 476
 
477 477
     return $sections;
478 478
 }
479 479
 
480
-function wpinv_get_pages( $with_slug = false, $default_label = null ) {
480
+function wpinv_get_pages($with_slug = false, $default_label = null) {
481 481
 	$pages_options = array();
482 482
 
483
-	if ( $default_label !== null && $default_label !== false ) {
484
-		$pages_options = array( '' => $default_label ); // Blank option
483
+	if ($default_label !== null && $default_label !== false) {
484
+		$pages_options = array('' => $default_label); // Blank option
485 485
 	}
486 486
 
487 487
 	$pages = get_pages();
488
-	if ( $pages ) {
489
-		foreach ( $pages as $page ) {
488
+	if ($pages) {
489
+		foreach ($pages as $page) {
490 490
 			$title = $with_slug ? $page->post_title . ' (' . $page->post_name . ')' : $page->post_title;
491
-            $pages_options[ $page->ID ] = $title;
491
+            $pages_options[$page->ID] = $title;
492 492
 		}
493 493
 	}
494 494
 
495 495
 	return $pages_options;
496 496
 }
497 497
 
498
-function wpinv_header_callback( $args ) {
499
-	if ( ! empty( $args['desc'] ) ) {
500
-        echo wp_kses_post( $args['desc'] );
498
+function wpinv_header_callback($args) {
499
+	if (!empty($args['desc'])) {
500
+        echo wp_kses_post($args['desc']);
501 501
     }
502 502
 }
503 503
 
504
-function wpinv_hidden_callback( $args ) {
504
+function wpinv_hidden_callback($args) {
505 505
 
506
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
507
-	$value   = wpinv_get_option( $args['id'], $std );
506
+	$std     = isset($args['std']) ? $args['std'] : '';
507
+	$value   = wpinv_get_option($args['id'], $std);
508 508
 
509
-	if ( isset( $args['set_value'] ) ) {
509
+	if (isset($args['set_value'])) {
510 510
 		$value = $args['set_value'];
511 511
 	}
512 512
 
513
-	if ( isset( $args['faux'] ) && true === $args['faux'] ) {
513
+	if (isset($args['faux']) && true === $args['faux']) {
514 514
 		$args['readonly'] = true;
515
-		$name  = '';
515
+		$name = '';
516 516
 	} else {
517
-		$name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']';
517
+		$name = 'wpinv_settings[' . esc_attr($args['id']) . ']';
518 518
 	}
519 519
 
520
-	echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />';
520
+	echo '<input type="hidden" id="wpinv_settings[' . esc_attr($args['id']) . ']" name="' . esc_attr($name) . '" value="' . esc_attr(stripslashes($value)) . '" />';
521 521
 
522 522
 }
523 523
 
524 524
 /**
525 525
  * Displays a checkbox settings callback.
526 526
  */
527
-function wpinv_checkbox_callback( $args ) {
527
+function wpinv_checkbox_callback($args) {
528 528
 
529
-	$std = isset( $args['std'] ) ? $args['std'] : '';
530
-	$std = wpinv_get_option( $args['id'], $std );
531
-	$id  = esc_attr( $args['id'] );
529
+	$std = isset($args['std']) ? $args['std'] : '';
530
+	$std = wpinv_get_option($args['id'], $std);
531
+	$id  = esc_attr($args['id']);
532 532
 
533
-	getpaid_hidden_field( "wpinv_settings[$id]", '0' );
533
+	getpaid_hidden_field("wpinv_settings[$id]", '0');
534 534
 	?>
535 535
 		<fieldset>
536 536
 			<label>
537
-				<input id="wpinv-settings-<?php echo esc_attr( $id ); ?>" name="wpinv_settings[<?php echo esc_attr( $id ); ?>]" <?php checked( empty( $std ), false ); ?> value="1" type="checkbox" />
538
-				<?php echo wp_kses_post( $args['desc'] ); ?>
537
+				<input id="wpinv-settings-<?php echo esc_attr($id); ?>" name="wpinv_settings[<?php echo esc_attr($id); ?>]" <?php checked(empty($std), false); ?> value="1" type="checkbox" />
538
+				<?php echo wp_kses_post($args['desc']); ?>
539 539
 			</label>
540 540
 		</fieldset>
541 541
 	<?php
542 542
 }
543 543
 
544
-function wpinv_multicheck_callback( $args ) {
544
+function wpinv_multicheck_callback($args) {
545 545
 
546
-	$sanitize_id = wpinv_sanitize_key( $args['id'] );
547
-	$class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
546
+	$sanitize_id = wpinv_sanitize_key($args['id']);
547
+	$class = !empty($args['class']) ? ' ' . esc_attr($args['class']) : '';
548 548
 
549
-	if ( ! empty( $args['options'] ) ) {
549
+	if (!empty($args['options'])) {
550 550
 
551
-		$std     = isset( $args['std'] ) ? $args['std'] : array();
552
-		$value   = wpinv_get_option( $args['id'], $std );
551
+		$std     = isset($args['std']) ? $args['std'] : array();
552
+		$value   = wpinv_get_option($args['id'], $std);
553 553
 
554
-		echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">';
555
-        foreach ( $args['options'] as $key => $option ) :
556
-			$sanitize_key = esc_attr( wpinv_sanitize_key( $key ) );
557
-			if ( in_array( $sanitize_key, $value ) ) {
554
+		echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr($sanitize_id . $class) . '">';
555
+        foreach ($args['options'] as $key => $option) :
556
+			$sanitize_key = esc_attr(wpinv_sanitize_key($key));
557
+			if (in_array($sanitize_key, $value)) {
558 558
 				$enabled = $sanitize_key;
559 559
 			} else {
560 560
 				$enabled = null;
561 561
 			}
562
-			echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/>&nbsp;';
563
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>';
562
+			echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" id="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" type="checkbox" value="' . esc_attr($sanitize_key) . '" ' . checked($sanitize_key, $enabled, false) . '/>&nbsp;';
563
+			echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']">' . wp_kses_post($option) . '</label></div>';
564 564
 		endforeach;
565 565
 		echo '</div>';
566
-		echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>';
566
+		echo '<p class="description">' . wp_kses_post($args['desc']) . '</p>';
567 567
 	}
568 568
 }
569 569
 
570
-function wpinv_payment_icons_callback( $args ) {
570
+function wpinv_payment_icons_callback($args) {
571 571
 
572
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
573
-	$value   = wpinv_get_option( $args['id'], false );
572
+    $sanitize_id = wpinv_sanitize_key($args['id']);
573
+	$value = wpinv_get_option($args['id'], false);
574 574
 
575
-	if ( ! empty( $args['options'] ) ) {
576
-		foreach ( $args['options'] as $key => $option ) {
577
-            $sanitize_key = wpinv_sanitize_key( $key );
575
+	if (!empty($args['options'])) {
576
+		foreach ($args['options'] as $key => $option) {
577
+            $sanitize_key = wpinv_sanitize_key($key);
578 578
 
579
-			if ( empty( $value ) ) {
579
+			if (empty($value)) {
580 580
 				$enabled = $option;
581 581
 			} else {
582 582
 				$enabled = null;
583 583
 			}
584 584
 
585
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
585
+			echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
586 586
 
587
-				echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
587
+				echo '<input name="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" id="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" type="checkbox" value="' . esc_attr($option) . '" ' . checked($option, $enabled, false) . '/>&nbsp;';
588 588
 
589
-				if ( wpinv_string_is_image_url( $key ) ) {
590
-				echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
589
+				if (wpinv_string_is_image_url($key)) {
590
+				echo '<img class="payment-icon" src="' . esc_url($key) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
591 591
 				} else {
592
-				$card = strtolower( str_replace( ' ', '', $option ) );
592
+				$card = strtolower(str_replace(' ', '', $option));
593 593
 
594
-				if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) {
595
-					$image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' );
594
+				if (has_filter('wpinv_accepted_payment_' . $card . '_image')) {
595
+					$image = apply_filters('wpinv_accepted_payment_' . $card . '_image', '');
596 596
 					} else {
597
-					$image       = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false );
597
+					$image       = wpinv_locate_template('images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false);
598 598
 					$content_dir = WP_CONTENT_DIR;
599 599
 
600
-					if ( function_exists( 'wp_normalize_path' ) ) {
600
+					if (function_exists('wp_normalize_path')) {
601 601
 						// Replaces backslashes with forward slashes for Windows systems
602
-						$image = wp_normalize_path( $image );
603
-						$content_dir = wp_normalize_path( $content_dir );
602
+						$image = wp_normalize_path($image);
603
+						$content_dir = wp_normalize_path($content_dir);
604 604
 						}
605 605
 
606
-					$image = str_replace( $content_dir, content_url(), $image );
606
+					$image = str_replace($content_dir, content_url(), $image);
607 607
 					}
608 608
 
609
-				echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
609
+				echo '<img class="payment-icon" src="' . esc_url($image) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
610 610
 				}
611
-			echo wp_kses_post( $option ) . '</label>';
611
+			echo wp_kses_post($option) . '</label>';
612 612
 		}
613
-		echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>';
613
+		echo '<p class="description" style="margin-top:16px;">' . wp_kses_post($args['desc']) . '</p>';
614 614
 	}
615 615
 }
616 616
 
617 617
 /**
618 618
  * Displays a radio settings field.
619 619
  */
620
-function wpinv_radio_callback( $args ) {
620
+function wpinv_radio_callback($args) {
621 621
 
622
-	$std = isset( $args['std'] ) ? $args['std'] : '';
623
-	$std = wpinv_get_option( $args['id'], $std );
622
+	$std = isset($args['std']) ? $args['std'] : '';
623
+	$std = wpinv_get_option($args['id'], $std);
624 624
 	?>
625 625
 		<fieldset>
626
-			<ul id="wpinv-settings-<?php echo esc_attr( $args['id'] ); ?>" style="margin-top: 0;">
627
-				<?php foreach ( $args['options'] as $key => $option ) : ?>
626
+			<ul id="wpinv-settings-<?php echo esc_attr($args['id']); ?>" style="margin-top: 0;">
627
+				<?php foreach ($args['options'] as $key => $option) : ?>
628 628
 					<li>
629 629
 						<label>
630
-							<input name="wpinv_settings[<?php echo esc_attr( $args['id'] ); ?>]" <?php checked( $std, $key ); ?> value="<?php echo esc_attr( $key ); ?>" type="radio">
631
-							<?php echo wp_kses_post( $option ); ?>
630
+							<input name="wpinv_settings[<?php echo esc_attr($args['id']); ?>]" <?php checked($std, $key); ?> value="<?php echo esc_attr($key); ?>" type="radio">
631
+							<?php echo wp_kses_post($option); ?>
632 632
 						</label>
633 633
 					</li>
634 634
 				<?php endforeach; ?>
635 635
 			</ul>
636 636
 		</fieldset>
637 637
 	<?php
638
-	getpaid_settings_description_callback( $args );
638
+	getpaid_settings_description_callback($args);
639 639
 }
640 640
 
641 641
 /**
642 642
  * Displays a description if available.
643 643
  */
644
-function getpaid_settings_description_callback( $args ) {
644
+function getpaid_settings_description_callback($args) {
645 645
 
646
-	if ( ! empty( $args['desc'] ) ) {
646
+	if (!empty($args['desc'])) {
647 647
 		$description = $args['desc'];
648
-		echo wp_kses_post( "<p class='description'>$description</p>" );
648
+		echo wp_kses_post("<p class='description'>$description</p>");
649 649
 	}
650 650
 
651 651
 }
@@ -660,35 +660,35 @@  discard block
 block discarded – undo
660 660
 	</tr>
661 661
 	<tr class="bsui">
662 662
     	<td colspan="2" class="p-0">
663
-			<?php include plugin_dir_path( __FILE__ ) . 'views/html-gateways-edit.php'; ?>
663
+			<?php include plugin_dir_path(__FILE__) . 'views/html-gateways-edit.php'; ?>
664 664
 
665 665
 	<?php
666 666
 }
667 667
 
668
-function wpinv_gateway_select_callback( $args ) {
668
+function wpinv_gateway_select_callback($args) {
669 669
 
670
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
671
-    $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
672
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
673
-	$value   = wpinv_get_option( $args['id'], $std );
670
+    $sanitize_id = wpinv_sanitize_key($args['id']);
671
+    $class = !empty($args['class']) ? ' ' . esc_attr($args['class']) : '';
672
+	$std     = isset($args['std']) ? $args['std'] : '';
673
+	$value   = wpinv_get_option($args['id'], $std);
674 674
 
675
-	echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >';
675
+	echo '<select name="wpinv_settings[' . esc_attr($sanitize_id) . ']"" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" class="' . esc_attr($class) . '" >';
676 676
 
677
-	foreach ( $args['options'] as $key => $option ) :
677
+	foreach ($args['options'] as $key => $option) :
678 678
 
679
-		echo '<option value="' . esc_attr( $key ) . '" ';
679
+		echo '<option value="' . esc_attr($key) . '" ';
680 680
 
681
-		if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) {
682
-            selected( $key, $args['selected'] );
681
+		if (isset($args['selected']) && $args['selected'] !== null && $args['selected'] !== false) {
682
+            selected($key, $args['selected']);
683 683
         } else {
684
-            selected( $key, $value );
684
+            selected($key, $value);
685 685
         }
686 686
 
687
-		echo '>' . esc_html( $option['admin_label'] ) . '</option>';
687
+		echo '>' . esc_html($option['admin_label']) . '</option>';
688 688
 	endforeach;
689 689
 
690 690
 	echo '</select>';
691
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
691
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
692 692
 }
693 693
 
694 694
 /**
@@ -697,16 +697,16 @@  discard block
 block discarded – undo
697 697
  * @param array $args
698 698
  * @return string
699 699
  */
700
-function wpinv_settings_attrs_helper( $args ) {
700
+function wpinv_settings_attrs_helper($args) {
701 701
 
702
-	$value = isset( $args['std'] ) ? $args['std'] : '';
703
-	$id    = esc_attr( $args['id'] );
704
-	$value = is_scalar( $value ) ? $value : '';
702
+	$value = isset($args['std']) ? $args['std'] : '';
703
+	$id    = esc_attr($args['id']);
704
+	$value = is_scalar($value) ? $value : '';
705 705
 
706 706
 	$attrs = array(
707
-		'name'     => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]",
708
-		'readonly' => ! empty( $args['faux'] ),
709
-		'value'    => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ),
707
+		'name'     => !empty($args['faux']) ? false : "wpinv_settings[$id]",
708
+		'readonly' => !empty($args['faux']),
709
+		'value'    => !empty($args['faux']) ? $value : wpinv_get_option($args['id'], $value),
710 710
 		'id'       => 'wpinv-settings-' . $args['id'],
711 711
 		'style'    => $args['style'],
712 712
 		'class'    => $args['class'],
@@ -714,20 +714,20 @@  discard block
 block discarded – undo
714 714
 		'data-placeholder' => $args['placeholder'],
715 715
 	);
716 716
 
717
-	if ( ! empty( $args['onchange'] ) ) {
717
+	if (!empty($args['onchange'])) {
718 718
 		$attrs['onchange'] = $args['onchange'];
719 719
 	}
720 720
 
721
-	foreach ( $attrs as $key => $value ) {
721
+	foreach ($attrs as $key => $value) {
722 722
 
723
-		if ( false === $value ) {
723
+		if (false === $value) {
724 724
 			continue;
725 725
 		}
726 726
 
727
-		if ( true === $value ) {
728
-			echo ' ' . esc_attr( $key );
727
+		if (true === $value) {
728
+			echo ' ' . esc_attr($key);
729 729
 		} else {
730
-			echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
730
+			echo ' ' . esc_attr($key) . '="' . esc_attr($value) . '"';
731 731
 		}
732 732
 
733 733
 	}
@@ -737,14 +737,14 @@  discard block
 block discarded – undo
737 737
 /**
738 738
  * Displays a text input settings callback.
739 739
  */
740
-function wpinv_text_callback( $args ) {
740
+function wpinv_text_callback($args) {
741 741
 
742
-	$desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
742
+	$desc = empty($desc) ? '' : "<p class='description'>$desc</p>";
743 743
 
744 744
 	?>
745 745
 		<label style="width: 100%;">
746
-			<input type="text" <?php wpinv_settings_attrs_helper( $args ); ?>>
747
-			<?php echo wp_kses_post( $desc ); ?>
746
+			<input type="text" <?php wpinv_settings_attrs_helper($args); ?>>
747
+			<?php echo wp_kses_post($desc); ?>
748 748
 		</label>
749 749
 	<?php
750 750
 
@@ -753,176 +753,176 @@  discard block
 block discarded – undo
753 753
 /**
754 754
  * Displays a number input settings callback.
755 755
  */
756
-function wpinv_number_callback( $args ) {
756
+function wpinv_number_callback($args) {
757 757
 
758
-	$desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
758
+	$desc = empty($desc) ? '' : "<p class='description'>$desc</p>";
759 759
 
760 760
 	?>
761 761
 		<label style="width: 100%;">
762
-			<input type="number" step="<?php echo esc_attr( $args['step'] ); ?>" max="<?php echo intval( $args['max'] ); ?>" min="<?php echo intval( $args['min'] ); ?>" <?php wpinv_settings_attrs_helper( $args ); ?>>
763
-			<?php echo wp_kses_post( $desc ); ?>
762
+			<input type="number" step="<?php echo esc_attr($args['step']); ?>" max="<?php echo intval($args['max']); ?>" min="<?php echo intval($args['min']); ?>" <?php wpinv_settings_attrs_helper($args); ?>>
763
+			<?php echo wp_kses_post($desc); ?>
764 764
 		</label>
765 765
 	<?php
766 766
 
767 767
 }
768 768
 
769
-function wpinv_textarea_callback( $args ) {
769
+function wpinv_textarea_callback($args) {
770 770
 
771
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
772
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
773
-	$value   = wpinv_get_option( $args['id'], $std );
771
+    $sanitize_id = wpinv_sanitize_key($args['id']);
772
+	$std     = isset($args['std']) ? $args['std'] : '';
773
+	$value   = wpinv_get_option($args['id'], $std);
774 774
 
775
-    $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
776
-    $class = ( isset( $args['class'] ) && ! is_null( $args['class'] ) ) ? $args['class'] : 'large-text';
775
+    $size = (isset($args['size']) && !is_null($args['size'])) ? $args['size'] : 'regular';
776
+    $class = (isset($args['class']) && !is_null($args['class'])) ? $args['class'] : 'large-text';
777 777
 
778
-	echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
779
-	echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
778
+	echo '<textarea class="' . esc_attr($class) . ' txtarea-' . esc_attr($size) . ' wpi-' . esc_attr(sanitize_html_class($sanitize_id)) . ' " cols="' . esc_attr($args['cols']) . '" rows="' . esc_attr($args['rows']) . '" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']">' . esc_textarea(stripslashes($value)) . '</textarea>';
779
+	echo '<br /><label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
780 780
 
781 781
 }
782 782
 
783
-function wpinv_password_callback( $args ) {
783
+function wpinv_password_callback($args) {
784 784
 
785
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
786
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
787
-	$value   = wpinv_get_option( $args['id'], $std );
785
+    $sanitize_id = wpinv_sanitize_key($args['id']);
786
+	$std     = isset($args['std']) ? $args['std'] : '';
787
+	$value   = wpinv_get_option($args['id'], $std);
788 788
 
789
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
790
-	echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
791
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
789
+	$size = (isset($args['size']) && !is_null($args['size'])) ? $args['size'] : 'regular';
790
+	echo '<input type="password" class="' . esc_attr($size) . '-text" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" value="' . esc_attr($value) . '"/>';
791
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
792 792
 
793 793
 }
794 794
 
795
-function wpinv_missing_callback( $args ) {
795
+function wpinv_missing_callback($args) {
796 796
 	printf(
797
-		esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ),
798
-		'<strong>' . esc_html( $args['id'] ) . '</strong>'
797
+		esc_html__('The callback function used for the %s setting is missing.', 'invoicing'),
798
+		'<strong>' . esc_html($args['id']) . '</strong>'
799 799
 	);
800 800
 }
801 801
 
802 802
 /**
803 803
  * Displays a number input settings callback.
804 804
  */
805
-function wpinv_select_callback( $args ) {
805
+function wpinv_select_callback($args) {
806 806
 
807
-	$desc   = wp_kses_post( $args['desc'] );
808
-	$desc   = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
809
-	$value  = isset( $args['std'] ) ? $args['std'] : '';
810
-	$value  = wpinv_get_option( $args['id'], $value );
811
-	$rand   = uniqid( 'random_id' );
807
+	$desc   = wp_kses_post($args['desc']);
808
+	$desc   = empty($desc) ? '' : "<p class='description'>$desc</p>";
809
+	$value  = isset($args['std']) ? $args['std'] : '';
810
+	$value  = wpinv_get_option($args['id'], $value);
811
+	$rand   = uniqid('random_id');
812 812
 
813 813
 	?>
814 814
 		<label style="width: 100%;">
815
-			<select <?php wpinv_settings_attrs_helper( $args ); ?> data-allow-clear="true">
816
-				<?php foreach ( $args['options'] as $option => $name ) : ?>
817
-					<option value="<?php echo esc_attr( $option ); ?>" <?php echo selected( $option, $value ); ?>><?php echo esc_html( $name ); ?></option>
815
+			<select <?php wpinv_settings_attrs_helper($args); ?> data-allow-clear="true">
816
+				<?php foreach ($args['options'] as $option => $name) : ?>
817
+					<option value="<?php echo esc_attr($option); ?>" <?php echo selected($option, $value); ?>><?php echo esc_html($name); ?></option>
818 818
 				<?php endforeach; ?>
819 819
 			</select>
820 820
 
821
-			<?php if ( substr( $args['id'], -5 ) === '_page' && is_numeric( $value ) ) : ?>
822
-				<a href="<?php echo esc_url( get_edit_post_link( $value ) ); ?>" target="_blank" class="button getpaid-page-setting-edit"><?php esc_html_e( 'Edit Page', 'invoicing' ); ?></a>
821
+			<?php if (substr($args['id'], -5) === '_page' && is_numeric($value)) : ?>
822
+				<a href="<?php echo esc_url(get_edit_post_link($value)); ?>" target="_blank" class="button getpaid-page-setting-edit"><?php esc_html_e('Edit Page', 'invoicing'); ?></a>
823 823
 			<?php endif; ?>
824 824
 
825
-			<?php if ( substr( $args['id'], -5 ) === '_page' && ! empty( $args['default_content'] ) ) : ?>
826
-				&nbsp;<a href="#TB_inline?&width=400&height=550&inlineId=<?php echo esc_attr( $rand ); ?>" class="button thickbox getpaid-page-setting-view-default"><?php esc_html_e( 'View Default Content', 'invoicing' ); ?></a>
827
-				<div id='<?php echo esc_attr( $rand ); ?>' style='display:none;'>
825
+			<?php if (substr($args['id'], -5) === '_page' && !empty($args['default_content'])) : ?>
826
+				&nbsp;<a href="#TB_inline?&width=400&height=550&inlineId=<?php echo esc_attr($rand); ?>" class="button thickbox getpaid-page-setting-view-default"><?php esc_html_e('View Default Content', 'invoicing'); ?></a>
827
+				<div id='<?php echo esc_attr($rand); ?>' style='display:none;'>
828 828
 					<div>
829
-						<h3><?php esc_html_e( 'Original Content', 'invoicing' ); ?></h3>
830
-						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php echo wp_kses_post( gepaid_trim_lines( $args['default_content'] ) ); ?></textarea>
831
-						<h3><?php esc_html_e( 'Current Content', 'invoicing' ); ?></h3>
832
-						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php $_post = get_post( $value ); echo empty( $_post ) ? '' : wp_kses_post( gepaid_trim_lines( $_post->post_content ) ); ?></textarea>
829
+						<h3><?php esc_html_e('Original Content', 'invoicing'); ?></h3>
830
+						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php echo wp_kses_post(gepaid_trim_lines($args['default_content'])); ?></textarea>
831
+						<h3><?php esc_html_e('Current Content', 'invoicing'); ?></h3>
832
+						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php $_post = get_post($value); echo empty($_post) ? '' : wp_kses_post(gepaid_trim_lines($_post->post_content)); ?></textarea>
833 833
 					</div>
834 834
 				</div>
835 835
 			<?php endif; ?>
836 836
 
837
-			<?php echo wp_kses_post( $desc ); ?>
837
+			<?php echo wp_kses_post($desc); ?>
838 838
 		</label>
839 839
 	<?php
840 840
 
841 841
 }
842 842
 
843
-function wpinv_color_select_callback( $args ) {
843
+function wpinv_color_select_callback($args) {
844 844
 
845
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
846
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
847
-	$value   = wpinv_get_option( $args['id'], $std );
845
+    $sanitize_id = wpinv_sanitize_key($args['id']);
846
+	$std     = isset($args['std']) ? $args['std'] : '';
847
+	$value   = wpinv_get_option($args['id'], $std);
848 848
 
849
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>';
849
+	echo '<select id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']"/>';
850 850
 
851
-	foreach ( $args['options'] as $option => $color ) {
852
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>';
851
+	foreach ($args['options'] as $option => $color) {
852
+		echo '<option value="' . esc_attr($option) . '" ' . selected($option, $value) . '>' . esc_html($color['label']) . '</option>';
853 853
 	}
854 854
 
855 855
 	echo '</select>';
856
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
856
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
857 857
 
858 858
 }
859 859
 
860
-function wpinv_rich_editor_callback( $args ) {
860
+function wpinv_rich_editor_callback($args) {
861 861
 	global $wp_version;
862 862
 
863
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
863
+    $sanitize_id = wpinv_sanitize_key($args['id']);
864 864
 
865
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
866
-	$value   = wpinv_get_option( $args['id'], $std );
865
+	$std     = isset($args['std']) ? $args['std'] : '';
866
+	$value   = wpinv_get_option($args['id'], $std);
867 867
 
868
-	if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) {
868
+	if (!empty($args['allow_blank']) && empty($value)) {
869 869
 		$value = $std;
870 870
 	}
871 871
 
872
-	$rows = isset( $args['size'] ) ? $args['size'] : 20;
872
+	$rows = isset($args['size']) ? $args['size'] : 20;
873 873
 
874 874
 	echo '<div class="getpaid-settings-editor-input">';
875
-	if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) {
875
+	if ($wp_version >= 3.3 && function_exists('wp_editor')) {
876 876
 		wp_editor(
877
-            stripslashes( $value ),
878
-            'wpinv_settings_' . esc_attr( $args['id'] ),
877
+            stripslashes($value),
878
+            'wpinv_settings_' . esc_attr($args['id']),
879 879
             array(
880
-				'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']',
881
-				'textarea_rows' => absint( $rows ),
880
+				'textarea_name' => 'wpinv_settings[' . esc_attr($args['id']) . ']',
881
+				'textarea_rows' => absint($rows),
882 882
 				'media_buttons' => false,
883 883
             )
884 884
         );
885 885
 	} else {
886
-		echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
886
+		echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" class="wpi-' . esc_attr(sanitize_html_class($args['id'])) . '">' . esc_textarea(stripslashes($value)) . '</textarea>';
887 887
 	}
888 888
 
889
-	echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
889
+	echo '</div><br/><label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
890 890
 
891 891
 }
892 892
 
893
-function wpinv_upload_callback( $args ) {
893
+function wpinv_upload_callback($args) {
894 894
 
895
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
895
+    $sanitize_id = wpinv_sanitize_key($args['id']);
896 896
 
897
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
898
-	$value   = wpinv_get_option( $args['id'], $std );
897
+	$std     = isset($args['std']) ? $args['std'] : '';
898
+	$value   = wpinv_get_option($args['id'], $std);
899 899
 
900
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
901
-	echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
902
-	echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>';
903
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
900
+	$size = (isset($args['size']) && !is_null($args['size'])) ? $args['size'] : 'regular';
901
+	echo '<input type="text" class="' . sanitize_html_class($size) . '-text" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" value="' . esc_attr(stripslashes($value)) . '"/>';
902
+	echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__('Upload File', 'invoicing') . '"/></span>';
903
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
904 904
 
905 905
 }
906 906
 
907
-function wpinv_color_callback( $args ) {
907
+function wpinv_color_callback($args) {
908 908
 
909
-	$std         = isset( $args['std'] ) ? $args['std'] : '';
910
-	$value       = wpinv_get_option( $args['id'], $std );
911
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
909
+	$std         = isset($args['std']) ? $args['std'] : '';
910
+	$value       = wpinv_get_option($args['id'], $std);
911
+    $sanitize_id = wpinv_sanitize_key($args['id']);
912 912
 
913
-	echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />';
914
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
913
+	echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" value="' . esc_attr($value) . '" data-default-color="' . esc_attr($std) . '" />';
914
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
915 915
 
916 916
 }
917 917
 
918
-function wpinv_country_states_callback( $args ) {
918
+function wpinv_country_states_callback($args) {
919 919
 
920
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
921
-	$value   = wpinv_get_option( $args['id'], $std );
920
+	$std     = isset($args['std']) ? $args['std'] : '';
921
+	$value   = wpinv_get_option($args['id'], $std);
922 922
 
923
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
923
+    $sanitize_id = wpinv_sanitize_key($args['id']);
924 924
 
925
-	if ( isset( $args['placeholder'] ) ) {
925
+	if (isset($args['placeholder'])) {
926 926
 		$placeholder = $args['placeholder'];
927 927
 	} else {
928 928
 		$placeholder = '';
@@ -930,15 +930,15 @@  discard block
 block discarded – undo
930 930
 
931 931
 	$states = wpinv_get_country_states();
932 932
 
933
-	$class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2';
934
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>';
933
+	$class = empty($states) ? 'wpinv-no-states' : 'wpi_select2';
934
+	echo '<select id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" class="' . esc_attr($class) . '" data-placeholder="' . esc_html($placeholder) . '"/>';
935 935
 
936
-	foreach ( $states as $option => $name ) {
937
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>';
936
+	foreach ($states as $option => $name) {
937
+		echo '<option value="' . esc_attr($option) . '" ' . selected($option, $value) . '>' . esc_html($name) . '</option>';
938 938
 	}
939 939
 
940 940
 	echo '</select>';
941
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
941
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
942 942
 
943 943
 }
944 944
 
@@ -952,7 +952,7 @@  discard block
 block discarded – undo
952 952
 	</tr>
953 953
 	<tr class="bsui">
954 954
     	<td colspan="2" class="p-0">
955
-			<?php include plugin_dir_path( __FILE__ ) . 'views/html-tax-rates-edit.php'; ?>
955
+			<?php include plugin_dir_path(__FILE__) . 'views/html-tax-rates-edit.php'; ?>
956 956
 
957 957
 	<?php
958 958
 
@@ -961,11 +961,11 @@  discard block
 block discarded – undo
961 961
 /**
962 962
  * Displays a tax rate' edit row.
963 963
  */
964
-function wpinv_tax_rate_callback( $tax_rate, $key ) {
964
+function wpinv_tax_rate_callback($tax_rate, $key) {
965 965
 
966
-	$key                      = sanitize_key( $key );
967
-	$tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate'];
968
-	include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php';
966
+	$key                      = sanitize_key($key);
967
+	$tax_rate['reduced_rate'] = empty($tax_rate['reduced_rate']) ? 0 : $tax_rate['reduced_rate'];
968
+	include plugin_dir_path(__FILE__) . 'views/html-tax-rate-edit.php';
969 969
 
970 970
 }
971 971
 
@@ -979,158 +979,158 @@  discard block
 block discarded – undo
979 979
 	</tr>
980 980
 	<tr class="bsui">
981 981
     	<td colspan="2" class="p-0">
982
-			<?php include plugin_dir_path( __FILE__ ) . 'views/html-tax-rules-edit.php'; ?>
982
+			<?php include plugin_dir_path(__FILE__) . 'views/html-tax-rules-edit.php'; ?>
983 983
 
984 984
 	<?php
985 985
 
986 986
 }
987 987
 
988
-function wpinv_tools_callback( $args ) {
988
+function wpinv_tools_callback($args) {
989 989
     ?>
990 990
     </td><tr>
991 991
     <td colspan="2" class="wpinv_tools_tdbox">
992 992
     <?php
993
-    if ( $args['desc'] ) {
993
+    if ($args['desc']) {
994 994
 ?>
995
-<p><?php echo wp_kses_post( $args['desc'] ); ?></p><?php } ?>
996
-    <?php do_action( 'wpinv_tools_before' ); ?>
995
+<p><?php echo wp_kses_post($args['desc']); ?></p><?php } ?>
996
+    <?php do_action('wpinv_tools_before'); ?>
997 997
     <table id="wpinv_tools_table" class="wp-list-table widefat fixed posts">
998 998
         <thead>
999 999
             <tr>
1000
-                <th scope="col" class="wpinv-th-tool"><?php esc_html_e( 'Tool', 'invoicing' ); ?></th>
1001
-                <th scope="col" class="wpinv-th-desc"><?php esc_html_e( 'Description', 'invoicing' ); ?></th>
1002
-                <th scope="col" class="wpinv-th-action"><?php esc_html_e( 'Action', 'invoicing' ); ?></th>
1000
+                <th scope="col" class="wpinv-th-tool"><?php esc_html_e('Tool', 'invoicing'); ?></th>
1001
+                <th scope="col" class="wpinv-th-desc"><?php esc_html_e('Description', 'invoicing'); ?></th>
1002
+                <th scope="col" class="wpinv-th-action"><?php esc_html_e('Action', 'invoicing'); ?></th>
1003 1003
             </tr>
1004 1004
         </thead>
1005 1005
 
1006 1006
         <tbody>
1007 1007
 			<tr>
1008
-                <td><?php esc_html_e( 'Check Pages', 'invoicing' ); ?></td>
1008
+                <td><?php esc_html_e('Check Pages', 'invoicing'); ?></td>
1009 1009
                 <td>
1010
-                    <small><?php esc_html_e( 'Creates any missing GetPaid pages.', 'invoicing' ); ?></small>
1010
+                    <small><?php esc_html_e('Creates any missing GetPaid pages.', 'invoicing'); ?></small>
1011 1011
                 </td>
1012 1012
                 <td>
1013 1013
 					<a href="
1014 1014
                     <?php
1015 1015
 						echo esc_url(
1016 1016
 							wp_nonce_url(
1017
-								add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
1017
+								add_query_arg('getpaid-admin-action', 'create_missing_pages'),
1018 1018
 								'getpaid-nonce',
1019 1019
 								'getpaid-nonce'
1020 1020
 							)
1021 1021
 						);
1022 1022
 					?>
1023
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1023
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1024 1024
                 </td>
1025 1025
             </tr>
1026 1026
 			<tr>
1027
-                <td><?php esc_html_e( 'Create Database Tables', 'invoicing' ); ?></td>
1027
+                <td><?php esc_html_e('Create Database Tables', 'invoicing'); ?></td>
1028 1028
                 <td>
1029
-                    <small><?php esc_html_e( 'Run this tool to create any missing database tables.', 'invoicing' ); ?></small>
1029
+                    <small><?php esc_html_e('Run this tool to create any missing database tables.', 'invoicing'); ?></small>
1030 1030
                 </td>
1031 1031
                 <td>
1032 1032
 					<a href="
1033 1033
                     <?php
1034 1034
 						echo esc_url(
1035 1035
 							wp_nonce_url(
1036
-								add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ),
1036
+								add_query_arg('getpaid-admin-action', 'create_missing_tables'),
1037 1037
 								'getpaid-nonce',
1038 1038
 								'getpaid-nonce'
1039 1039
 							)
1040 1040
 						);
1041 1041
 					?>
1042
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1042
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1043 1043
                 </td>
1044 1044
             </tr>
1045 1045
 			<tr>
1046
-                <td><?php esc_html_e( 'Migrate old invoices', 'invoicing' ); ?></td>
1046
+                <td><?php esc_html_e('Migrate old invoices', 'invoicing'); ?></td>
1047 1047
                 <td>
1048
-                    <small><?php esc_html_e( 'If your old invoices were not migrated after updating from Invoicing to GetPaid, you can use this tool to migrate them.', 'invoicing' ); ?></small>
1048
+                    <small><?php esc_html_e('If your old invoices were not migrated after updating from Invoicing to GetPaid, you can use this tool to migrate them.', 'invoicing'); ?></small>
1049 1049
                 </td>
1050 1050
                 <td>
1051 1051
 					<a href="
1052 1052
                     <?php
1053 1053
 						echo esc_url(
1054 1054
 							wp_nonce_url(
1055
-								add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ),
1055
+								add_query_arg('getpaid-admin-action', 'migrate_old_invoices'),
1056 1056
 								'getpaid-nonce',
1057 1057
 								'getpaid-nonce'
1058 1058
 							)
1059 1059
 						);
1060 1060
 					?>
1061
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1061
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1062 1062
                 </td>
1063 1063
             </tr>
1064 1064
 
1065 1065
 			<tr>
1066
-                <td><?php esc_html_e( 'Recalculate Discounts', 'invoicing' ); ?></td>
1066
+                <td><?php esc_html_e('Recalculate Discounts', 'invoicing'); ?></td>
1067 1067
                 <td>
1068
-                    <small><?php esc_html_e( 'Recalculate discounts for existing invoices that have discount codes but are not discounted.', 'invoicing' ); ?></small>
1068
+                    <small><?php esc_html_e('Recalculate discounts for existing invoices that have discount codes but are not discounted.', 'invoicing'); ?></small>
1069 1069
                 </td>
1070 1070
                 <td>
1071 1071
 					<a href="
1072 1072
                     <?php
1073 1073
 						echo esc_url(
1074 1074
 							wp_nonce_url(
1075
-								add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ),
1075
+								add_query_arg('getpaid-admin-action', 'recalculate_discounts'),
1076 1076
 								'getpaid-nonce',
1077 1077
 								'getpaid-nonce'
1078 1078
 							)
1079 1079
 						);
1080 1080
 					?>
1081
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1081
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1082 1082
                 </td>
1083 1083
             </tr>
1084 1084
 
1085 1085
 			<tr>
1086
-                <td><?php esc_html_e( 'Set-up Wizard', 'invoicing' ); ?></td>
1086
+                <td><?php esc_html_e('Set-up Wizard', 'invoicing'); ?></td>
1087 1087
                 <td>
1088
-                    <small><?php esc_html_e( 'Launch the quick set-up wizard.', 'invoicing' ); ?></small>
1088
+                    <small><?php esc_html_e('Launch the quick set-up wizard.', 'invoicing'); ?></small>
1089 1089
                 </td>
1090 1090
                 <td>
1091 1091
 					<a href="
1092 1092
                     <?php
1093
-						echo esc_url( admin_url( 'index.php?page=gp-setup' ) );
1093
+						echo esc_url(admin_url('index.php?page=gp-setup'));
1094 1094
 					?>
1095
-                    " class="button button-primary"><?php esc_html_e( 'Launch', 'invoicing' ); ?></a>
1095
+                    " class="button button-primary"><?php esc_html_e('Launch', 'invoicing'); ?></a>
1096 1096
                 </td>
1097 1097
             </tr>
1098 1098
 
1099
-			<?php do_action( 'wpinv_tools_row' ); ?>
1099
+			<?php do_action('wpinv_tools_row'); ?>
1100 1100
         </tbody>
1101 1101
     </table>
1102
-    <?php do_action( 'wpinv_tools_after' ); ?>
1102
+    <?php do_action('wpinv_tools_after'); ?>
1103 1103
     <?php
1104 1104
 }
1105 1105
 
1106 1106
 
1107
-function wpinv_descriptive_text_callback( $args ) {
1108
-	echo wp_kses_post( $args['desc'] );
1107
+function wpinv_descriptive_text_callback($args) {
1108
+	echo wp_kses_post($args['desc']);
1109 1109
 }
1110 1110
 
1111
-function wpinv_raw_html_callback( $args ) {
1112
-	echo wp_kses( $args['desc'], getpaid_allowed_html() );
1111
+function wpinv_raw_html_callback($args) {
1112
+	echo wp_kses($args['desc'], getpaid_allowed_html());
1113 1113
 }
1114 1114
 
1115
-function wpinv_hook_callback( $args ) {
1116
-	do_action( 'wpinv_' . $args['id'], $args );
1115
+function wpinv_hook_callback($args) {
1116
+	do_action('wpinv_' . $args['id'], $args);
1117 1117
 }
1118 1118
 
1119 1119
 function wpinv_set_settings_cap() {
1120 1120
 	return wpinv_get_capability();
1121 1121
 }
1122
-add_filter( 'option_page_capability_wpinv_settings', 'wpinv_set_settings_cap' );
1122
+add_filter('option_page_capability_wpinv_settings', 'wpinv_set_settings_cap');
1123 1123
 
1124 1124
 
1125
-function wpinv_on_update_settings( $old_value, $value, $option ) {
1126
-    $old = ! empty( $old_value['remove_data_on_unistall'] ) ? 1 : '';
1127
-    $new = ! empty( $value['remove_data_on_unistall'] ) ? 1 : '';
1125
+function wpinv_on_update_settings($old_value, $value, $option) {
1126
+    $old = !empty($old_value['remove_data_on_unistall']) ? 1 : '';
1127
+    $new = !empty($value['remove_data_on_unistall']) ? 1 : '';
1128 1128
 
1129
-    if ( $old != $new ) {
1130
-        update_option( 'wpinv_remove_data_on_invoice_unistall', $new );
1129
+    if ($old != $new) {
1130
+        update_option('wpinv_remove_data_on_invoice_unistall', $new);
1131 1131
     }
1132 1132
 }
1133
-add_action( 'update_option_wpinv_settings', 'wpinv_on_update_settings', 10, 3 );
1133
+add_action('update_option_wpinv_settings', 'wpinv_on_update_settings', 10, 3);
1134 1134
 
1135 1135
 /**
1136 1136
  * Returns the merge tags help text.
@@ -1139,16 +1139,16 @@  discard block
 block discarded – undo
1139 1139
  *
1140 1140
  * @return string
1141 1141
  */
1142
-function wpinv_get_merge_tags_help_text( $subscription = false ) {
1142
+function wpinv_get_merge_tags_help_text($subscription = false) {
1143 1143
 
1144 1144
 	$url  = $subscription ? 'https://gist.github.com/picocodes/3d213982d57c34edf7a46fd3f0e8583e' : 'https://gist.github.com/picocodes/43bdc4d4bbba844534b2722e2af0b58f';
1145 1145
 	$link = sprintf(
1146 1146
 		'<strong><a href="%s" target="_blank">%s</a></strong>',
1147 1147
 		$url,
1148
-		esc_html__( 'View available merge tags.', 'wpinv-quotes' )
1148
+		esc_html__('View available merge tags.', 'wpinv-quotes')
1149 1149
 	);
1150 1150
 
1151
-	$description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' );
1151
+	$description = esc_html__('The content of the email (Merge Tags and HTML are allowed).', 'invoicing');
1152 1152
 
1153 1153
 	return "$description $link";
1154 1154
 
Please login to merge, or discard this patch.