Passed
Push — master ( 330418...c4952f )
by Brian
05:45 queued 27s
created
includes/gateways/class-getpaid-payment-gateway.php 2 patches
Indentation   +610 added lines, -610 removed lines patch added patch discarded remove patch
@@ -13,464 +13,464 @@  discard block
 block discarded – undo
13 13
  */
14 14
 abstract class GetPaid_Payment_Gateway {
15 15
 
16
-	/**
17
-	 * Set if the place checkout button should be renamed on selection.
18
-	 *
19
-	 * @var string
20
-	 */
21
-	public $checkout_button_text;
22
-
23
-	/**
24
-	 * Boolean whether the method is enabled.
25
-	 *
26
-	 * @var bool
27
-	 */
28
-	public $enabled = true;
29
-
30
-	/**
31
-	 * Payment method id.
32
-	 *
33
-	 * @var string
34
-	 */
35
-	public $id;
36
-
37
-	/**
38
-	 * Payment method order.
39
-	 *
40
-	 * @var int
41
-	 */
42
-	public $order = 10;
43
-
44
-	/**
45
-	 * Payment method title for the frontend.
46
-	 *
47
-	 * @var string
48
-	 */
49
-	public $title;
50
-
51
-	/**
52
-	 * Payment method description for the frontend.
53
-	 *
54
-	 * @var string
55
-	 */
56
-	public $description;
57
-
58
-	/**
59
-	 * Gateway title.
60
-	 *
61
-	 * @var string
62
-	 */
63
-	public $method_title = '';
64
-
65
-	/**
66
-	 * Gateway description.
67
-	 *
68
-	 * @var string
69
-	 */
70
-	public $method_description = '';
71
-
72
-	/**
73
-	 * Countries this gateway is allowed for.
74
-	 *
75
-	 * @var array
76
-	 */
77
-	public $countries;
78
-
79
-	/**
80
-	 * Currencies this gateway is allowed for.
81
-	 *
82
-	 * @var array
83
-	 */
84
-	public $currencies;
85
-
86
-	/**
87
-	 * Currencies this gateway is not allowed for.
88
-	 *
89
-	 * @var array
90
-	 */
91
-	public $exclude_currencies;
92
-
93
-	/**
94
-	 * Maximum transaction amount, zero does not define a maximum.
95
-	 *
96
-	 * @var int
97
-	 */
98
-	public $max_amount = 0;
99
-
100
-	/**
101
-	 * Optional URL to view a transaction.
102
-	 *
103
-	 * @var string
104
-	 */
105
-	public $view_transaction_url = '';
106
-
107
-	/**
108
-	 * Optional URL to view a subscription.
109
-	 *
110
-	 * @var string
111
-	 */
112
-	public $view_subscription_url = '';
113
-
114
-	/**
115
-	 * Optional label to show for "new payment method" in the payment
116
-	 * method/token selection radio selection.
117
-	 *
118
-	 * @var string
119
-	 */
120
-	public $new_method_label = '';
121
-
122
-	/**
123
-	 * Contains a user's saved tokens for this gateway.
124
-	 *
125
-	 * @var array
126
-	 */
127
-	protected $tokens = array();
128
-
129
-	/**
130
-	 * An array of features that this gateway supports.
131
-	 *
132
-	 * @var array
133
-	 */
134
-	protected $supports = array();
135
-
136
-	/**
137
-	 * Class constructor.
138
-	 */
139
-	public function __construct() {
140
-
141
-		// Register gateway.
142
-		add_filter( 'wpinv_payment_gateways', array( $this, 'register_gateway' ) );
143
-
144
-		$this->enabled = wpinv_is_gateway_active( $this->id );
145
-
146
-		// Add support for various features.
147
-		foreach ( $this->supports as $feature ) {
148
-			add_filter( "wpinv_{$this->id}_support_{$feature}", '__return_true' );
149
-			add_filter( "getpaid_{$this->id}_support_{$feature}", '__return_true' );
150
-			add_filter( "getpaid_{$this->id}_supports_{$feature}", '__return_true' );
151
-		}
152
-
153
-		// Invoice addons.
154
-		if ( $this->supports( 'addons' ) ) {
155
-			add_action( "getpaid_process_{$this->id}_invoice_addons", array( $this, 'process_addons' ), 10, 2 );
156
-		}
157
-
158
-		// Gateway settings.
159
-		add_filter( "wpinv_gateway_settings_{$this->id}", array( $this, 'admin_settings' ) );
16
+    /**
17
+     * Set if the place checkout button should be renamed on selection.
18
+     *
19
+     * @var string
20
+     */
21
+    public $checkout_button_text;
22
+
23
+    /**
24
+     * Boolean whether the method is enabled.
25
+     *
26
+     * @var bool
27
+     */
28
+    public $enabled = true;
29
+
30
+    /**
31
+     * Payment method id.
32
+     *
33
+     * @var string
34
+     */
35
+    public $id;
36
+
37
+    /**
38
+     * Payment method order.
39
+     *
40
+     * @var int
41
+     */
42
+    public $order = 10;
43
+
44
+    /**
45
+     * Payment method title for the frontend.
46
+     *
47
+     * @var string
48
+     */
49
+    public $title;
50
+
51
+    /**
52
+     * Payment method description for the frontend.
53
+     *
54
+     * @var string
55
+     */
56
+    public $description;
57
+
58
+    /**
59
+     * Gateway title.
60
+     *
61
+     * @var string
62
+     */
63
+    public $method_title = '';
64
+
65
+    /**
66
+     * Gateway description.
67
+     *
68
+     * @var string
69
+     */
70
+    public $method_description = '';
71
+
72
+    /**
73
+     * Countries this gateway is allowed for.
74
+     *
75
+     * @var array
76
+     */
77
+    public $countries;
78
+
79
+    /**
80
+     * Currencies this gateway is allowed for.
81
+     *
82
+     * @var array
83
+     */
84
+    public $currencies;
85
+
86
+    /**
87
+     * Currencies this gateway is not allowed for.
88
+     *
89
+     * @var array
90
+     */
91
+    public $exclude_currencies;
92
+
93
+    /**
94
+     * Maximum transaction amount, zero does not define a maximum.
95
+     *
96
+     * @var int
97
+     */
98
+    public $max_amount = 0;
99
+
100
+    /**
101
+     * Optional URL to view a transaction.
102
+     *
103
+     * @var string
104
+     */
105
+    public $view_transaction_url = '';
106
+
107
+    /**
108
+     * Optional URL to view a subscription.
109
+     *
110
+     * @var string
111
+     */
112
+    public $view_subscription_url = '';
113
+
114
+    /**
115
+     * Optional label to show for "new payment method" in the payment
116
+     * method/token selection radio selection.
117
+     *
118
+     * @var string
119
+     */
120
+    public $new_method_label = '';
121
+
122
+    /**
123
+     * Contains a user's saved tokens for this gateway.
124
+     *
125
+     * @var array
126
+     */
127
+    protected $tokens = array();
128
+
129
+    /**
130
+     * An array of features that this gateway supports.
131
+     *
132
+     * @var array
133
+     */
134
+    protected $supports = array();
135
+
136
+    /**
137
+     * Class constructor.
138
+     */
139
+    public function __construct() {
140
+
141
+        // Register gateway.
142
+        add_filter( 'wpinv_payment_gateways', array( $this, 'register_gateway' ) );
143
+
144
+        $this->enabled = wpinv_is_gateway_active( $this->id );
145
+
146
+        // Add support for various features.
147
+        foreach ( $this->supports as $feature ) {
148
+            add_filter( "wpinv_{$this->id}_support_{$feature}", '__return_true' );
149
+            add_filter( "getpaid_{$this->id}_support_{$feature}", '__return_true' );
150
+            add_filter( "getpaid_{$this->id}_supports_{$feature}", '__return_true' );
151
+        }
152
+
153
+        // Invoice addons.
154
+        if ( $this->supports( 'addons' ) ) {
155
+            add_action( "getpaid_process_{$this->id}_invoice_addons", array( $this, 'process_addons' ), 10, 2 );
156
+        }
157
+
158
+        // Gateway settings.
159
+        add_filter( "wpinv_gateway_settings_{$this->id}", array( $this, 'admin_settings' ) );
160 160
 		
161 161
 
162
-		// Gateway checkout fiellds.
163
-		add_action( "wpinv_{$this->id}_cc_form", array( $this, 'payment_fields' ), 10, 2 );
164
-
165
-		// Process payment.
166
-		add_action( "getpaid_gateway_{$this->id}", array( $this, 'process_payment' ), 10, 3 );
167
-
168
-		// Change the checkout button text.
169
-		if ( ! empty( $this->checkout_button_text ) ) {
170
-			add_filter( "getpaid_gateway_{$this->id}_checkout_button_label", array( $this, 'rename_checkout_button' ) );
171
-		}
172
-
173
-		// Check if a gateway is valid for a given currency.
174
-		add_filter( "getpaid_gateway_{$this->id}_is_valid_for_currency", array( $this, 'validate_currency' ), 10, 2 );
175
-
176
-		// Generate the transaction url.
177
-		add_filter( "getpaid_gateway_{$this->id}_transaction_url", array( $this, 'filter_transaction_url' ), 10, 2 );
178
-
179
-		// Generate the subscription url.
180
-		add_filter( 'getpaid_remote_subscription_profile_url', array( $this, 'generate_subscription_url' ), 10, 2 );
181
-
182
-		// Confirm payments.
183
-		add_filter( "wpinv_payment_confirm_{$this->id}", array( $this, 'confirm_payment' ), 10, 2 );
184
-
185
-		// Verify IPNs.
186
-		add_action( "wpinv_verify_{$this->id}_ipn", array( $this, 'verify_ipn' ) );
187
-
188
-	}
189
-
190
-	/**
191
-	 * Checks if this gateway is a given gateway.
192
-	 *
193
-	 * @since 1.0.19
194
-	 * @return bool
195
-	 */
196
-	public function is( $gateway ) {
197
-		return $gateway == $this->id;
198
-	}
199
-
200
-	/**
201
-	 * Returns a users saved tokens for this gateway.
202
-	 *
203
-	 * @since 1.0.19
204
-	 * @return array
205
-	 */
206
-	public function get_tokens( $sandbox = null ) {
207
-
208
-		if ( is_user_logged_in() && $this->supports( 'tokens' ) && 0 == count( $this->tokens ) ) {
209
-			$tokens = get_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", true );
210
-
211
-			if ( is_array( $tokens ) ) {
212
-				$this->tokens = $tokens;
213
-			}
214
-
215
-		}
216
-
217
-		if ( ! is_bool( $sandbox ) ) {
218
-			return $this->tokens;
219
-		}
220
-
221
-		// Filter tokens.
222
-		$args = array( 'type' => $sandbox ? 'sandbox' : 'live' );
223
-		return wp_list_filter( $this->tokens, $args );
224
-
225
-	}
226
-
227
-	/**
228
-	 * Saves a token for this gateway.
229
-	 *
230
-	 * @since 1.0.19
231
-	 */
232
-	public function save_token( $token ) {
233
-
234
-		$tokens   = $this->get_tokens();
235
-		$tokens[] = $token;
236
-
237
-		update_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", $tokens );
238
-
239
-		$this->tokens = $tokens;
240
-
241
-	}
242
-
243
-	/**
244
-	 * Return the title for admin screens.
245
-	 *
246
-	 * @return string
247
-	 */
248
-	public function get_method_title() {
249
-		return apply_filters( 'getpaid_gateway_method_title', $this->method_title, $this );
250
-	}
251
-
252
-	/**
253
-	 * Return the description for admin screens.
254
-	 *
255
-	 * @return string
256
-	 */
257
-	public function get_method_description() {
258
-		return apply_filters( 'getpaid_gateway_method_description', $this->method_description, $this );
259
-	}
260
-
261
-	/**
262
-	 * Get the success url.
263
-	 *
264
-	 * @param WPInv_Invoice $invoice Invoice object.
265
-	 * @return string
266
-	 */
267
-	public function get_return_url( $invoice ) {
268
-
269
-		// Payment success url
270
-		$return_url = add_query_arg(
271
-			array(
272
-				'payment-confirm' => $this->id,
273
-				'invoice_key'     => $invoice->get_key(),
274
-				'utm_nooverride'  => 1
275
-			),
276
-			wpinv_get_success_page_uri()
277
-		);
278
-
279
-		return apply_filters( 'getpaid_gateway_success_url', $return_url, $invoice, $this );
280
-	}
281
-
282
-	/**
283
-	 * Confirms payments when rendering the success page.
284
-	 *
285
-	 * @param string $content Success page content.
286
-	 * @return string
287
-	 */
288
-	public function confirm_payment( $content ) {
289
-
290
-		// Retrieve the invoice.
291
-		$invoice_id = getpaid_get_current_invoice_id();
292
-		$invoice    = wpinv_get_invoice( $invoice_id );
293
-
294
-		// Ensure that it exists and that it is pending payment.
295
-		if ( empty( $invoice_id ) || ! $invoice->needs_payment() ) {
296
-			return $content;
297
-		}
298
-
299
-		// Can the user view this invoice??
300
-		if ( ! wpinv_user_can_view_invoice( $invoice ) ) {
301
-			return $content;
302
-		}
303
-
304
-		// Show payment processing indicator.
305
-		return wpinv_get_template_html( 'wpinv-payment-processing.php', compact( 'invoice' ) );
306
-	}
307
-
308
-	/**
309
-	 * Processes ipns and marks payments as complete.
310
-	 *
311
-	 * @return void
312
-	 */
313
-	public function verify_ipn() {}
314
-
315
-	/**
316
-	 * Processes invoice addons.
317
-	 *
318
-	 * @param WPInv_Invoice $invoice
319
-	 * @param GetPaid_Form_Item[] $items
320
-	 * @return WPInv_Invoice
321
-	 */
322
-	public function process_addons( $invoice, $items ) {
323
-
324
-	}
325
-
326
-	/**
327
-	 * Get a link to the transaction on the 3rd party gateway site (if applicable).
328
-	 *
329
-	 * @param string $transaction_url transaction url.
330
-	 * @param WPInv_Invoice $invoice Invoice object.
331
-	 * @return string transaction URL, or empty string.
332
-	 */
333
-	public function filter_transaction_url( $transaction_url, $invoice ) {
334
-
335
-		$transaction_id  = $invoice->get_transaction_id();
336
-
337
-		if ( ! empty( $this->view_transaction_url ) && ! empty( $transaction_id ) ) {
338
-			$transaction_url = sprintf( $this->view_transaction_url, $transaction_id );
339
-			$replace         = $this->is_sandbox( $invoice ) ? 'sandbox' : '';
340
-			$transaction_url = str_replace( '{sandbox}', $replace, $transaction_url );
341
-		}
342
-
343
-		return $transaction_url;
344
-	}
345
-
346
-	/**
347
-	 * Get a link to the subscription on the 3rd party gateway site (if applicable).
348
-	 *
349
-	 * @param string $subscription_url transaction url.
350
-	 * @param WPInv_Subscription $subscription Subscription objectt.
351
-	 * @return string subscription URL, or empty string.
352
-	 */
353
-	public function generate_subscription_url( $subscription_url, $subscription ) {
354
-
355
-		$profile_id      = $subscription->get_profile_id();
356
-
357
-		if ( $this->id == $subscription->get_gateway() && ! empty( $this->view_subscription_url ) && ! empty( $profile_id ) ) {
358
-
359
-			$subscription_url = sprintf( $this->view_subscription_url, $profile_id );
360
-			$replace          = $this->is_sandbox( $subscription->get_parent_invoice() ) ? 'sandbox' : '';
361
-			$subscription_url = str_replace( '{sandbox}', $replace, $subscription_url );
362
-
363
-		}
364
-
365
-		return $subscription_url;
366
-	}
367
-
368
-	/**
369
-	 * Check if the gateway is available for use.
370
-	 *
371
-	 * @return bool
372
-	 */
373
-	public function is_available() {
374
-		return ! empty( $this->enabled );
375
-	}
376
-
377
-	/**
378
-	 * Return the gateway's title.
379
-	 *
380
-	 * @return string
381
-	 */
382
-	public function get_title() {
383
-		return apply_filters( 'getpaid_gateway_title', $this->title, $this );
384
-	}
385
-
386
-	/**
387
-	 * Return the gateway's description.
388
-	 *
389
-	 * @return string
390
-	 */
391
-	public function get_description() {
392
-		return apply_filters( 'getpaid_gateway_description', $this->description, $this );
393
-	}
394
-
395
-	/**
396
-	 * Process Payment.
397
-	 *
398
-	 *
399
-	 * @param WPInv_Invoice $invoice Invoice.
400
-	 * @param array $submission_data Posted checkout fields.
401
-	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
402
-	 * @return void
403
-	 */
404
-	public function process_payment( $invoice, $submission_data, $submission ) {
405
-		// Process the payment then either redirect to the success page or the gateway.
406
-		do_action( 'getpaid_process_invoice_payment_' . $this->id, $invoice, $submission_data, $submission );
407
-	}
408
-
409
-	/**
410
-	 * Process refund.
411
-	 *
412
-	 * If the gateway declares 'refunds' support, this will allow it to refund.
413
-	 * a passed in amount.
414
-	 *
415
-	 * @param WPInv_Invoice $invoice Invoice.
416
-	 * @param  float  $amount Refund amount.
417
-	 * @param  string $reason Refund reason.
418
-	 * @return WP_Error|bool True or false based on success, or a WP_Error object.
419
-	 */
420
-	public function process_refund( $invoice, $amount = null, $reason = '' ) {
421
-		return apply_filters( 'getpaid_process_invoice_refund_' . $this->id, false, $invoice, $amount, $reason );
422
-	}
423
-
424
-	/**
425
-	 * Displays the payment fields, credit cards etc.
426
-	 * 
427
-	 * @param int $invoice_id 0 or invoice id.
428
-	 * @param GetPaid_Payment_Form $form Current payment form.
429
-	 */
430
-	public function payment_fields( $invoice_id, $form ) {
431
-		do_action( 'getpaid_getpaid_gateway_payment_fields_' . $this->id, $invoice_id, $form );
432
-	}
433
-
434
-	/**
435
-	 * Filters the gateway settings.
436
-	 * 
437
-	 * @param array $admin_settings
438
-	 */
439
-	public function admin_settings( $admin_settings ) {
440
-		return $admin_settings;
441
-	}
442
-
443
-	/**
444
-	 * Retrieves the value of a gateway setting.
445
-	 * 
446
-	 * @param string $option
447
-	 */
448
-	public function get_option( $option, $default = false ) {
449
-		return wpinv_get_option( $this->id . '_' . $option, $default );
450
-	}
451
-
452
-	/**
453
-	 * Check if a gateway supports a given feature.
454
-	 *
455
-	 * Gateways should override this to declare support (or lack of support) for a feature.
456
-	 * For backward compatibility, gateways support 'products' by default, but nothing else.
457
-	 *
458
-	 * @param string $feature string The name of a feature to test support for.
459
-	 * @return bool True if the gateway supports the feature, false otherwise.
460
-	 * @since 1.0.19
461
-	 */
462
-	public function supports( $feature ) {
463
-		return getpaid_payment_gateway_supports( $this->id, $feature );
464
-	}
465
-
466
-	/**
467
-	 * Returns the credit card form html.
468
-	 * 
469
-	 * @param bool $save whether or not to display the save button.
470
-	 */
162
+        // Gateway checkout fiellds.
163
+        add_action( "wpinv_{$this->id}_cc_form", array( $this, 'payment_fields' ), 10, 2 );
164
+
165
+        // Process payment.
166
+        add_action( "getpaid_gateway_{$this->id}", array( $this, 'process_payment' ), 10, 3 );
167
+
168
+        // Change the checkout button text.
169
+        if ( ! empty( $this->checkout_button_text ) ) {
170
+            add_filter( "getpaid_gateway_{$this->id}_checkout_button_label", array( $this, 'rename_checkout_button' ) );
171
+        }
172
+
173
+        // Check if a gateway is valid for a given currency.
174
+        add_filter( "getpaid_gateway_{$this->id}_is_valid_for_currency", array( $this, 'validate_currency' ), 10, 2 );
175
+
176
+        // Generate the transaction url.
177
+        add_filter( "getpaid_gateway_{$this->id}_transaction_url", array( $this, 'filter_transaction_url' ), 10, 2 );
178
+
179
+        // Generate the subscription url.
180
+        add_filter( 'getpaid_remote_subscription_profile_url', array( $this, 'generate_subscription_url' ), 10, 2 );
181
+
182
+        // Confirm payments.
183
+        add_filter( "wpinv_payment_confirm_{$this->id}", array( $this, 'confirm_payment' ), 10, 2 );
184
+
185
+        // Verify IPNs.
186
+        add_action( "wpinv_verify_{$this->id}_ipn", array( $this, 'verify_ipn' ) );
187
+
188
+    }
189
+
190
+    /**
191
+     * Checks if this gateway is a given gateway.
192
+     *
193
+     * @since 1.0.19
194
+     * @return bool
195
+     */
196
+    public function is( $gateway ) {
197
+        return $gateway == $this->id;
198
+    }
199
+
200
+    /**
201
+     * Returns a users saved tokens for this gateway.
202
+     *
203
+     * @since 1.0.19
204
+     * @return array
205
+     */
206
+    public function get_tokens( $sandbox = null ) {
207
+
208
+        if ( is_user_logged_in() && $this->supports( 'tokens' ) && 0 == count( $this->tokens ) ) {
209
+            $tokens = get_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", true );
210
+
211
+            if ( is_array( $tokens ) ) {
212
+                $this->tokens = $tokens;
213
+            }
214
+
215
+        }
216
+
217
+        if ( ! is_bool( $sandbox ) ) {
218
+            return $this->tokens;
219
+        }
220
+
221
+        // Filter tokens.
222
+        $args = array( 'type' => $sandbox ? 'sandbox' : 'live' );
223
+        return wp_list_filter( $this->tokens, $args );
224
+
225
+    }
226
+
227
+    /**
228
+     * Saves a token for this gateway.
229
+     *
230
+     * @since 1.0.19
231
+     */
232
+    public function save_token( $token ) {
233
+
234
+        $tokens   = $this->get_tokens();
235
+        $tokens[] = $token;
236
+
237
+        update_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", $tokens );
238
+
239
+        $this->tokens = $tokens;
240
+
241
+    }
242
+
243
+    /**
244
+     * Return the title for admin screens.
245
+     *
246
+     * @return string
247
+     */
248
+    public function get_method_title() {
249
+        return apply_filters( 'getpaid_gateway_method_title', $this->method_title, $this );
250
+    }
251
+
252
+    /**
253
+     * Return the description for admin screens.
254
+     *
255
+     * @return string
256
+     */
257
+    public function get_method_description() {
258
+        return apply_filters( 'getpaid_gateway_method_description', $this->method_description, $this );
259
+    }
260
+
261
+    /**
262
+     * Get the success url.
263
+     *
264
+     * @param WPInv_Invoice $invoice Invoice object.
265
+     * @return string
266
+     */
267
+    public function get_return_url( $invoice ) {
268
+
269
+        // Payment success url
270
+        $return_url = add_query_arg(
271
+            array(
272
+                'payment-confirm' => $this->id,
273
+                'invoice_key'     => $invoice->get_key(),
274
+                'utm_nooverride'  => 1
275
+            ),
276
+            wpinv_get_success_page_uri()
277
+        );
278
+
279
+        return apply_filters( 'getpaid_gateway_success_url', $return_url, $invoice, $this );
280
+    }
281
+
282
+    /**
283
+     * Confirms payments when rendering the success page.
284
+     *
285
+     * @param string $content Success page content.
286
+     * @return string
287
+     */
288
+    public function confirm_payment( $content ) {
289
+
290
+        // Retrieve the invoice.
291
+        $invoice_id = getpaid_get_current_invoice_id();
292
+        $invoice    = wpinv_get_invoice( $invoice_id );
293
+
294
+        // Ensure that it exists and that it is pending payment.
295
+        if ( empty( $invoice_id ) || ! $invoice->needs_payment() ) {
296
+            return $content;
297
+        }
298
+
299
+        // Can the user view this invoice??
300
+        if ( ! wpinv_user_can_view_invoice( $invoice ) ) {
301
+            return $content;
302
+        }
303
+
304
+        // Show payment processing indicator.
305
+        return wpinv_get_template_html( 'wpinv-payment-processing.php', compact( 'invoice' ) );
306
+    }
307
+
308
+    /**
309
+     * Processes ipns and marks payments as complete.
310
+     *
311
+     * @return void
312
+     */
313
+    public function verify_ipn() {}
314
+
315
+    /**
316
+     * Processes invoice addons.
317
+     *
318
+     * @param WPInv_Invoice $invoice
319
+     * @param GetPaid_Form_Item[] $items
320
+     * @return WPInv_Invoice
321
+     */
322
+    public function process_addons( $invoice, $items ) {
323
+
324
+    }
325
+
326
+    /**
327
+     * Get a link to the transaction on the 3rd party gateway site (if applicable).
328
+     *
329
+     * @param string $transaction_url transaction url.
330
+     * @param WPInv_Invoice $invoice Invoice object.
331
+     * @return string transaction URL, or empty string.
332
+     */
333
+    public function filter_transaction_url( $transaction_url, $invoice ) {
334
+
335
+        $transaction_id  = $invoice->get_transaction_id();
336
+
337
+        if ( ! empty( $this->view_transaction_url ) && ! empty( $transaction_id ) ) {
338
+            $transaction_url = sprintf( $this->view_transaction_url, $transaction_id );
339
+            $replace         = $this->is_sandbox( $invoice ) ? 'sandbox' : '';
340
+            $transaction_url = str_replace( '{sandbox}', $replace, $transaction_url );
341
+        }
342
+
343
+        return $transaction_url;
344
+    }
345
+
346
+    /**
347
+     * Get a link to the subscription on the 3rd party gateway site (if applicable).
348
+     *
349
+     * @param string $subscription_url transaction url.
350
+     * @param WPInv_Subscription $subscription Subscription objectt.
351
+     * @return string subscription URL, or empty string.
352
+     */
353
+    public function generate_subscription_url( $subscription_url, $subscription ) {
354
+
355
+        $profile_id      = $subscription->get_profile_id();
356
+
357
+        if ( $this->id == $subscription->get_gateway() && ! empty( $this->view_subscription_url ) && ! empty( $profile_id ) ) {
358
+
359
+            $subscription_url = sprintf( $this->view_subscription_url, $profile_id );
360
+            $replace          = $this->is_sandbox( $subscription->get_parent_invoice() ) ? 'sandbox' : '';
361
+            $subscription_url = str_replace( '{sandbox}', $replace, $subscription_url );
362
+
363
+        }
364
+
365
+        return $subscription_url;
366
+    }
367
+
368
+    /**
369
+     * Check if the gateway is available for use.
370
+     *
371
+     * @return bool
372
+     */
373
+    public function is_available() {
374
+        return ! empty( $this->enabled );
375
+    }
376
+
377
+    /**
378
+     * Return the gateway's title.
379
+     *
380
+     * @return string
381
+     */
382
+    public function get_title() {
383
+        return apply_filters( 'getpaid_gateway_title', $this->title, $this );
384
+    }
385
+
386
+    /**
387
+     * Return the gateway's description.
388
+     *
389
+     * @return string
390
+     */
391
+    public function get_description() {
392
+        return apply_filters( 'getpaid_gateway_description', $this->description, $this );
393
+    }
394
+
395
+    /**
396
+     * Process Payment.
397
+     *
398
+     *
399
+     * @param WPInv_Invoice $invoice Invoice.
400
+     * @param array $submission_data Posted checkout fields.
401
+     * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
402
+     * @return void
403
+     */
404
+    public function process_payment( $invoice, $submission_data, $submission ) {
405
+        // Process the payment then either redirect to the success page or the gateway.
406
+        do_action( 'getpaid_process_invoice_payment_' . $this->id, $invoice, $submission_data, $submission );
407
+    }
408
+
409
+    /**
410
+     * Process refund.
411
+     *
412
+     * If the gateway declares 'refunds' support, this will allow it to refund.
413
+     * a passed in amount.
414
+     *
415
+     * @param WPInv_Invoice $invoice Invoice.
416
+     * @param  float  $amount Refund amount.
417
+     * @param  string $reason Refund reason.
418
+     * @return WP_Error|bool True or false based on success, or a WP_Error object.
419
+     */
420
+    public function process_refund( $invoice, $amount = null, $reason = '' ) {
421
+        return apply_filters( 'getpaid_process_invoice_refund_' . $this->id, false, $invoice, $amount, $reason );
422
+    }
423
+
424
+    /**
425
+     * Displays the payment fields, credit cards etc.
426
+     * 
427
+     * @param int $invoice_id 0 or invoice id.
428
+     * @param GetPaid_Payment_Form $form Current payment form.
429
+     */
430
+    public function payment_fields( $invoice_id, $form ) {
431
+        do_action( 'getpaid_getpaid_gateway_payment_fields_' . $this->id, $invoice_id, $form );
432
+    }
433
+
434
+    /**
435
+     * Filters the gateway settings.
436
+     * 
437
+     * @param array $admin_settings
438
+     */
439
+    public function admin_settings( $admin_settings ) {
440
+        return $admin_settings;
441
+    }
442
+
443
+    /**
444
+     * Retrieves the value of a gateway setting.
445
+     * 
446
+     * @param string $option
447
+     */
448
+    public function get_option( $option, $default = false ) {
449
+        return wpinv_get_option( $this->id . '_' . $option, $default );
450
+    }
451
+
452
+    /**
453
+     * Check if a gateway supports a given feature.
454
+     *
455
+     * Gateways should override this to declare support (or lack of support) for a feature.
456
+     * For backward compatibility, gateways support 'products' by default, but nothing else.
457
+     *
458
+     * @param string $feature string The name of a feature to test support for.
459
+     * @return bool True if the gateway supports the feature, false otherwise.
460
+     * @since 1.0.19
461
+     */
462
+    public function supports( $feature ) {
463
+        return getpaid_payment_gateway_supports( $this->id, $feature );
464
+    }
465
+
466
+    /**
467
+     * Returns the credit card form html.
468
+     * 
469
+     * @param bool $save whether or not to display the save button.
470
+     */
471 471
     public function get_cc_form( $save = false ) {
472 472
 
473
-		ob_start();
473
+        ob_start();
474 474
 
475 475
         $id_prefix = esc_attr( uniqid( $this->id ) );
476 476
 
@@ -565,11 +565,11 @@  discard block
 block discarded – undo
565 565
                                         'name'              => $this->id . '[cc_cvv2]',
566 566
                                         'id'                => "$id_prefix-cc-cvv2",
567 567
                                         'label'             => __( 'CCV', 'invoicing' ),
568
-										'label_type'        => 'vertical',
569
-										'class'             => 'form-control-sm',
570
-										'extra_attributes'  => array(
571
-											'autocomplete'  => "cc-csc",
572
-										),
568
+                                        'label_type'        => 'vertical',
569
+                                        'class'             => 'form-control-sm',
570
+                                        'extra_attributes'  => array(
571
+                                            'autocomplete'  => "cc-csc",
572
+                                        ),
573 573
                                     )
574 574
                                 );
575 575
                             ?>
@@ -579,192 +579,192 @@  discard block
 block discarded – undo
579 579
 					
580 580
 					<?php
581 581
 
582
-						if ( $save ) {
583
-							echo $this->save_payment_method_checkbox();
584
-						}
582
+                        if ( $save ) {
583
+                            echo $this->save_payment_method_checkbox();
584
+                        }
585 585
 
586
-					?>
586
+                    ?>
587 587
                 </div>
588 588
 
589 589
             </div>
590 590
 		<?php
591 591
 		
592
-		return ob_get_clean();
592
+        return ob_get_clean();
593
+
594
+    }
593 595
 
596
+    /**
597
+     * Displays a new payment method entry form.
598
+     *
599
+     * @since 1.0.19
600
+     */
601
+    public function new_payment_method_entry( $form ) {
602
+        echo "<div class='getpaid-new-payment-method-form' style='display:none;'>$form</div>";
594 603
     }
595 604
 
596
-	/**
597
-	 * Displays a new payment method entry form.
598
-	 *
599
-	 * @since 1.0.19
600
-	 */
601
-	public function new_payment_method_entry( $form ) {
602
-		echo "<div class='getpaid-new-payment-method-form' style='display:none;'>$form</div>";
603
-	}
604
-
605
-	/**
606
-	 * Grab and display our saved payment methods.
607
-	 *
608
-	 * @since 1.0.19
609
-	 */
610
-	public function saved_payment_methods() {
611
-		$html = '<ul class="getpaid-saved-payment-methods list-unstyled m-0 mt-2" data-count="' . esc_attr( count( $this->get_tokens( $this->is_sandbox() ) ) ) . '">';
612
-
613
-		foreach ( $this->get_tokens( $this->is_sandbox() ) as $token ) {
614
-			$html .= $this->get_saved_payment_method_option_html( $token );
615
-		}
616
-
617
-		$html .= $this->get_new_payment_method_option_html();
618
-		$html .= '</ul>';
619
-
620
-		echo apply_filters( 'getpaid_payment_gateway_form_saved_payment_methods_html', $html, $this );
621
-	}
622
-
623
-	/**
624
-	 * Gets saved payment method HTML from a token.
625
-	 *
626
-	 * @since 1.0.19
627
-	 * @param  array $token Payment Token.
628
-	 * @return string Generated payment method HTML
629
-	 */
630
-	public function get_saved_payment_method_option_html( $token ) {
631
-
632
-		return sprintf(
633
-			'<li class="getpaid-payment-method form-group">
605
+    /**
606
+     * Grab and display our saved payment methods.
607
+     *
608
+     * @since 1.0.19
609
+     */
610
+    public function saved_payment_methods() {
611
+        $html = '<ul class="getpaid-saved-payment-methods list-unstyled m-0 mt-2" data-count="' . esc_attr( count( $this->get_tokens( $this->is_sandbox() ) ) ) . '">';
612
+
613
+        foreach ( $this->get_tokens( $this->is_sandbox() ) as $token ) {
614
+            $html .= $this->get_saved_payment_method_option_html( $token );
615
+        }
616
+
617
+        $html .= $this->get_new_payment_method_option_html();
618
+        $html .= '</ul>';
619
+
620
+        echo apply_filters( 'getpaid_payment_gateway_form_saved_payment_methods_html', $html, $this );
621
+    }
622
+
623
+    /**
624
+     * Gets saved payment method HTML from a token.
625
+     *
626
+     * @since 1.0.19
627
+     * @param  array $token Payment Token.
628
+     * @return string Generated payment method HTML
629
+     */
630
+    public function get_saved_payment_method_option_html( $token ) {
631
+
632
+        return sprintf(
633
+            '<li class="getpaid-payment-method form-group">
634 634
 				<label>
635 635
 					<input name="getpaid-%1$s-payment-method" type="radio" value="%2$s" data-currency="%5$s" style="width:auto;" class="getpaid-saved-payment-method-token-input" %4$s />
636 636
 					<span>%3$s</span>
637 637
 				</label>
638 638
 			</li>',
639
-			esc_attr( $this->id ),
640
-			esc_attr( $token['id'] ),
641
-			esc_html( $token['name'] ),
642
-			checked( empty( $token['default'] ), false, false ),
643
-			empty( $token['currency'] ) ? 'none' : esc_attr( $token['currency'] )
644
-		);
645
-
646
-	}
647
-
648
-	/**
649
-	 * Displays a radio button for entering a new payment method (new CC details) instead of using a saved method.
650
-	 *
651
-	 * @since 1.0.19
652
-	 */
653
-	public function get_new_payment_method_option_html() {
654
-
655
-		$label = apply_filters( 'getpaid_new_payment_method_label', $this->new_method_label ? $this->new_method_label : __( 'Use a new payment method', 'invoicing' ), $this );
656
-
657
-		return sprintf(
658
-			'<li class="getpaid-new-payment-method">
639
+            esc_attr( $this->id ),
640
+            esc_attr( $token['id'] ),
641
+            esc_html( $token['name'] ),
642
+            checked( empty( $token['default'] ), false, false ),
643
+            empty( $token['currency'] ) ? 'none' : esc_attr( $token['currency'] )
644
+        );
645
+
646
+    }
647
+
648
+    /**
649
+     * Displays a radio button for entering a new payment method (new CC details) instead of using a saved method.
650
+     *
651
+     * @since 1.0.19
652
+     */
653
+    public function get_new_payment_method_option_html() {
654
+
655
+        $label = apply_filters( 'getpaid_new_payment_method_label', $this->new_method_label ? $this->new_method_label : __( 'Use a new payment method', 'invoicing' ), $this );
656
+
657
+        return sprintf(
658
+            '<li class="getpaid-new-payment-method">
659 659
 				<label>
660 660
 					<input name="getpaid-%1$s-payment-method" type="radio" data-currency="none" value="new" style="width:auto;" />
661 661
 					<span>%2$s</span>
662 662
 				</label>
663 663
 			</li>',
664
-			esc_attr( $this->id ),
665
-			esc_html( $label )
666
-		);
667
-
668
-	}
669
-
670
-	/**
671
-	 * Outputs a checkbox for saving a new payment method to the database.
672
-	 *
673
-	 * @since 1.0.19
674
-	 */
675
-	public function save_payment_method_checkbox() {
676
-
677
-		return aui()->input(
678
-			array(
679
-				'type'       => 'checkbox',
680
-				'name'       => esc_attr( "getpaid-$this->id-new-payment-method" ),
681
-				'id'         => esc_attr( uniqid( $this->id ) ),
682
-				'required'   => false,
683
-				'label'      => esc_html__( 'Save payment method', 'invoicing' ),
684
-				'value'      => 'true',
685
-				'checked'    => true,
686
-				'wrap_class' => 'getpaid-save-payment-method pt-1 pb-1',
687
-			)
688
-		);
689
-
690
-	}
691
-
692
-	/**
693
-	 * Registers the gateway.
694
-	 *
695
-	 * @return array
696
-	 */
697
-	public function register_gateway( $gateways ) {
698
-
699
-		$gateways[ $this->id ] = array(
700
-
701
-			'admin_label'    => $this->method_title,
664
+            esc_attr( $this->id ),
665
+            esc_html( $label )
666
+        );
667
+
668
+    }
669
+
670
+    /**
671
+     * Outputs a checkbox for saving a new payment method to the database.
672
+     *
673
+     * @since 1.0.19
674
+     */
675
+    public function save_payment_method_checkbox() {
676
+
677
+        return aui()->input(
678
+            array(
679
+                'type'       => 'checkbox',
680
+                'name'       => esc_attr( "getpaid-$this->id-new-payment-method" ),
681
+                'id'         => esc_attr( uniqid( $this->id ) ),
682
+                'required'   => false,
683
+                'label'      => esc_html__( 'Save payment method', 'invoicing' ),
684
+                'value'      => 'true',
685
+                'checked'    => true,
686
+                'wrap_class' => 'getpaid-save-payment-method pt-1 pb-1',
687
+            )
688
+        );
689
+
690
+    }
691
+
692
+    /**
693
+     * Registers the gateway.
694
+     *
695
+     * @return array
696
+     */
697
+    public function register_gateway( $gateways ) {
698
+
699
+        $gateways[ $this->id ] = array(
700
+
701
+            'admin_label'    => $this->method_title,
702 702
             'checkout_label' => $this->title,
703
-			'ordering'       => $this->order,
703
+            'ordering'       => $this->order,
704 704
 
705
-		);
705
+        );
706 706
 
707
-		return $gateways;
707
+        return $gateways;
708 708
 
709
-	}
709
+    }
710 710
 
711
-	/**
712
-	 * Checks whether or not this is a sandbox request.
713
-	 *
714
-	 * @param  WPInv_Invoice|null $invoice Invoice object or null.
715
-	 * @return bool
716
-	 */
717
-	public function is_sandbox( $invoice = null ) {
711
+    /**
712
+     * Checks whether or not this is a sandbox request.
713
+     *
714
+     * @param  WPInv_Invoice|null $invoice Invoice object or null.
715
+     * @return bool
716
+     */
717
+    public function is_sandbox( $invoice = null ) {
718 718
 
719
-		if ( ! empty( $invoice ) && ! $invoice->needs_payment() ) {
720
-			return $invoice->get_mode() == 'test';
721
-		}
719
+        if ( ! empty( $invoice ) && ! $invoice->needs_payment() ) {
720
+            return $invoice->get_mode() == 'test';
721
+        }
722 722
 
723
-		return wpinv_is_test_mode( $this->id );
723
+        return wpinv_is_test_mode( $this->id );
724 724
 
725
-	}
725
+    }
726 726
 
727
-	/**
728
-	 * Renames the checkout button
729
-	 *
730
-	 * @return string
731
-	 */
732
-	public function rename_checkout_button() {
733
-		return $this->checkout_button_text;
734
-	}
727
+    /**
728
+     * Renames the checkout button
729
+     *
730
+     * @return string
731
+     */
732
+    public function rename_checkout_button() {
733
+        return $this->checkout_button_text;
734
+    }
735 735
 
736
-	/**
737
-	 * Validate gateway currency
738
-	 *
739
-	 * @return bool
740
-	 */
741
-	public function validate_currency( $validation, $currency ) {
736
+    /**
737
+     * Validate gateway currency
738
+     *
739
+     * @return bool
740
+     */
741
+    public function validate_currency( $validation, $currency ) {
742 742
 
743
-		// Required currencies.
744
-		if ( ! empty( $this->currencies ) && ! in_array( $currency, $this->currencies ) ) {
745
-			return false;
746
-		}
743
+        // Required currencies.
744
+        if ( ! empty( $this->currencies ) && ! in_array( $currency, $this->currencies ) ) {
745
+            return false;
746
+        }
747 747
 
748
-		// Excluded currencies.
749
-		if ( ! empty( $this->exclude_currencies ) && in_array( $currency, $this->exclude_currencies ) ) {
750
-			return false;
751
-		}
748
+        // Excluded currencies.
749
+        if ( ! empty( $this->exclude_currencies ) && in_array( $currency, $this->exclude_currencies ) ) {
750
+            return false;
751
+        }
752 752
 
753
-		return $validation;
754
-	}
753
+        return $validation;
754
+    }
755 755
 
756
-	/**
757
-	 * Displays an error
758
-	 *
759
-	 */
760
-	public function show_error( $code, $message, $type ) {
756
+    /**
757
+     * Displays an error
758
+     *
759
+     */
760
+    public function show_error( $code, $message, $type ) {
761 761
 
762
-		if ( is_admin() ) {
763
-			getpaid_admin()->{"show_$type"}( $message );
764
-		}
762
+        if ( is_admin() ) {
763
+            getpaid_admin()->{"show_$type"}( $message );
764
+        }
765 765
 
766
-		wpinv_set_error( $code, $message, $type );
766
+        wpinv_set_error( $code, $message, $type );
767 767
 
768
-	}
768
+    }
769 769
 
770 770
 }
Please login to merge, or discard this patch.
Spacing   +127 added lines, -127 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
  * Abstaract Payment Gateway class.
@@ -139,51 +139,51 @@  discard block
 block discarded – undo
139 139
 	public function __construct() {
140 140
 
141 141
 		// Register gateway.
142
-		add_filter( 'wpinv_payment_gateways', array( $this, 'register_gateway' ) );
142
+		add_filter('wpinv_payment_gateways', array($this, 'register_gateway'));
143 143
 
144
-		$this->enabled = wpinv_is_gateway_active( $this->id );
144
+		$this->enabled = wpinv_is_gateway_active($this->id);
145 145
 
146 146
 		// Add support for various features.
147
-		foreach ( $this->supports as $feature ) {
148
-			add_filter( "wpinv_{$this->id}_support_{$feature}", '__return_true' );
149
-			add_filter( "getpaid_{$this->id}_support_{$feature}", '__return_true' );
150
-			add_filter( "getpaid_{$this->id}_supports_{$feature}", '__return_true' );
147
+		foreach ($this->supports as $feature) {
148
+			add_filter("wpinv_{$this->id}_support_{$feature}", '__return_true');
149
+			add_filter("getpaid_{$this->id}_support_{$feature}", '__return_true');
150
+			add_filter("getpaid_{$this->id}_supports_{$feature}", '__return_true');
151 151
 		}
152 152
 
153 153
 		// Invoice addons.
154
-		if ( $this->supports( 'addons' ) ) {
155
-			add_action( "getpaid_process_{$this->id}_invoice_addons", array( $this, 'process_addons' ), 10, 2 );
154
+		if ($this->supports('addons')) {
155
+			add_action("getpaid_process_{$this->id}_invoice_addons", array($this, 'process_addons'), 10, 2);
156 156
 		}
157 157
 
158 158
 		// Gateway settings.
159
-		add_filter( "wpinv_gateway_settings_{$this->id}", array( $this, 'admin_settings' ) );
159
+		add_filter("wpinv_gateway_settings_{$this->id}", array($this, 'admin_settings'));
160 160
 		
161 161
 
162 162
 		// Gateway checkout fiellds.
163
-		add_action( "wpinv_{$this->id}_cc_form", array( $this, 'payment_fields' ), 10, 2 );
163
+		add_action("wpinv_{$this->id}_cc_form", array($this, 'payment_fields'), 10, 2);
164 164
 
165 165
 		// Process payment.
166
-		add_action( "getpaid_gateway_{$this->id}", array( $this, 'process_payment' ), 10, 3 );
166
+		add_action("getpaid_gateway_{$this->id}", array($this, 'process_payment'), 10, 3);
167 167
 
168 168
 		// Change the checkout button text.
169
-		if ( ! empty( $this->checkout_button_text ) ) {
170
-			add_filter( "getpaid_gateway_{$this->id}_checkout_button_label", array( $this, 'rename_checkout_button' ) );
169
+		if (!empty($this->checkout_button_text)) {
170
+			add_filter("getpaid_gateway_{$this->id}_checkout_button_label", array($this, 'rename_checkout_button'));
171 171
 		}
172 172
 
173 173
 		// Check if a gateway is valid for a given currency.
174
-		add_filter( "getpaid_gateway_{$this->id}_is_valid_for_currency", array( $this, 'validate_currency' ), 10, 2 );
174
+		add_filter("getpaid_gateway_{$this->id}_is_valid_for_currency", array($this, 'validate_currency'), 10, 2);
175 175
 
176 176
 		// Generate the transaction url.
177
-		add_filter( "getpaid_gateway_{$this->id}_transaction_url", array( $this, 'filter_transaction_url' ), 10, 2 );
177
+		add_filter("getpaid_gateway_{$this->id}_transaction_url", array($this, 'filter_transaction_url'), 10, 2);
178 178
 
179 179
 		// Generate the subscription url.
180
-		add_filter( 'getpaid_remote_subscription_profile_url', array( $this, 'generate_subscription_url' ), 10, 2 );
180
+		add_filter('getpaid_remote_subscription_profile_url', array($this, 'generate_subscription_url'), 10, 2);
181 181
 
182 182
 		// Confirm payments.
183
-		add_filter( "wpinv_payment_confirm_{$this->id}", array( $this, 'confirm_payment' ), 10, 2 );
183
+		add_filter("wpinv_payment_confirm_{$this->id}", array($this, 'confirm_payment'), 10, 2);
184 184
 
185 185
 		// Verify IPNs.
186
-		add_action( "wpinv_verify_{$this->id}_ipn", array( $this, 'verify_ipn' ) );
186
+		add_action("wpinv_verify_{$this->id}_ipn", array($this, 'verify_ipn'));
187 187
 
188 188
 	}
189 189
 
@@ -193,7 +193,7 @@  discard block
 block discarded – undo
193 193
 	 * @since 1.0.19
194 194
 	 * @return bool
195 195
 	 */
196
-	public function is( $gateway ) {
196
+	public function is($gateway) {
197 197
 		return $gateway == $this->id;
198 198
 	}
199 199
 
@@ -203,24 +203,24 @@  discard block
 block discarded – undo
203 203
 	 * @since 1.0.19
204 204
 	 * @return array
205 205
 	 */
206
-	public function get_tokens( $sandbox = null ) {
206
+	public function get_tokens($sandbox = null) {
207 207
 
208
-		if ( is_user_logged_in() && $this->supports( 'tokens' ) && 0 == count( $this->tokens ) ) {
209
-			$tokens = get_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", true );
208
+		if (is_user_logged_in() && $this->supports('tokens') && 0 == count($this->tokens)) {
209
+			$tokens = get_user_meta(get_current_user_id(), "getpaid_{$this->id}_tokens", true);
210 210
 
211
-			if ( is_array( $tokens ) ) {
211
+			if (is_array($tokens)) {
212 212
 				$this->tokens = $tokens;
213 213
 			}
214 214
 
215 215
 		}
216 216
 
217
-		if ( ! is_bool( $sandbox ) ) {
217
+		if (!is_bool($sandbox)) {
218 218
 			return $this->tokens;
219 219
 		}
220 220
 
221 221
 		// Filter tokens.
222
-		$args = array( 'type' => $sandbox ? 'sandbox' : 'live' );
223
-		return wp_list_filter( $this->tokens, $args );
222
+		$args = array('type' => $sandbox ? 'sandbox' : 'live');
223
+		return wp_list_filter($this->tokens, $args);
224 224
 
225 225
 	}
226 226
 
@@ -229,12 +229,12 @@  discard block
 block discarded – undo
229 229
 	 *
230 230
 	 * @since 1.0.19
231 231
 	 */
232
-	public function save_token( $token ) {
232
+	public function save_token($token) {
233 233
 
234 234
 		$tokens   = $this->get_tokens();
235 235
 		$tokens[] = $token;
236 236
 
237
-		update_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", $tokens );
237
+		update_user_meta(get_current_user_id(), "getpaid_{$this->id}_tokens", $tokens);
238 238
 
239 239
 		$this->tokens = $tokens;
240 240
 
@@ -246,7 +246,7 @@  discard block
 block discarded – undo
246 246
 	 * @return string
247 247
 	 */
248 248
 	public function get_method_title() {
249
-		return apply_filters( 'getpaid_gateway_method_title', $this->method_title, $this );
249
+		return apply_filters('getpaid_gateway_method_title', $this->method_title, $this);
250 250
 	}
251 251
 
252 252
 	/**
@@ -255,7 +255,7 @@  discard block
 block discarded – undo
255 255
 	 * @return string
256 256
 	 */
257 257
 	public function get_method_description() {
258
-		return apply_filters( 'getpaid_gateway_method_description', $this->method_description, $this );
258
+		return apply_filters('getpaid_gateway_method_description', $this->method_description, $this);
259 259
 	}
260 260
 
261 261
 	/**
@@ -264,7 +264,7 @@  discard block
 block discarded – undo
264 264
 	 * @param WPInv_Invoice $invoice Invoice object.
265 265
 	 * @return string
266 266
 	 */
267
-	public function get_return_url( $invoice ) {
267
+	public function get_return_url($invoice) {
268 268
 
269 269
 		// Payment success url
270 270
 		$return_url = add_query_arg(
@@ -276,7 +276,7 @@  discard block
 block discarded – undo
276 276
 			wpinv_get_success_page_uri()
277 277
 		);
278 278
 
279
-		return apply_filters( 'getpaid_gateway_success_url', $return_url, $invoice, $this );
279
+		return apply_filters('getpaid_gateway_success_url', $return_url, $invoice, $this);
280 280
 	}
281 281
 
282 282
 	/**
@@ -285,24 +285,24 @@  discard block
 block discarded – undo
285 285
 	 * @param string $content Success page content.
286 286
 	 * @return string
287 287
 	 */
288
-	public function confirm_payment( $content ) {
288
+	public function confirm_payment($content) {
289 289
 
290 290
 		// Retrieve the invoice.
291 291
 		$invoice_id = getpaid_get_current_invoice_id();
292
-		$invoice    = wpinv_get_invoice( $invoice_id );
292
+		$invoice    = wpinv_get_invoice($invoice_id);
293 293
 
294 294
 		// Ensure that it exists and that it is pending payment.
295
-		if ( empty( $invoice_id ) || ! $invoice->needs_payment() ) {
295
+		if (empty($invoice_id) || !$invoice->needs_payment()) {
296 296
 			return $content;
297 297
 		}
298 298
 
299 299
 		// Can the user view this invoice??
300
-		if ( ! wpinv_user_can_view_invoice( $invoice ) ) {
300
+		if (!wpinv_user_can_view_invoice($invoice)) {
301 301
 			return $content;
302 302
 		}
303 303
 
304 304
 		// Show payment processing indicator.
305
-		return wpinv_get_template_html( 'wpinv-payment-processing.php', compact( 'invoice' ) );
305
+		return wpinv_get_template_html('wpinv-payment-processing.php', compact('invoice'));
306 306
 	}
307 307
 
308 308
 	/**
@@ -319,7 +319,7 @@  discard block
 block discarded – undo
319 319
 	 * @param GetPaid_Form_Item[] $items
320 320
 	 * @return WPInv_Invoice
321 321
 	 */
322
-	public function process_addons( $invoice, $items ) {
322
+	public function process_addons($invoice, $items) {
323 323
 
324 324
 	}
325 325
 
@@ -330,14 +330,14 @@  discard block
 block discarded – undo
330 330
 	 * @param WPInv_Invoice $invoice Invoice object.
331 331
 	 * @return string transaction URL, or empty string.
332 332
 	 */
333
-	public function filter_transaction_url( $transaction_url, $invoice ) {
333
+	public function filter_transaction_url($transaction_url, $invoice) {
334 334
 
335
-		$transaction_id  = $invoice->get_transaction_id();
335
+		$transaction_id = $invoice->get_transaction_id();
336 336
 
337
-		if ( ! empty( $this->view_transaction_url ) && ! empty( $transaction_id ) ) {
338
-			$transaction_url = sprintf( $this->view_transaction_url, $transaction_id );
339
-			$replace         = $this->is_sandbox( $invoice ) ? 'sandbox' : '';
340
-			$transaction_url = str_replace( '{sandbox}', $replace, $transaction_url );
337
+		if (!empty($this->view_transaction_url) && !empty($transaction_id)) {
338
+			$transaction_url = sprintf($this->view_transaction_url, $transaction_id);
339
+			$replace         = $this->is_sandbox($invoice) ? 'sandbox' : '';
340
+			$transaction_url = str_replace('{sandbox}', $replace, $transaction_url);
341 341
 		}
342 342
 
343 343
 		return $transaction_url;
@@ -350,15 +350,15 @@  discard block
 block discarded – undo
350 350
 	 * @param WPInv_Subscription $subscription Subscription objectt.
351 351
 	 * @return string subscription URL, or empty string.
352 352
 	 */
353
-	public function generate_subscription_url( $subscription_url, $subscription ) {
353
+	public function generate_subscription_url($subscription_url, $subscription) {
354 354
 
355
-		$profile_id      = $subscription->get_profile_id();
355
+		$profile_id = $subscription->get_profile_id();
356 356
 
357
-		if ( $this->id == $subscription->get_gateway() && ! empty( $this->view_subscription_url ) && ! empty( $profile_id ) ) {
357
+		if ($this->id == $subscription->get_gateway() && !empty($this->view_subscription_url) && !empty($profile_id)) {
358 358
 
359
-			$subscription_url = sprintf( $this->view_subscription_url, $profile_id );
360
-			$replace          = $this->is_sandbox( $subscription->get_parent_invoice() ) ? 'sandbox' : '';
361
-			$subscription_url = str_replace( '{sandbox}', $replace, $subscription_url );
359
+			$subscription_url = sprintf($this->view_subscription_url, $profile_id);
360
+			$replace          = $this->is_sandbox($subscription->get_parent_invoice()) ? 'sandbox' : '';
361
+			$subscription_url = str_replace('{sandbox}', $replace, $subscription_url);
362 362
 
363 363
 		}
364 364
 
@@ -371,7 +371,7 @@  discard block
 block discarded – undo
371 371
 	 * @return bool
372 372
 	 */
373 373
 	public function is_available() {
374
-		return ! empty( $this->enabled );
374
+		return !empty($this->enabled);
375 375
 	}
376 376
 
377 377
 	/**
@@ -380,7 +380,7 @@  discard block
 block discarded – undo
380 380
 	 * @return string
381 381
 	 */
382 382
 	public function get_title() {
383
-		return apply_filters( 'getpaid_gateway_title', $this->title, $this );
383
+		return apply_filters('getpaid_gateway_title', $this->title, $this);
384 384
 	}
385 385
 
386 386
 	/**
@@ -389,7 +389,7 @@  discard block
 block discarded – undo
389 389
 	 * @return string
390 390
 	 */
391 391
 	public function get_description() {
392
-		return apply_filters( 'getpaid_gateway_description', $this->description, $this );
392
+		return apply_filters('getpaid_gateway_description', $this->description, $this);
393 393
 	}
394 394
 
395 395
 	/**
@@ -401,9 +401,9 @@  discard block
 block discarded – undo
401 401
 	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
402 402
 	 * @return void
403 403
 	 */
404
-	public function process_payment( $invoice, $submission_data, $submission ) {
404
+	public function process_payment($invoice, $submission_data, $submission) {
405 405
 		// Process the payment then either redirect to the success page or the gateway.
406
-		do_action( 'getpaid_process_invoice_payment_' . $this->id, $invoice, $submission_data, $submission );
406
+		do_action('getpaid_process_invoice_payment_' . $this->id, $invoice, $submission_data, $submission);
407 407
 	}
408 408
 
409 409
 	/**
@@ -417,8 +417,8 @@  discard block
 block discarded – undo
417 417
 	 * @param  string $reason Refund reason.
418 418
 	 * @return WP_Error|bool True or false based on success, or a WP_Error object.
419 419
 	 */
420
-	public function process_refund( $invoice, $amount = null, $reason = '' ) {
421
-		return apply_filters( 'getpaid_process_invoice_refund_' . $this->id, false, $invoice, $amount, $reason );
420
+	public function process_refund($invoice, $amount = null, $reason = '') {
421
+		return apply_filters('getpaid_process_invoice_refund_' . $this->id, false, $invoice, $amount, $reason);
422 422
 	}
423 423
 
424 424
 	/**
@@ -427,8 +427,8 @@  discard block
 block discarded – undo
427 427
 	 * @param int $invoice_id 0 or invoice id.
428 428
 	 * @param GetPaid_Payment_Form $form Current payment form.
429 429
 	 */
430
-	public function payment_fields( $invoice_id, $form ) {
431
-		do_action( 'getpaid_getpaid_gateway_payment_fields_' . $this->id, $invoice_id, $form );
430
+	public function payment_fields($invoice_id, $form) {
431
+		do_action('getpaid_getpaid_gateway_payment_fields_' . $this->id, $invoice_id, $form);
432 432
 	}
433 433
 
434 434
 	/**
@@ -436,7 +436,7 @@  discard block
 block discarded – undo
436 436
 	 * 
437 437
 	 * @param array $admin_settings
438 438
 	 */
439
-	public function admin_settings( $admin_settings ) {
439
+	public function admin_settings($admin_settings) {
440 440
 		return $admin_settings;
441 441
 	}
442 442
 
@@ -445,8 +445,8 @@  discard block
 block discarded – undo
445 445
 	 * 
446 446
 	 * @param string $option
447 447
 	 */
448
-	public function get_option( $option, $default = false ) {
449
-		return wpinv_get_option( $this->id . '_' . $option, $default );
448
+	public function get_option($option, $default = false) {
449
+		return wpinv_get_option($this->id . '_' . $option, $default);
450 450
 	}
451 451
 
452 452
 	/**
@@ -459,8 +459,8 @@  discard block
 block discarded – undo
459 459
 	 * @return bool True if the gateway supports the feature, false otherwise.
460 460
 	 * @since 1.0.19
461 461
 	 */
462
-	public function supports( $feature ) {
463
-		return getpaid_payment_gateway_supports( $this->id, $feature );
462
+	public function supports($feature) {
463
+		return getpaid_payment_gateway_supports($this->id, $feature);
464 464
 	}
465 465
 
466 466
 	/**
@@ -468,36 +468,36 @@  discard block
 block discarded – undo
468 468
 	 * 
469 469
 	 * @param bool $save whether or not to display the save button.
470 470
 	 */
471
-    public function get_cc_form( $save = false ) {
471
+    public function get_cc_form($save = false) {
472 472
 
473 473
 		ob_start();
474 474
 
475
-        $id_prefix = esc_attr( uniqid( $this->id ) );
475
+        $id_prefix = esc_attr(uniqid($this->id));
476 476
 
477 477
         $months = array(
478
-            '01' => __( 'January', 'invoicing' ),
479
-            '02' => __( 'February', 'invoicing' ),
480
-            '03' => __( 'March', 'invoicing' ),
481
-            '04' => __( 'April', 'invoicing' ),
482
-            '05' => __( 'May', 'invoicing' ),
483
-            '06' => __( 'June', 'invoicing' ),
484
-            '07' => __( 'July', 'invoicing' ),
485
-            '08' => __( 'August', 'invoicing' ),
486
-            '09' => __( 'September', 'invoicing' ),
487
-            '10' => __( 'October', 'invoicing' ),
488
-            '11' => __( 'November', 'invoicing' ),
489
-            '12' => __( 'December', 'invoicing' ),
478
+            '01' => __('January', 'invoicing'),
479
+            '02' => __('February', 'invoicing'),
480
+            '03' => __('March', 'invoicing'),
481
+            '04' => __('April', 'invoicing'),
482
+            '05' => __('May', 'invoicing'),
483
+            '06' => __('June', 'invoicing'),
484
+            '07' => __('July', 'invoicing'),
485
+            '08' => __('August', 'invoicing'),
486
+            '09' => __('September', 'invoicing'),
487
+            '10' => __('October', 'invoicing'),
488
+            '11' => __('November', 'invoicing'),
489
+            '12' => __('December', 'invoicing'),
490 490
         );
491 491
 
492
-        $year  = (int) date( 'Y', current_time( 'timestamp' ) );
492
+        $year  = (int) date('Y', current_time('timestamp'));
493 493
         $years = array();
494 494
 
495
-        for ( $i = 0; $i <= 10; $i++ ) {
496
-            $years[ $year + $i ] = $year + $i;
495
+        for ($i = 0; $i <= 10; $i++) {
496
+            $years[$year + $i] = $year + $i;
497 497
         }
498 498
 
499 499
         ?>
500
-            <div class="<?php echo esc_attr( $this->id );?>-cc-form getpaid-cc-form mt-1">
500
+            <div class="<?php echo esc_attr($this->id); ?>-cc-form getpaid-cc-form mt-1">
501 501
 
502 502
 
503 503
                 <div class="getpaid-cc-card-inner">
@@ -506,14 +506,14 @@  discard block
 block discarded – undo
506 506
                         <div class="col-12">
507 507
 
508 508
 							<div class="form-group">
509
-								<label for="<?php echo esc_attr( "$id_prefix-cc-number" ) ?>"><?php _e( 'Card number', 'invoicing' ); ?></label>
509
+								<label for="<?php echo esc_attr("$id_prefix-cc-number") ?>"><?php _e('Card number', 'invoicing'); ?></label>
510 510
 								<div class="input-group input-group-sm">
511 511
 									<div class="input-group-prepend ">
512 512
 										<span class="input-group-text">
513 513
 											<i class="fa fa-credit-card"></i>
514 514
 										</span>
515 515
 									</div>
516
-									<input type="text" name="<?php echo esc_attr( $this->id . '[cc_number]' ) ?>" id="<?php echo esc_attr( "$id_prefix-cc-number" ) ?>" class="form-control form-control-sm" autocomplete="cc-number">
516
+									<input type="text" name="<?php echo esc_attr($this->id . '[cc_number]') ?>" id="<?php echo esc_attr("$id_prefix-cc-number") ?>" class="form-control form-control-sm" autocomplete="cc-number">
517 517
 								</div>
518 518
 							</div>
519 519
 
@@ -521,17 +521,17 @@  discard block
 block discarded – undo
521 521
 
522 522
                         <div class="col-12">
523 523
                             <div class="form-group">
524
-                                <label><?php _e( 'Expiration', 'invoicing' ); ?></label>
524
+                                <label><?php _e('Expiration', 'invoicing'); ?></label>
525 525
                                 <div class="form-row">
526 526
 
527 527
                                     <div class="col">
528
-                                        <select class="form-control form-control-sm" autocomplete="cc-exp-month" name="<?php echo esc_attr( $this->id );?>[cc_expire_month]">
529
-                                            <option disabled selected="selected"><?php _e( 'MM', 'invoicing' ); ?></option>
528
+                                        <select class="form-control form-control-sm" autocomplete="cc-exp-month" name="<?php echo esc_attr($this->id); ?>[cc_expire_month]">
529
+                                            <option disabled selected="selected"><?php _e('MM', 'invoicing'); ?></option>
530 530
 
531 531
                                             <?php
532
-                                                foreach ( $months as $key => $month ) {
533
-                                                    $key   = esc_attr( $key );
534
-                                                    $month = esc_html( $month );
532
+                                                foreach ($months as $key => $month) {
533
+                                                    $key   = esc_attr($key);
534
+                                                    $month = esc_html($month);
535 535
                                                     echo "<option value='$key'>$month</option>" . PHP_EOL;
536 536
                                                 }
537 537
                                             ?>
@@ -540,13 +540,13 @@  discard block
 block discarded – undo
540 540
                                     </div>
541 541
 
542 542
                                     <div class="col">
543
-                                        <select class="form-control form-control-sm" autocomplete="cc-exp-year" name="<?php echo esc_attr( $this->id );?>[cc_expire_year]">
544
-                                            <option disabled selected="selected"><?php _e( 'YY', 'invoicing' ); ?></option>
543
+                                        <select class="form-control form-control-sm" autocomplete="cc-exp-year" name="<?php echo esc_attr($this->id); ?>[cc_expire_year]">
544
+                                            <option disabled selected="selected"><?php _e('YY', 'invoicing'); ?></option>
545 545
 
546 546
                                             <?php
547
-                                                foreach ( $years as $key => $year ) {
548
-                                                    $key   = esc_attr( $key );
549
-                                                    $year  = esc_html( $year );
547
+                                                foreach ($years as $key => $year) {
548
+                                                    $key   = esc_attr($key);
549
+                                                    $year  = esc_html($year);
550 550
                                                     echo "<option value='$key'>$year</option>" . PHP_EOL;
551 551
                                                 }
552 552
                                             ?>
@@ -564,7 +564,7 @@  discard block
 block discarded – undo
564 564
                                     array(
565 565
                                         'name'              => $this->id . '[cc_cvv2]',
566 566
                                         'id'                => "$id_prefix-cc-cvv2",
567
-                                        'label'             => __( 'CCV', 'invoicing' ),
567
+                                        'label'             => __('CCV', 'invoicing'),
568 568
 										'label_type'        => 'vertical',
569 569
 										'class'             => 'form-control-sm',
570 570
 										'extra_attributes'  => array(
@@ -579,7 +579,7 @@  discard block
 block discarded – undo
579 579
 					
580 580
 					<?php
581 581
 
582
-						if ( $save ) {
582
+						if ($save) {
583 583
 							echo $this->save_payment_method_checkbox();
584 584
 						}
585 585
 
@@ -598,7 +598,7 @@  discard block
 block discarded – undo
598 598
 	 *
599 599
 	 * @since 1.0.19
600 600
 	 */
601
-	public function new_payment_method_entry( $form ) {
601
+	public function new_payment_method_entry($form) {
602 602
 		echo "<div class='getpaid-new-payment-method-form' style='display:none;'>$form</div>";
603 603
 	}
604 604
 
@@ -608,16 +608,16 @@  discard block
 block discarded – undo
608 608
 	 * @since 1.0.19
609 609
 	 */
610 610
 	public function saved_payment_methods() {
611
-		$html = '<ul class="getpaid-saved-payment-methods list-unstyled m-0 mt-2" data-count="' . esc_attr( count( $this->get_tokens( $this->is_sandbox() ) ) ) . '">';
611
+		$html = '<ul class="getpaid-saved-payment-methods list-unstyled m-0 mt-2" data-count="' . esc_attr(count($this->get_tokens($this->is_sandbox()))) . '">';
612 612
 
613
-		foreach ( $this->get_tokens( $this->is_sandbox() ) as $token ) {
614
-			$html .= $this->get_saved_payment_method_option_html( $token );
613
+		foreach ($this->get_tokens($this->is_sandbox()) as $token) {
614
+			$html .= $this->get_saved_payment_method_option_html($token);
615 615
 		}
616 616
 
617 617
 		$html .= $this->get_new_payment_method_option_html();
618 618
 		$html .= '</ul>';
619 619
 
620
-		echo apply_filters( 'getpaid_payment_gateway_form_saved_payment_methods_html', $html, $this );
620
+		echo apply_filters('getpaid_payment_gateway_form_saved_payment_methods_html', $html, $this);
621 621
 	}
622 622
 
623 623
 	/**
@@ -627,7 +627,7 @@  discard block
 block discarded – undo
627 627
 	 * @param  array $token Payment Token.
628 628
 	 * @return string Generated payment method HTML
629 629
 	 */
630
-	public function get_saved_payment_method_option_html( $token ) {
630
+	public function get_saved_payment_method_option_html($token) {
631 631
 
632 632
 		return sprintf(
633 633
 			'<li class="getpaid-payment-method form-group">
@@ -636,11 +636,11 @@  discard block
 block discarded – undo
636 636
 					<span>%3$s</span>
637 637
 				</label>
638 638
 			</li>',
639
-			esc_attr( $this->id ),
640
-			esc_attr( $token['id'] ),
641
-			esc_html( $token['name'] ),
642
-			checked( empty( $token['default'] ), false, false ),
643
-			empty( $token['currency'] ) ? 'none' : esc_attr( $token['currency'] )
639
+			esc_attr($this->id),
640
+			esc_attr($token['id']),
641
+			esc_html($token['name']),
642
+			checked(empty($token['default']), false, false),
643
+			empty($token['currency']) ? 'none' : esc_attr($token['currency'])
644 644
 		);
645 645
 
646 646
 	}
@@ -652,7 +652,7 @@  discard block
 block discarded – undo
652 652
 	 */
653 653
 	public function get_new_payment_method_option_html() {
654 654
 
655
-		$label = apply_filters( 'getpaid_new_payment_method_label', $this->new_method_label ? $this->new_method_label : __( 'Use a new payment method', 'invoicing' ), $this );
655
+		$label = apply_filters('getpaid_new_payment_method_label', $this->new_method_label ? $this->new_method_label : __('Use a new payment method', 'invoicing'), $this);
656 656
 
657 657
 		return sprintf(
658 658
 			'<li class="getpaid-new-payment-method">
@@ -661,8 +661,8 @@  discard block
 block discarded – undo
661 661
 					<span>%2$s</span>
662 662
 				</label>
663 663
 			</li>',
664
-			esc_attr( $this->id ),
665
-			esc_html( $label )
664
+			esc_attr($this->id),
665
+			esc_html($label)
666 666
 		);
667 667
 
668 668
 	}
@@ -677,10 +677,10 @@  discard block
 block discarded – undo
677 677
 		return aui()->input(
678 678
 			array(
679 679
 				'type'       => 'checkbox',
680
-				'name'       => esc_attr( "getpaid-$this->id-new-payment-method" ),
681
-				'id'         => esc_attr( uniqid( $this->id ) ),
680
+				'name'       => esc_attr("getpaid-$this->id-new-payment-method"),
681
+				'id'         => esc_attr(uniqid($this->id)),
682 682
 				'required'   => false,
683
-				'label'      => esc_html__( 'Save payment method', 'invoicing' ),
683
+				'label'      => esc_html__('Save payment method', 'invoicing'),
684 684
 				'value'      => 'true',
685 685
 				'checked'    => true,
686 686
 				'wrap_class' => 'getpaid-save-payment-method pt-1 pb-1',
@@ -694,9 +694,9 @@  discard block
 block discarded – undo
694 694
 	 *
695 695
 	 * @return array
696 696
 	 */
697
-	public function register_gateway( $gateways ) {
697
+	public function register_gateway($gateways) {
698 698
 
699
-		$gateways[ $this->id ] = array(
699
+		$gateways[$this->id] = array(
700 700
 
701 701
 			'admin_label'    => $this->method_title,
702 702
             'checkout_label' => $this->title,
@@ -714,13 +714,13 @@  discard block
 block discarded – undo
714 714
 	 * @param  WPInv_Invoice|null $invoice Invoice object or null.
715 715
 	 * @return bool
716 716
 	 */
717
-	public function is_sandbox( $invoice = null ) {
717
+	public function is_sandbox($invoice = null) {
718 718
 
719
-		if ( ! empty( $invoice ) && ! $invoice->needs_payment() ) {
719
+		if (!empty($invoice) && !$invoice->needs_payment()) {
720 720
 			return $invoice->get_mode() == 'test';
721 721
 		}
722 722
 
723
-		return wpinv_is_test_mode( $this->id );
723
+		return wpinv_is_test_mode($this->id);
724 724
 
725 725
 	}
726 726
 
@@ -738,15 +738,15 @@  discard block
 block discarded – undo
738 738
 	 *
739 739
 	 * @return bool
740 740
 	 */
741
-	public function validate_currency( $validation, $currency ) {
741
+	public function validate_currency($validation, $currency) {
742 742
 
743 743
 		// Required currencies.
744
-		if ( ! empty( $this->currencies ) && ! in_array( $currency, $this->currencies ) ) {
744
+		if (!empty($this->currencies) && !in_array($currency, $this->currencies)) {
745 745
 			return false;
746 746
 		}
747 747
 
748 748
 		// Excluded currencies.
749
-		if ( ! empty( $this->exclude_currencies ) && in_array( $currency, $this->exclude_currencies ) ) {
749
+		if (!empty($this->exclude_currencies) && in_array($currency, $this->exclude_currencies)) {
750 750
 			return false;
751 751
 		}
752 752
 
@@ -757,13 +757,13 @@  discard block
 block discarded – undo
757 757
 	 * Displays an error
758 758
 	 *
759 759
 	 */
760
-	public function show_error( $code, $message, $type ) {
760
+	public function show_error($code, $message, $type) {
761 761
 
762
-		if ( is_admin() ) {
763
-			getpaid_admin()->{"show_$type"}( $message );
762
+		if (is_admin()) {
763
+			getpaid_admin()->{"show_$type"}($message);
764 764
 		}
765 765
 
766
-		wpinv_set_error( $code, $message, $type );
766
+		wpinv_set_error($code, $message, $type);
767 767
 
768 768
 	}
769 769
 
Please login to merge, or discard this patch.
includes/gateways/class-getpaid-authorize-net-gateway.php 2 patches
Indentation   +232 added lines, -232 removed lines patch added patch discarded remove patch
@@ -13,58 +13,58 @@  discard block
 block discarded – undo
13 13
 class GetPaid_Authorize_Net_Gateway extends GetPaid_Authorize_Net_Legacy_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 = 'authorizenet';
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', 'sandbox', 'tokens', 'addons', 'single_subscription_group', 'multiple_subscription_groups' );
28 28
 
29 29
     /**
30
-	 * Payment method order.
31
-	 *
32
-	 * @var int
33
-	 */
30
+     * Payment method order.
31
+     *
32
+     * @var int
33
+     */
34 34
     public $order = 4;
35 35
 
36 36
     /**
37
-	 * Endpoint for requests from Authorize.net.
38
-	 *
39
-	 * @var string
40
-	 */
41
-	protected $notify_url;
42
-
43
-	/**
44
-	 * Endpoint for requests to Authorize.net.
45
-	 *
46
-	 * @var string
47
-	 */
37
+     * Endpoint for requests from Authorize.net.
38
+     *
39
+     * @var string
40
+     */
41
+    protected $notify_url;
42
+
43
+    /**
44
+     * Endpoint for requests to Authorize.net.
45
+     *
46
+     * @var string
47
+     */
48 48
     protected $endpoint;
49 49
 
50 50
     /**
51
-	 * Currencies this gateway is allowed for.
52
-	 *
53
-	 * @var array
54
-	 */
55
-	public $currencies = array( 'USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD' );
51
+     * Currencies this gateway is allowed for.
52
+     *
53
+     * @var array
54
+     */
55
+    public $currencies = array( 'USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD' );
56 56
 
57 57
     /**
58
-	 * URL to view a transaction.
59
-	 *
60
-	 * @var string
61
-	 */
58
+     * URL to view a transaction.
59
+     *
60
+     * @var string
61
+     */
62 62
     public $view_transaction_url = 'https://{sandbox}authorize.net/ui/themes/sandbox/Transaction/TransactionReceipt.aspx?transid=%s';
63 63
 
64 64
     /**
65
-	 * Class constructor.
66
-	 */
67
-	public function __construct() {
65
+     * Class constructor.
66
+     */
67
+    public function __construct() {
68 68
 
69 69
         $this->title                = __( 'Credit Card / Debit Card', 'invoicing' );
70 70
         $this->method_title         = __( 'Authorize.Net', 'invoicing' );
@@ -76,11 +76,11 @@  discard block
 block discarded – undo
76 76
     }
77 77
 
78 78
     /**
79
-	 * Displays the payment method select field.
80
-	 *
81
-	 * @param int $invoice_id 0 or invoice id.
82
-	 * @param GetPaid_Payment_Form $form Current payment form.
83
-	 */
79
+     * Displays the payment method select field.
80
+     *
81
+     * @param int $invoice_id 0 or invoice id.
82
+     * @param GetPaid_Payment_Form $form Current payment form.
83
+     */
84 84
     public function payment_fields( $invoice_id, $form ) {
85 85
 
86 86
         // Let the user select a payment method.
@@ -91,16 +91,16 @@  discard block
 block discarded – undo
91 91
     }
92 92
 
93 93
     /**
94
-	 * Creates a customer profile.
95
-	 *
96
-	 *
97
-	 * @param WPInv_Invoice $invoice Invoice.
94
+     * Creates a customer profile.
95
+     *
96
+     *
97
+     * @param WPInv_Invoice $invoice Invoice.
98 98
      * @param array $submission_data Posted checkout fields.
99 99
      * @param bool $save Whether or not to save the payment as a token.
100 100
      * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile
101
-	 * @return string|WP_Error Payment profile id.
102
-	 */
103
-	public function create_customer_profile( $invoice, $submission_data, $save = true ) {
101
+     * @return string|WP_Error Payment profile id.
102
+     */
103
+    public function create_customer_profile( $invoice, $submission_data, $save = true ) {
104 104
 
105 105
         // Remove non-digits from the number
106 106
         $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number'] );
@@ -175,14 +175,14 @@  discard block
 block discarded – undo
175 175
     }
176 176
 
177 177
     /**
178
-	 * Retrieves a customer profile.
179
-	 *
180
-	 *
181
-	 * @param string $profile_id profile id.
182
-	 * @return string|WP_Error Profile id.
178
+     * Retrieves a customer profile.
179
+     *
180
+     *
181
+     * @param string $profile_id profile id.
182
+     * @return string|WP_Error Profile id.
183 183
      * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-profile
184
-	 */
185
-	public function get_customer_profile( $profile_id ) {
184
+     */
185
+    public function get_customer_profile( $profile_id ) {
186 186
 
187 187
         // Generate args.
188 188
         $args = array(
@@ -197,17 +197,17 @@  discard block
 block discarded – undo
197 197
     }
198 198
 
199 199
     /**
200
-	 * Creates a customer profile.
201
-	 *
202
-	 *
200
+     * Creates a customer profile.
201
+     *
202
+     *
203 203
      * @param string $profile_id profile id.
204
-	 * @param WPInv_Invoice $invoice Invoice.
204
+     * @param WPInv_Invoice $invoice Invoice.
205 205
      * @param array $submission_data Posted checkout fields.
206 206
      * @param bool $save Whether or not to save the payment as a token.
207 207
      * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile
208
-	 * @return string|WP_Error Profile id.
209
-	 */
210
-	public function create_customer_payment_profile( $customer_profile, $invoice, $submission_data, $save ) {
208
+     * @return string|WP_Error Profile id.
209
+     */
210
+    public function create_customer_payment_profile( $customer_profile, $invoice, $submission_data, $save ) {
211 211
 
212 212
         // Remove non-digits from the number
213 213
         $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number'] );
@@ -282,13 +282,13 @@  discard block
 block discarded – undo
282 282
     }
283 283
 
284 284
     /**
285
-	 * Retrieves payment details from cache.
286
-	 *
287
-	 *
285
+     * Retrieves payment details from cache.
286
+     *
287
+     *
288 288
      * @param array $payment_details.
289
-	 * @return array|false Profile id.
290
-	 */
291
-	public function retrieve_payment_profile_from_cache( $payment_details, $customer_profile, $invoice ) {
289
+     * @return array|false Profile id.
290
+     */
291
+    public function retrieve_payment_profile_from_cache( $payment_details, $customer_profile, $invoice ) {
292 292
 
293 293
         $cached_information = get_option( 'getpaid_authorize_net_cached_profiles', array() );
294 294
         $payment_details    = hash_hmac( 'sha256', json_encode( $payment_details ), SECURE_AUTH_KEY );
@@ -313,13 +313,13 @@  discard block
 block discarded – undo
313 313
     }
314 314
 
315 315
     /**
316
-	 * Securely adds payment details to cache.
317
-	 *
318
-	 *
316
+     * Securely adds payment details to cache.
317
+     *
318
+     *
319 319
      * @param array $payment_details.
320 320
      * @param string $payment_profile_id.
321
-	 */
322
-	public function add_payment_profile_to_cache( $payment_details, $payment_profile_id ) {
321
+     */
322
+    public function add_payment_profile_to_cache( $payment_details, $payment_profile_id ) {
323 323
 
324 324
         $cached_information = get_option( 'getpaid_authorize_net_cached_profiles', array() );
325 325
         $cached_information = is_array( $cached_information ) ? $cached_information : array();
@@ -331,15 +331,15 @@  discard block
 block discarded – undo
331 331
     }
332 332
 
333 333
     /**
334
-	 * Retrieves a customer payment profile.
335
-	 *
336
-	 *
337
-	 * @param string $customer_profile_id customer profile id.
334
+     * Retrieves a customer payment profile.
335
+     *
336
+     *
337
+     * @param string $customer_profile_id customer profile id.
338 338
      * @param string $payment_profile_id payment profile id.
339
-	 * @return string|WP_Error Profile id.
339
+     * @return string|WP_Error Profile id.
340 340
      * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-payment-profile
341
-	 */
342
-	public function get_customer_payment_profile( $customer_profile_id, $payment_profile_id ) {
341
+     */
342
+    public function get_customer_payment_profile( $customer_profile_id, $payment_profile_id ) {
343 343
 
344 344
         // Generate args.
345 345
         $args = array(
@@ -355,15 +355,15 @@  discard block
 block discarded – undo
355 355
     }
356 356
 
357 357
     /**
358
-	 * Charges a customer payment profile.
359
-	 *
358
+     * Charges a customer payment profile.
359
+     *
360 360
      * @param string $customer_profile_id customer profile id.
361 361
      * @param string $payment_profile_id payment profile id.
362
-	 * @param WPInv_Invoice $invoice Invoice.
362
+     * @param WPInv_Invoice $invoice Invoice.
363 363
      * @link https://developer.authorize.net/api/reference/index.html#payment-transactions-charge-a-customer-profile
364
-	 * @return WP_Error|object
365
-	 */
366
-	public function charge_customer_payment_profile( $customer_profile_id, $payment_profile_id, $invoice ) {
364
+     * @return WP_Error|object
365
+     */
366
+    public function charge_customer_payment_profile( $customer_profile_id, $payment_profile_id, $invoice ) {
367 367
 
368 368
         // Generate args.
369 369
         $args = array(
@@ -409,41 +409,41 @@  discard block
 block discarded – undo
409 409
     }
410 410
 
411 411
     /**
412
-	 * Processes a customer charge.
413
-	 *
412
+     * Processes a customer charge.
413
+     *
414 414
      * @param stdClass $result Api response.
415
-	 * @param WPInv_Invoice $invoice Invoice.
416
-	 */
417
-	public function process_charge_response( $result, $invoice ) {
415
+     * @param WPInv_Invoice $invoice Invoice.
416
+     */
417
+    public function process_charge_response( $result, $invoice ) {
418 418
 
419 419
         wpinv_clear_errors();
420
-		$response_code = (int) $result->transactionResponse->responseCode;
420
+        $response_code = (int) $result->transactionResponse->responseCode;
421 421
 
422
-		// Succeeded.
423
-		if ( 1 == $response_code || 4 == $response_code ) {
422
+        // Succeeded.
423
+        if ( 1 == $response_code || 4 == $response_code ) {
424 424
 
425
-			// Maybe set a transaction id.
426
-			if ( ! empty( $result->transactionResponse->transId ) ) {
427
-				$invoice->set_transaction_id( $result->transactionResponse->transId );
428
-			}
425
+            // Maybe set a transaction id.
426
+            if ( ! empty( $result->transactionResponse->transId ) ) {
427
+                $invoice->set_transaction_id( $result->transactionResponse->transId );
428
+            }
429 429
 
430
-			$invoice->add_note( sprintf( __( 'Authentication code: %s (%s).', 'invoicing' ), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber ), false, false, true );
430
+            $invoice->add_note( sprintf( __( 'Authentication code: %s (%s).', 'invoicing' ), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber ), false, false, true );
431 431
 
432
-			if ( 1 == $response_code ) {
433
-				return $invoice->mark_paid();
434
-			}
432
+            if ( 1 == $response_code ) {
433
+                return $invoice->mark_paid();
434
+            }
435 435
 
436
-			$invoice->set_status( 'wpi-onhold' );
437
-        	$invoice->add_note(
436
+            $invoice->set_status( 'wpi-onhold' );
437
+            $invoice->add_note(
438 438
                 sprintf(
439 439
                     __( 'Held for review: %s', 'invoicing' ),
440 440
                     $result->transactionResponse->messages->message[0]->description
441 441
                 )
442
-			);
442
+            );
443 443
 
444
-			return $invoice->save();
444
+            return $invoice->save();
445 445
 
446
-		}
446
+        }
447 447
 
448 448
         wpinv_set_error( 'card_declined', __( 'Credit card declined.', 'invoicing' ) );
449 449
 
@@ -455,13 +455,13 @@  discard block
 block discarded – undo
455 455
     }
456 456
 
457 457
     /**
458
-	 * Returns payment information.
459
-	 *
460
-	 *
461
-	 * @param array $card Card details.
462
-	 * @return array
463
-	 */
464
-	public function get_payment_information( $card ) {
458
+     * Returns payment information.
459
+     *
460
+     *
461
+     * @param array $card Card details.
462
+     * @return array
463
+     */
464
+    public function get_payment_information( $card ) {
465 465
         return array(
466 466
 
467 467
             'creditCard'         => array (
@@ -474,25 +474,25 @@  discard block
 block discarded – undo
474 474
     }
475 475
 
476 476
     /**
477
-	 * Returns the customer profile meta name.
478
-	 *
479
-	 *
480
-	 * @param WPInv_Invoice $invoice Invoice.
481
-	 * @return string
482
-	 */
483
-	public function get_customer_profile_meta_name( $invoice ) {
477
+     * Returns the customer profile meta name.
478
+     *
479
+     *
480
+     * @param WPInv_Invoice $invoice Invoice.
481
+     * @return string
482
+     */
483
+    public function get_customer_profile_meta_name( $invoice ) {
484 484
         return $this->is_sandbox( $invoice ) ? 'getpaid_authorizenet_sandbox_customer_profile_id' : 'getpaid_authorizenet_customer_profile_id';
485 485
     }
486 486
 
487 487
     /**
488
-	 * Validates the submitted data.
489
-	 *
490
-	 *
491
-	 * @param array $submission_data Posted checkout fields.
488
+     * Validates the submitted data.
489
+     *
490
+     *
491
+     * @param array $submission_data Posted checkout fields.
492 492
      * @param WPInv_Invoice $invoice
493
-	 * @return WP_Error|string The payment profile id
494
-	 */
495
-	public function validate_submission_data( $submission_data, $invoice ) {
493
+     * @return WP_Error|string The payment profile id
494
+     */
495
+    public function validate_submission_data( $submission_data, $invoice ) {
496 496
 
497 497
         // Validate authentication details.
498 498
         $auth = $this->get_auth_params();
@@ -524,13 +524,13 @@  discard block
 block discarded – undo
524 524
     }
525 525
 
526 526
     /**
527
-	 * Returns invoice line items.
528
-	 *
529
-	 *
530
-	 * @param WPInv_Invoice $invoice Invoice.
531
-	 * @return array
532
-	 */
533
-	public function get_line_items( $invoice ) {
527
+     * Returns invoice line items.
528
+     *
529
+     *
530
+     * @param WPInv_Invoice $invoice Invoice.
531
+     * @return array
532
+     */
533
+    public function get_line_items( $invoice ) {
534 534
         $items = array();
535 535
 
536 536
         foreach ( $invoice->get_items() as $item ) {
@@ -568,15 +568,15 @@  discard block
 block discarded – undo
568 568
     }
569 569
 
570 570
     /**
571
-	 * Process Payment.
572
-	 *
573
-	 *
574
-	 * @param WPInv_Invoice $invoice Invoice.
575
-	 * @param array $submission_data Posted checkout fields.
576
-	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
577
-	 * @return array
578
-	 */
579
-	public function process_payment( $invoice, $submission_data, $submission ) {
571
+     * Process Payment.
572
+     *
573
+     *
574
+     * @param WPInv_Invoice $invoice Invoice.
575
+     * @param array $submission_data Posted checkout fields.
576
+     * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
577
+     * @return array
578
+     */
579
+    public function process_payment( $invoice, $submission_data, $submission ) {
580 580
 
581 581
         // Validate the submitted data.
582 582
         $payment_profile_id = $this->validate_submission_data( $submission_data, $invoice );
@@ -609,45 +609,45 @@  discard block
 block discarded – undo
609 609
 
610 610
         exit;
611 611
 
612
-	}
612
+    }
613 613
 	
614
-	/**
615
-	 * Processes the initial payment.
616
-	 *
614
+    /**
615
+     * Processes the initial payment.
616
+     *
617 617
      * @param WPInv_Invoice $invoice Invoice.
618
-	 */
619
-	protected function process_initial_payment( $invoice ) {
618
+     */
619
+    protected function process_initial_payment( $invoice ) {
620 620
 
621
-		$payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true );
621
+        $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true );
622 622
         $customer_profile   = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true );
623
-		$result             = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice );
623
+        $result             = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice );
624 624
 
625
-		// Do we have an error?
626
-		if ( is_wp_error( $result ) ) {
627
-			wpinv_set_error( $result->get_error_code(), $result->get_error_message() );
628
-			wpinv_send_back_to_checkout( $invoice );
629
-		}
625
+        // Do we have an error?
626
+        if ( is_wp_error( $result ) ) {
627
+            wpinv_set_error( $result->get_error_code(), $result->get_error_message() );
628
+            wpinv_send_back_to_checkout( $invoice );
629
+        }
630 630
 
631
-		// Process the response.
632
-		$this->process_charge_response( $result, $invoice );
631
+        // Process the response.
632
+        $this->process_charge_response( $result, $invoice );
633 633
 
634
-		if ( wpinv_get_errors() ) {
635
-			wpinv_send_back_to_checkout( $invoice );
636
-		}
634
+        if ( wpinv_get_errors() ) {
635
+            wpinv_send_back_to_checkout( $invoice );
636
+        }
637 637
 
638
-	}
638
+    }
639 639
 
640 640
     /**
641
-	 * Processes recurring payments.
642
-	 *
641
+     * Processes recurring payments.
642
+     *
643 643
      * @param WPInv_Invoice $invoice Invoice.
644 644
      * @param WPInv_Subscription[]|WPInv_Subscription $subscriptions Subscriptions.
645
-	 */
646
-	public function process_subscription( $invoice, $subscriptions ) {
645
+     */
646
+    public function process_subscription( $invoice, $subscriptions ) {
647 647
 
648 648
         // Check if there is an initial amount to charge.
649 649
         if ( (float) $invoice->get_total() > 0 ) {
650
-			$this->process_initial_payment( $invoice );
650
+            $this->process_initial_payment( $invoice );
651 651
         }
652 652
 
653 653
         // Activate the subscriptions.
@@ -665,36 +665,36 @@  discard block
 block discarded – undo
665 665
             }
666 666
         }
667 667
 
668
-		// Redirect to the success page.
668
+        // Redirect to the success page.
669 669
         wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) );
670 670
 
671 671
     }
672 672
 
673
-	/**
674
-	 * (Maybe) renews an authorize.net subscription profile.
675
-	 *
676
-	 *
673
+    /**
674
+     * (Maybe) renews an authorize.net subscription profile.
675
+     *
676
+     *
677 677
      * @param WPInv_Subscription $subscription
678
-	 */
679
-	public function maybe_renew_subscription( $subscription ) {
678
+     */
679
+    public function maybe_renew_subscription( $subscription ) {
680 680
 
681 681
         // Ensure its our subscription && it's active.
682 682
         if ( $this->id == $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) {
683 683
             $this->renew_subscription( $subscription );
684 684
         }
685 685
 
686
-	}
686
+    }
687 687
 
688 688
     /**
689
-	 * Renews a subscription.
690
-	 *
689
+     * Renews a subscription.
690
+     *
691 691
      * @param WPInv_Subscription $subscription
692
-	 */
693
-	public function renew_subscription( $subscription ) {
692
+     */
693
+    public function renew_subscription( $subscription ) {
694 694
 
695
-		// Generate the renewal invoice.
696
-		$new_invoice = $subscription->create_payment();
697
-		$old_invoice = $subscription->get_parent_payment();
695
+        // Generate the renewal invoice.
696
+        $new_invoice = $subscription->create_payment();
697
+        $old_invoice = $subscription->get_parent_payment();
698 698
 
699 699
         if ( empty( $new_invoice ) ) {
700 700
             $old_invoice->add_note( __( 'Error generating a renewal invoice.', 'invoicing' ), false, false, false );
@@ -703,37 +703,37 @@  discard block
 block discarded – undo
703 703
         }
704 704
 
705 705
         // Charge the payment method.
706
-		$payment_profile_id = get_post_meta( $old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true );
707
-		$customer_profile   = get_user_meta( $old_invoice->get_user_id(), $this->get_customer_profile_meta_name( $old_invoice ), true );
708
-		$result             = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $new_invoice );
709
-
710
-		// Do we have an error?
711
-		if ( is_wp_error( $result ) ) {
712
-
713
-			$old_invoice->add_note(
714
-				sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), $result->get_error_message() ),
715
-				true,
716
-				false,
717
-				true
718
-			);
719
-			$subscription->failing();
720
-			return;
721
-
722
-		}
723
-
724
-		// Process the response.
725
-		$this->process_charge_response( $result, $new_invoice );
726
-
727
-		if ( wpinv_get_errors() ) {
728
-
729
-			$old_invoice->add_note(
730
-				sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), getpaid_get_errors_html() ),
731
-				true,
732
-				false,
733
-				true
734
-			);
735
-			$subscription->failing();
736
-			return;
706
+        $payment_profile_id = get_post_meta( $old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true );
707
+        $customer_profile   = get_user_meta( $old_invoice->get_user_id(), $this->get_customer_profile_meta_name( $old_invoice ), true );
708
+        $result             = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $new_invoice );
709
+
710
+        // Do we have an error?
711
+        if ( is_wp_error( $result ) ) {
712
+
713
+            $old_invoice->add_note(
714
+                sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), $result->get_error_message() ),
715
+                true,
716
+                false,
717
+                true
718
+            );
719
+            $subscription->failing();
720
+            return;
721
+
722
+        }
723
+
724
+        // Process the response.
725
+        $this->process_charge_response( $result, $new_invoice );
726
+
727
+        if ( wpinv_get_errors() ) {
728
+
729
+            $old_invoice->add_note(
730
+                sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), getpaid_get_errors_html() ),
731
+                true,
732
+                false,
733
+                true
734
+            );
735
+            $subscription->failing();
736
+            return;
737 737
 
738 738
         }
739 739
 
@@ -742,13 +742,13 @@  discard block
 block discarded – undo
742 742
     }
743 743
 
744 744
     /**
745
-	 * Processes invoice addons.
746
-	 *
747
-	 * @param WPInv_Invoice $invoice
748
-	 * @param GetPaid_Form_Item[] $items
749
-	 * @return WPInv_Invoice
750
-	 */
751
-	public function process_addons( $invoice, $items ) {
745
+     * Processes invoice addons.
746
+     *
747
+     * @param WPInv_Invoice $invoice
748
+     * @param GetPaid_Form_Item[] $items
749
+     * @return WPInv_Invoice
750
+     */
751
+    public function process_addons( $invoice, $items ) {
752 752
 
753 753
         global $getpaid_authorize_addons;
754 754
 
@@ -768,7 +768,7 @@  discard block
 block discarded – undo
768 768
         $invoice->recalculate_total();
769 769
 
770 770
         $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true );
771
-		$customer_profile   = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true );
771
+        $customer_profile   = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true );
772 772
 
773 773
         add_filter( 'getpaid_authorizenet_charge_customer_payment_profile_args', array( $this, 'filter_addons_request' ), 10, 2 );
774 774
         $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice );
@@ -783,11 +783,11 @@  discard block
 block discarded – undo
783 783
     }
784 784
 
785 785
     /**
786
-	 * Processes invoice addons.
787
-	 *
786
+     * Processes invoice addons.
787
+     *
788 788
      * @param array $args
789
-	 * @return array
790
-	 */
789
+     * @return array
790
+     */
791 791
     public function filter_addons_request( $args ) {
792 792
 
793 793
         global $getpaid_authorize_addons;
@@ -821,11 +821,11 @@  discard block
 block discarded – undo
821 821
     }
822 822
 
823 823
     /**
824
-	 * Filters the gateway settings.
825
-	 *
826
-	 * @param array $admin_settings
827
-	 */
828
-	public function admin_settings( $admin_settings ) {
824
+     * Filters the gateway settings.
825
+     *
826
+     * @param array $admin_settings
827
+     */
828
+    public function admin_settings( $admin_settings ) {
829 829
 
830 830
         $currencies = sprintf(
831 831
             __( 'Supported Currencies: %s', 'invoicing' ),
@@ -865,7 +865,7 @@  discard block
 block discarded – undo
865 865
             'readonly' => true,
866 866
         );
867 867
 
868
-		return $admin_settings;
869
-	}
868
+        return $admin_settings;
869
+    }
870 870
 
871 871
 }
Please login to merge, or discard this patch.
Spacing   +206 added lines, -206 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
  * Authorize.net 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', 'sandbox', 'tokens', 'addons', 'single_subscription_group', 'multiple_subscription_groups' );
27
+    protected $supports = array('subscription', 'sandbox', 'tokens', 'addons', 'single_subscription_group', 'multiple_subscription_groups');
28 28
 
29 29
     /**
30 30
 	 * Payment method order.
@@ -52,7 +52,7 @@  discard block
 block discarded – undo
52 52
 	 *
53 53
 	 * @var array
54 54
 	 */
55
-	public $currencies = array( 'USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD' );
55
+	public $currencies = array('USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD');
56 56
 
57 57
     /**
58 58
 	 * URL to view a transaction.
@@ -66,12 +66,12 @@  discard block
 block discarded – undo
66 66
 	 */
67 67
 	public function __construct() {
68 68
 
69
-        $this->title                = __( 'Credit Card / Debit Card', 'invoicing' );
70
-        $this->method_title         = __( 'Authorize.Net', 'invoicing' );
71
-        $this->notify_url           = getpaid_get_non_query_string_ipn_url( $this->id );
69
+        $this->title                = __('Credit Card / Debit Card', 'invoicing');
70
+        $this->method_title         = __('Authorize.Net', 'invoicing');
71
+        $this->notify_url           = getpaid_get_non_query_string_ipn_url($this->id);
72 72
 
73
-        add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) );
74
-        add_filter( 'getpaid_authorizenet_sandbox_notice', array( $this, 'sandbox_notice' ) );
73
+        add_action('getpaid_should_renew_subscription', array($this, 'maybe_renew_subscription'));
74
+        add_filter('getpaid_authorizenet_sandbox_notice', array($this, 'sandbox_notice'));
75 75
         parent::__construct();
76 76
     }
77 77
 
@@ -81,13 +81,13 @@  discard block
 block discarded – undo
81 81
 	 * @param int $invoice_id 0 or invoice id.
82 82
 	 * @param GetPaid_Payment_Form $form Current payment form.
83 83
 	 */
84
-    public function payment_fields( $invoice_id, $form ) {
84
+    public function payment_fields($invoice_id, $form) {
85 85
 
86 86
         // Let the user select a payment method.
87 87
         echo $this->saved_payment_methods();
88 88
 
89 89
         // Show the credit card entry form.
90
-        echo $this->new_payment_method_entry( $this->get_cc_form( true ) );
90
+        echo $this->new_payment_method_entry($this->get_cc_form(true));
91 91
     }
92 92
 
93 93
     /**
@@ -100,79 +100,79 @@  discard block
 block discarded – undo
100 100
      * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile
101 101
 	 * @return string|WP_Error Payment profile id.
102 102
 	 */
103
-	public function create_customer_profile( $invoice, $submission_data, $save = true ) {
103
+	public function create_customer_profile($invoice, $submission_data, $save = true) {
104 104
 
105 105
         // Remove non-digits from the number
106
-        $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number'] );
106
+        $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number']);
107 107
 
108 108
         // Generate args.
109 109
         $args = array(
110 110
             'createCustomerProfileRequest' => array(
111 111
                 'merchantAuthentication'   => $this->get_auth_params(),
112 112
                 'profile'                  => array(
113
-                    'merchantCustomerId'   => getpaid_limit_length( $invoice->get_user_id(), 20 ),
114
-                    'description'          => getpaid_limit_length( $invoice->get_full_name(), 255 ),
115
-                    'email'                => getpaid_limit_length( $invoice->get_email(), 255 ),
113
+                    'merchantCustomerId'   => getpaid_limit_length($invoice->get_user_id(), 20),
114
+                    'description'          => getpaid_limit_length($invoice->get_full_name(), 255),
115
+                    'email'                => getpaid_limit_length($invoice->get_email(), 255),
116 116
                     'paymentProfiles'      => array(
117 117
                         'customerType'     => 'individual',
118 118
 
119 119
                         // Billing information.
120 120
                         'billTo'           => array(
121
-                            'firstName'    => getpaid_limit_length( $invoice->get_first_name(), 50 ),
122
-                            'lastName'     => getpaid_limit_length( $invoice->get_last_name(), 50 ),
123
-                            'address'      => getpaid_limit_length( $invoice->get_address(), 60 ),
124
-                            'city'         => getpaid_limit_length( $invoice->get_city(), 40 ),
125
-                            'state'        => getpaid_limit_length( $invoice->get_state(), 40 ),
126
-                            'zip'          => getpaid_limit_length( $invoice->get_zip(), 20 ),
127
-                            'country'      => getpaid_limit_length( $invoice->get_country(), 60 ),
121
+                            'firstName'    => getpaid_limit_length($invoice->get_first_name(), 50),
122
+                            'lastName'     => getpaid_limit_length($invoice->get_last_name(), 50),
123
+                            'address'      => getpaid_limit_length($invoice->get_address(), 60),
124
+                            'city'         => getpaid_limit_length($invoice->get_city(), 40),
125
+                            'state'        => getpaid_limit_length($invoice->get_state(), 40),
126
+                            'zip'          => getpaid_limit_length($invoice->get_zip(), 20),
127
+                            'country'      => getpaid_limit_length($invoice->get_country(), 60),
128 128
                         ),
129 129
 
130 130
                         // Payment information.
131
-                        'payment'          => $this->get_payment_information( $submission_data['authorizenet'] ),
131
+                        'payment'          => $this->get_payment_information($submission_data['authorizenet']),
132 132
                     )
133 133
                 ),
134
-                'validationMode'           => $this->is_sandbox( $invoice ) ? 'testMode' : 'liveMode',
134
+                'validationMode'           => $this->is_sandbox($invoice) ? 'testMode' : 'liveMode',
135 135
             )
136 136
         );
137 137
 
138
-        $response = $this->post( apply_filters( 'getpaid_authorizenet_customer_profile_args', $args, $invoice ), $invoice );
138
+        $response = $this->post(apply_filters('getpaid_authorizenet_customer_profile_args', $args, $invoice), $invoice);
139 139
 
140
-        if ( is_wp_error( $response ) ) {
140
+        if (is_wp_error($response)) {
141 141
 
142 142
             // In case the payment profile already exists remotely.
143
-            if ( 'dup_payment_profile' == $response->get_error_code() ) {
144
-                $customer_profile_id = strtok( $response->get_error_message(), '.' );
145
-                update_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), $customer_profile_id );
146
-                return strtok( '.' );
143
+            if ('dup_payment_profile' == $response->get_error_code()) {
144
+                $customer_profile_id = strtok($response->get_error_message(), '.');
145
+                update_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), $customer_profile_id);
146
+                return strtok('.');
147 147
             }
148 148
 
149 149
             // In case the customer profile already exists remotely.
150
-            if ( 'E00039' == $response->get_error_code() ) {
151
-                $customer_profile_id = str_replace( 'A duplicate record with ID ', '', $response->get_error_message() );
152
-                $customer_profile_id = str_replace( ' already exists.', '', $customer_profile_id );
153
-                return $this->create_customer_payment_profile( trim( $customer_profile_id ), $invoice, $submission_data, $save );
150
+            if ('E00039' == $response->get_error_code()) {
151
+                $customer_profile_id = str_replace('A duplicate record with ID ', '', $response->get_error_message());
152
+                $customer_profile_id = str_replace(' already exists.', '', $customer_profile_id);
153
+                return $this->create_customer_payment_profile(trim($customer_profile_id), $invoice, $submission_data, $save);
154 154
             }
155 155
 
156 156
             return $response;
157 157
         }
158 158
 
159
-        update_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), $response->customerProfileId );
159
+        update_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), $response->customerProfileId);
160 160
 
161 161
         // Save the payment token.
162
-        if ( $save ) {
162
+        if ($save) {
163 163
             $this->save_token(
164 164
                 array(
165 165
                     'id'      => $response->customerPaymentProfileIdList[0],
166
-                    'name'    => getpaid_get_card_name( $submission_data['authorizenet']['cc_number'] ) . '&middot;&middot;&middot;&middot;' . substr( $submission_data['authorizenet']['cc_number'], -4 ),
166
+                    'name'    => getpaid_get_card_name($submission_data['authorizenet']['cc_number']) . '&middot;&middot;&middot;&middot;' . substr($submission_data['authorizenet']['cc_number'], -4),
167 167
                     'default' => true,
168
-                    'type'    => $this->is_sandbox( $invoice ) ? 'sandbox' : 'live',
168
+                    'type'    => $this->is_sandbox($invoice) ? 'sandbox' : 'live',
169 169
                 )
170 170
             );
171 171
         }
172 172
 
173 173
         // Add a note about the validation response.
174 174
         $invoice->add_note(
175
-            sprintf( __( 'Created Authorize.NET customer profile: %s', 'invoicing' ), $response->validationDirectResponseList[0] ),
175
+            sprintf(__('Created Authorize.NET customer profile: %s', 'invoicing'), $response->validationDirectResponseList[0]),
176 176
             false,
177 177
             false,
178 178
             true
@@ -189,7 +189,7 @@  discard block
 block discarded – undo
189 189
 	 * @return string|WP_Error Profile id.
190 190
      * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-profile
191 191
 	 */
192
-	public function get_customer_profile( $profile_id ) {
192
+	public function get_customer_profile($profile_id) {
193 193
 
194 194
         // Generate args.
195 195
         $args = array(
@@ -199,7 +199,7 @@  discard block
 block discarded – undo
199 199
             )
200 200
         );
201 201
 
202
-        return $this->post( $args, false );
202
+        return $this->post($args, false);
203 203
 
204 204
     }
205 205
 
@@ -214,18 +214,18 @@  discard block
 block discarded – undo
214 214
      * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile
215 215
 	 * @return string|WP_Error Profile id.
216 216
 	 */
217
-	public function create_customer_payment_profile( $customer_profile, $invoice, $submission_data, $save ) {
217
+	public function create_customer_payment_profile($customer_profile, $invoice, $submission_data, $save) {
218 218
 
219 219
         // Remove non-digits from the number
220
-        $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number'] );
220
+        $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number']);
221 221
 
222 222
         // Prepare card details.
223
-        $payment_information                          = $this->get_payment_information( $submission_data['authorizenet'] );
223
+        $payment_information                          = $this->get_payment_information($submission_data['authorizenet']);
224 224
 
225 225
         // Authorize.NET does not support saving the same card twice.
226
-        $cached_information                           = $this->retrieve_payment_profile_from_cache( $payment_information, $customer_profile, $invoice );
226
+        $cached_information                           = $this->retrieve_payment_profile_from_cache($payment_information, $customer_profile, $invoice);
227 227
 
228
-        if ( $cached_information ) {
228
+        if ($cached_information) {
229 229
             return $cached_information;
230 230
         }
231 231
 
@@ -238,34 +238,34 @@  discard block
 block discarded – undo
238 238
 
239 239
                     // Billing information.
240 240
                     'billTo'           => array(
241
-                        'firstName'    => getpaid_limit_length( $invoice->get_first_name(), 50 ),
242
-                        'lastName'     => getpaid_limit_length( $invoice->get_last_name(), 50 ),
243
-                        'address'      => getpaid_limit_length( $invoice->get_address(), 60 ),
244
-                        'city'         => getpaid_limit_length( $invoice->get_city(), 40 ),
245
-                        'state'        => getpaid_limit_length( $invoice->get_state(), 40 ),
246
-                        'zip'          => getpaid_limit_length( $invoice->get_zip(), 20 ),
247
-                        'country'      => getpaid_limit_length( $invoice->get_country(), 60 ),
241
+                        'firstName'    => getpaid_limit_length($invoice->get_first_name(), 50),
242
+                        'lastName'     => getpaid_limit_length($invoice->get_last_name(), 50),
243
+                        'address'      => getpaid_limit_length($invoice->get_address(), 60),
244
+                        'city'         => getpaid_limit_length($invoice->get_city(), 40),
245
+                        'state'        => getpaid_limit_length($invoice->get_state(), 40),
246
+                        'zip'          => getpaid_limit_length($invoice->get_zip(), 20),
247
+                        'country'      => getpaid_limit_length($invoice->get_country(), 60),
248 248
                     ),
249 249
 
250 250
                     // Payment information.
251 251
                     'payment'          => $payment_information
252 252
                 ),
253
-                'validationMode'       => $this->is_sandbox( $invoice ) ? 'testMode' : 'liveMode',
253
+                'validationMode'       => $this->is_sandbox($invoice) ? 'testMode' : 'liveMode',
254 254
             )
255 255
         );
256 256
 
257
-        $response = $this->post( apply_filters( 'getpaid_authorizenet_create_customer_payment_profile_args', $args, $invoice ), $invoice );
257
+        $response = $this->post(apply_filters('getpaid_authorizenet_create_customer_payment_profile_args', $args, $invoice), $invoice);
258 258
 
259
-        if ( is_wp_error( $response ) ) {
259
+        if (is_wp_error($response)) {
260 260
 
261 261
             // In case the payment profile already exists remotely.
262
-            if ( 'dup_payment_profile' == $response->get_error_code() ) {
263
-                $customer_profile_id = strtok( $response->get_error_message(), '.' );
264
-                $payment_profile_id  = strtok( '.' );
265
-                update_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), $customer_profile_id );
262
+            if ('dup_payment_profile' == $response->get_error_code()) {
263
+                $customer_profile_id = strtok($response->get_error_message(), '.');
264
+                $payment_profile_id  = strtok('.');
265
+                update_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), $customer_profile_id);
266 266
 
267 267
                 // Cache payment profile id.
268
-                $this->add_payment_profile_to_cache( $payment_information, $payment_profile_id );
268
+                $this->add_payment_profile_to_cache($payment_information, $payment_profile_id);
269 269
 
270 270
                 return $payment_profile_id;
271 271
             }
@@ -274,29 +274,29 @@  discard block
 block discarded – undo
274 274
         }
275 275
 
276 276
         // Save the payment token.
277
-        if ( $save ) {
277
+        if ($save) {
278 278
             $this->save_token(
279 279
                 array(
280 280
                     'id'      => $response->customerPaymentProfileId,
281
-                    'name'    => getpaid_get_card_name( $submission_data['authorizenet']['cc_number'] ) . ' &middot;&middot;&middot;&middot; ' . substr( $submission_data['authorizenet']['cc_number'], -4 ),
281
+                    'name'    => getpaid_get_card_name($submission_data['authorizenet']['cc_number']) . ' &middot;&middot;&middot;&middot; ' . substr($submission_data['authorizenet']['cc_number'], -4),
282 282
                     'default' => true,
283
-                    'type'    => $this->is_sandbox( $invoice ) ? 'sandbox' : 'live',
283
+                    'type'    => $this->is_sandbox($invoice) ? 'sandbox' : 'live',
284 284
                 )
285 285
             );
286 286
         }
287 287
 
288 288
         // Cache payment profile id.
289
-        $this->add_payment_profile_to_cache( $payment_information, $response->customerPaymentProfileId );
289
+        $this->add_payment_profile_to_cache($payment_information, $response->customerPaymentProfileId);
290 290
 
291 291
         // Add a note about the validation response.
292 292
         $invoice->add_note(
293
-            sprintf( __( 'Saved Authorize.NET payment profile: %s', 'invoicing' ), $response->validationDirectResponse ),
293
+            sprintf(__('Saved Authorize.NET payment profile: %s', 'invoicing'), $response->validationDirectResponse),
294 294
             false,
295 295
             false,
296 296
             true
297 297
         );
298 298
 
299
-        update_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), $customer_profile );
299
+        update_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), $customer_profile);
300 300
 
301 301
         return $response->customerPaymentProfileId;
302 302
     }
@@ -308,12 +308,12 @@  discard block
 block discarded – undo
308 308
      * @param array $payment_details.
309 309
 	 * @return array|false Profile id.
310 310
 	 */
311
-	public function retrieve_payment_profile_from_cache( $payment_details, $customer_profile, $invoice ) {
311
+	public function retrieve_payment_profile_from_cache($payment_details, $customer_profile, $invoice) {
312 312
 
313
-        $cached_information = get_option( 'getpaid_authorize_net_cached_profiles', array() );
314
-        $payment_details    = hash_hmac( 'sha256', json_encode( $payment_details ), SECURE_AUTH_KEY );
313
+        $cached_information = get_option('getpaid_authorize_net_cached_profiles', array());
314
+        $payment_details    = hash_hmac('sha256', json_encode($payment_details), SECURE_AUTH_KEY);
315 315
 
316
-        if ( ! is_array( $cached_information ) || ! array_key_exists( $payment_details, $cached_information ) ) {
316
+        if (!is_array($cached_information) || !array_key_exists($payment_details, $cached_information)) {
317 317
             return false;
318 318
         }
319 319
 
@@ -322,13 +322,13 @@  discard block
 block discarded – undo
322 322
             'getCustomerPaymentProfileRequest' => array(
323 323
                 'merchantAuthentication'   => $this->get_auth_params(),
324 324
                 'customerProfileId'        => $customer_profile,
325
-                'customerPaymentProfileId' => $cached_information[ $payment_details ],
325
+                'customerPaymentProfileId' => $cached_information[$payment_details],
326 326
             )
327 327
         );
328 328
 
329
-        $response = $this->post( $args, $invoice );
329
+        $response = $this->post($args, $invoice);
330 330
 
331
-        return is_wp_error( $response ) ? false : $cached_information[ $payment_details ];
331
+        return is_wp_error($response) ? false : $cached_information[$payment_details];
332 332
 
333 333
     }
334 334
 
@@ -339,14 +339,14 @@  discard block
 block discarded – undo
339 339
      * @param array $payment_details.
340 340
      * @param string $payment_profile_id.
341 341
 	 */
342
-	public function add_payment_profile_to_cache( $payment_details, $payment_profile_id ) {
342
+	public function add_payment_profile_to_cache($payment_details, $payment_profile_id) {
343 343
 
344
-        $cached_information = get_option( 'getpaid_authorize_net_cached_profiles', array() );
345
-        $cached_information = is_array( $cached_information ) ? $cached_information : array();
346
-        $payment_details    = hash_hmac( 'sha256', json_encode( $payment_details ), SECURE_AUTH_KEY );
344
+        $cached_information = get_option('getpaid_authorize_net_cached_profiles', array());
345
+        $cached_information = is_array($cached_information) ? $cached_information : array();
346
+        $payment_details    = hash_hmac('sha256', json_encode($payment_details), SECURE_AUTH_KEY);
347 347
 
348
-        $cached_information[ $payment_details ] = $payment_profile_id;
349
-        update_option( 'getpaid_authorize_net_cached_profiles', $cached_information );
348
+        $cached_information[$payment_details] = $payment_profile_id;
349
+        update_option('getpaid_authorize_net_cached_profiles', $cached_information);
350 350
 
351 351
     }
352 352
 
@@ -359,7 +359,7 @@  discard block
 block discarded – undo
359 359
 	 * @return string|WP_Error Profile id.
360 360
      * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-payment-profile
361 361
 	 */
362
-	public function get_customer_payment_profile( $customer_profile_id, $payment_profile_id ) {
362
+	public function get_customer_payment_profile($customer_profile_id, $payment_profile_id) {
363 363
 
364 364
         // Generate args.
365 365
         $args = array(
@@ -370,7 +370,7 @@  discard block
 block discarded – undo
370 370
             )
371 371
         );
372 372
 
373
-        return $this->post( $args, false );
373
+        return $this->post($args, false);
374 374
 
375 375
     }
376 376
 
@@ -383,7 +383,7 @@  discard block
 block discarded – undo
383 383
      * @link https://developer.authorize.net/api/reference/index.html#payment-transactions-charge-a-customer-profile
384 384
 	 * @return WP_Error|object
385 385
 	 */
386
-	public function charge_customer_payment_profile( $customer_profile_id, $payment_profile_id, $invoice ) {
386
+	public function charge_customer_payment_profile($customer_profile_id, $payment_profile_id, $invoice) {
387 387
 
388 388
         // Generate args.
389 389
         $args = array(
@@ -403,28 +403,28 @@  discard block
 block discarded – undo
403 403
                         )
404 404
                     ),
405 405
                     'order'                    => array(
406
-                        'invoiceNumber'        => getpaid_limit_length( $invoice->get_number(), 20 ),
406
+                        'invoiceNumber'        => getpaid_limit_length($invoice->get_number(), 20),
407 407
                     ),
408
-                    'lineItems'                => array( 'lineItem' => $this->get_line_items( $invoice ) ),
408
+                    'lineItems'                => array('lineItem' => $this->get_line_items($invoice)),
409 409
                     'tax'                      => array(
410 410
                         'amount'               => $invoice->get_total_tax(),
411
-                        'name'                 => __( 'TAX', 'invoicing' ),
411
+                        'name'                 => __('TAX', 'invoicing'),
412 412
                     ),
413
-                    'poNumber'                 => getpaid_limit_length( $invoice->get_number(), 25 ),
413
+                    'poNumber'                 => getpaid_limit_length($invoice->get_number(), 25),
414 414
                     'customer'                 => array(
415
-                        'id'                   => getpaid_limit_length( $invoice->get_user_id(), 25 ),
416
-                        'email'                => getpaid_limit_length( $invoice->get_email(), 25 ),
415
+                        'id'                   => getpaid_limit_length($invoice->get_user_id(), 25),
416
+                        'email'                => getpaid_limit_length($invoice->get_email(), 25),
417 417
                     ),
418 418
                     'customerIP'               => $invoice->get_ip(),
419 419
                 )
420 420
             )
421 421
         );
422 422
 
423
-        if ( 0 == $invoice->get_total_tax() ) {
424
-            unset( $args['createTransactionRequest']['transactionRequest']['tax'] );
423
+        if (0 == $invoice->get_total_tax()) {
424
+            unset($args['createTransactionRequest']['transactionRequest']['tax']);
425 425
         }
426 426
 
427
-        return $this->post( apply_filters( 'getpaid_authorizenet_charge_customer_payment_profile_args', $args, $invoice ), $invoice );
427
+        return $this->post(apply_filters('getpaid_authorizenet_charge_customer_payment_profile_args', $args, $invoice), $invoice);
428 428
 
429 429
     }
430 430
 
@@ -434,29 +434,29 @@  discard block
 block discarded – undo
434 434
      * @param stdClass $result Api response.
435 435
 	 * @param WPInv_Invoice $invoice Invoice.
436 436
 	 */
437
-	public function process_charge_response( $result, $invoice ) {
437
+	public function process_charge_response($result, $invoice) {
438 438
 
439 439
         wpinv_clear_errors();
440 440
 		$response_code = (int) $result->transactionResponse->responseCode;
441 441
 
442 442
 		// Succeeded.
443
-		if ( 1 == $response_code || 4 == $response_code ) {
443
+		if (1 == $response_code || 4 == $response_code) {
444 444
 
445 445
 			// Maybe set a transaction id.
446
-			if ( ! empty( $result->transactionResponse->transId ) ) {
447
-				$invoice->set_transaction_id( $result->transactionResponse->transId );
446
+			if (!empty($result->transactionResponse->transId)) {
447
+				$invoice->set_transaction_id($result->transactionResponse->transId);
448 448
 			}
449 449
 
450
-			$invoice->add_note( sprintf( __( 'Authentication code: %s (%s).', 'invoicing' ), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber ), false, false, true );
450
+			$invoice->add_note(sprintf(__('Authentication code: %s (%s).', 'invoicing'), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber), false, false, true);
451 451
 
452
-			if ( 1 == $response_code ) {
452
+			if (1 == $response_code) {
453 453
 				return $invoice->mark_paid();
454 454
 			}
455 455
 
456
-			$invoice->set_status( 'wpi-onhold' );
456
+			$invoice->set_status('wpi-onhold');
457 457
         	$invoice->add_note(
458 458
                 sprintf(
459
-                    __( 'Held for review: %s', 'invoicing' ),
459
+                    __('Held for review: %s', 'invoicing'),
460 460
                     $result->transactionResponse->messages->message[0]->description
461 461
                 )
462 462
 			);
@@ -465,11 +465,11 @@  discard block
 block discarded – undo
465 465
 
466 466
 		}
467 467
 
468
-        wpinv_set_error( 'card_declined', __( 'Credit card declined.', 'invoicing' ) );
468
+        wpinv_set_error('card_declined', __('Credit card declined.', 'invoicing'));
469 469
 
470
-        if ( ! empty( $result->transactionResponse->errors ) ) {
470
+        if (!empty($result->transactionResponse->errors)) {
471 471
             $errors = (object) $result->transactionResponse->errors;
472
-            wpinv_set_error( $errors->error[0]->errorCode, esc_html( $errors->error[0]->errorText ) );
472
+            wpinv_set_error($errors->error[0]->errorCode, esc_html($errors->error[0]->errorText));
473 473
         }
474 474
 
475 475
     }
@@ -481,10 +481,10 @@  discard block
 block discarded – undo
481 481
 	 * @param array $card Card details.
482 482
 	 * @return array
483 483
 	 */
484
-	public function get_payment_information( $card ) {
484
+	public function get_payment_information($card) {
485 485
         return array(
486 486
 
487
-            'creditCard'         => array (
487
+            'creditCard'         => array(
488 488
                 'cardNumber'     => $card['cc_number'],
489 489
                 'expirationDate' => $card['cc_expire_year'] . '-' . $card['cc_expire_month'],
490 490
                 'cardCode'       => $card['cc_cvv2'],
@@ -500,8 +500,8 @@  discard block
 block discarded – undo
500 500
 	 * @param WPInv_Invoice $invoice Invoice.
501 501
 	 * @return string
502 502
 	 */
503
-	public function get_customer_profile_meta_name( $invoice ) {
504
-        return $this->is_sandbox( $invoice ) ? 'getpaid_authorizenet_sandbox_customer_profile_id' : 'getpaid_authorizenet_customer_profile_id';
503
+	public function get_customer_profile_meta_name($invoice) {
504
+        return $this->is_sandbox($invoice) ? 'getpaid_authorizenet_sandbox_customer_profile_id' : 'getpaid_authorizenet_customer_profile_id';
505 505
     }
506 506
 
507 507
     /**
@@ -512,34 +512,34 @@  discard block
 block discarded – undo
512 512
      * @param WPInv_Invoice $invoice
513 513
 	 * @return WP_Error|string The payment profile id
514 514
 	 */
515
-	public function validate_submission_data( $submission_data, $invoice ) {
515
+	public function validate_submission_data($submission_data, $invoice) {
516 516
 
517 517
         // Validate authentication details.
518 518
         $auth = $this->get_auth_params();
519 519
 
520
-        if ( empty( $auth['name'] ) || empty( $auth['transactionKey'] ) ) {
521
-            return new WP_Error( 'invalid_settings', __( 'Please set-up your login id and transaction key before using this gateway.', 'invoicing') );
520
+        if (empty($auth['name']) || empty($auth['transactionKey'])) {
521
+            return new WP_Error('invalid_settings', __('Please set-up your login id and transaction key before using this gateway.', 'invoicing'));
522 522
         }
523 523
 
524 524
         // Validate the payment method.
525
-        if ( empty( $submission_data['getpaid-authorizenet-payment-method'] ) ) {
526
-            return new WP_Error( 'invalid_payment_method', __( 'Please select a different payment method or add a new card.', 'invoicing') );
525
+        if (empty($submission_data['getpaid-authorizenet-payment-method'])) {
526
+            return new WP_Error('invalid_payment_method', __('Please select a different payment method or add a new card.', 'invoicing'));
527 527
         }
528 528
 
529 529
         // Are we adding a new payment method?
530
-        if ( 'new' != $submission_data['getpaid-authorizenet-payment-method'] ) {
530
+        if ('new' != $submission_data['getpaid-authorizenet-payment-method']) {
531 531
             return $submission_data['getpaid-authorizenet-payment-method'];
532 532
         }
533 533
 
534 534
         // Retrieve the customer profile id.
535
-        $profile_id = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true );
535
+        $profile_id = get_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), true);
536 536
 
537 537
         // Create payment method.
538
-        if ( empty( $profile_id ) ) {
539
-            return $this->create_customer_profile( $invoice, $submission_data, ! empty( $submission_data['getpaid-authorizenet-new-payment-method'] ) );
538
+        if (empty($profile_id)) {
539
+            return $this->create_customer_profile($invoice, $submission_data, !empty($submission_data['getpaid-authorizenet-new-payment-method']));
540 540
         }
541 541
 
542
-        return $this->create_customer_payment_profile( $profile_id, $invoice, $submission_data, ! empty( $submission_data['getpaid-authorizenet-new-payment-method'] ) );
542
+        return $this->create_customer_payment_profile($profile_id, $invoice, $submission_data, !empty($submission_data['getpaid-authorizenet-new-payment-method']));
543 543
 
544 544
     }
545 545
 
@@ -550,32 +550,32 @@  discard block
 block discarded – undo
550 550
 	 * @param WPInv_Invoice $invoice Invoice.
551 551
 	 * @return array
552 552
 	 */
553
-	public function get_line_items( $invoice ) {
553
+	public function get_line_items($invoice) {
554 554
         $items = array();
555 555
 
556
-        foreach ( $invoice->get_items() as $item ) {
556
+        foreach ($invoice->get_items() as $item) {
557 557
 
558 558
             $amount  = $invoice->is_renewal() ? $item->get_price() : $item->get_initial_price();
559 559
             $items[] = array(
560
-                'itemId'      => getpaid_limit_length( $item->get_id(), 31 ),
561
-                'name'        => getpaid_limit_length( $item->get_raw_name(), 31 ),
562
-                'description' => getpaid_limit_length( $item->get_description(), 255 ),
563
-                'quantity'    => (string) ( $invoice->get_template() == 'amount' ? 1 : $item->get_quantity() ),
560
+                'itemId'      => getpaid_limit_length($item->get_id(), 31),
561
+                'name'        => getpaid_limit_length($item->get_raw_name(), 31),
562
+                'description' => getpaid_limit_length($item->get_description(), 255),
563
+                'quantity'    => (string) ($invoice->get_template() == 'amount' ? 1 : $item->get_quantity()),
564 564
                 'unitPrice'   => (float) $amount,
565 565
                 'taxable'     => wpinv_use_taxes() && $invoice->is_taxable() && 'tax-exempt' != $item->get_vat_rule(),
566 566
             );
567 567
 
568 568
         }
569 569
 
570
-        foreach ( $invoice->get_fees() as $fee_name => $fee ) {
570
+        foreach ($invoice->get_fees() as $fee_name => $fee) {
571 571
 
572
-            $amount  = $invoice->is_renewal() ? $fee['recurring_fee'] : $fee['initial_fee'];
572
+            $amount = $invoice->is_renewal() ? $fee['recurring_fee'] : $fee['initial_fee'];
573 573
 
574
-            if ( $amount > 0 ) {
574
+            if ($amount > 0) {
575 575
                 $items[] = array(
576
-                    'itemId'      => getpaid_limit_length( $fee_name, 31 ),
577
-                    'name'        => getpaid_limit_length( $fee_name, 31 ),
578
-                    'description' => getpaid_limit_length( $fee_name, 255 ),
576
+                    'itemId'      => getpaid_limit_length($fee_name, 31),
577
+                    'name'        => getpaid_limit_length($fee_name, 31),
578
+                    'description' => getpaid_limit_length($fee_name, 255),
579 579
                     'quantity'    => '1',
580 580
                     'unitPrice'   => (float) $amount,
581 581
                     'taxable'     => false,
@@ -596,36 +596,36 @@  discard block
 block discarded – undo
596 596
 	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
597 597
 	 * @return array
598 598
 	 */
599
-	public function process_payment( $invoice, $submission_data, $submission ) {
599
+	public function process_payment($invoice, $submission_data, $submission) {
600 600
 
601 601
         // Validate the submitted data.
602
-        $payment_profile_id = $this->validate_submission_data( $submission_data, $invoice );
602
+        $payment_profile_id = $this->validate_submission_data($submission_data, $invoice);
603 603
 
604 604
         // Do we have an error?
605
-        if ( is_wp_error( $payment_profile_id ) ) {
606
-            wpinv_set_error( $payment_profile_id->get_error_code(), $payment_profile_id->get_error_message() );
607
-            wpinv_send_back_to_checkout( $invoice );
605
+        if (is_wp_error($payment_profile_id)) {
606
+            wpinv_set_error($payment_profile_id->get_error_code(), $payment_profile_id->get_error_message());
607
+            wpinv_send_back_to_checkout($invoice);
608 608
         }
609 609
 
610 610
         // Save the payment method to the order.
611
-        update_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', $payment_profile_id );
611
+        update_post_meta($invoice->get_id(), 'getpaid_authorizenet_profile_id', $payment_profile_id);
612 612
 
613 613
         // Check if this is a subscription or not.
614
-        $subscriptions = getpaid_get_invoice_subscriptions( $invoice );
615
-        if ( ! empty( $subscriptions ) ) {
616
-            $this->process_subscription( $invoice, $subscriptions );
614
+        $subscriptions = getpaid_get_invoice_subscriptions($invoice);
615
+        if (!empty($subscriptions)) {
616
+            $this->process_subscription($invoice, $subscriptions);
617 617
         }
618 618
 
619 619
         // If it is free, send to the success page.
620
-        if ( ! $invoice->needs_payment() ) {
620
+        if (!$invoice->needs_payment()) {
621 621
             $invoice->mark_paid();
622
-            wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) );
622
+            wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key()));
623 623
         }
624 624
 
625 625
         // Charge the payment profile.
626
-        $this->process_initial_payment( $invoice );
626
+        $this->process_initial_payment($invoice);
627 627
 
628
-        wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) );
628
+        wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key()));
629 629
 
630 630
         exit;
631 631
 
@@ -636,23 +636,23 @@  discard block
 block discarded – undo
636 636
 	 *
637 637
      * @param WPInv_Invoice $invoice Invoice.
638 638
 	 */
639
-	protected function process_initial_payment( $invoice ) {
639
+	protected function process_initial_payment($invoice) {
640 640
 
641
-		$payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true );
642
-        $customer_profile   = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true );
643
-		$result             = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice );
641
+		$payment_profile_id = get_post_meta($invoice->get_id(), 'getpaid_authorizenet_profile_id', true);
642
+        $customer_profile = get_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), true);
643
+		$result             = $this->charge_customer_payment_profile($customer_profile, $payment_profile_id, $invoice);
644 644
 
645 645
 		// Do we have an error?
646
-		if ( is_wp_error( $result ) ) {
647
-			wpinv_set_error( $result->get_error_code(), $result->get_error_message() );
648
-			wpinv_send_back_to_checkout( $invoice );
646
+		if (is_wp_error($result)) {
647
+			wpinv_set_error($result->get_error_code(), $result->get_error_message());
648
+			wpinv_send_back_to_checkout($invoice);
649 649
 		}
650 650
 
651 651
 		// Process the response.
652
-		$this->process_charge_response( $result, $invoice );
652
+		$this->process_charge_response($result, $invoice);
653 653
 
654
-		if ( wpinv_get_errors() ) {
655
-			wpinv_send_back_to_checkout( $invoice );
654
+		if (wpinv_get_errors()) {
655
+			wpinv_send_back_to_checkout($invoice);
656 656
 		}
657 657
 
658 658
 	}
@@ -663,30 +663,30 @@  discard block
 block discarded – undo
663 663
      * @param WPInv_Invoice $invoice Invoice.
664 664
      * @param WPInv_Subscription[]|WPInv_Subscription $subscriptions Subscriptions.
665 665
 	 */
666
-	public function process_subscription( $invoice, $subscriptions ) {
666
+	public function process_subscription($invoice, $subscriptions) {
667 667
 
668 668
         // Check if there is an initial amount to charge.
669
-        if ( (float) $invoice->get_total() > 0 ) {
670
-			$this->process_initial_payment( $invoice );
669
+        if ((float) $invoice->get_total() > 0) {
670
+			$this->process_initial_payment($invoice);
671 671
         }
672 672
 
673 673
         // Activate the subscriptions.
674
-        $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions );
674
+        $subscriptions = is_array($subscriptions) ? $subscriptions : array($subscriptions);
675 675
 
676
-        foreach ( $subscriptions as $subscription ) {
677
-            if ( $subscription->exists() ) {
678
-                $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
679
-                $expiry   = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) );
676
+        foreach ($subscriptions as $subscription) {
677
+            if ($subscription->exists()) {
678
+                $duration = strtotime($subscription->get_expiration()) - strtotime($subscription->get_date_created());
679
+                $expiry   = date('Y-m-d H:i:s', (current_time('timestamp') + $duration));
680 680
 
681
-                $subscription->set_next_renewal_date( $expiry );
682
-                $subscription->set_date_created( current_time( 'mysql' ) );
683
-                $subscription->set_profile_id( $invoice->generate_key( 'authnet_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ) );
681
+                $subscription->set_next_renewal_date($expiry);
682
+                $subscription->set_date_created(current_time('mysql'));
683
+                $subscription->set_profile_id($invoice->generate_key('authnet_sub_' . $invoice->get_id() . '_' . $subscription->get_id()));
684 684
                 $subscription->activate();
685 685
             }
686 686
         }
687 687
 
688 688
 		// Redirect to the success page.
689
-        wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) );
689
+        wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key()));
690 690
 
691 691
     }
692 692
 
@@ -696,11 +696,11 @@  discard block
 block discarded – undo
696 696
 	 *
697 697
      * @param WPInv_Subscription $subscription
698 698
 	 */
699
-	public function maybe_renew_subscription( $subscription ) {
699
+	public function maybe_renew_subscription($subscription) {
700 700
 
701 701
         // Ensure its our subscription && it's active.
702
-        if ( $this->id == $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) {
703
-            $this->renew_subscription( $subscription );
702
+        if ($this->id == $subscription->get_gateway() && $subscription->has_status('active trialling')) {
703
+            $this->renew_subscription($subscription);
704 704
         }
705 705
 
706 706
 	}
@@ -710,28 +710,28 @@  discard block
 block discarded – undo
710 710
 	 *
711 711
      * @param WPInv_Subscription $subscription
712 712
 	 */
713
-	public function renew_subscription( $subscription ) {
713
+	public function renew_subscription($subscription) {
714 714
 
715 715
 		// Generate the renewal invoice.
716 716
 		$new_invoice = $subscription->create_payment();
717 717
 		$old_invoice = $subscription->get_parent_payment();
718 718
 
719
-        if ( empty( $new_invoice ) ) {
720
-            $old_invoice->add_note( __( 'Error generating a renewal invoice.', 'invoicing' ), false, false, false );
719
+        if (empty($new_invoice)) {
720
+            $old_invoice->add_note(__('Error generating a renewal invoice.', 'invoicing'), false, false, false);
721 721
             $subscription->failing();
722 722
             return;
723 723
         }
724 724
 
725 725
         // Charge the payment method.
726
-		$payment_profile_id = get_post_meta( $old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true );
727
-		$customer_profile   = get_user_meta( $old_invoice->get_user_id(), $this->get_customer_profile_meta_name( $old_invoice ), true );
728
-		$result             = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $new_invoice );
726
+		$payment_profile_id = get_post_meta($old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true);
727
+		$customer_profile   = get_user_meta($old_invoice->get_user_id(), $this->get_customer_profile_meta_name($old_invoice), true);
728
+		$result             = $this->charge_customer_payment_profile($customer_profile, $payment_profile_id, $new_invoice);
729 729
 
730 730
 		// Do we have an error?
731
-		if ( is_wp_error( $result ) ) {
731
+		if (is_wp_error($result)) {
732 732
 
733 733
 			$old_invoice->add_note(
734
-				sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), $result->get_error_message() ),
734
+				sprintf(__('Error renewing subscription : ( %s ).', 'invoicing'), $result->get_error_message()),
735 735
 				true,
736 736
 				false,
737 737
 				true
@@ -742,12 +742,12 @@  discard block
 block discarded – undo
742 742
 		}
743 743
 
744 744
 		// Process the response.
745
-		$this->process_charge_response( $result, $new_invoice );
745
+		$this->process_charge_response($result, $new_invoice);
746 746
 
747
-		if ( wpinv_get_errors() ) {
747
+		if (wpinv_get_errors()) {
748 748
 
749 749
 			$old_invoice->add_note(
750
-				sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), getpaid_get_errors_html() ),
750
+				sprintf(__('Error renewing subscription : ( %s ).', 'invoicing'), getpaid_get_errors_html()),
751 751
 				true,
752 752
 				false,
753 753
 				true
@@ -757,7 +757,7 @@  discard block
 block discarded – undo
757 757
 
758 758
         }
759 759
 
760
-        $subscription->add_payment( array(), $new_invoice );
760
+        $subscription->add_payment(array(), $new_invoice);
761 761
         $subscription->renew();
762 762
     }
763 763
 
@@ -768,34 +768,34 @@  discard block
 block discarded – undo
768 768
 	 * @param GetPaid_Form_Item[] $items
769 769
 	 * @return WPInv_Invoice
770 770
 	 */
771
-	public function process_addons( $invoice, $items ) {
771
+	public function process_addons($invoice, $items) {
772 772
 
773 773
         global $getpaid_authorize_addons;
774 774
 
775 775
         $getpaid_authorize_addons = array();
776
-        foreach ( $items as $item ) {
776
+        foreach ($items as $item) {
777 777
 
778
-            if ( is_null( $invoice->get_item( $item->get_id() ) ) && ! is_wp_error( $invoice->add_item( $item ) ) ) {
778
+            if (is_null($invoice->get_item($item->get_id())) && !is_wp_error($invoice->add_item($item))) {
779 779
                 $getpaid_authorize_addons[] = $item;
780 780
             }
781 781
 
782 782
         }
783 783
 
784
-        if ( empty( $getpaid_authorize_addons ) ) {
784
+        if (empty($getpaid_authorize_addons)) {
785 785
             return;
786 786
         }
787 787
 
788 788
         $invoice->recalculate_total();
789 789
 
790
-        $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true );
791
-		$customer_profile   = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true );
790
+        $payment_profile_id = get_post_meta($invoice->get_id(), 'getpaid_authorizenet_profile_id', true);
791
+		$customer_profile = get_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), true);
792 792
 
793
-        add_filter( 'getpaid_authorizenet_charge_customer_payment_profile_args', array( $this, 'filter_addons_request' ), 10, 2 );
794
-        $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice );
795
-        remove_filter( 'getpaid_authorizenet_charge_customer_payment_profile_args', array( $this, 'filter_addons_request' ) );
793
+        add_filter('getpaid_authorizenet_charge_customer_payment_profile_args', array($this, 'filter_addons_request'), 10, 2);
794
+        $result = $this->charge_customer_payment_profile($customer_profile, $payment_profile_id, $invoice);
795
+        remove_filter('getpaid_authorizenet_charge_customer_payment_profile_args', array($this, 'filter_addons_request'));
796 796
 
797
-        if ( is_wp_error( $result ) ) {
798
-            wpinv_set_error( $result->get_error_code(), $result->get_error_message() );
797
+        if (is_wp_error($result)) {
798
+            wpinv_set_error($result->get_error_code(), $result->get_error_message());
799 799
             return;
800 800
         }
801 801
 
@@ -808,19 +808,19 @@  discard block
 block discarded – undo
808 808
      * @param array $args
809 809
 	 * @return array
810 810
 	 */
811
-    public function filter_addons_request( $args ) {
811
+    public function filter_addons_request($args) {
812 812
 
813 813
         global $getpaid_authorize_addons;
814 814
         $total = 0;
815 815
 
816
-        foreach ( $getpaid_authorize_addons as $addon ) {
816
+        foreach ($getpaid_authorize_addons as $addon) {
817 817
             $total += $addon->get_sub_total();
818 818
         }
819 819
 
820 820
         $args['createTransactionRequest']['transactionRequest']['amount'] = $total;
821 821
 
822
-        if ( isset( $args['createTransactionRequest']['transactionRequest']['tax'] ) ) {
823
-            unset( $args['createTransactionRequest']['transactionRequest']['tax'] );
822
+        if (isset($args['createTransactionRequest']['transactionRequest']['tax'])) {
823
+            unset($args['createTransactionRequest']['transactionRequest']['tax']);
824 824
         }
825 825
 
826 826
         return $args;
@@ -833,7 +833,7 @@  discard block
 block discarded – undo
833 833
     public function sandbox_notice() {
834 834
 
835 835
         return sprintf(
836
-            __( 'SANDBOX ENABLED. You can use sandbox testing details only. See the %sAuthorize.NET Sandbox Testing Guide%s for more details.', 'invoicing' ),
836
+            __('SANDBOX ENABLED. You can use sandbox testing details only. See the %sAuthorize.NET Sandbox Testing Guide%s for more details.', 'invoicing'),
837 837
             '<a href="https://developer.authorize.net/hello_world/testing_guide.html">',
838 838
             '</a>'
839 839
         );
@@ -845,42 +845,42 @@  discard block
 block discarded – undo
845 845
 	 *
846 846
 	 * @param array $admin_settings
847 847
 	 */
848
-	public function admin_settings( $admin_settings ) {
848
+	public function admin_settings($admin_settings) {
849 849
 
850 850
         $currencies = sprintf(
851
-            __( 'Supported Currencies: %s', 'invoicing' ),
852
-            implode( ', ', $this->currencies )
851
+            __('Supported Currencies: %s', 'invoicing'),
852
+            implode(', ', $this->currencies)
853 853
         );
854 854
 
855 855
         $admin_settings['authorizenet_active']['desc'] .= " ($currencies)";
856
-        $admin_settings['authorizenet_desc']['std']     = __( 'Pay securely using your credit or debit card.', 'invoicing' );
856
+        $admin_settings['authorizenet_desc']['std']     = __('Pay securely using your credit or debit card.', 'invoicing');
857 857
 
858 858
         $admin_settings['authorizenet_login_id'] = array(
859 859
             'type' => 'text',
860 860
             'id'   => 'authorizenet_login_id',
861
-            'name' => __( 'API Login ID', 'invoicing' ),
862
-            'desc' => '<a href="https://support.authorize.net/s/article/How-do-I-obtain-my-API-Login-ID-and-Transaction-Key"><em>' . __( 'How do I obtain my API Login ID and Transaction Key?', 'invoicing' ) . '</em></a>',
861
+            'name' => __('API Login ID', 'invoicing'),
862
+            'desc' => '<a href="https://support.authorize.net/s/article/How-do-I-obtain-my-API-Login-ID-and-Transaction-Key"><em>' . __('How do I obtain my API Login ID and Transaction Key?', 'invoicing') . '</em></a>',
863 863
         );
864 864
 
865 865
         $admin_settings['authorizenet_transaction_key'] = array(
866 866
             'type' => 'text',
867 867
             'id'   => 'authorizenet_transaction_key',
868
-            'name' => __( 'Transaction Key', 'invoicing' ),
868
+            'name' => __('Transaction Key', 'invoicing'),
869 869
         );
870 870
 
871 871
         $admin_settings['authorizenet_signature_key'] = array(
872 872
             'type' => 'text',
873 873
             'id'   => 'authorizenet_signature_key',
874
-            'name' => __( 'Signature Key', 'invoicing' ),
875
-            'desc' => '<a href="https://support.authorize.net/s/article/What-is-a-Signature-Key"><em>' . __( 'Learn more.', 'invoicing' ) . '</em></a>',
874
+            'name' => __('Signature Key', 'invoicing'),
875
+            'desc' => '<a href="https://support.authorize.net/s/article/What-is-a-Signature-Key"><em>' . __('Learn more.', 'invoicing') . '</em></a>',
876 876
         );
877 877
 
878 878
         $admin_settings['authorizenet_ipn_url'] = array(
879 879
             'type'     => 'ipn_url',
880 880
             'id'       => 'authorizenet_ipn_url',
881
-            'name'     => __( 'Webhook URL', 'invoicing' ),
881
+            'name'     => __('Webhook URL', 'invoicing'),
882 882
             'std'      => $this->notify_url,
883
-            'desc'     => __( 'Create a new webhook using this URL as the endpoint URL and set it to receive all payment events.', 'invoicing' ) . ' <a href="https://support.authorize.net/s/article/How-do-I-add-edit-Webhook-notification-end-points"><em>' . __( 'Learn more.', 'invoicing' ) . '</em></a>',
883
+            'desc'     => __('Create a new webhook using this URL as the endpoint URL and set it to receive all payment events.', 'invoicing') . ' <a href="https://support.authorize.net/s/article/How-do-I-add-edit-Webhook-notification-end-points"><em>' . __('Learn more.', 'invoicing') . '</em></a>',
884 884
             'custom'   => 'authorizenet',
885 885
             'readonly' => true,
886 886
         );
Please login to merge, or discard this patch.
includes/geolocation/class-getpaid-maxmind-geolocation.php 2 patches
Indentation   +160 added lines, -160 removed lines patch added patch discarded remove patch
@@ -16,165 +16,165 @@
 block discarded – undo
16 16
  */
17 17
 class GetPaid_MaxMind_Geolocation {
18 18
 
19
-	/**
20
-	 * The service responsible for interacting with the MaxMind database.
21
-	 *
22
-	 * @var GetPaid_MaxMind_Database_Service
23
-	 */
24
-	private $database_service;
25
-
26
-	/**
27
-	 * Initialize the integration.
28
-	 */
29
-	public function __construct() {
30
-
31
-		/**
32
-		 * Supports overriding the database service to be used.
33
-		 *
34
-		 * @since 1.0.19
35
-		 * @return mixed|null The geolocation database service.
36
-		 */
37
-		$this->database_service = apply_filters( 'getpaid_maxmind_geolocation_database_service', null );
38
-		if ( null === $this->database_service ) {
39
-			$this->database_service = new GetPaid_MaxMind_Database_Service( $this->get_database_prefix() );
40
-		}
41
-
42
-		// Bind to the scheduled updater action.
43
-		add_action( 'getpaid_update_geoip_databases', array( $this, 'update_database' ) );
44
-
45
-		// Bind to the geolocation filter for MaxMind database lookups.
46
-		add_filter( 'getpaid_get_geolocation', array( $this, 'get_geolocation' ), 10, 2 );
47
-
48
-		// Handle maxmind key updates.
49
-		add_filter( 'wpinv_settings_sanitize_maxmind_license_key', array( $this, 'handle_key_updates' ) );
50
-
51
-	}
52
-
53
-	/**
54
-	 * Get database service.
55
-	 *
56
-	 * @return GetPaid_MaxMind_Database_Service|null
57
-	 */
58
-	public function get_database_service() {
59
-		return $this->database_service;
60
-	}
61
-
62
-	/**
63
-	 * Checks to make sure that the license key is valid.
64
-	 *
65
-	 * @param string $license_key The new license key.
66
-	 * @return string
67
-	 */
68
-	public function handle_key_updates( $license_key ) {
69
-
70
-		// Trim whitespaces and strip slashes.
71
-		$license_key = trim( $license_key );
72
-
73
-		// Abort if the license key is empty or unchanged.
74
-		if ( empty( $license_key ) ) {
75
-			return $license_key;
76
-		}
77
-
78
-		// Abort if a database exists and the license key is unchaged.
79
-		if ( file_exists( $this->database_service->get_database_path() && $license_key == wpinv_get_option( 'maxmind_license_key' ) ) ) {
80
-			return $license_key;
81
-		}
82
-
83
-		// Check the license key by attempting to download the Geolocation database.
84
-		$tmp_database_path = $this->database_service->download_database( $license_key );
85
-		if ( is_wp_error( $tmp_database_path ) ) {
86
-			getpaid_admin()->show_error( $tmp_database_path->get_error_message() );
87
-			return $license_key;
88
-		}
89
-
90
-		$this->update_database( /** @scrutinizer ignore-type */ $tmp_database_path );
91
-
92
-		return $license_key;
93
-	}
94
-
95
-	/**
96
-	 * Updates the database used for geolocation queries.
97
-	 *
98
-	 * @param string $tmp_database_path Temporary database path.
99
-	 */
100
-	public function update_database( $tmp_database_path = null ) {
101
-
102
-		// Allow us to easily interact with the filesystem.
103
-		require_once ABSPATH . 'wp-admin/includes/file.php';
104
-		WP_Filesystem();
105
-		global $wp_filesystem;
106
-
107
-		// Remove any existing archives to comply with the MaxMind TOS.
108
-		$target_database_path = $this->database_service->get_database_path();
109
-
110
-		// If there's no database path, we can't store the database.
111
-		if ( empty( $target_database_path ) ) {
112
-			return;
113
-		}
114
-
115
-		if ( $wp_filesystem->exists( $target_database_path ) ) {
116
-			$wp_filesystem->delete( $target_database_path );
117
-		}
118
-
119
-		// We can't download a database if there's no license key configured.
120
-		$license_key = wpinv_get_option( 'maxmind_license_key' );
121
-		if ( empty( $license_key ) ) {
122
-			return;
123
-		}
124
-
125
-		if ( empty( $tmp_database_path ) ) {
126
-			$tmp_database_path = $this->database_service->download_database( $license_key );
127
-		}
128
-
129
-		if ( is_wp_error( $tmp_database_path ) ) {
130
-			wpinv_error_log( $tmp_database_path->get_error_message() );
131
-			return;
132
-		}
133
-
134
-		// Move the new database into position.
135
-		$wp_filesystem->move( $tmp_database_path, $target_database_path, true );
136
-		$wp_filesystem->delete( dirname( $tmp_database_path ) );
137
-	}
138
-
139
-	/**
140
-	 * Performs a geolocation lookup against the MaxMind database for the given IP address.
141
-	 *
142
-	 * @param array  $data       Geolocation data.
143
-	 * @param string $ip_address The IP address to geolocate.
144
-	 * @return array Geolocation including country code, state, city and postcode based on an IP address.
145
-	 */
146
-	public function get_geolocation( $data, $ip_address ) {
147
-
148
-		if ( ! empty( $data['country'] ) || empty( $ip_address ) ) {
149
-			return $data;
150
-		}
151
-
152
-		$country_code = $this->database_service->get_iso_country_code_for_ip( $ip_address );
153
-
154
-		return array(
155
-			'country'  => $country_code,
156
-			'state'    => '',
157
-			'city'     => '',
158
-			'postcode' => '',
159
-		);
160
-
161
-	}
162
-
163
-	/**
164
-	 * Fetches the prefix for the MaxMind database file.
165
-	 *
166
-	 * @return string
167
-	 */
168
-	private function get_database_prefix() {
169
-
170
-		$prefix = get_option( 'wpinv_maxmind_database_prefix' );
171
-
172
-		if ( empty( $prefix ) ) {
173
-			$prefix = md5( uniqid( 'wpinv' ) );
174
-			update_option( 'wpinv_maxmind_database_prefix', $prefix );
175
-		}
176
-
177
-		return $prefix;
178
-	}
19
+    /**
20
+     * The service responsible for interacting with the MaxMind database.
21
+     *
22
+     * @var GetPaid_MaxMind_Database_Service
23
+     */
24
+    private $database_service;
25
+
26
+    /**
27
+     * Initialize the integration.
28
+     */
29
+    public function __construct() {
30
+
31
+        /**
32
+         * Supports overriding the database service to be used.
33
+         *
34
+         * @since 1.0.19
35
+         * @return mixed|null The geolocation database service.
36
+         */
37
+        $this->database_service = apply_filters( 'getpaid_maxmind_geolocation_database_service', null );
38
+        if ( null === $this->database_service ) {
39
+            $this->database_service = new GetPaid_MaxMind_Database_Service( $this->get_database_prefix() );
40
+        }
41
+
42
+        // Bind to the scheduled updater action.
43
+        add_action( 'getpaid_update_geoip_databases', array( $this, 'update_database' ) );
44
+
45
+        // Bind to the geolocation filter for MaxMind database lookups.
46
+        add_filter( 'getpaid_get_geolocation', array( $this, 'get_geolocation' ), 10, 2 );
47
+
48
+        // Handle maxmind key updates.
49
+        add_filter( 'wpinv_settings_sanitize_maxmind_license_key', array( $this, 'handle_key_updates' ) );
50
+
51
+    }
52
+
53
+    /**
54
+     * Get database service.
55
+     *
56
+     * @return GetPaid_MaxMind_Database_Service|null
57
+     */
58
+    public function get_database_service() {
59
+        return $this->database_service;
60
+    }
61
+
62
+    /**
63
+     * Checks to make sure that the license key is valid.
64
+     *
65
+     * @param string $license_key The new license key.
66
+     * @return string
67
+     */
68
+    public function handle_key_updates( $license_key ) {
69
+
70
+        // Trim whitespaces and strip slashes.
71
+        $license_key = trim( $license_key );
72
+
73
+        // Abort if the license key is empty or unchanged.
74
+        if ( empty( $license_key ) ) {
75
+            return $license_key;
76
+        }
77
+
78
+        // Abort if a database exists and the license key is unchaged.
79
+        if ( file_exists( $this->database_service->get_database_path() && $license_key == wpinv_get_option( 'maxmind_license_key' ) ) ) {
80
+            return $license_key;
81
+        }
82
+
83
+        // Check the license key by attempting to download the Geolocation database.
84
+        $tmp_database_path = $this->database_service->download_database( $license_key );
85
+        if ( is_wp_error( $tmp_database_path ) ) {
86
+            getpaid_admin()->show_error( $tmp_database_path->get_error_message() );
87
+            return $license_key;
88
+        }
89
+
90
+        $this->update_database( /** @scrutinizer ignore-type */ $tmp_database_path );
91
+
92
+        return $license_key;
93
+    }
94
+
95
+    /**
96
+     * Updates the database used for geolocation queries.
97
+     *
98
+     * @param string $tmp_database_path Temporary database path.
99
+     */
100
+    public function update_database( $tmp_database_path = null ) {
101
+
102
+        // Allow us to easily interact with the filesystem.
103
+        require_once ABSPATH . 'wp-admin/includes/file.php';
104
+        WP_Filesystem();
105
+        global $wp_filesystem;
106
+
107
+        // Remove any existing archives to comply with the MaxMind TOS.
108
+        $target_database_path = $this->database_service->get_database_path();
109
+
110
+        // If there's no database path, we can't store the database.
111
+        if ( empty( $target_database_path ) ) {
112
+            return;
113
+        }
114
+
115
+        if ( $wp_filesystem->exists( $target_database_path ) ) {
116
+            $wp_filesystem->delete( $target_database_path );
117
+        }
118
+
119
+        // We can't download a database if there's no license key configured.
120
+        $license_key = wpinv_get_option( 'maxmind_license_key' );
121
+        if ( empty( $license_key ) ) {
122
+            return;
123
+        }
124
+
125
+        if ( empty( $tmp_database_path ) ) {
126
+            $tmp_database_path = $this->database_service->download_database( $license_key );
127
+        }
128
+
129
+        if ( is_wp_error( $tmp_database_path ) ) {
130
+            wpinv_error_log( $tmp_database_path->get_error_message() );
131
+            return;
132
+        }
133
+
134
+        // Move the new database into position.
135
+        $wp_filesystem->move( $tmp_database_path, $target_database_path, true );
136
+        $wp_filesystem->delete( dirname( $tmp_database_path ) );
137
+    }
138
+
139
+    /**
140
+     * Performs a geolocation lookup against the MaxMind database for the given IP address.
141
+     *
142
+     * @param array  $data       Geolocation data.
143
+     * @param string $ip_address The IP address to geolocate.
144
+     * @return array Geolocation including country code, state, city and postcode based on an IP address.
145
+     */
146
+    public function get_geolocation( $data, $ip_address ) {
147
+
148
+        if ( ! empty( $data['country'] ) || empty( $ip_address ) ) {
149
+            return $data;
150
+        }
151
+
152
+        $country_code = $this->database_service->get_iso_country_code_for_ip( $ip_address );
153
+
154
+        return array(
155
+            'country'  => $country_code,
156
+            'state'    => '',
157
+            'city'     => '',
158
+            'postcode' => '',
159
+        );
160
+
161
+    }
162
+
163
+    /**
164
+     * Fetches the prefix for the MaxMind database file.
165
+     *
166
+     * @return string
167
+     */
168
+    private function get_database_prefix() {
169
+
170
+        $prefix = get_option( 'wpinv_maxmind_database_prefix' );
171
+
172
+        if ( empty( $prefix ) ) {
173
+            $prefix = md5( uniqid( 'wpinv' ) );
174
+            update_option( 'wpinv_maxmind_database_prefix', $prefix );
175
+        }
176
+
177
+        return $prefix;
178
+    }
179 179
 
180 180
 }
Please login to merge, or discard this patch.
Spacing   +34 added lines, -34 removed lines patch added patch discarded remove patch
@@ -7,7 +7,7 @@  discard block
 block discarded – undo
7 7
  *
8 8
  */
9 9
 
10
-defined( 'ABSPATH' ) || exit;
10
+defined('ABSPATH') || exit;
11 11
 
12 12
 /**
13 13
  * Uses MaxMind for Geolocation
@@ -34,19 +34,19 @@  discard block
 block discarded – undo
34 34
 		 * @since 1.0.19
35 35
 		 * @return mixed|null The geolocation database service.
36 36
 		 */
37
-		$this->database_service = apply_filters( 'getpaid_maxmind_geolocation_database_service', null );
38
-		if ( null === $this->database_service ) {
39
-			$this->database_service = new GetPaid_MaxMind_Database_Service( $this->get_database_prefix() );
37
+		$this->database_service = apply_filters('getpaid_maxmind_geolocation_database_service', null);
38
+		if (null === $this->database_service) {
39
+			$this->database_service = new GetPaid_MaxMind_Database_Service($this->get_database_prefix());
40 40
 		}
41 41
 
42 42
 		// Bind to the scheduled updater action.
43
-		add_action( 'getpaid_update_geoip_databases', array( $this, 'update_database' ) );
43
+		add_action('getpaid_update_geoip_databases', array($this, 'update_database'));
44 44
 
45 45
 		// Bind to the geolocation filter for MaxMind database lookups.
46
-		add_filter( 'getpaid_get_geolocation', array( $this, 'get_geolocation' ), 10, 2 );
46
+		add_filter('getpaid_get_geolocation', array($this, 'get_geolocation'), 10, 2);
47 47
 
48 48
 		// Handle maxmind key updates.
49
-		add_filter( 'wpinv_settings_sanitize_maxmind_license_key', array( $this, 'handle_key_updates' ) );
49
+		add_filter('wpinv_settings_sanitize_maxmind_license_key', array($this, 'handle_key_updates'));
50 50
 
51 51
 	}
52 52
 
@@ -65,29 +65,29 @@  discard block
 block discarded – undo
65 65
 	 * @param string $license_key The new license key.
66 66
 	 * @return string
67 67
 	 */
68
-	public function handle_key_updates( $license_key ) {
68
+	public function handle_key_updates($license_key) {
69 69
 
70 70
 		// Trim whitespaces and strip slashes.
71
-		$license_key = trim( $license_key );
71
+		$license_key = trim($license_key);
72 72
 
73 73
 		// Abort if the license key is empty or unchanged.
74
-		if ( empty( $license_key ) ) {
74
+		if (empty($license_key)) {
75 75
 			return $license_key;
76 76
 		}
77 77
 
78 78
 		// Abort if a database exists and the license key is unchaged.
79
-		if ( file_exists( $this->database_service->get_database_path() && $license_key == wpinv_get_option( 'maxmind_license_key' ) ) ) {
79
+		if (file_exists($this->database_service->get_database_path() && $license_key == wpinv_get_option('maxmind_license_key'))) {
80 80
 			return $license_key;
81 81
 		}
82 82
 
83 83
 		// Check the license key by attempting to download the Geolocation database.
84
-		$tmp_database_path = $this->database_service->download_database( $license_key );
85
-		if ( is_wp_error( $tmp_database_path ) ) {
86
-			getpaid_admin()->show_error( $tmp_database_path->get_error_message() );
84
+		$tmp_database_path = $this->database_service->download_database($license_key);
85
+		if (is_wp_error($tmp_database_path)) {
86
+			getpaid_admin()->show_error($tmp_database_path->get_error_message());
87 87
 			return $license_key;
88 88
 		}
89 89
 
90
-		$this->update_database( /** @scrutinizer ignore-type */ $tmp_database_path );
90
+		$this->update_database(/** @scrutinizer ignore-type */ $tmp_database_path);
91 91
 
92 92
 		return $license_key;
93 93
 	}
@@ -97,7 +97,7 @@  discard block
 block discarded – undo
97 97
 	 *
98 98
 	 * @param string $tmp_database_path Temporary database path.
99 99
 	 */
100
-	public function update_database( $tmp_database_path = null ) {
100
+	public function update_database($tmp_database_path = null) {
101 101
 
102 102
 		// Allow us to easily interact with the filesystem.
103 103
 		require_once ABSPATH . 'wp-admin/includes/file.php';
@@ -108,32 +108,32 @@  discard block
 block discarded – undo
108 108
 		$target_database_path = $this->database_service->get_database_path();
109 109
 
110 110
 		// If there's no database path, we can't store the database.
111
-		if ( empty( $target_database_path ) ) {
111
+		if (empty($target_database_path)) {
112 112
 			return;
113 113
 		}
114 114
 
115
-		if ( $wp_filesystem->exists( $target_database_path ) ) {
116
-			$wp_filesystem->delete( $target_database_path );
115
+		if ($wp_filesystem->exists($target_database_path)) {
116
+			$wp_filesystem->delete($target_database_path);
117 117
 		}
118 118
 
119 119
 		// We can't download a database if there's no license key configured.
120
-		$license_key = wpinv_get_option( 'maxmind_license_key' );
121
-		if ( empty( $license_key ) ) {
120
+		$license_key = wpinv_get_option('maxmind_license_key');
121
+		if (empty($license_key)) {
122 122
 			return;
123 123
 		}
124 124
 
125
-		if ( empty( $tmp_database_path ) ) {
126
-			$tmp_database_path = $this->database_service->download_database( $license_key );
125
+		if (empty($tmp_database_path)) {
126
+			$tmp_database_path = $this->database_service->download_database($license_key);
127 127
 		}
128 128
 
129
-		if ( is_wp_error( $tmp_database_path ) ) {
130
-			wpinv_error_log( $tmp_database_path->get_error_message() );
129
+		if (is_wp_error($tmp_database_path)) {
130
+			wpinv_error_log($tmp_database_path->get_error_message());
131 131
 			return;
132 132
 		}
133 133
 
134 134
 		// Move the new database into position.
135
-		$wp_filesystem->move( $tmp_database_path, $target_database_path, true );
136
-		$wp_filesystem->delete( dirname( $tmp_database_path ) );
135
+		$wp_filesystem->move($tmp_database_path, $target_database_path, true);
136
+		$wp_filesystem->delete(dirname($tmp_database_path));
137 137
 	}
138 138
 
139 139
 	/**
@@ -143,13 +143,13 @@  discard block
 block discarded – undo
143 143
 	 * @param string $ip_address The IP address to geolocate.
144 144
 	 * @return array Geolocation including country code, state, city and postcode based on an IP address.
145 145
 	 */
146
-	public function get_geolocation( $data, $ip_address ) {
146
+	public function get_geolocation($data, $ip_address) {
147 147
 
148
-		if ( ! empty( $data['country'] ) || empty( $ip_address ) ) {
148
+		if (!empty($data['country']) || empty($ip_address)) {
149 149
 			return $data;
150 150
 		}
151 151
 
152
-		$country_code = $this->database_service->get_iso_country_code_for_ip( $ip_address );
152
+		$country_code = $this->database_service->get_iso_country_code_for_ip($ip_address);
153 153
 
154 154
 		return array(
155 155
 			'country'  => $country_code,
@@ -167,11 +167,11 @@  discard block
 block discarded – undo
167 167
 	 */
168 168
 	private function get_database_prefix() {
169 169
 
170
-		$prefix = get_option( 'wpinv_maxmind_database_prefix' );
170
+		$prefix = get_option('wpinv_maxmind_database_prefix');
171 171
 
172
-		if ( empty( $prefix ) ) {
173
-			$prefix = md5( uniqid( 'wpinv' ) );
174
-			update_option( 'wpinv_maxmind_database_prefix', $prefix );
172
+		if (empty($prefix)) {
173
+			$prefix = md5(uniqid('wpinv'));
174
+			update_option('wpinv_maxmind_database_prefix', $prefix);
175 175
 		}
176 176
 
177 177
 		return $prefix;
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();
@@ -85,12 +85,12 @@  discard block
 block discarded – undo
85 85
     }
86 86
 
87 87
     /**
88
-	 * (Maybe) renews a manual subscription profile.
89
-	 *
90
-	 *
88
+     * (Maybe) renews a manual subscription profile.
89
+     *
90
+     *
91 91
      * @param WPInv_Subscription $subscription
92
-	 */
93
-	public function maybe_renew_subscription( $subscription ) {
92
+     */
93
+    public function maybe_renew_subscription( $subscription ) {
94 94
 
95 95
         // Ensure its our subscription && it's active.
96 96
         if ( $this->id == $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) {
@@ -110,13 +110,13 @@  discard block
 block discarded – undo
110 110
     }
111 111
 
112 112
     /**
113
-	 * Processes invoice addons.
114
-	 *
115
-	 * @param WPInv_Invoice $invoice
116
-	 * @param GetPaid_Form_Item[] $items
117
-	 * @return WPInv_Invoice
118
-	 */
119
-	public function process_addons( $invoice, $items ) {
113
+     * Processes invoice addons.
114
+     *
115
+     * @param WPInv_Invoice $invoice
116
+     * @param GetPaid_Form_Item[] $items
117
+     * @return WPInv_Invoice
118
+     */
119
+    public function process_addons( $invoice, $items ) {
120 120
 
121 121
         foreach ( $items as $item ) {
122 122
             $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,25 +54,25 @@  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
             }
@@ -80,7 +80,7 @@  discard block
 block discarded – undo
80 80
         }
81 81
 
82 82
         // Send to the success page.
83
-        wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) );
83
+        wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key()));
84 84
 
85 85
     }
86 86
 
@@ -90,10 +90,10 @@  discard block
 block discarded – undo
90 90
 	 *
91 91
      * @param WPInv_Subscription $subscription
92 92
 	 */
93
-	public function maybe_renew_subscription( $subscription ) {
93
+	public function maybe_renew_subscription($subscription) {
94 94
 
95 95
         // Ensure its our subscription && it's active.
96
-        if ( $this->id == $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) {
96
+        if ($this->id == $subscription->get_gateway() && $subscription->has_status('active trialling')) {
97 97
 
98 98
             // Renew the subscription.
99 99
             $subscription->add_payment(
@@ -116,10 +116,10 @@  discard block
 block discarded – undo
116 116
 	 * @param GetPaid_Form_Item[] $items
117 117
 	 * @return WPInv_Invoice
118 118
 	 */
119
-	public function process_addons( $invoice, $items ) {
119
+	public function process_addons($invoice, $items) {
120 120
 
121
-        foreach ( $items as $item ) {
122
-            $invoice->add_item( $item );
121
+        foreach ($items as $item) {
122
+            $invoice->add_item($item);
123 123
         }
124 124
 
125 125
         $invoice->recalculate_total();
Please login to merge, or discard this patch.
includes/class-wpinv-addons.php 3 patches
Braces   +11 added lines, -12 removed lines patch added patch discarded remove patch
@@ -45,8 +45,7 @@  discard block
 block discarded – undo
45 45
 
46 46
 		if($section_id=='recommended_plugins'){
47 47
 			$section_data->products = self::get_recommend_wp_plugins_edd_formatted();
48
-		}
49
-		elseif ( ! empty( $section ) ) {
48
+		} elseif ( ! empty( $section ) ) {
50 49
 			if ( false === ( $section_data = get_transient( 'wpi_addons_section_' . $section_id ) ) ) { //@todo restore after testing
51 50
 			//if ( 1==1) {
52 51
 
@@ -119,14 +118,14 @@  discard block
 block discarded – undo
119 118
 			$status = install_plugin_install_status(array("slug"=>$button_args['slug'],"version"=>""));
120 119
 			$button_args['install_status'] = isset($status['status']) ? $status['status'] : 'install';
121 120
 			$button_args['file'] = isset($status['file']) ? $status['file'] : '';
122
-		}elseif( ($current_tab == 'addons' || $current_tab =='gateways') && isset($addon->info->id) && $addon->info->id){
121
+		} elseif( ($current_tab == 'addons' || $current_tab =='gateways') && isset($addon->info->id) && $addon->info->id){
123 122
 			include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api..
124 123
 			if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;}
125 124
 			$status = self::install_plugin_install_status($addon);
126 125
 			$button_args['file'] = isset($status['file']) ? $status['file'] : '';
127 126
 			if(isset($status['status'])){$button_args['install_status'] = $status['status'];}
128 127
 			$button_args['update_url'] = "https://wpinvoicing.com";
129
-		}elseif($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) {
128
+		} elseif($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) {
130 129
 			if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;}
131 130
 			$button_args['installed'] = self::is_theme_installed($addon);
132 131
 			if(!in_array($button_args['slug'],$wp_org_themes)){
@@ -139,7 +138,7 @@  discard block
 block discarded – undo
139 138
 			if(is_object($addon->pricing)){
140 139
 				$prices = (Array)$addon->pricing;
141 140
 				$button_args['price'] = reset($prices);
142
-			}elseif(isset($addon->pricing)){
141
+			} elseif(isset($addon->pricing)){
143 142
 				$button_args['price'] = $addon->pricing;
144 143
 			}
145 144
 		}
@@ -160,7 +159,7 @@  discard block
 block discarded – undo
160 159
 		if($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')){
161 160
 			if($button_args['type'] != 'themes'){
162 161
 				$button_args['active'] = is_plugin_active($button_args['file']);
163
-			}else{
162
+			} else{
164 163
 				$button_args['active'] = self::is_theme_active($addon);
165 164
 			}
166 165
 		}
@@ -169,27 +168,27 @@  discard block
 block discarded – undo
169 168
 		if($button_args['active']){
170 169
 			$button_args['button_text'] = __('Active','invoicing');
171 170
 			$button_args['class'] = ' button-secondary disabled ';
172
-		}elseif($button_args['installed']){
171
+		} elseif($button_args['installed']){
173 172
 			$button_args['button_text'] = __('Activate','invoicing');
174 173
 
175 174
 			if($button_args['type'] != 'themes'){
176 175
 				if ( current_user_can( 'manage_options' ) ) {
177 176
 					$button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin='.$button_args['file']), 'activate-plugin_' . $button_args['file']);
178
-				}else{
177
+				} else{
179 178
 					$button_args['url'] = '#';
180 179
 				}
181
-			}else{
180
+			} else{
182 181
 				if ( current_user_can( 'switch_themes' ) ) {
183 182
 					$button_args['url'] = self::get_theme_activation_url($addon);
184
-				}else{
183
+				} else{
185 184
 					$button_args['url'] = '#';
186 185
 				}
187 186
 			}
188 187
 
189
-		}else{
188
+		} else{
190 189
 			if($button_args['type'] == 'recommended_plugins'){
191 190
 				$button_args['button_text'] = __('Install','invoicing');
192
-			}else{
191
+			} else{
193 192
 				$button_args['button_text'] = __('Get it','invoicing');
194 193
 
195 194
 				/*if($button_args['type'] == 'themes' && in_array($button_args['slug'],$wp_org_themes) ){
Please login to merge, or discard this patch.
Indentation   +212 added lines, -212 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  *
7 7
  */
8 8
 if ( ! defined( 'ABSPATH' ) ) {
9
-	exit;
9
+    exit;
10 10
 }
11 11
 
12 12
 /**
@@ -15,85 +15,85 @@  discard block
 block discarded – undo
15 15
 class WPInv_Admin_Addons extends Ayecode_Addons {
16 16
 
17 17
 
18
-	/**
19
-	 * Get the extensions page tabs.
20
-	 *
21
-	 * @return array of tabs.
22
-	 */
23
-	public function get_tabs(){
24
-		$tabs = array(
25
-			'addons' => __("Addons", "invoicing"),
18
+    /**
19
+     * Get the extensions page tabs.
20
+     *
21
+     * @return array of tabs.
22
+     */
23
+    public function get_tabs(){
24
+        $tabs = array(
25
+            'addons' => __("Addons", "invoicing"),
26 26
             'gateways' => __("Payment Gateways", "invoicing"),
27 27
             'recommended_plugins' => __("Recommended plugins", "invoicing"),
28 28
             'membership' => __("Membership", "invoicing"),
29
-		);
30
-
31
-		return $tabs;
32
-	}
33
-
34
-	/**
35
-	 * Get section content for the addons screen.
36
-	 *
37
-	 * @param  string $section_id
38
-	 *
39
-	 * @return array
40
-	 */
41
-	public function get_section_data( $section_id ) {
42
-		$section      = self::get_tab( $section_id );
43
-		$api_url = "https://wpinvoicing.com/edd-api/v2/products/";
44
-		$section_data = new stdClass();
45
-
46
-		if($section_id=='recommended_plugins'){
47
-			$section_data->products = self::get_recommend_wp_plugins_edd_formatted();
48
-		}
49
-		elseif ( ! empty( $section ) ) {
50
-			if ( false === ( $section_data = get_transient( 'wpi_addons_section_' . $section_id ) ) ) { //@todo restore after testing
51
-			//if ( 1==1) {
52
-
53
-				$query_args = array( 'category' => $section_id, 'number' => 100);
54
-				$query_args = apply_filters('wpeu_edd_api_query_args',$query_args,$api_url,$section_id);
55
-
56
-				$raw_section = wp_safe_remote_get( esc_url_raw( add_query_arg($query_args ,$api_url) ), array( 'user-agent' => 'Invoicing Addons Page','timeout'     => 15, ) );
57
-
58
-				if ( ! is_wp_error( $raw_section ) ) {
59
-					$section_data = json_decode( wp_remote_retrieve_body( $raw_section ) );
60
-
61
-					if ( ! empty( $section_data->products ) ) {
62
-						set_transient( 'wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS );
63
-					}
64
-				}
65
-			}
66
-
67
-		}
68
-
69
-		$products = isset($section_data->products) ? $section_data->products : array();
70
-		if ( 'addons' == $section_id ) {
71
-
72
-			$quotes = new stdClass();
73
-			$quotes->info = new stdClass();
74
-			$quotes->info->id = '';
75
-			$quotes->info->slug = 'invoicing-quotes';
76
-			$quotes->info->title = __( 'Quotes', 'invoicing' );
77
-			$quotes->info->excerpt = __( 'Create quotes and estimates', 'invoicing' );
78
-			$quotes->info->link = 'https://wordpress.org/plugins/invoicing-quotes/';
79
-			$quotes->info->thumbnail = WPINV_PLUGIN_URL . 'assets/images/Quotes-1-768x384.png';
80
-
81
-			$products[] = $quotes;
82
-		}
29
+        );
30
+
31
+        return $tabs;
32
+    }
33
+
34
+    /**
35
+     * Get section content for the addons screen.
36
+     *
37
+     * @param  string $section_id
38
+     *
39
+     * @return array
40
+     */
41
+    public function get_section_data( $section_id ) {
42
+        $section      = self::get_tab( $section_id );
43
+        $api_url = "https://wpinvoicing.com/edd-api/v2/products/";
44
+        $section_data = new stdClass();
45
+
46
+        if($section_id=='recommended_plugins'){
47
+            $section_data->products = self::get_recommend_wp_plugins_edd_formatted();
48
+        }
49
+        elseif ( ! empty( $section ) ) {
50
+            if ( false === ( $section_data = get_transient( 'wpi_addons_section_' . $section_id ) ) ) { //@todo restore after testing
51
+            //if ( 1==1) {
52
+
53
+                $query_args = array( 'category' => $section_id, 'number' => 100);
54
+                $query_args = apply_filters('wpeu_edd_api_query_args',$query_args,$api_url,$section_id);
55
+
56
+                $raw_section = wp_safe_remote_get( esc_url_raw( add_query_arg($query_args ,$api_url) ), array( 'user-agent' => 'Invoicing Addons Page','timeout'     => 15, ) );
57
+
58
+                if ( ! is_wp_error( $raw_section ) ) {
59
+                    $section_data = json_decode( wp_remote_retrieve_body( $raw_section ) );
60
+
61
+                    if ( ! empty( $section_data->products ) ) {
62
+                        set_transient( 'wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS );
63
+                    }
64
+                }
65
+            }
66
+
67
+        }
68
+
69
+        $products = isset($section_data->products) ? $section_data->products : array();
70
+        if ( 'addons' == $section_id ) {
71
+
72
+            $quotes = new stdClass();
73
+            $quotes->info = new stdClass();
74
+            $quotes->info->id = '';
75
+            $quotes->info->slug = 'invoicing-quotes';
76
+            $quotes->info->title = __( 'Quotes', 'invoicing' );
77
+            $quotes->info->excerpt = __( 'Create quotes and estimates', 'invoicing' );
78
+            $quotes->info->link = 'https://wordpress.org/plugins/invoicing-quotes/';
79
+            $quotes->info->thumbnail = WPINV_PLUGIN_URL . 'assets/images/Quotes-1-768x384.png';
80
+
81
+            $products[] = $quotes;
82
+        }
83 83
 		
84
-		return apply_filters( 'wpi_addons_section_data', $products, $section_id );
85
-	}
86
-
87
-	/**
88
-	 * Outputs a button.
89
-	 *ccc
90
-	 * @param string $url
91
-	 * @param string $text
92
-	 * @param string $theme
93
-	 * @param string $plugin
94
-	 */
95
-	public function output_button( $addon ) {
96
-		$current_tab     = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] );
84
+        return apply_filters( 'wpi_addons_section_data', $products, $section_id );
85
+    }
86
+
87
+    /**
88
+     * Outputs a button.
89
+     *ccc
90
+     * @param string $url
91
+     * @param string $text
92
+     * @param string $theme
93
+     * @param string $plugin
94
+     */
95
+    public function output_button( $addon ) {
96
+        $current_tab     = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] );
97 97
 //		$button_text = __('Free','invoicing');
98 98
 //		$licensing = false;
99 99
 //		$installed = false;
@@ -105,123 +105,123 @@  discard block
 block discarded – undo
105 105
 //		$install_status = 'get';
106 106
 //		$onclick = '';
107 107
 
108
-		$wp_org_themes = array('supreme-directory','directory-starter');
109
-
110
-		$button_args = array(
111
-			'type' => ($current_tab == 'addons' || $current_tab =='gateways') ? 'addons' : $current_tab,
112
-			'id' => isset($addon->info->id) ? absint($addon->info->id) : '',
113
-			'title' => isset($addon->info->title) ? $addon->info->title : '',
114
-			'button_text' => __('Free','invoicing'),
115
-			'price_text' => __('Free','invoicing'),
116
-			'link' => isset($addon->info->link) ? $addon->info->link : '', // link to product
117
-			'url' => isset($addon->info->link) ? $addon->info->link : '', // button url
118
-			'class' => 'button-primary',
119
-			'install_status' => 'get',
120
-			'installed' => false,
121
-			'price' => '',
122
-			'licensing' => isset($addon->licensing->enabled) && $addon->licensing->enabled ? true : false,
123
-			'license' => isset($addon->licensing->license) && $addon->licensing->license ? $addon->licensing->license : '',
124
-			'onclick' => '',
125
-			'slug' => isset($addon->info->slug) ? $addon->info->slug : '',
126
-			'active' => false,
127
-			'file' => '',
128
-			'update_url' => '',
129
-		);
130
-
131
-		if( 'invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ( $current_tab == 'recommended_plugins' && isset($addon->info->slug) && $addon->info->slug )){
132
-			include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api..
133
-			$status = install_plugin_install_status(array("slug"=>$button_args['slug'],"version"=>""));
134
-			$button_args['install_status'] = isset($status['status']) ? $status['status'] : 'install';
135
-			$button_args['file'] = isset($status['file']) ? $status['file'] : '';
136
-		}elseif( ($current_tab == 'addons' || $current_tab =='gateways') && isset($addon->info->id) && $addon->info->id){
137
-			include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api..
138
-			if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;}
139
-			$status = self::install_plugin_install_status($addon);
140
-			$button_args['file'] = isset($status['file']) ? $status['file'] : '';
141
-			if(isset($status['status'])){$button_args['install_status'] = $status['status'];}
142
-			$button_args['update_url'] = "https://wpinvoicing.com";
143
-		}elseif($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) {
144
-			if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;}
145
-			$button_args['installed'] = self::is_theme_installed($addon);
146
-			if(!in_array($button_args['slug'],$wp_org_themes)){
147
-				$button_args['update_url'] = "https://wpinvoicing.com";
148
-			}
149
-		}
150
-
151
-		// set price
152
-		if(isset($addon->pricing) && !empty($addon->pricing)){
153
-			if(is_object($addon->pricing)){
154
-				$prices = (Array)$addon->pricing;
155
-				$button_args['price'] = reset($prices);
156
-			}elseif(isset($addon->pricing)){
157
-				$button_args['price'] = $addon->pricing;
158
-			}
159
-		}
160
-
161
-		// set price text
162
-		if( $button_args['price'] && $button_args['price'] != '0.00' ){
163
-			$button_args['price_text'] = sprintf( __('From: $%d', 'invoicing'), $button_args['price']);
164
-		}
165
-
166
-
167
-		// set if installed
168
-		if(in_array($button_args['install_status'], array('installed','latest_installed','update_available','newer_installed'))){
169
-			$button_args['installed'] = true;
170
-		}
108
+        $wp_org_themes = array('supreme-directory','directory-starter');
109
+
110
+        $button_args = array(
111
+            'type' => ($current_tab == 'addons' || $current_tab =='gateways') ? 'addons' : $current_tab,
112
+            'id' => isset($addon->info->id) ? absint($addon->info->id) : '',
113
+            'title' => isset($addon->info->title) ? $addon->info->title : '',
114
+            'button_text' => __('Free','invoicing'),
115
+            'price_text' => __('Free','invoicing'),
116
+            'link' => isset($addon->info->link) ? $addon->info->link : '', // link to product
117
+            'url' => isset($addon->info->link) ? $addon->info->link : '', // button url
118
+            'class' => 'button-primary',
119
+            'install_status' => 'get',
120
+            'installed' => false,
121
+            'price' => '',
122
+            'licensing' => isset($addon->licensing->enabled) && $addon->licensing->enabled ? true : false,
123
+            'license' => isset($addon->licensing->license) && $addon->licensing->license ? $addon->licensing->license : '',
124
+            'onclick' => '',
125
+            'slug' => isset($addon->info->slug) ? $addon->info->slug : '',
126
+            'active' => false,
127
+            'file' => '',
128
+            'update_url' => '',
129
+        );
130
+
131
+        if( 'invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ( $current_tab == 'recommended_plugins' && isset($addon->info->slug) && $addon->info->slug )){
132
+            include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api..
133
+            $status = install_plugin_install_status(array("slug"=>$button_args['slug'],"version"=>""));
134
+            $button_args['install_status'] = isset($status['status']) ? $status['status'] : 'install';
135
+            $button_args['file'] = isset($status['file']) ? $status['file'] : '';
136
+        }elseif( ($current_tab == 'addons' || $current_tab =='gateways') && isset($addon->info->id) && $addon->info->id){
137
+            include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api..
138
+            if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;}
139
+            $status = self::install_plugin_install_status($addon);
140
+            $button_args['file'] = isset($status['file']) ? $status['file'] : '';
141
+            if(isset($status['status'])){$button_args['install_status'] = $status['status'];}
142
+            $button_args['update_url'] = "https://wpinvoicing.com";
143
+        }elseif($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) {
144
+            if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;}
145
+            $button_args['installed'] = self::is_theme_installed($addon);
146
+            if(!in_array($button_args['slug'],$wp_org_themes)){
147
+                $button_args['update_url'] = "https://wpinvoicing.com";
148
+            }
149
+        }
150
+
151
+        // set price
152
+        if(isset($addon->pricing) && !empty($addon->pricing)){
153
+            if(is_object($addon->pricing)){
154
+                $prices = (Array)$addon->pricing;
155
+                $button_args['price'] = reset($prices);
156
+            }elseif(isset($addon->pricing)){
157
+                $button_args['price'] = $addon->pricing;
158
+            }
159
+        }
160
+
161
+        // set price text
162
+        if( $button_args['price'] && $button_args['price'] != '0.00' ){
163
+            $button_args['price_text'] = sprintf( __('From: $%d', 'invoicing'), $button_args['price']);
164
+        }
165
+
166
+
167
+        // set if installed
168
+        if(in_array($button_args['install_status'], array('installed','latest_installed','update_available','newer_installed'))){
169
+            $button_args['installed'] = true;
170
+        }
171 171
 
172 172
 //		print_r($button_args);
173
-		// set if active
174
-		if($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')){
175
-			if($button_args['type'] != 'themes'){
176
-				$button_args['active'] = is_plugin_active($button_args['file']);
177
-			}else{
178
-				$button_args['active'] = self::is_theme_active($addon);
179
-			}
180
-		}
181
-
182
-		// set button text and class
183
-		if($button_args['active']){
184
-			$button_args['button_text'] = __('Active','invoicing');
185
-			$button_args['class'] = ' button-secondary disabled ';
186
-		}elseif($button_args['installed']){
187
-			$button_args['button_text'] = __('Activate','invoicing');
188
-
189
-			if($button_args['type'] != 'themes'){
190
-				if ( current_user_can( 'manage_options' ) ) {
191
-					$button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin='.$button_args['file']), 'activate-plugin_' . $button_args['file']);
192
-				}else{
193
-					$button_args['url'] = '#';
194
-				}
195
-			}else{
196
-				if ( current_user_can( 'switch_themes' ) ) {
197
-					$button_args['url'] = self::get_theme_activation_url($addon);
198
-				}else{
199
-					$button_args['url'] = '#';
200
-				}
201
-			}
202
-
203
-		}else{
204
-			if($button_args['type'] == 'recommended_plugins'){
205
-				$button_args['button_text'] = __('Install','invoicing');
206
-			}else{
207
-				$button_args['button_text'] = __('Get it','invoicing');
208
-
209
-				/*if($button_args['type'] == 'themes' && in_array($button_args['slug'],$wp_org_themes) ){
173
+        // set if active
174
+        if($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')){
175
+            if($button_args['type'] != 'themes'){
176
+                $button_args['active'] = is_plugin_active($button_args['file']);
177
+            }else{
178
+                $button_args['active'] = self::is_theme_active($addon);
179
+            }
180
+        }
181
+
182
+        // set button text and class
183
+        if($button_args['active']){
184
+            $button_args['button_text'] = __('Active','invoicing');
185
+            $button_args['class'] = ' button-secondary disabled ';
186
+        }elseif($button_args['installed']){
187
+            $button_args['button_text'] = __('Activate','invoicing');
188
+
189
+            if($button_args['type'] != 'themes'){
190
+                if ( current_user_can( 'manage_options' ) ) {
191
+                    $button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin='.$button_args['file']), 'activate-plugin_' . $button_args['file']);
192
+                }else{
193
+                    $button_args['url'] = '#';
194
+                }
195
+            }else{
196
+                if ( current_user_can( 'switch_themes' ) ) {
197
+                    $button_args['url'] = self::get_theme_activation_url($addon);
198
+                }else{
199
+                    $button_args['url'] = '#';
200
+                }
201
+            }
202
+
203
+        }else{
204
+            if($button_args['type'] == 'recommended_plugins'){
205
+                $button_args['button_text'] = __('Install','invoicing');
206
+            }else{
207
+                $button_args['button_text'] = __('Get it','invoicing');
208
+
209
+                /*if($button_args['type'] == 'themes' && in_array($button_args['slug'],$wp_org_themes) ){
210 210
 					$button_args['button_text'] = __('Install','invoicing');
211 211
 					$button_args['url'] = self::get_theme_install_url($button_args['slug']);
212 212
 					$button_args['onclick'] = 'gd_set_button_installing(this);';
213 213
 				}*/
214 214
 
215
-			}
216
-		}
215
+            }
216
+        }
217 217
 
218 218
 		
219
-		// filter the button arguments
220
-		$button_args = apply_filters('edd_api_button_args',$button_args);
219
+        // filter the button arguments
220
+        $button_args = apply_filters('edd_api_button_args',$button_args);
221 221
 //		print_r($button_args);
222
-		// set price text
223
-		if(isset($button_args['price_text'])){
224
-			?>
222
+        // set price text
223
+        if(isset($button_args['price_text'])){
224
+            ?>
225 225
 			<a
226 226
 				target="_blank"
227 227
 				class="addons-price-text"
@@ -229,9 +229,9 @@  discard block
 block discarded – undo
229 229
 				<?php echo esc_html( $button_args['price_text'] ); ?>
230 230
 			</a>
231 231
 			<?php
232
-		}
232
+        }
233 233
 
234
-		?>
234
+        ?>
235 235
 		<a
236 236
 			data-licence="<?php echo esc_attr($button_args['license']);?>"
237 237
 			data-licensing="<?php echo $button_args['licensing'] ? 1 : 0;?>"
@@ -253,33 +253,33 @@  discard block
 block discarded – undo
253 253
 		<?php
254 254
 
255 255
 
256
-	}
257
-
258
-
259
-	/**
260
-	 * Handles output of the addons page in admin.
261
-	 */
262
-	public function output() {
263
-		$tabs            = self::get_tabs();
264
-		$sections        = self::get_sections();
265
-		$theme           = wp_get_theme();
266
-		$section_keys    = array_keys( $sections );
267
-		$current_section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : current( $section_keys );
268
-		$current_tab     = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] );
269
-		include_once( WPINV_PLUGIN_DIR . '/includes/admin/html-admin-page-addons.php' );
270
-	}
271
-
272
-	/**
273
-	 * A list of recommended wp.org plugins.
274
-	 * @return array
275
-	 */
276
-	public function get_recommend_wp_plugins(){
277
-		$plugins = array(
256
+    }
257
+
258
+
259
+    /**
260
+     * Handles output of the addons page in admin.
261
+     */
262
+    public function output() {
263
+        $tabs            = self::get_tabs();
264
+        $sections        = self::get_sections();
265
+        $theme           = wp_get_theme();
266
+        $section_keys    = array_keys( $sections );
267
+        $current_section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : current( $section_keys );
268
+        $current_tab     = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] );
269
+        include_once( WPINV_PLUGIN_DIR . '/includes/admin/html-admin-page-addons.php' );
270
+    }
271
+
272
+    /**
273
+     * A list of recommended wp.org plugins.
274
+     * @return array
275
+     */
276
+    public function get_recommend_wp_plugins(){
277
+        $plugins = array(
278 278
             'invoicing-quotes' => array(
279 279
                 'url'   => 'https://wordpress.org/plugins/invoicing-quotes/',
280 280
                 'slug'   => 'invoicing-quotes',
281
-				'name'   => 'Quotes',
282
-				'thumbnail'  => 'https://ps.w.org/invoicing-quotes/assets/banner-772x250.png',
281
+                'name'   => 'Quotes',
282
+                'thumbnail'  => 'https://ps.w.org/invoicing-quotes/assets/banner-772x250.png',
283 283
                 'desc'   => __('Allows you to create quotes, send them to clients and convert them to Invoices when accepted by the customer.','invoicing'),
284 284
             ),
285 285
             'geodirectory' => array(
@@ -294,8 +294,8 @@  discard block
 block discarded – undo
294 294
                 'name'   => 'UsersWP',
295 295
                 'desc'   => __('Allow frontend user login and registration as well as have slick profile pages.','invoicing'),
296 296
             ),
297
-		);
297
+        );
298 298
 
299
-		return $plugins;
300
-	}
299
+        return $plugins;
300
+    }
301 301
 }
Please login to merge, or discard this patch.
Spacing   +88 added lines, -88 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  * All Invoicing extensions screen related functions can be found here.
6 6
  *
7 7
  */
8
-if ( ! defined( 'ABSPATH' ) ) {
8
+if (!defined('ABSPATH')) {
9 9
 	exit;
10 10
 }
11 11
 
@@ -20,7 +20,7 @@  discard block
 block discarded – undo
20 20
 	 *
21 21
 	 * @return array of tabs.
22 22
 	 */
23
-	public function get_tabs(){
23
+	public function get_tabs() {
24 24
 		$tabs = array(
25 25
 			'addons' => __("Addons", "invoicing"),
26 26
             'gateways' => __("Payment Gateways", "invoicing"),
@@ -38,28 +38,28 @@  discard block
 block discarded – undo
38 38
 	 *
39 39
 	 * @return array
40 40
 	 */
41
-	public function get_section_data( $section_id ) {
42
-		$section      = self::get_tab( $section_id );
41
+	public function get_section_data($section_id) {
42
+		$section      = self::get_tab($section_id);
43 43
 		$api_url = "https://wpinvoicing.com/edd-api/v2/products/";
44 44
 		$section_data = new stdClass();
45 45
 
46
-		if($section_id=='recommended_plugins'){
46
+		if ($section_id == 'recommended_plugins') {
47 47
 			$section_data->products = self::get_recommend_wp_plugins_edd_formatted();
48 48
 		}
49
-		elseif ( ! empty( $section ) ) {
50
-			if ( false === ( $section_data = get_transient( 'wpi_addons_section_' . $section_id ) ) ) { //@todo restore after testing
49
+		elseif (!empty($section)) {
50
+			if (false === ($section_data = get_transient('wpi_addons_section_' . $section_id))) { //@todo restore after testing
51 51
 			//if ( 1==1) {
52 52
 
53
-				$query_args = array( 'category' => $section_id, 'number' => 100);
54
-				$query_args = apply_filters('wpeu_edd_api_query_args',$query_args,$api_url,$section_id);
53
+				$query_args = array('category' => $section_id, 'number' => 100);
54
+				$query_args = apply_filters('wpeu_edd_api_query_args', $query_args, $api_url, $section_id);
55 55
 
56
-				$raw_section = wp_safe_remote_get( esc_url_raw( add_query_arg($query_args ,$api_url) ), array( 'user-agent' => 'Invoicing Addons Page','timeout'     => 15, ) );
56
+				$raw_section = wp_safe_remote_get(esc_url_raw(add_query_arg($query_args, $api_url)), array('user-agent' => 'Invoicing Addons Page', 'timeout'     => 15,));
57 57
 
58
-				if ( ! is_wp_error( $raw_section ) ) {
59
-					$section_data = json_decode( wp_remote_retrieve_body( $raw_section ) );
58
+				if (!is_wp_error($raw_section)) {
59
+					$section_data = json_decode(wp_remote_retrieve_body($raw_section));
60 60
 
61
-					if ( ! empty( $section_data->products ) ) {
62
-						set_transient( 'wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS );
61
+					if (!empty($section_data->products)) {
62
+						set_transient('wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS);
63 63
 					}
64 64
 				}
65 65
 			}
@@ -67,21 +67,21 @@  discard block
 block discarded – undo
67 67
 		}
68 68
 
69 69
 		$products = isset($section_data->products) ? $section_data->products : array();
70
-		if ( 'addons' == $section_id ) {
70
+		if ('addons' == $section_id) {
71 71
 
72 72
 			$quotes = new stdClass();
73 73
 			$quotes->info = new stdClass();
74 74
 			$quotes->info->id = '';
75 75
 			$quotes->info->slug = 'invoicing-quotes';
76
-			$quotes->info->title = __( 'Quotes', 'invoicing' );
77
-			$quotes->info->excerpt = __( 'Create quotes and estimates', 'invoicing' );
76
+			$quotes->info->title = __('Quotes', 'invoicing');
77
+			$quotes->info->excerpt = __('Create quotes and estimates', 'invoicing');
78 78
 			$quotes->info->link = 'https://wordpress.org/plugins/invoicing-quotes/';
79 79
 			$quotes->info->thumbnail = WPINV_PLUGIN_URL . 'assets/images/Quotes-1-768x384.png';
80 80
 
81 81
 			$products[] = $quotes;
82 82
 		}
83 83
 		
84
-		return apply_filters( 'wpi_addons_section_data', $products, $section_id );
84
+		return apply_filters('wpi_addons_section_data', $products, $section_id);
85 85
 	}
86 86
 
87 87
 	/**
@@ -92,8 +92,8 @@  discard block
 block discarded – undo
92 92
 	 * @param string $theme
93 93
 	 * @param string $plugin
94 94
 	 */
95
-	public function output_button( $addon ) {
96
-		$current_tab     = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] );
95
+	public function output_button($addon) {
96
+		$current_tab = empty($_GET['tab']) ? 'addons' : sanitize_title($_GET['tab']);
97 97
 //		$button_text = __('Free','invoicing');
98 98
 //		$licensing = false;
99 99
 //		$installed = false;
@@ -105,14 +105,14 @@  discard block
 block discarded – undo
105 105
 //		$install_status = 'get';
106 106
 //		$onclick = '';
107 107
 
108
-		$wp_org_themes = array('supreme-directory','directory-starter');
108
+		$wp_org_themes = array('supreme-directory', 'directory-starter');
109 109
 
110 110
 		$button_args = array(
111
-			'type' => ($current_tab == 'addons' || $current_tab =='gateways') ? 'addons' : $current_tab,
111
+			'type' => ($current_tab == 'addons' || $current_tab == 'gateways') ? 'addons' : $current_tab,
112 112
 			'id' => isset($addon->info->id) ? absint($addon->info->id) : '',
113 113
 			'title' => isset($addon->info->title) ? $addon->info->title : '',
114
-			'button_text' => __('Free','invoicing'),
115
-			'price_text' => __('Free','invoicing'),
114
+			'button_text' => __('Free', 'invoicing'),
115
+			'price_text' => __('Free', 'invoicing'),
116 116
 			'link' => isset($addon->info->link) ? $addon->info->link : '', // link to product
117 117
 			'url' => isset($addon->info->link) ? $addon->info->link : '', // button url
118 118
 			'class' => 'button-primary',
@@ -128,83 +128,83 @@  discard block
 block discarded – undo
128 128
 			'update_url' => '',
129 129
 		);
130 130
 
131
-		if( 'invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ( $current_tab == 'recommended_plugins' && isset($addon->info->slug) && $addon->info->slug )){
132
-			include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api..
133
-			$status = install_plugin_install_status(array("slug"=>$button_args['slug'],"version"=>""));
131
+		if ('invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ($current_tab == 'recommended_plugins' && isset($addon->info->slug) && $addon->info->slug)) {
132
+			include_once(ABSPATH . 'wp-admin/includes/plugin-install.php'); //for plugins_api..
133
+			$status = install_plugin_install_status(array("slug"=>$button_args['slug'], "version"=>""));
134 134
 			$button_args['install_status'] = isset($status['status']) ? $status['status'] : 'install';
135 135
 			$button_args['file'] = isset($status['file']) ? $status['file'] : '';
136
-		}elseif( ($current_tab == 'addons' || $current_tab =='gateways') && isset($addon->info->id) && $addon->info->id){
137
-			include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api..
138
-			if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;}
136
+		}elseif (($current_tab == 'addons' || $current_tab == 'gateways') && isset($addon->info->id) && $addon->info->id) {
137
+			include_once(ABSPATH . 'wp-admin/includes/plugin-install.php'); //for plugins_api..
138
+			if (!empty($addon->licensing->edd_slug)) {$button_args['slug'] = $addon->licensing->edd_slug; }
139 139
 			$status = self::install_plugin_install_status($addon);
140 140
 			$button_args['file'] = isset($status['file']) ? $status['file'] : '';
141
-			if(isset($status['status'])){$button_args['install_status'] = $status['status'];}
141
+			if (isset($status['status'])) {$button_args['install_status'] = $status['status']; }
142 142
 			$button_args['update_url'] = "https://wpinvoicing.com";
143
-		}elseif($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) {
144
-			if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;}
143
+		}elseif ($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) {
144
+			if (!empty($addon->licensing->edd_slug)) {$button_args['slug'] = $addon->licensing->edd_slug; }
145 145
 			$button_args['installed'] = self::is_theme_installed($addon);
146
-			if(!in_array($button_args['slug'],$wp_org_themes)){
146
+			if (!in_array($button_args['slug'], $wp_org_themes)) {
147 147
 				$button_args['update_url'] = "https://wpinvoicing.com";
148 148
 			}
149 149
 		}
150 150
 
151 151
 		// set price
152
-		if(isset($addon->pricing) && !empty($addon->pricing)){
153
-			if(is_object($addon->pricing)){
154
-				$prices = (Array)$addon->pricing;
152
+		if (isset($addon->pricing) && !empty($addon->pricing)) {
153
+			if (is_object($addon->pricing)) {
154
+				$prices = (Array) $addon->pricing;
155 155
 				$button_args['price'] = reset($prices);
156
-			}elseif(isset($addon->pricing)){
156
+			}elseif (isset($addon->pricing)) {
157 157
 				$button_args['price'] = $addon->pricing;
158 158
 			}
159 159
 		}
160 160
 
161 161
 		// set price text
162
-		if( $button_args['price'] && $button_args['price'] != '0.00' ){
163
-			$button_args['price_text'] = sprintf( __('From: $%d', 'invoicing'), $button_args['price']);
162
+		if ($button_args['price'] && $button_args['price'] != '0.00') {
163
+			$button_args['price_text'] = sprintf(__('From: $%d', 'invoicing'), $button_args['price']);
164 164
 		}
165 165
 
166 166
 
167 167
 		// set if installed
168
-		if(in_array($button_args['install_status'], array('installed','latest_installed','update_available','newer_installed'))){
168
+		if (in_array($button_args['install_status'], array('installed', 'latest_installed', 'update_available', 'newer_installed'))) {
169 169
 			$button_args['installed'] = true;
170 170
 		}
171 171
 
172 172
 //		print_r($button_args);
173 173
 		// set if active
174
-		if($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')){
175
-			if($button_args['type'] != 'themes'){
174
+		if ($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')) {
175
+			if ($button_args['type'] != 'themes') {
176 176
 				$button_args['active'] = is_plugin_active($button_args['file']);
177
-			}else{
177
+			} else {
178 178
 				$button_args['active'] = self::is_theme_active($addon);
179 179
 			}
180 180
 		}
181 181
 
182 182
 		// set button text and class
183
-		if($button_args['active']){
184
-			$button_args['button_text'] = __('Active','invoicing');
183
+		if ($button_args['active']) {
184
+			$button_args['button_text'] = __('Active', 'invoicing');
185 185
 			$button_args['class'] = ' button-secondary disabled ';
186
-		}elseif($button_args['installed']){
187
-			$button_args['button_text'] = __('Activate','invoicing');
186
+		}elseif ($button_args['installed']) {
187
+			$button_args['button_text'] = __('Activate', 'invoicing');
188 188
 
189
-			if($button_args['type'] != 'themes'){
190
-				if ( current_user_can( 'manage_options' ) ) {
191
-					$button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin='.$button_args['file']), 'activate-plugin_' . $button_args['file']);
192
-				}else{
189
+			if ($button_args['type'] != 'themes') {
190
+				if (current_user_can('manage_options')) {
191
+					$button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin=' . $button_args['file']), 'activate-plugin_' . $button_args['file']);
192
+				} else {
193 193
 					$button_args['url'] = '#';
194 194
 				}
195
-			}else{
196
-				if ( current_user_can( 'switch_themes' ) ) {
195
+			} else {
196
+				if (current_user_can('switch_themes')) {
197 197
 					$button_args['url'] = self::get_theme_activation_url($addon);
198
-				}else{
198
+				} else {
199 199
 					$button_args['url'] = '#';
200 200
 				}
201 201
 			}
202 202
 
203
-		}else{
204
-			if($button_args['type'] == 'recommended_plugins'){
205
-				$button_args['button_text'] = __('Install','invoicing');
206
-			}else{
207
-				$button_args['button_text'] = __('Get it','invoicing');
203
+		} else {
204
+			if ($button_args['type'] == 'recommended_plugins') {
205
+				$button_args['button_text'] = __('Install', 'invoicing');
206
+			} else {
207
+				$button_args['button_text'] = __('Get it', 'invoicing');
208 208
 
209 209
 				/*if($button_args['type'] == 'themes' && in_array($button_args['slug'],$wp_org_themes) ){
210 210
 					$button_args['button_text'] = __('Install','invoicing');
@@ -217,38 +217,38 @@  discard block
 block discarded – undo
217 217
 
218 218
 		
219 219
 		// filter the button arguments
220
-		$button_args = apply_filters('edd_api_button_args',$button_args);
220
+		$button_args = apply_filters('edd_api_button_args', $button_args);
221 221
 //		print_r($button_args);
222 222
 		// set price text
223
-		if(isset($button_args['price_text'])){
223
+		if (isset($button_args['price_text'])) {
224 224
 			?>
225 225
 			<a
226 226
 				target="_blank"
227 227
 				class="addons-price-text"
228
-				href="<?php echo esc_url( $button_args['link'] ); ?>">
229
-				<?php echo esc_html( $button_args['price_text'] ); ?>
228
+				href="<?php echo esc_url($button_args['link']); ?>">
229
+				<?php echo esc_html($button_args['price_text']); ?>
230 230
 			</a>
231 231
 			<?php
232 232
 		}
233 233
 
234 234
 		?>
235 235
 		<a
236
-			data-licence="<?php echo esc_attr($button_args['license']);?>"
237
-			data-licensing="<?php echo $button_args['licensing'] ? 1 : 0;?>"
238
-			data-title="<?php echo esc_attr($button_args['title']);?>"
239
-			data-type="<?php echo esc_attr($button_args['type']);?>"
240
-			data-text-error-message="<?php _e('Something went wrong!','invoicing');?>"
241
-			data-text-activate="<?php _e('Activate','invoicing');?>"
242
-			data-text-activating="<?php _e('Activating','invoicing');?>"
243
-			data-text-deactivate="<?php _e('Deactivate','invoicing');?>"
244
-			data-text-installed="<?php _e('Installed','invoicing');?>"
245
-			data-text-install="<?php _e('Install','invoicing');?>"
246
-			data-text-installing="<?php _e('Installing','invoicing');?>"
247
-			data-text-error="<?php _e('Error','invoicing');?>"
248
-			<?php if(!empty($button_args['onclick'])){echo " onclick='".esc_attr( $button_args['onclick'] )."' ";}?>
249
-			class="addons-button  <?php echo esc_attr( $button_args['class'] ); ?>"
250
-			href="<?php echo esc_url( $button_args['url'] ); ?>">
251
-			<?php echo esc_html( $button_args['button_text'] ); ?>
236
+			data-licence="<?php echo esc_attr($button_args['license']); ?>"
237
+			data-licensing="<?php echo $button_args['licensing'] ? 1 : 0; ?>"
238
+			data-title="<?php echo esc_attr($button_args['title']); ?>"
239
+			data-type="<?php echo esc_attr($button_args['type']); ?>"
240
+			data-text-error-message="<?php _e('Something went wrong!', 'invoicing'); ?>"
241
+			data-text-activate="<?php _e('Activate', 'invoicing'); ?>"
242
+			data-text-activating="<?php _e('Activating', 'invoicing'); ?>"
243
+			data-text-deactivate="<?php _e('Deactivate', 'invoicing'); ?>"
244
+			data-text-installed="<?php _e('Installed', 'invoicing'); ?>"
245
+			data-text-install="<?php _e('Install', 'invoicing'); ?>"
246
+			data-text-installing="<?php _e('Installing', 'invoicing'); ?>"
247
+			data-text-error="<?php _e('Error', 'invoicing'); ?>"
248
+			<?php if (!empty($button_args['onclick'])) {echo " onclick='" . esc_attr($button_args['onclick']) . "' "; }?>
249
+			class="addons-button  <?php echo esc_attr($button_args['class']); ?>"
250
+			href="<?php echo esc_url($button_args['url']); ?>">
251
+			<?php echo esc_html($button_args['button_text']); ?>
252 252
 		</a>
253 253
 		<?php
254 254
 
@@ -263,36 +263,36 @@  discard block
 block discarded – undo
263 263
 		$tabs            = self::get_tabs();
264 264
 		$sections        = self::get_sections();
265 265
 		$theme           = wp_get_theme();
266
-		$section_keys    = array_keys( $sections );
267
-		$current_section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : current( $section_keys );
268
-		$current_tab     = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] );
269
-		include_once( WPINV_PLUGIN_DIR . '/includes/admin/html-admin-page-addons.php' );
266
+		$section_keys    = array_keys($sections);
267
+		$current_section = isset($_GET['section']) ? sanitize_text_field($_GET['section']) : current($section_keys);
268
+		$current_tab     = empty($_GET['tab']) ? 'addons' : sanitize_title($_GET['tab']);
269
+		include_once(WPINV_PLUGIN_DIR . '/includes/admin/html-admin-page-addons.php');
270 270
 	}
271 271
 
272 272
 	/**
273 273
 	 * A list of recommended wp.org plugins.
274 274
 	 * @return array
275 275
 	 */
276
-	public function get_recommend_wp_plugins(){
276
+	public function get_recommend_wp_plugins() {
277 277
 		$plugins = array(
278 278
             'invoicing-quotes' => array(
279 279
                 'url'   => 'https://wordpress.org/plugins/invoicing-quotes/',
280 280
                 'slug'   => 'invoicing-quotes',
281 281
 				'name'   => 'Quotes',
282 282
 				'thumbnail'  => 'https://ps.w.org/invoicing-quotes/assets/banner-772x250.png',
283
-                'desc'   => __('Allows you to create quotes, send them to clients and convert them to Invoices when accepted by the customer.','invoicing'),
283
+                'desc'   => __('Allows you to create quotes, send them to clients and convert them to Invoices when accepted by the customer.', 'invoicing'),
284 284
             ),
285 285
             'geodirectory' => array(
286 286
                 'url'   => 'https://wordpress.org/plugins/geodirectory/',
287 287
                 'slug'   => 'geodirectory',
288 288
                 'name'   => 'GeoDirectory',
289
-                'desc'   => __('Turn any WordPress theme into a global business directory portal.','invoicing'),
289
+                'desc'   => __('Turn any WordPress theme into a global business directory portal.', 'invoicing'),
290 290
             ),
291 291
             'userswp' => array(
292 292
                 'url'   => 'https://wordpress.org/plugins/userswp/',
293 293
                 'slug'   => 'userswp',
294 294
                 'name'   => 'UsersWP',
295
-                'desc'   => __('Allow frontend user login and registration as well as have slick profile pages.','invoicing'),
295
+                'desc'   => __('Allow frontend user login and registration as well as have slick profile pages.', 'invoicing'),
296 296
             ),
297 297
 		);
298 298
 
Please login to merge, or discard this patch.
includes/data-stores/class-getpaid-data.php 2 patches
Indentation   +863 added lines, -863 removed lines patch added patch discarded remove patch
@@ -9,7 +9,7 @@  discard block
 block discarded – undo
9 9
  */
10 10
 
11 11
 if ( ! defined( 'ABSPATH' ) ) {
12
-	exit;
12
+    exit;
13 13
 }
14 14
 
15 15
 /**
@@ -21,356 +21,356 @@  discard block
 block discarded – undo
21 21
  */
22 22
 abstract class GetPaid_Data {
23 23
 
24
-	/**
25
-	 * ID for this object.
26
-	 *
27
-	 * @since 1.0.19
28
-	 * @var int
29
-	 */
30
-	protected $id = 0;
31
-
32
-	/**
33
-	 * Core data for this object. Name value pairs (name + default value).
34
-	 *
35
-	 * @since 1.0.19
36
-	 * @var array
37
-	 */
38
-	protected $data = array();
39
-
40
-	/**
41
-	 * Core data changes for this object.
42
-	 *
43
-	 * @since 1.0.19
44
-	 * @var array
45
-	 */
46
-	protected $changes = array();
47
-
48
-	/**
49
-	 * This is false until the object is read from the DB.
50
-	 *
51
-	 * @since 1.0.19
52
-	 * @var bool
53
-	 */
54
-	protected $object_read = false;
55
-
56
-	/**
57
-	 * This is the name of this object type.
58
-	 *
59
-	 * @since 1.0.19
60
-	 * @var string
61
-	 */
62
-	protected $object_type = 'data';
63
-
64
-	/**
65
-	 * Extra data for this object. Name value pairs (name + default value).
66
-	 * Used as a standard way for sub classes (like item types) to add
67
-	 * additional information to an inherited class.
68
-	 *
69
-	 * @since 1.0.19
70
-	 * @var array
71
-	 */
72
-	protected $extra_data = array();
73
-
74
-	/**
75
-	 * Set to _data on construct so we can track and reset data if needed.
76
-	 *
77
-	 * @since 1.0.19
78
-	 * @var array
79
-	 */
80
-	protected $default_data = array();
81
-
82
-	/**
83
-	 * Contains a reference to the data store for this class.
84
-	 *
85
-	 * @since 1.0.19
86
-	 * @var GetPaid_Data_Store
87
-	 */
88
-	protected $data_store;
89
-
90
-	/**
91
-	 * Stores meta in cache for future reads.
92
-	 * A group must be set to to enable caching.
93
-	 *
94
-	 * @since 1.0.19
95
-	 * @var string
96
-	 */
97
-	protected $cache_group = '';
98
-
99
-	/**
100
-	 * Stores the last error.
101
-	 *
102
-	 * @since 1.0.19
103
-	 * @var string
104
-	 */
105
-	public $last_error = '';
106
-
107
-	/**
108
-	 * Stores additional meta data.
109
-	 *
110
-	 * @since 1.0.19
111
-	 * @var array
112
-	 */
113
-	protected $meta_data = null;
114
-
115
-	/**
116
-	 * Default constructor.
117
-	 *
118
-	 * @param int|object|array|string $read ID to load from the DB (optional) or already queried data.
119
-	 */
120
-	public function __construct( $read = 0 ) {
121
-		$this->data         = array_merge( $this->data, $this->extra_data );
122
-		$this->default_data = $this->data;
123
-	}
124
-
125
-	/**
126
-	 * Only store the object ID to avoid serializing the data object instance.
127
-	 *
128
-	 * @return array
129
-	 */
130
-	public function __sleep() {
131
-		return array( 'id' );
132
-	}
133
-
134
-	/**
135
-	 * Re-run the constructor with the object ID.
136
-	 *
137
-	 * If the object no longer exists, remove the ID.
138
-	 */
139
-	public function __wakeup() {
140
-		$this->__construct( absint( $this->id ) );
141
-
142
-		if ( ! empty( $this->last_error ) ) {
143
-			$this->set_id( 0 );
144
-		}
145
-
146
-	}
147
-
148
-	/**
149
-	 * When the object is cloned, make sure meta is duplicated correctly.
150
-	 *
151
-	 * @since 1.0.19
152
-	 */
153
-	public function __clone() {
154
-		$this->maybe_read_meta_data();
155
-		if ( ! empty( $this->meta_data ) ) {
156
-			foreach ( $this->meta_data as $array_key => $meta ) {
157
-				$this->meta_data[ $array_key ] = clone $meta;
158
-				if ( ! empty( $meta->id ) ) {
159
-					$this->meta_data[ $array_key ]->id = null;
160
-				}
161
-			}
162
-		}
163
-	}
164
-
165
-	/**
166
-	 * Get the data store.
167
-	 *
168
-	 * @since  1.0.19
169
-	 * @return object
170
-	 */
171
-	public function get_data_store() {
172
-		return $this->data_store;
173
-	}
174
-
175
-	/**
176
-	 * Get the object type.
177
-	 *
178
-	 * @since  1.0.19
179
-	 * @return string
180
-	 */
181
-	public function get_object_type() {
182
-		return $this->object_type;
183
-	}
184
-
185
-	/**
186
-	 * Returns the unique ID for this object.
187
-	 *
188
-	 * @since  1.0.19
189
-	 * @return int
190
-	 */
191
-	public function get_id() {
192
-		return $this->id;
193
-	}
194
-
195
-	/**
196
-	 * Get form status.
197
-	 *
198
-	 * @since 1.0.19
199
-	 * @param  string $context View or edit context.
200
-	 * @return string
201
-	 */
202
-	public function get_status( $context = 'view' ) {
203
-		return $this->get_prop( 'status', $context );
204
-    }
205
-
206
-	/**
207
-	 * Delete an object, set the ID to 0, and return result.
208
-	 *
209
-	 * @since  1.0.19
210
-	 * @param  bool $force_delete Should the data be deleted permanently.
211
-	 * @return bool result
212
-	 */
213
-	public function delete( $force_delete = false ) {
214
-		if ( $this->data_store && $this->exists() ) {
215
-			$this->data_store->delete( $this, array( 'force_delete' => $force_delete ) );
216
-			$this->set_id( 0 );
217
-			return true;
218
-		}
219
-		return false;
220
-	}
221
-
222
-	/**
223
-	 * Save should create or update based on object existence.
224
-	 *
225
-	 * @since  1.0.19
226
-	 * @return int
227
-	 */
228
-	public function save() {
229
-		if ( ! $this->data_store ) {
230
-			return $this->get_id();
231
-		}
232
-
233
-		/**
234
-		 * Trigger action before saving to the DB. Allows you to adjust object props before save.
235
-		 *
236
-		 * @param GetPaid_Data          $this The object being saved.
237
-		 * @param GetPaid_Data_Store_WP $data_store The data store persisting the data.
238
-		 */
239
-		do_action( 'getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store );
240
-
241
-		if ( $this->get_id() ) {
242
-			$this->data_store->update( $this );
243
-		} else {
244
-			$this->data_store->create( $this );
245
-		}
246
-
247
-		/**
248
-		 * Trigger action after saving to the DB.
249
-		 *
250
-		 * @param GetPaid_Data          $this The object being saved.
251
-		 * @param GetPaid_Data_Store_WP $data_store The data store persisting the data.
252
-		 */
253
-		do_action( 'getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store );
254
-
255
-		return $this->get_id();
256
-	}
257
-
258
-	/**
259
-	 * Change data to JSON format.
260
-	 *
261
-	 * @since  1.0.19
262
-	 * @return string Data in JSON format.
263
-	 */
264
-	public function __toString() {
265
-		return wp_json_encode( $this->get_data() );
266
-	}
267
-
268
-	/**
269
-	 * Returns all data for this object.
270
-	 *
271
-	 * @since  1.0.19
272
-	 * @return array
273
-	 */
274
-	public function get_data() {
275
-		return array_merge( array( 'id' => $this->get_id() ), $this->data, array( 'meta_data' => $this->get_meta_data() ) );
276
-	}
277
-
278
-	/**
279
-	 * Returns array of expected data keys for this object.
280
-	 *
281
-	 * @since   1.0.19
282
-	 * @return array
283
-	 */
284
-	public function get_data_keys() {
285
-		return array_keys( $this->data );
286
-	}
287
-
288
-	/**
289
-	 * Returns all "extra" data keys for an object (for sub objects like item types).
290
-	 *
291
-	 * @since  1.0.19
292
-	 * @return array
293
-	 */
294
-	public function get_extra_data_keys() {
295
-		return array_keys( $this->extra_data );
296
-	}
297
-
298
-	/**
299
-	 * Filter null meta values from array.
300
-	 *
301
-	 * @since  1.0.19
302
-	 * @param mixed $meta Meta value to check.
303
-	 * @return bool
304
-	 */
305
-	protected function filter_null_meta( $meta ) {
306
-		return ! is_null( $meta->value );
307
-	}
308
-
309
-	/**
310
-	 * Get All Meta Data.
311
-	 *
312
-	 * @since 1.0.19
313
-	 * @return array of objects.
314
-	 */
315
-	public function get_meta_data() {
316
-		$this->maybe_read_meta_data();
317
-		return array_values( array_filter( $this->meta_data, array( $this, 'filter_null_meta' ) ) );
318
-	}
319
-
320
-	/**
321
-	 * Check if the key is an internal one.
322
-	 *
323
-	 * @since  1.0.19
324
-	 * @param  string $key Key to check.
325
-	 * @return bool   true if it's an internal key, false otherwise
326
-	 */
327
-	protected function is_internal_meta_key( $key ) {
328
-		$internal_meta_key = ! empty( $key ) && $this->data_store && in_array( $key, $this->data_store->get_internal_meta_keys(), true );
329
-
330
-		if ( ! $internal_meta_key ) {
331
-			return false;
332
-		}
333
-
334
-		$has_setter_or_getter = is_callable( array( $this, 'set_' . $key ) ) || is_callable( array( $this, 'get_' . $key ) );
335
-
336
-		if ( ! $has_setter_or_getter ) {
337
-			return false;
338
-		}
339
-
340
-		/* translators: %s: $key Key to check */
341
-		getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
342
-
343
-		return true;
344
-	}
345
-
346
-	/**
347
-	 * Magic method for setting data fields.
348
-	 *
349
-	 * This method does not update custom fields in the database.
350
-	 *
351
-	 * @since 1.0.19
352
-	 * @access public
353
-	 *
354
-	 */
355
-	public function __set( $key, $value ) {
356
-
357
-		if ( 'id' == strtolower( $key ) ) {
358
-			return $this->set_id( $value );
359
-		}
360
-
361
-		if ( method_exists( $this, "set_$key") ) {
362
-
363
-			/* translators: %s: $key Key to set */
364
-			getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
365
-
366
-			call_user_func( array( $this, "set_$key" ), $value );
367
-		} else {
368
-			$this->set_prop( $key, $value );
369
-		}
370
-
371
-	}
372
-
373
-	/**
24
+    /**
25
+     * ID for this object.
26
+     *
27
+     * @since 1.0.19
28
+     * @var int
29
+     */
30
+    protected $id = 0;
31
+
32
+    /**
33
+     * Core data for this object. Name value pairs (name + default value).
34
+     *
35
+     * @since 1.0.19
36
+     * @var array
37
+     */
38
+    protected $data = array();
39
+
40
+    /**
41
+     * Core data changes for this object.
42
+     *
43
+     * @since 1.0.19
44
+     * @var array
45
+     */
46
+    protected $changes = array();
47
+
48
+    /**
49
+     * This is false until the object is read from the DB.
50
+     *
51
+     * @since 1.0.19
52
+     * @var bool
53
+     */
54
+    protected $object_read = false;
55
+
56
+    /**
57
+     * This is the name of this object type.
58
+     *
59
+     * @since 1.0.19
60
+     * @var string
61
+     */
62
+    protected $object_type = 'data';
63
+
64
+    /**
65
+     * Extra data for this object. Name value pairs (name + default value).
66
+     * Used as a standard way for sub classes (like item types) to add
67
+     * additional information to an inherited class.
68
+     *
69
+     * @since 1.0.19
70
+     * @var array
71
+     */
72
+    protected $extra_data = array();
73
+
74
+    /**
75
+     * Set to _data on construct so we can track and reset data if needed.
76
+     *
77
+     * @since 1.0.19
78
+     * @var array
79
+     */
80
+    protected $default_data = array();
81
+
82
+    /**
83
+     * Contains a reference to the data store for this class.
84
+     *
85
+     * @since 1.0.19
86
+     * @var GetPaid_Data_Store
87
+     */
88
+    protected $data_store;
89
+
90
+    /**
91
+     * Stores meta in cache for future reads.
92
+     * A group must be set to to enable caching.
93
+     *
94
+     * @since 1.0.19
95
+     * @var string
96
+     */
97
+    protected $cache_group = '';
98
+
99
+    /**
100
+     * Stores the last error.
101
+     *
102
+     * @since 1.0.19
103
+     * @var string
104
+     */
105
+    public $last_error = '';
106
+
107
+    /**
108
+     * Stores additional meta data.
109
+     *
110
+     * @since 1.0.19
111
+     * @var array
112
+     */
113
+    protected $meta_data = null;
114
+
115
+    /**
116
+     * Default constructor.
117
+     *
118
+     * @param int|object|array|string $read ID to load from the DB (optional) or already queried data.
119
+     */
120
+    public function __construct( $read = 0 ) {
121
+        $this->data         = array_merge( $this->data, $this->extra_data );
122
+        $this->default_data = $this->data;
123
+    }
124
+
125
+    /**
126
+     * Only store the object ID to avoid serializing the data object instance.
127
+     *
128
+     * @return array
129
+     */
130
+    public function __sleep() {
131
+        return array( 'id' );
132
+    }
133
+
134
+    /**
135
+     * Re-run the constructor with the object ID.
136
+     *
137
+     * If the object no longer exists, remove the ID.
138
+     */
139
+    public function __wakeup() {
140
+        $this->__construct( absint( $this->id ) );
141
+
142
+        if ( ! empty( $this->last_error ) ) {
143
+            $this->set_id( 0 );
144
+        }
145
+
146
+    }
147
+
148
+    /**
149
+     * When the object is cloned, make sure meta is duplicated correctly.
150
+     *
151
+     * @since 1.0.19
152
+     */
153
+    public function __clone() {
154
+        $this->maybe_read_meta_data();
155
+        if ( ! empty( $this->meta_data ) ) {
156
+            foreach ( $this->meta_data as $array_key => $meta ) {
157
+                $this->meta_data[ $array_key ] = clone $meta;
158
+                if ( ! empty( $meta->id ) ) {
159
+                    $this->meta_data[ $array_key ]->id = null;
160
+                }
161
+            }
162
+        }
163
+    }
164
+
165
+    /**
166
+     * Get the data store.
167
+     *
168
+     * @since  1.0.19
169
+     * @return object
170
+     */
171
+    public function get_data_store() {
172
+        return $this->data_store;
173
+    }
174
+
175
+    /**
176
+     * Get the object type.
177
+     *
178
+     * @since  1.0.19
179
+     * @return string
180
+     */
181
+    public function get_object_type() {
182
+        return $this->object_type;
183
+    }
184
+
185
+    /**
186
+     * Returns the unique ID for this object.
187
+     *
188
+     * @since  1.0.19
189
+     * @return int
190
+     */
191
+    public function get_id() {
192
+        return $this->id;
193
+    }
194
+
195
+    /**
196
+     * Get form status.
197
+     *
198
+     * @since 1.0.19
199
+     * @param  string $context View or edit context.
200
+     * @return string
201
+     */
202
+    public function get_status( $context = 'view' ) {
203
+        return $this->get_prop( 'status', $context );
204
+    }
205
+
206
+    /**
207
+     * Delete an object, set the ID to 0, and return result.
208
+     *
209
+     * @since  1.0.19
210
+     * @param  bool $force_delete Should the data be deleted permanently.
211
+     * @return bool result
212
+     */
213
+    public function delete( $force_delete = false ) {
214
+        if ( $this->data_store && $this->exists() ) {
215
+            $this->data_store->delete( $this, array( 'force_delete' => $force_delete ) );
216
+            $this->set_id( 0 );
217
+            return true;
218
+        }
219
+        return false;
220
+    }
221
+
222
+    /**
223
+     * Save should create or update based on object existence.
224
+     *
225
+     * @since  1.0.19
226
+     * @return int
227
+     */
228
+    public function save() {
229
+        if ( ! $this->data_store ) {
230
+            return $this->get_id();
231
+        }
232
+
233
+        /**
234
+         * Trigger action before saving to the DB. Allows you to adjust object props before save.
235
+         *
236
+         * @param GetPaid_Data          $this The object being saved.
237
+         * @param GetPaid_Data_Store_WP $data_store The data store persisting the data.
238
+         */
239
+        do_action( 'getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store );
240
+
241
+        if ( $this->get_id() ) {
242
+            $this->data_store->update( $this );
243
+        } else {
244
+            $this->data_store->create( $this );
245
+        }
246
+
247
+        /**
248
+         * Trigger action after saving to the DB.
249
+         *
250
+         * @param GetPaid_Data          $this The object being saved.
251
+         * @param GetPaid_Data_Store_WP $data_store The data store persisting the data.
252
+         */
253
+        do_action( 'getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store );
254
+
255
+        return $this->get_id();
256
+    }
257
+
258
+    /**
259
+     * Change data to JSON format.
260
+     *
261
+     * @since  1.0.19
262
+     * @return string Data in JSON format.
263
+     */
264
+    public function __toString() {
265
+        return wp_json_encode( $this->get_data() );
266
+    }
267
+
268
+    /**
269
+     * Returns all data for this object.
270
+     *
271
+     * @since  1.0.19
272
+     * @return array
273
+     */
274
+    public function get_data() {
275
+        return array_merge( array( 'id' => $this->get_id() ), $this->data, array( 'meta_data' => $this->get_meta_data() ) );
276
+    }
277
+
278
+    /**
279
+     * Returns array of expected data keys for this object.
280
+     *
281
+     * @since   1.0.19
282
+     * @return array
283
+     */
284
+    public function get_data_keys() {
285
+        return array_keys( $this->data );
286
+    }
287
+
288
+    /**
289
+     * Returns all "extra" data keys for an object (for sub objects like item types).
290
+     *
291
+     * @since  1.0.19
292
+     * @return array
293
+     */
294
+    public function get_extra_data_keys() {
295
+        return array_keys( $this->extra_data );
296
+    }
297
+
298
+    /**
299
+     * Filter null meta values from array.
300
+     *
301
+     * @since  1.0.19
302
+     * @param mixed $meta Meta value to check.
303
+     * @return bool
304
+     */
305
+    protected function filter_null_meta( $meta ) {
306
+        return ! is_null( $meta->value );
307
+    }
308
+
309
+    /**
310
+     * Get All Meta Data.
311
+     *
312
+     * @since 1.0.19
313
+     * @return array of objects.
314
+     */
315
+    public function get_meta_data() {
316
+        $this->maybe_read_meta_data();
317
+        return array_values( array_filter( $this->meta_data, array( $this, 'filter_null_meta' ) ) );
318
+    }
319
+
320
+    /**
321
+     * Check if the key is an internal one.
322
+     *
323
+     * @since  1.0.19
324
+     * @param  string $key Key to check.
325
+     * @return bool   true if it's an internal key, false otherwise
326
+     */
327
+    protected function is_internal_meta_key( $key ) {
328
+        $internal_meta_key = ! empty( $key ) && $this->data_store && in_array( $key, $this->data_store->get_internal_meta_keys(), true );
329
+
330
+        if ( ! $internal_meta_key ) {
331
+            return false;
332
+        }
333
+
334
+        $has_setter_or_getter = is_callable( array( $this, 'set_' . $key ) ) || is_callable( array( $this, 'get_' . $key ) );
335
+
336
+        if ( ! $has_setter_or_getter ) {
337
+            return false;
338
+        }
339
+
340
+        /* translators: %s: $key Key to check */
341
+        getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
342
+
343
+        return true;
344
+    }
345
+
346
+    /**
347
+     * Magic method for setting data fields.
348
+     *
349
+     * This method does not update custom fields in the database.
350
+     *
351
+     * @since 1.0.19
352
+     * @access public
353
+     *
354
+     */
355
+    public function __set( $key, $value ) {
356
+
357
+        if ( 'id' == strtolower( $key ) ) {
358
+            return $this->set_id( $value );
359
+        }
360
+
361
+        if ( method_exists( $this, "set_$key") ) {
362
+
363
+            /* translators: %s: $key Key to set */
364
+            getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
365
+
366
+            call_user_func( array( $this, "set_$key" ), $value );
367
+        } else {
368
+            $this->set_prop( $key, $value );
369
+        }
370
+
371
+    }
372
+
373
+    /**
374 374
      * Margic method for retrieving a property.
375 375
      */
376 376
     public function __get( $key ) {
@@ -378,10 +378,10 @@  discard block
 block discarded – undo
378 378
         // Check if we have a helper method for that.
379 379
         if ( method_exists( $this, 'get_' . $key ) ) {
380 380
 
381
-			if ( 'post_type' != $key ) {
382
-				/* translators: %s: $key Key to set */
383
-				getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
384
-			}
381
+            if ( 'post_type' != $key ) {
382
+                /* translators: %s: $key Key to set */
383
+                getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
384
+            }
385 385
 
386 386
             return call_user_func( array( $this, 'get_' . $key ) );
387 387
         }
@@ -391,515 +391,515 @@  discard block
 block discarded – undo
391 391
             return $this->post->$key;
392 392
         }
393 393
 
394
-		return $this->get_prop( $key );
395
-
396
-    }
397
-
398
-	/**
399
-	 * Get Meta Data by Key.
400
-	 *
401
-	 * @since  1.0.19
402
-	 * @param  string $key Meta Key.
403
-	 * @param  bool   $single return first found meta with key, or all with $key.
404
-	 * @param  string $context What the value is for. Valid values are view and edit.
405
-	 * @return mixed
406
-	 */
407
-	public function get_meta( $key = '', $single = true, $context = 'view' ) {
408
-
409
-		// Check if this is an internal meta key.
410
-		$_key = str_replace( '_wpinv', '', $key );
411
-		$_key = str_replace( 'wpinv', '', $_key );
412
-		if ( $this->is_internal_meta_key( $key ) ) {
413
-			$function = 'get_' . $_key;
414
-
415
-			if ( is_callable( array( $this, $function ) ) ) {
416
-				return $this->{$function}();
417
-			}
418
-		}
419
-
420
-		// Read the meta data if not yet read.
421
-		$this->maybe_read_meta_data();
422
-		$meta_data  = $this->get_meta_data();
423
-		$array_keys = array_keys( wp_list_pluck( $meta_data, 'key' ), $key, true );
424
-		$value      = $single ? '' : array();
425
-
426
-		if ( ! empty( $array_keys ) ) {
427
-			// We don't use the $this->meta_data property directly here because we don't want meta with a null value (i.e. meta which has been deleted via $this->delete_meta_data()).
428
-			if ( $single ) {
429
-				$value = $meta_data[ current( $array_keys ) ]->value;
430
-			} else {
431
-				$value = array_intersect_key( $meta_data, array_flip( $array_keys ) );
432
-			}
433
-		}
434
-
435
-		if ( 'view' === $context ) {
436
-			$value = apply_filters( $this->get_hook_prefix() . $key, $value, $this );
437
-		}
438
-
439
-		return $value;
440
-	}
441
-
442
-	/**
443
-	 * See if meta data exists, since get_meta always returns a '' or array().
444
-	 *
445
-	 * @since  1.0.19
446
-	 * @param  string $key Meta Key.
447
-	 * @return boolean
448
-	 */
449
-	public function meta_exists( $key = '' ) {
450
-		$this->maybe_read_meta_data();
451
-		$array_keys = wp_list_pluck( $this->get_meta_data(), 'key' );
452
-		return in_array( $key, $array_keys, true );
453
-	}
454
-
455
-	/**
456
-	 * Set all meta data from array.
457
-	 *
458
-	 * @since 1.0.19
459
-	 * @param array $data Key/Value pairs.
460
-	 */
461
-	public function set_meta_data( $data ) {
462
-		if ( ! empty( $data ) && is_array( $data ) ) {
463
-			$this->maybe_read_meta_data();
464
-			foreach ( $data as $meta ) {
465
-				$meta = (array) $meta;
466
-				if ( isset( $meta['key'], $meta['value'], $meta['id'] ) ) {
467
-					$this->meta_data[] = new GetPaid_Meta_Data(
468
-						array(
469
-							'id'    => $meta['id'],
470
-							'key'   => $meta['key'],
471
-							'value' => $meta['value'],
472
-						)
473
-					);
474
-				}
475
-			}
476
-		}
477
-	}
478
-
479
-	/**
480
-	 * Add meta data.
481
-	 *
482
-	 * @since 1.0.19
483
-	 *
484
-	 * @param string       $key Meta key.
485
-	 * @param string|array $value Meta value.
486
-	 * @param bool         $unique Should this be a unique key?.
487
-	 */
488
-	public function add_meta_data( $key, $value, $unique = false ) {
489
-		if ( $this->is_internal_meta_key( $key ) ) {
490
-			$function = 'set_' . $key;
491
-
492
-			if ( is_callable( array( $this, $function ) ) ) {
493
-				return $this->{$function}( $value );
494
-			}
495
-		}
496
-
497
-		$this->maybe_read_meta_data();
498
-		if ( $unique ) {
499
-			$this->delete_meta_data( $key );
500
-		}
501
-		$this->meta_data[] = new GetPaid_Meta_Data(
502
-			array(
503
-				'key'   => $key,
504
-				'value' => $value,
505
-			)
506
-		);
507
-
508
-		$this->save();
509
-	}
510
-
511
-	/**
512
-	 * Update meta data by key or ID, if provided.
513
-	 *
514
-	 * @since  1.0.19
515
-	 *
516
-	 * @param  string       $key Meta key.
517
-	 * @param  string|array $value Meta value.
518
-	 * @param  int          $meta_id Meta ID.
519
-	 */
520
-	public function update_meta_data( $key, $value, $meta_id = 0 ) {
521
-		if ( $this->is_internal_meta_key( $key ) ) {
522
-			$function = 'set_' . $key;
523
-
524
-			if ( is_callable( array( $this, $function ) ) ) {
525
-				return $this->{$function}( $value );
526
-			}
527
-		}
528
-
529
-		$this->maybe_read_meta_data();
530
-
531
-		$array_key = false;
532
-
533
-		if ( $meta_id ) {
534
-			$array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true );
535
-			$array_key  = $array_keys ? current( $array_keys ) : false;
536
-		} else {
537
-			// Find matches by key.
538
-			$matches = array();
539
-			foreach ( $this->meta_data as $meta_data_array_key => $meta ) {
540
-				if ( $meta->key === $key ) {
541
-					$matches[] = $meta_data_array_key;
542
-				}
543
-			}
544
-
545
-			if ( ! empty( $matches ) ) {
546
-				// Set matches to null so only one key gets the new value.
547
-				foreach ( $matches as $meta_data_array_key ) {
548
-					$this->meta_data[ $meta_data_array_key ]->value = null;
549
-				}
550
-				$array_key = current( $matches );
551
-			}
552
-		}
553
-
554
-		if ( false !== $array_key ) {
555
-			$meta        = $this->meta_data[ $array_key ];
556
-			$meta->key   = $key;
557
-			$meta->value = $value;
558
-		} else {
559
-			$this->add_meta_data( $key, $value, true );
560
-		}
561
-	}
562
-
563
-	/**
564
-	 * Delete meta data.
565
-	 *
566
-	 * @since 1.0.19
567
-	 * @param string $key Meta key.
568
-	 */
569
-	public function delete_meta_data( $key ) {
570
-		$this->maybe_read_meta_data();
571
-		$array_keys = array_keys( wp_list_pluck( $this->meta_data, 'key' ), $key, true );
572
-
573
-		if ( $array_keys ) {
574
-			foreach ( $array_keys as $array_key ) {
575
-				$this->meta_data[ $array_key ]->value = null;
576
-			}
577
-		}
578
-	}
579
-
580
-	/**
581
-	 * Delete meta data.
582
-	 *
583
-	 * @since 1.0.19
584
-	 * @param int $mid Meta ID.
585
-	 */
586
-	public function delete_meta_data_by_mid( $mid ) {
587
-		$this->maybe_read_meta_data();
588
-		$array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), (int) $mid, true );
589
-
590
-		if ( $array_keys ) {
591
-			foreach ( $array_keys as $array_key ) {
592
-				$this->meta_data[ $array_key ]->value = null;
593
-			}
594
-		}
595
-	}
596
-
597
-	/**
598
-	 * Read meta data if null.
599
-	 *
600
-	 * @since 1.0.19
601
-	 */
602
-	protected function maybe_read_meta_data() {
603
-		if ( is_null( $this->meta_data ) ) {
604
-			$this->read_meta_data();
605
-		}
606
-	}
607
-
608
-	/**
609
-	 * Read Meta Data from the database. Ignore any internal properties.
610
-	 * Uses it's own caches because get_metadata does not provide meta_ids.
611
-	 *
612
-	 * @since 1.0.19
613
-	 * @param bool $force_read True to force a new DB read (and update cache).
614
-	 */
615
-	public function read_meta_data( $force_read = false ) {
616
-
617
-		// Reset meta data.
618
-		$this->meta_data = array();
619
-
620
-		// Maybe abort early.
621
-		if ( ! $this->get_id() || ! $this->data_store ) {
622
-			return;
623
-		}
624
-
625
-		// Only read from cache if the cache key is set.
626
-		$cache_key = null;
627
-		if ( ! $force_read && ! empty( $this->cache_group ) ) {
628
-			$cache_key     = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id();
629
-			$raw_meta_data = wp_cache_get( $cache_key, $this->cache_group );
630
-		}
631
-
632
-		// Should we force read?
633
-		if ( empty( $raw_meta_data ) ) {
634
-			$raw_meta_data = $this->data_store->read_meta( $this );
635
-
636
-			if ( ! empty( $cache_key ) ) {
637
-				wp_cache_set( $cache_key, $raw_meta_data, $this->cache_group );
638
-			}
639
-
640
-		}
641
-
642
-		// Set meta data.
643
-		if ( is_array( $raw_meta_data ) ) {
644
-
645
-			foreach ( $raw_meta_data as $meta ) {
646
-				$this->meta_data[] = new GetPaid_Meta_Data(
647
-					array(
648
-						'id'    => (int) $meta->meta_id,
649
-						'key'   => $meta->meta_key,
650
-						'value' => maybe_unserialize( $meta->meta_value ),
651
-					)
652
-				);
653
-			}
654
-
655
-		}
656
-
657
-	}
658
-
659
-	/**
660
-	 * Update Meta Data in the database.
661
-	 *
662
-	 * @since 1.0.19
663
-	 */
664
-	public function save_meta_data() {
665
-		if ( ! $this->data_store || is_null( $this->meta_data ) ) {
666
-			return;
667
-		}
668
-		foreach ( $this->meta_data as $array_key => $meta ) {
669
-			if ( is_null( $meta->value ) ) {
670
-				if ( ! empty( $meta->id ) ) {
671
-					$this->data_store->delete_meta( $this, $meta );
672
-					unset( $this->meta_data[ $array_key ] );
673
-				}
674
-			} elseif ( empty( $meta->id ) ) {
675
-				$meta->id = $this->data_store->add_meta( $this, $meta );
676
-				$meta->apply_changes();
677
-			} else {
678
-				if ( $meta->get_changes() ) {
679
-					$this->data_store->update_meta( $this, $meta );
680
-					$meta->apply_changes();
681
-				}
682
-			}
683
-		}
684
-		if ( ! empty( $this->cache_group ) ) {
685
-			$cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id();
686
-			wp_cache_delete( $cache_key, $this->cache_group );
687
-		}
688
-	}
689
-
690
-	/**
691
-	 * Set ID.
692
-	 *
693
-	 * @since 1.0.19
694
-	 * @param int $id ID.
695
-	 */
696
-	public function set_id( $id ) {
697
-		$this->id = absint( $id );
698
-	}
699
-
700
-	/**
701
-	 * Sets item status.
702
-	 *
703
-	 * @since 1.0.19
704
-	 * @param string $status New status.
705
-	 * @return array details of change.
706
-	 */
707
-	public function set_status( $status ) {
394
+        return $this->get_prop( $key );
395
+
396
+    }
397
+
398
+    /**
399
+     * Get Meta Data by Key.
400
+     *
401
+     * @since  1.0.19
402
+     * @param  string $key Meta Key.
403
+     * @param  bool   $single return first found meta with key, or all with $key.
404
+     * @param  string $context What the value is for. Valid values are view and edit.
405
+     * @return mixed
406
+     */
407
+    public function get_meta( $key = '', $single = true, $context = 'view' ) {
408
+
409
+        // Check if this is an internal meta key.
410
+        $_key = str_replace( '_wpinv', '', $key );
411
+        $_key = str_replace( 'wpinv', '', $_key );
412
+        if ( $this->is_internal_meta_key( $key ) ) {
413
+            $function = 'get_' . $_key;
414
+
415
+            if ( is_callable( array( $this, $function ) ) ) {
416
+                return $this->{$function}();
417
+            }
418
+        }
419
+
420
+        // Read the meta data if not yet read.
421
+        $this->maybe_read_meta_data();
422
+        $meta_data  = $this->get_meta_data();
423
+        $array_keys = array_keys( wp_list_pluck( $meta_data, 'key' ), $key, true );
424
+        $value      = $single ? '' : array();
425
+
426
+        if ( ! empty( $array_keys ) ) {
427
+            // We don't use the $this->meta_data property directly here because we don't want meta with a null value (i.e. meta which has been deleted via $this->delete_meta_data()).
428
+            if ( $single ) {
429
+                $value = $meta_data[ current( $array_keys ) ]->value;
430
+            } else {
431
+                $value = array_intersect_key( $meta_data, array_flip( $array_keys ) );
432
+            }
433
+        }
434
+
435
+        if ( 'view' === $context ) {
436
+            $value = apply_filters( $this->get_hook_prefix() . $key, $value, $this );
437
+        }
438
+
439
+        return $value;
440
+    }
441
+
442
+    /**
443
+     * See if meta data exists, since get_meta always returns a '' or array().
444
+     *
445
+     * @since  1.0.19
446
+     * @param  string $key Meta Key.
447
+     * @return boolean
448
+     */
449
+    public function meta_exists( $key = '' ) {
450
+        $this->maybe_read_meta_data();
451
+        $array_keys = wp_list_pluck( $this->get_meta_data(), 'key' );
452
+        return in_array( $key, $array_keys, true );
453
+    }
454
+
455
+    /**
456
+     * Set all meta data from array.
457
+     *
458
+     * @since 1.0.19
459
+     * @param array $data Key/Value pairs.
460
+     */
461
+    public function set_meta_data( $data ) {
462
+        if ( ! empty( $data ) && is_array( $data ) ) {
463
+            $this->maybe_read_meta_data();
464
+            foreach ( $data as $meta ) {
465
+                $meta = (array) $meta;
466
+                if ( isset( $meta['key'], $meta['value'], $meta['id'] ) ) {
467
+                    $this->meta_data[] = new GetPaid_Meta_Data(
468
+                        array(
469
+                            'id'    => $meta['id'],
470
+                            'key'   => $meta['key'],
471
+                            'value' => $meta['value'],
472
+                        )
473
+                    );
474
+                }
475
+            }
476
+        }
477
+    }
478
+
479
+    /**
480
+     * Add meta data.
481
+     *
482
+     * @since 1.0.19
483
+     *
484
+     * @param string       $key Meta key.
485
+     * @param string|array $value Meta value.
486
+     * @param bool         $unique Should this be a unique key?.
487
+     */
488
+    public function add_meta_data( $key, $value, $unique = false ) {
489
+        if ( $this->is_internal_meta_key( $key ) ) {
490
+            $function = 'set_' . $key;
491
+
492
+            if ( is_callable( array( $this, $function ) ) ) {
493
+                return $this->{$function}( $value );
494
+            }
495
+        }
496
+
497
+        $this->maybe_read_meta_data();
498
+        if ( $unique ) {
499
+            $this->delete_meta_data( $key );
500
+        }
501
+        $this->meta_data[] = new GetPaid_Meta_Data(
502
+            array(
503
+                'key'   => $key,
504
+                'value' => $value,
505
+            )
506
+        );
507
+
508
+        $this->save();
509
+    }
510
+
511
+    /**
512
+     * Update meta data by key or ID, if provided.
513
+     *
514
+     * @since  1.0.19
515
+     *
516
+     * @param  string       $key Meta key.
517
+     * @param  string|array $value Meta value.
518
+     * @param  int          $meta_id Meta ID.
519
+     */
520
+    public function update_meta_data( $key, $value, $meta_id = 0 ) {
521
+        if ( $this->is_internal_meta_key( $key ) ) {
522
+            $function = 'set_' . $key;
523
+
524
+            if ( is_callable( array( $this, $function ) ) ) {
525
+                return $this->{$function}( $value );
526
+            }
527
+        }
528
+
529
+        $this->maybe_read_meta_data();
530
+
531
+        $array_key = false;
532
+
533
+        if ( $meta_id ) {
534
+            $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true );
535
+            $array_key  = $array_keys ? current( $array_keys ) : false;
536
+        } else {
537
+            // Find matches by key.
538
+            $matches = array();
539
+            foreach ( $this->meta_data as $meta_data_array_key => $meta ) {
540
+                if ( $meta->key === $key ) {
541
+                    $matches[] = $meta_data_array_key;
542
+                }
543
+            }
544
+
545
+            if ( ! empty( $matches ) ) {
546
+                // Set matches to null so only one key gets the new value.
547
+                foreach ( $matches as $meta_data_array_key ) {
548
+                    $this->meta_data[ $meta_data_array_key ]->value = null;
549
+                }
550
+                $array_key = current( $matches );
551
+            }
552
+        }
553
+
554
+        if ( false !== $array_key ) {
555
+            $meta        = $this->meta_data[ $array_key ];
556
+            $meta->key   = $key;
557
+            $meta->value = $value;
558
+        } else {
559
+            $this->add_meta_data( $key, $value, true );
560
+        }
561
+    }
562
+
563
+    /**
564
+     * Delete meta data.
565
+     *
566
+     * @since 1.0.19
567
+     * @param string $key Meta key.
568
+     */
569
+    public function delete_meta_data( $key ) {
570
+        $this->maybe_read_meta_data();
571
+        $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'key' ), $key, true );
572
+
573
+        if ( $array_keys ) {
574
+            foreach ( $array_keys as $array_key ) {
575
+                $this->meta_data[ $array_key ]->value = null;
576
+            }
577
+        }
578
+    }
579
+
580
+    /**
581
+     * Delete meta data.
582
+     *
583
+     * @since 1.0.19
584
+     * @param int $mid Meta ID.
585
+     */
586
+    public function delete_meta_data_by_mid( $mid ) {
587
+        $this->maybe_read_meta_data();
588
+        $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), (int) $mid, true );
589
+
590
+        if ( $array_keys ) {
591
+            foreach ( $array_keys as $array_key ) {
592
+                $this->meta_data[ $array_key ]->value = null;
593
+            }
594
+        }
595
+    }
596
+
597
+    /**
598
+     * Read meta data if null.
599
+     *
600
+     * @since 1.0.19
601
+     */
602
+    protected function maybe_read_meta_data() {
603
+        if ( is_null( $this->meta_data ) ) {
604
+            $this->read_meta_data();
605
+        }
606
+    }
607
+
608
+    /**
609
+     * Read Meta Data from the database. Ignore any internal properties.
610
+     * Uses it's own caches because get_metadata does not provide meta_ids.
611
+     *
612
+     * @since 1.0.19
613
+     * @param bool $force_read True to force a new DB read (and update cache).
614
+     */
615
+    public function read_meta_data( $force_read = false ) {
616
+
617
+        // Reset meta data.
618
+        $this->meta_data = array();
619
+
620
+        // Maybe abort early.
621
+        if ( ! $this->get_id() || ! $this->data_store ) {
622
+            return;
623
+        }
624
+
625
+        // Only read from cache if the cache key is set.
626
+        $cache_key = null;
627
+        if ( ! $force_read && ! empty( $this->cache_group ) ) {
628
+            $cache_key     = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id();
629
+            $raw_meta_data = wp_cache_get( $cache_key, $this->cache_group );
630
+        }
631
+
632
+        // Should we force read?
633
+        if ( empty( $raw_meta_data ) ) {
634
+            $raw_meta_data = $this->data_store->read_meta( $this );
635
+
636
+            if ( ! empty( $cache_key ) ) {
637
+                wp_cache_set( $cache_key, $raw_meta_data, $this->cache_group );
638
+            }
639
+
640
+        }
641
+
642
+        // Set meta data.
643
+        if ( is_array( $raw_meta_data ) ) {
644
+
645
+            foreach ( $raw_meta_data as $meta ) {
646
+                $this->meta_data[] = new GetPaid_Meta_Data(
647
+                    array(
648
+                        'id'    => (int) $meta->meta_id,
649
+                        'key'   => $meta->meta_key,
650
+                        'value' => maybe_unserialize( $meta->meta_value ),
651
+                    )
652
+                );
653
+            }
654
+
655
+        }
656
+
657
+    }
658
+
659
+    /**
660
+     * Update Meta Data in the database.
661
+     *
662
+     * @since 1.0.19
663
+     */
664
+    public function save_meta_data() {
665
+        if ( ! $this->data_store || is_null( $this->meta_data ) ) {
666
+            return;
667
+        }
668
+        foreach ( $this->meta_data as $array_key => $meta ) {
669
+            if ( is_null( $meta->value ) ) {
670
+                if ( ! empty( $meta->id ) ) {
671
+                    $this->data_store->delete_meta( $this, $meta );
672
+                    unset( $this->meta_data[ $array_key ] );
673
+                }
674
+            } elseif ( empty( $meta->id ) ) {
675
+                $meta->id = $this->data_store->add_meta( $this, $meta );
676
+                $meta->apply_changes();
677
+            } else {
678
+                if ( $meta->get_changes() ) {
679
+                    $this->data_store->update_meta( $this, $meta );
680
+                    $meta->apply_changes();
681
+                }
682
+            }
683
+        }
684
+        if ( ! empty( $this->cache_group ) ) {
685
+            $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id();
686
+            wp_cache_delete( $cache_key, $this->cache_group );
687
+        }
688
+    }
689
+
690
+    /**
691
+     * Set ID.
692
+     *
693
+     * @since 1.0.19
694
+     * @param int $id ID.
695
+     */
696
+    public function set_id( $id ) {
697
+        $this->id = absint( $id );
698
+    }
699
+
700
+    /**
701
+     * Sets item status.
702
+     *
703
+     * @since 1.0.19
704
+     * @param string $status New status.
705
+     * @return array details of change.
706
+     */
707
+    public function set_status( $status ) {
708 708
         $old_status = $this->get_status();
709 709
 
710
-		$this->set_prop( 'status', $status );
711
-
712
-		return array(
713
-			'from' => $old_status,
714
-			'to'   => $status,
715
-		);
716
-    }
717
-
718
-	/**
719
-	 * Set all props to default values.
720
-	 *
721
-	 * @since 1.0.19
722
-	 */
723
-	public function set_defaults() {
724
-		$this->data    = $this->default_data;
725
-		$this->changes = array();
726
-		$this->set_object_read( false );
727
-	}
728
-
729
-	/**
730
-	 * Set object read property.
731
-	 *
732
-	 * @since 1.0.19
733
-	 * @param boolean $read Should read?.
734
-	 */
735
-	public function set_object_read( $read = true ) {
736
-		$this->object_read = (bool) $read;
737
-	}
738
-
739
-	/**
740
-	 * Get object read property.
741
-	 *
742
-	 * @since  1.0.19
743
-	 * @return boolean
744
-	 */
745
-	public function get_object_read() {
746
-		return (bool) $this->object_read;
747
-	}
748
-
749
-	/**
750
-	 * Set a collection of props in one go, collect any errors, and return the result.
751
-	 * Only sets using public methods.
752
-	 *
753
-	 * @since  1.0.19
754
-	 *
755
-	 * @param array  $props Key value pairs to set. Key is the prop and should map to a setter function name.
756
-	 * @param string $context In what context to run this.
757
-	 *
758
-	 * @return bool|WP_Error
759
-	 */
760
-	public function set_props( $props, $context = 'set' ) {
761
-		$errors = false;
762
-
763
-		$props = wp_unslash( $props );
764
-		foreach ( $props as $prop => $value ) {
765
-			try {
766
-				/**
767
-				 * Checks if the prop being set is allowed, and the value is not null.
768
-				 */
769
-				if ( is_null( $value ) || in_array( $prop, array( 'prop', 'date_prop', 'meta_data' ), true ) ) {
770
-					continue;
771
-				}
772
-				$setter = "set_$prop";
773
-
774
-				if ( is_callable( array( $this, $setter ) ) ) {
775
-					$this->{$setter}( $value );
776
-				}
777
-			} catch ( Exception $e ) {
778
-				if ( ! $errors ) {
779
-					$errors = new WP_Error();
780
-				}
781
-				$errors->add( $e->getCode(), $e->getMessage() );
782
-				$this->last_error = $e->getMessage();
783
-			}
784
-		}
785
-
786
-		return $errors && count( $errors->get_error_codes() ) ? $errors : true;
787
-	}
788
-
789
-	/**
790
-	 * Sets a prop for a setter method.
791
-	 *
792
-	 * This stores changes in a special array so we can track what needs saving
793
-	 * the the DB later.
794
-	 *
795
-	 * @since 1.0.19
796
-	 * @param string $prop Name of prop to set.
797
-	 * @param mixed  $value Value of the prop.
798
-	 */
799
-	protected function set_prop( $prop, $value ) {
800
-		if ( array_key_exists( $prop, $this->data ) ) {
801
-			if ( true === $this->object_read ) {
802
-				if ( $value !== $this->data[ $prop ] || array_key_exists( $prop, $this->changes ) ) {
803
-					$this->changes[ $prop ] = $value;
804
-				}
805
-			} else {
806
-				$this->data[ $prop ] = $value;
807
-			}
808
-		}
809
-	}
810
-
811
-	/**
812
-	 * Return data changes only.
813
-	 *
814
-	 * @since 1.0.19
815
-	 * @return array
816
-	 */
817
-	public function get_changes() {
818
-		return $this->changes;
819
-	}
820
-
821
-	/**
822
-	 * Merge changes with data and clear.
823
-	 *
824
-	 * @since 1.0.19
825
-	 */
826
-	public function apply_changes() {
827
-		$this->data    = array_replace( $this->data, $this->changes );
828
-		$this->changes = array();
829
-	}
830
-
831
-	/**
832
-	 * Prefix for action and filter hooks on data.
833
-	 *
834
-	 * @since  1.0.19
835
-	 * @return string
836
-	 */
837
-	protected function get_hook_prefix() {
838
-		return 'wpinv_get_' . $this->object_type . '_';
839
-	}
840
-
841
-	/**
842
-	 * Gets a prop for a getter method.
843
-	 *
844
-	 * Gets the value from either current pending changes, or the data itself.
845
-	 * Context controls what happens to the value before it's returned.
846
-	 *
847
-	 * @since  1.0.19
848
-	 * @param  string $prop Name of prop to get.
849
-	 * @param  string $context What the value is for. Valid values are view and edit.
850
-	 * @return mixed
851
-	 */
852
-	protected function get_prop( $prop, $context = 'view' ) {
853
-		$value = null;
854
-
855
-		if ( array_key_exists( $prop, $this->data ) ) {
856
-			$value = array_key_exists( $prop, $this->changes ) ? $this->changes[ $prop ] : $this->data[ $prop ];
857
-
858
-			if ( 'view' === $context ) {
859
-				$value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this );
860
-			}
861
-		}
862
-
863
-		return $value;
864
-	}
865
-
866
-	/**
867
-	 * Sets a date prop whilst handling formatting and datetime objects.
868
-	 *
869
-	 * @since 1.0.19
870
-	 * @param string         $prop Name of prop to set.
871
-	 * @param string|integer $value Value of the prop.
872
-	 */
873
-	protected function set_date_prop( $prop, $value ) {
874
-
875
-		if ( empty( $value ) ) {
876
-			$this->set_prop( $prop, null );
877
-			return;
878
-		}
879
-		$this->set_prop( $prop, $value );
880
-
881
-	}
882
-
883
-	/**
884
-	 * When invalid data is found, throw an exception unless reading from the DB.
885
-	 *
886
-	 * @since 1.0.19
887
-	 * @param string $code             Error code.
888
-	 * @param string $message          Error message.
889
-	 */
890
-	protected function error( $code, $message ) {
891
-		$this->last_error = $message;
892
-	}
893
-
894
-	/**
895
-	 * Checks if the object is saved in the database
896
-	 *
897
-	 * @since 1.0.19
898
-	 * @return bool
899
-	 */
900
-	public function exists() {
901
-		$id = $this->get_id();
902
-		return ! empty( $id );
903
-	}
710
+        $this->set_prop( 'status', $status );
711
+
712
+        return array(
713
+            'from' => $old_status,
714
+            'to'   => $status,
715
+        );
716
+    }
717
+
718
+    /**
719
+     * Set all props to default values.
720
+     *
721
+     * @since 1.0.19
722
+     */
723
+    public function set_defaults() {
724
+        $this->data    = $this->default_data;
725
+        $this->changes = array();
726
+        $this->set_object_read( false );
727
+    }
728
+
729
+    /**
730
+     * Set object read property.
731
+     *
732
+     * @since 1.0.19
733
+     * @param boolean $read Should read?.
734
+     */
735
+    public function set_object_read( $read = true ) {
736
+        $this->object_read = (bool) $read;
737
+    }
738
+
739
+    /**
740
+     * Get object read property.
741
+     *
742
+     * @since  1.0.19
743
+     * @return boolean
744
+     */
745
+    public function get_object_read() {
746
+        return (bool) $this->object_read;
747
+    }
748
+
749
+    /**
750
+     * Set a collection of props in one go, collect any errors, and return the result.
751
+     * Only sets using public methods.
752
+     *
753
+     * @since  1.0.19
754
+     *
755
+     * @param array  $props Key value pairs to set. Key is the prop and should map to a setter function name.
756
+     * @param string $context In what context to run this.
757
+     *
758
+     * @return bool|WP_Error
759
+     */
760
+    public function set_props( $props, $context = 'set' ) {
761
+        $errors = false;
762
+
763
+        $props = wp_unslash( $props );
764
+        foreach ( $props as $prop => $value ) {
765
+            try {
766
+                /**
767
+                 * Checks if the prop being set is allowed, and the value is not null.
768
+                 */
769
+                if ( is_null( $value ) || in_array( $prop, array( 'prop', 'date_prop', 'meta_data' ), true ) ) {
770
+                    continue;
771
+                }
772
+                $setter = "set_$prop";
773
+
774
+                if ( is_callable( array( $this, $setter ) ) ) {
775
+                    $this->{$setter}( $value );
776
+                }
777
+            } catch ( Exception $e ) {
778
+                if ( ! $errors ) {
779
+                    $errors = new WP_Error();
780
+                }
781
+                $errors->add( $e->getCode(), $e->getMessage() );
782
+                $this->last_error = $e->getMessage();
783
+            }
784
+        }
785
+
786
+        return $errors && count( $errors->get_error_codes() ) ? $errors : true;
787
+    }
788
+
789
+    /**
790
+     * Sets a prop for a setter method.
791
+     *
792
+     * This stores changes in a special array so we can track what needs saving
793
+     * the the DB later.
794
+     *
795
+     * @since 1.0.19
796
+     * @param string $prop Name of prop to set.
797
+     * @param mixed  $value Value of the prop.
798
+     */
799
+    protected function set_prop( $prop, $value ) {
800
+        if ( array_key_exists( $prop, $this->data ) ) {
801
+            if ( true === $this->object_read ) {
802
+                if ( $value !== $this->data[ $prop ] || array_key_exists( $prop, $this->changes ) ) {
803
+                    $this->changes[ $prop ] = $value;
804
+                }
805
+            } else {
806
+                $this->data[ $prop ] = $value;
807
+            }
808
+        }
809
+    }
810
+
811
+    /**
812
+     * Return data changes only.
813
+     *
814
+     * @since 1.0.19
815
+     * @return array
816
+     */
817
+    public function get_changes() {
818
+        return $this->changes;
819
+    }
820
+
821
+    /**
822
+     * Merge changes with data and clear.
823
+     *
824
+     * @since 1.0.19
825
+     */
826
+    public function apply_changes() {
827
+        $this->data    = array_replace( $this->data, $this->changes );
828
+        $this->changes = array();
829
+    }
830
+
831
+    /**
832
+     * Prefix for action and filter hooks on data.
833
+     *
834
+     * @since  1.0.19
835
+     * @return string
836
+     */
837
+    protected function get_hook_prefix() {
838
+        return 'wpinv_get_' . $this->object_type . '_';
839
+    }
840
+
841
+    /**
842
+     * Gets a prop for a getter method.
843
+     *
844
+     * Gets the value from either current pending changes, or the data itself.
845
+     * Context controls what happens to the value before it's returned.
846
+     *
847
+     * @since  1.0.19
848
+     * @param  string $prop Name of prop to get.
849
+     * @param  string $context What the value is for. Valid values are view and edit.
850
+     * @return mixed
851
+     */
852
+    protected function get_prop( $prop, $context = 'view' ) {
853
+        $value = null;
854
+
855
+        if ( array_key_exists( $prop, $this->data ) ) {
856
+            $value = array_key_exists( $prop, $this->changes ) ? $this->changes[ $prop ] : $this->data[ $prop ];
857
+
858
+            if ( 'view' === $context ) {
859
+                $value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this );
860
+            }
861
+        }
862
+
863
+        return $value;
864
+    }
865
+
866
+    /**
867
+     * Sets a date prop whilst handling formatting and datetime objects.
868
+     *
869
+     * @since 1.0.19
870
+     * @param string         $prop Name of prop to set.
871
+     * @param string|integer $value Value of the prop.
872
+     */
873
+    protected function set_date_prop( $prop, $value ) {
874
+
875
+        if ( empty( $value ) ) {
876
+            $this->set_prop( $prop, null );
877
+            return;
878
+        }
879
+        $this->set_prop( $prop, $value );
880
+
881
+    }
882
+
883
+    /**
884
+     * When invalid data is found, throw an exception unless reading from the DB.
885
+     *
886
+     * @since 1.0.19
887
+     * @param string $code             Error code.
888
+     * @param string $message          Error message.
889
+     */
890
+    protected function error( $code, $message ) {
891
+        $this->last_error = $message;
892
+    }
893
+
894
+    /**
895
+     * Checks if the object is saved in the database
896
+     *
897
+     * @since 1.0.19
898
+     * @return bool
899
+     */
900
+    public function exists() {
901
+        $id = $this->get_id();
902
+        return ! empty( $id );
903
+    }
904 904
 
905 905
 }
Please login to merge, or discard this patch.
Spacing   +162 added lines, -162 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
  *
9 9
  */
10 10
 
11
-if ( ! defined( 'ABSPATH' ) ) {
11
+if (!defined('ABSPATH')) {
12 12
 	exit;
13 13
 }
14 14
 
@@ -117,8 +117,8 @@  discard block
 block discarded – undo
117 117
 	 *
118 118
 	 * @param int|object|array|string $read ID to load from the DB (optional) or already queried data.
119 119
 	 */
120
-	public function __construct( $read = 0 ) {
121
-		$this->data         = array_merge( $this->data, $this->extra_data );
120
+	public function __construct($read = 0) {
121
+		$this->data         = array_merge($this->data, $this->extra_data);
122 122
 		$this->default_data = $this->data;
123 123
 	}
124 124
 
@@ -128,7 +128,7 @@  discard block
 block discarded – undo
128 128
 	 * @return array
129 129
 	 */
130 130
 	public function __sleep() {
131
-		return array( 'id' );
131
+		return array('id');
132 132
 	}
133 133
 
134 134
 	/**
@@ -137,10 +137,10 @@  discard block
 block discarded – undo
137 137
 	 * If the object no longer exists, remove the ID.
138 138
 	 */
139 139
 	public function __wakeup() {
140
-		$this->__construct( absint( $this->id ) );
140
+		$this->__construct(absint($this->id));
141 141
 
142
-		if ( ! empty( $this->last_error ) ) {
143
-			$this->set_id( 0 );
142
+		if (!empty($this->last_error)) {
143
+			$this->set_id(0);
144 144
 		}
145 145
 
146 146
 	}
@@ -152,11 +152,11 @@  discard block
 block discarded – undo
152 152
 	 */
153 153
 	public function __clone() {
154 154
 		$this->maybe_read_meta_data();
155
-		if ( ! empty( $this->meta_data ) ) {
156
-			foreach ( $this->meta_data as $array_key => $meta ) {
157
-				$this->meta_data[ $array_key ] = clone $meta;
158
-				if ( ! empty( $meta->id ) ) {
159
-					$this->meta_data[ $array_key ]->id = null;
155
+		if (!empty($this->meta_data)) {
156
+			foreach ($this->meta_data as $array_key => $meta) {
157
+				$this->meta_data[$array_key] = clone $meta;
158
+				if (!empty($meta->id)) {
159
+					$this->meta_data[$array_key]->id = null;
160 160
 				}
161 161
 			}
162 162
 		}
@@ -199,8 +199,8 @@  discard block
 block discarded – undo
199 199
 	 * @param  string $context View or edit context.
200 200
 	 * @return string
201 201
 	 */
202
-	public function get_status( $context = 'view' ) {
203
-		return $this->get_prop( 'status', $context );
202
+	public function get_status($context = 'view') {
203
+		return $this->get_prop('status', $context);
204 204
     }
205 205
 
206 206
 	/**
@@ -210,10 +210,10 @@  discard block
 block discarded – undo
210 210
 	 * @param  bool $force_delete Should the data be deleted permanently.
211 211
 	 * @return bool result
212 212
 	 */
213
-	public function delete( $force_delete = false ) {
214
-		if ( $this->data_store && $this->exists() ) {
215
-			$this->data_store->delete( $this, array( 'force_delete' => $force_delete ) );
216
-			$this->set_id( 0 );
213
+	public function delete($force_delete = false) {
214
+		if ($this->data_store && $this->exists()) {
215
+			$this->data_store->delete($this, array('force_delete' => $force_delete));
216
+			$this->set_id(0);
217 217
 			return true;
218 218
 		}
219 219
 		return false;
@@ -226,7 +226,7 @@  discard block
 block discarded – undo
226 226
 	 * @return int
227 227
 	 */
228 228
 	public function save() {
229
-		if ( ! $this->data_store ) {
229
+		if (!$this->data_store) {
230 230
 			return $this->get_id();
231 231
 		}
232 232
 
@@ -236,12 +236,12 @@  discard block
 block discarded – undo
236 236
 		 * @param GetPaid_Data          $this The object being saved.
237 237
 		 * @param GetPaid_Data_Store_WP $data_store The data store persisting the data.
238 238
 		 */
239
-		do_action( 'getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store );
239
+		do_action('getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store);
240 240
 
241
-		if ( $this->get_id() ) {
242
-			$this->data_store->update( $this );
241
+		if ($this->get_id()) {
242
+			$this->data_store->update($this);
243 243
 		} else {
244
-			$this->data_store->create( $this );
244
+			$this->data_store->create($this);
245 245
 		}
246 246
 
247 247
 		/**
@@ -250,7 +250,7 @@  discard block
 block discarded – undo
250 250
 		 * @param GetPaid_Data          $this The object being saved.
251 251
 		 * @param GetPaid_Data_Store_WP $data_store The data store persisting the data.
252 252
 		 */
253
-		do_action( 'getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store );
253
+		do_action('getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store);
254 254
 
255 255
 		return $this->get_id();
256 256
 	}
@@ -262,7 +262,7 @@  discard block
 block discarded – undo
262 262
 	 * @return string Data in JSON format.
263 263
 	 */
264 264
 	public function __toString() {
265
-		return wp_json_encode( $this->get_data() );
265
+		return wp_json_encode($this->get_data());
266 266
 	}
267 267
 
268 268
 	/**
@@ -272,7 +272,7 @@  discard block
 block discarded – undo
272 272
 	 * @return array
273 273
 	 */
274 274
 	public function get_data() {
275
-		return array_merge( array( 'id' => $this->get_id() ), $this->data, array( 'meta_data' => $this->get_meta_data() ) );
275
+		return array_merge(array('id' => $this->get_id()), $this->data, array('meta_data' => $this->get_meta_data()));
276 276
 	}
277 277
 
278 278
 	/**
@@ -282,7 +282,7 @@  discard block
 block discarded – undo
282 282
 	 * @return array
283 283
 	 */
284 284
 	public function get_data_keys() {
285
-		return array_keys( $this->data );
285
+		return array_keys($this->data);
286 286
 	}
287 287
 
288 288
 	/**
@@ -292,7 +292,7 @@  discard block
 block discarded – undo
292 292
 	 * @return array
293 293
 	 */
294 294
 	public function get_extra_data_keys() {
295
-		return array_keys( $this->extra_data );
295
+		return array_keys($this->extra_data);
296 296
 	}
297 297
 
298 298
 	/**
@@ -302,8 +302,8 @@  discard block
 block discarded – undo
302 302
 	 * @param mixed $meta Meta value to check.
303 303
 	 * @return bool
304 304
 	 */
305
-	protected function filter_null_meta( $meta ) {
306
-		return ! is_null( $meta->value );
305
+	protected function filter_null_meta($meta) {
306
+		return !is_null($meta->value);
307 307
 	}
308 308
 
309 309
 	/**
@@ -314,7 +314,7 @@  discard block
 block discarded – undo
314 314
 	 */
315 315
 	public function get_meta_data() {
316 316
 		$this->maybe_read_meta_data();
317
-		return array_values( array_filter( $this->meta_data, array( $this, 'filter_null_meta' ) ) );
317
+		return array_values(array_filter($this->meta_data, array($this, 'filter_null_meta')));
318 318
 	}
319 319
 
320 320
 	/**
@@ -324,21 +324,21 @@  discard block
 block discarded – undo
324 324
 	 * @param  string $key Key to check.
325 325
 	 * @return bool   true if it's an internal key, false otherwise
326 326
 	 */
327
-	protected function is_internal_meta_key( $key ) {
328
-		$internal_meta_key = ! empty( $key ) && $this->data_store && in_array( $key, $this->data_store->get_internal_meta_keys(), true );
327
+	protected function is_internal_meta_key($key) {
328
+		$internal_meta_key = !empty($key) && $this->data_store && in_array($key, $this->data_store->get_internal_meta_keys(), true);
329 329
 
330
-		if ( ! $internal_meta_key ) {
330
+		if (!$internal_meta_key) {
331 331
 			return false;
332 332
 		}
333 333
 
334
-		$has_setter_or_getter = is_callable( array( $this, 'set_' . $key ) ) || is_callable( array( $this, 'get_' . $key ) );
334
+		$has_setter_or_getter = is_callable(array($this, 'set_' . $key)) || is_callable(array($this, 'get_' . $key));
335 335
 
336
-		if ( ! $has_setter_or_getter ) {
336
+		if (!$has_setter_or_getter) {
337 337
 			return false;
338 338
 		}
339 339
 
340 340
 		/* translators: %s: $key Key to check */
341
-		getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
341
+		getpaid_doing_it_wrong(__FUNCTION__, sprintf(__('Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing'), $key), '1.0.19');
342 342
 
343 343
 		return true;
344 344
 	}
@@ -352,20 +352,20 @@  discard block
 block discarded – undo
352 352
 	 * @access public
353 353
 	 *
354 354
 	 */
355
-	public function __set( $key, $value ) {
355
+	public function __set($key, $value) {
356 356
 
357
-		if ( 'id' == strtolower( $key ) ) {
358
-			return $this->set_id( $value );
357
+		if ('id' == strtolower($key)) {
358
+			return $this->set_id($value);
359 359
 		}
360 360
 
361
-		if ( method_exists( $this, "set_$key") ) {
361
+		if (method_exists($this, "set_$key")) {
362 362
 
363 363
 			/* translators: %s: $key Key to set */
364
-			getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
364
+			getpaid_doing_it_wrong(__FUNCTION__, sprintf(__('Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing'), $key), '1.0.19');
365 365
 
366
-			call_user_func( array( $this, "set_$key" ), $value );
366
+			call_user_func(array($this, "set_$key"), $value);
367 367
 		} else {
368
-			$this->set_prop( $key, $value );
368
+			$this->set_prop($key, $value);
369 369
 		}
370 370
 
371 371
 	}
@@ -373,25 +373,25 @@  discard block
 block discarded – undo
373 373
 	/**
374 374
      * Margic method for retrieving a property.
375 375
      */
376
-    public function __get( $key ) {
376
+    public function __get($key) {
377 377
 
378 378
         // Check if we have a helper method for that.
379
-        if ( method_exists( $this, 'get_' . $key ) ) {
379
+        if (method_exists($this, 'get_' . $key)) {
380 380
 
381
-			if ( 'post_type' != $key ) {
381
+			if ('post_type' != $key) {
382 382
 				/* translators: %s: $key Key to set */
383
-				getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
383
+				getpaid_doing_it_wrong(__FUNCTION__, sprintf(__('Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing'), $key), '1.0.19');
384 384
 			}
385 385
 
386
-            return call_user_func( array( $this, 'get_' . $key ) );
386
+            return call_user_func(array($this, 'get_' . $key));
387 387
         }
388 388
 
389 389
         // Check if the key is in the associated $post object.
390
-        if ( ! empty( $this->post ) && isset( $this->post->$key ) ) {
390
+        if (!empty($this->post) && isset($this->post->$key)) {
391 391
             return $this->post->$key;
392 392
         }
393 393
 
394
-		return $this->get_prop( $key );
394
+		return $this->get_prop($key);
395 395
 
396 396
     }
397 397
 
@@ -404,15 +404,15 @@  discard block
 block discarded – undo
404 404
 	 * @param  string $context What the value is for. Valid values are view and edit.
405 405
 	 * @return mixed
406 406
 	 */
407
-	public function get_meta( $key = '', $single = true, $context = 'view' ) {
407
+	public function get_meta($key = '', $single = true, $context = 'view') {
408 408
 
409 409
 		// Check if this is an internal meta key.
410
-		$_key = str_replace( '_wpinv', '', $key );
411
-		$_key = str_replace( 'wpinv', '', $_key );
412
-		if ( $this->is_internal_meta_key( $key ) ) {
410
+		$_key = str_replace('_wpinv', '', $key);
411
+		$_key = str_replace('wpinv', '', $_key);
412
+		if ($this->is_internal_meta_key($key)) {
413 413
 			$function = 'get_' . $_key;
414 414
 
415
-			if ( is_callable( array( $this, $function ) ) ) {
415
+			if (is_callable(array($this, $function))) {
416 416
 				return $this->{$function}();
417 417
 			}
418 418
 		}
@@ -420,20 +420,20 @@  discard block
 block discarded – undo
420 420
 		// Read the meta data if not yet read.
421 421
 		$this->maybe_read_meta_data();
422 422
 		$meta_data  = $this->get_meta_data();
423
-		$array_keys = array_keys( wp_list_pluck( $meta_data, 'key' ), $key, true );
423
+		$array_keys = array_keys(wp_list_pluck($meta_data, 'key'), $key, true);
424 424
 		$value      = $single ? '' : array();
425 425
 
426
-		if ( ! empty( $array_keys ) ) {
426
+		if (!empty($array_keys)) {
427 427
 			// We don't use the $this->meta_data property directly here because we don't want meta with a null value (i.e. meta which has been deleted via $this->delete_meta_data()).
428
-			if ( $single ) {
429
-				$value = $meta_data[ current( $array_keys ) ]->value;
428
+			if ($single) {
429
+				$value = $meta_data[current($array_keys)]->value;
430 430
 			} else {
431
-				$value = array_intersect_key( $meta_data, array_flip( $array_keys ) );
431
+				$value = array_intersect_key($meta_data, array_flip($array_keys));
432 432
 			}
433 433
 		}
434 434
 
435
-		if ( 'view' === $context ) {
436
-			$value = apply_filters( $this->get_hook_prefix() . $key, $value, $this );
435
+		if ('view' === $context) {
436
+			$value = apply_filters($this->get_hook_prefix() . $key, $value, $this);
437 437
 		}
438 438
 
439 439
 		return $value;
@@ -446,10 +446,10 @@  discard block
 block discarded – undo
446 446
 	 * @param  string $key Meta Key.
447 447
 	 * @return boolean
448 448
 	 */
449
-	public function meta_exists( $key = '' ) {
449
+	public function meta_exists($key = '') {
450 450
 		$this->maybe_read_meta_data();
451
-		$array_keys = wp_list_pluck( $this->get_meta_data(), 'key' );
452
-		return in_array( $key, $array_keys, true );
451
+		$array_keys = wp_list_pluck($this->get_meta_data(), 'key');
452
+		return in_array($key, $array_keys, true);
453 453
 	}
454 454
 
455 455
 	/**
@@ -458,12 +458,12 @@  discard block
 block discarded – undo
458 458
 	 * @since 1.0.19
459 459
 	 * @param array $data Key/Value pairs.
460 460
 	 */
461
-	public function set_meta_data( $data ) {
462
-		if ( ! empty( $data ) && is_array( $data ) ) {
461
+	public function set_meta_data($data) {
462
+		if (!empty($data) && is_array($data)) {
463 463
 			$this->maybe_read_meta_data();
464
-			foreach ( $data as $meta ) {
464
+			foreach ($data as $meta) {
465 465
 				$meta = (array) $meta;
466
-				if ( isset( $meta['key'], $meta['value'], $meta['id'] ) ) {
466
+				if (isset($meta['key'], $meta['value'], $meta['id'])) {
467 467
 					$this->meta_data[] = new GetPaid_Meta_Data(
468 468
 						array(
469 469
 							'id'    => $meta['id'],
@@ -485,18 +485,18 @@  discard block
 block discarded – undo
485 485
 	 * @param string|array $value Meta value.
486 486
 	 * @param bool         $unique Should this be a unique key?.
487 487
 	 */
488
-	public function add_meta_data( $key, $value, $unique = false ) {
489
-		if ( $this->is_internal_meta_key( $key ) ) {
488
+	public function add_meta_data($key, $value, $unique = false) {
489
+		if ($this->is_internal_meta_key($key)) {
490 490
 			$function = 'set_' . $key;
491 491
 
492
-			if ( is_callable( array( $this, $function ) ) ) {
493
-				return $this->{$function}( $value );
492
+			if (is_callable(array($this, $function))) {
493
+				return $this->{$function}($value);
494 494
 			}
495 495
 		}
496 496
 
497 497
 		$this->maybe_read_meta_data();
498
-		if ( $unique ) {
499
-			$this->delete_meta_data( $key );
498
+		if ($unique) {
499
+			$this->delete_meta_data($key);
500 500
 		}
501 501
 		$this->meta_data[] = new GetPaid_Meta_Data(
502 502
 			array(
@@ -517,12 +517,12 @@  discard block
 block discarded – undo
517 517
 	 * @param  string|array $value Meta value.
518 518
 	 * @param  int          $meta_id Meta ID.
519 519
 	 */
520
-	public function update_meta_data( $key, $value, $meta_id = 0 ) {
521
-		if ( $this->is_internal_meta_key( $key ) ) {
520
+	public function update_meta_data($key, $value, $meta_id = 0) {
521
+		if ($this->is_internal_meta_key($key)) {
522 522
 			$function = 'set_' . $key;
523 523
 
524
-			if ( is_callable( array( $this, $function ) ) ) {
525
-				return $this->{$function}( $value );
524
+			if (is_callable(array($this, $function))) {
525
+				return $this->{$function}($value);
526 526
 			}
527 527
 		}
528 528
 
@@ -530,33 +530,33 @@  discard block
 block discarded – undo
530 530
 
531 531
 		$array_key = false;
532 532
 
533
-		if ( $meta_id ) {
534
-			$array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true );
535
-			$array_key  = $array_keys ? current( $array_keys ) : false;
533
+		if ($meta_id) {
534
+			$array_keys = array_keys(wp_list_pluck($this->meta_data, 'id'), $meta_id, true);
535
+			$array_key  = $array_keys ? current($array_keys) : false;
536 536
 		} else {
537 537
 			// Find matches by key.
538 538
 			$matches = array();
539
-			foreach ( $this->meta_data as $meta_data_array_key => $meta ) {
540
-				if ( $meta->key === $key ) {
539
+			foreach ($this->meta_data as $meta_data_array_key => $meta) {
540
+				if ($meta->key === $key) {
541 541
 					$matches[] = $meta_data_array_key;
542 542
 				}
543 543
 			}
544 544
 
545
-			if ( ! empty( $matches ) ) {
545
+			if (!empty($matches)) {
546 546
 				// Set matches to null so only one key gets the new value.
547
-				foreach ( $matches as $meta_data_array_key ) {
548
-					$this->meta_data[ $meta_data_array_key ]->value = null;
547
+				foreach ($matches as $meta_data_array_key) {
548
+					$this->meta_data[$meta_data_array_key]->value = null;
549 549
 				}
550
-				$array_key = current( $matches );
550
+				$array_key = current($matches);
551 551
 			}
552 552
 		}
553 553
 
554
-		if ( false !== $array_key ) {
555
-			$meta        = $this->meta_data[ $array_key ];
554
+		if (false !== $array_key) {
555
+			$meta        = $this->meta_data[$array_key];
556 556
 			$meta->key   = $key;
557 557
 			$meta->value = $value;
558 558
 		} else {
559
-			$this->add_meta_data( $key, $value, true );
559
+			$this->add_meta_data($key, $value, true);
560 560
 		}
561 561
 	}
562 562
 
@@ -566,13 +566,13 @@  discard block
 block discarded – undo
566 566
 	 * @since 1.0.19
567 567
 	 * @param string $key Meta key.
568 568
 	 */
569
-	public function delete_meta_data( $key ) {
569
+	public function delete_meta_data($key) {
570 570
 		$this->maybe_read_meta_data();
571
-		$array_keys = array_keys( wp_list_pluck( $this->meta_data, 'key' ), $key, true );
571
+		$array_keys = array_keys(wp_list_pluck($this->meta_data, 'key'), $key, true);
572 572
 
573
-		if ( $array_keys ) {
574
-			foreach ( $array_keys as $array_key ) {
575
-				$this->meta_data[ $array_key ]->value = null;
573
+		if ($array_keys) {
574
+			foreach ($array_keys as $array_key) {
575
+				$this->meta_data[$array_key]->value = null;
576 576
 			}
577 577
 		}
578 578
 	}
@@ -583,13 +583,13 @@  discard block
 block discarded – undo
583 583
 	 * @since 1.0.19
584 584
 	 * @param int $mid Meta ID.
585 585
 	 */
586
-	public function delete_meta_data_by_mid( $mid ) {
586
+	public function delete_meta_data_by_mid($mid) {
587 587
 		$this->maybe_read_meta_data();
588
-		$array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), (int) $mid, true );
588
+		$array_keys = array_keys(wp_list_pluck($this->meta_data, 'id'), (int) $mid, true);
589 589
 
590
-		if ( $array_keys ) {
591
-			foreach ( $array_keys as $array_key ) {
592
-				$this->meta_data[ $array_key ]->value = null;
590
+		if ($array_keys) {
591
+			foreach ($array_keys as $array_key) {
592
+				$this->meta_data[$array_key]->value = null;
593 593
 			}
594 594
 		}
595 595
 	}
@@ -600,7 +600,7 @@  discard block
 block discarded – undo
600 600
 	 * @since 1.0.19
601 601
 	 */
602 602
 	protected function maybe_read_meta_data() {
603
-		if ( is_null( $this->meta_data ) ) {
603
+		if (is_null($this->meta_data)) {
604 604
 			$this->read_meta_data();
605 605
 		}
606 606
 	}
@@ -612,42 +612,42 @@  discard block
 block discarded – undo
612 612
 	 * @since 1.0.19
613 613
 	 * @param bool $force_read True to force a new DB read (and update cache).
614 614
 	 */
615
-	public function read_meta_data( $force_read = false ) {
615
+	public function read_meta_data($force_read = false) {
616 616
 
617 617
 		// Reset meta data.
618 618
 		$this->meta_data = array();
619 619
 
620 620
 		// Maybe abort early.
621
-		if ( ! $this->get_id() || ! $this->data_store ) {
621
+		if (!$this->get_id() || !$this->data_store) {
622 622
 			return;
623 623
 		}
624 624
 
625 625
 		// Only read from cache if the cache key is set.
626 626
 		$cache_key = null;
627
-		if ( ! $force_read && ! empty( $this->cache_group ) ) {
628
-			$cache_key     = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id();
629
-			$raw_meta_data = wp_cache_get( $cache_key, $this->cache_group );
627
+		if (!$force_read && !empty($this->cache_group)) {
628
+			$cache_key     = GetPaid_Cache_Helper::get_cache_prefix($this->cache_group) . GetPaid_Cache_Helper::get_cache_prefix('object_' . $this->get_id()) . 'object_meta_' . $this->get_id();
629
+			$raw_meta_data = wp_cache_get($cache_key, $this->cache_group);
630 630
 		}
631 631
 
632 632
 		// Should we force read?
633
-		if ( empty( $raw_meta_data ) ) {
634
-			$raw_meta_data = $this->data_store->read_meta( $this );
633
+		if (empty($raw_meta_data)) {
634
+			$raw_meta_data = $this->data_store->read_meta($this);
635 635
 
636
-			if ( ! empty( $cache_key ) ) {
637
-				wp_cache_set( $cache_key, $raw_meta_data, $this->cache_group );
636
+			if (!empty($cache_key)) {
637
+				wp_cache_set($cache_key, $raw_meta_data, $this->cache_group);
638 638
 			}
639 639
 
640 640
 		}
641 641
 
642 642
 		// Set meta data.
643
-		if ( is_array( $raw_meta_data ) ) {
643
+		if (is_array($raw_meta_data)) {
644 644
 
645
-			foreach ( $raw_meta_data as $meta ) {
645
+			foreach ($raw_meta_data as $meta) {
646 646
 				$this->meta_data[] = new GetPaid_Meta_Data(
647 647
 					array(
648 648
 						'id'    => (int) $meta->meta_id,
649 649
 						'key'   => $meta->meta_key,
650
-						'value' => maybe_unserialize( $meta->meta_value ),
650
+						'value' => maybe_unserialize($meta->meta_value),
651 651
 					)
652 652
 				);
653 653
 			}
@@ -662,28 +662,28 @@  discard block
 block discarded – undo
662 662
 	 * @since 1.0.19
663 663
 	 */
664 664
 	public function save_meta_data() {
665
-		if ( ! $this->data_store || is_null( $this->meta_data ) ) {
665
+		if (!$this->data_store || is_null($this->meta_data)) {
666 666
 			return;
667 667
 		}
668
-		foreach ( $this->meta_data as $array_key => $meta ) {
669
-			if ( is_null( $meta->value ) ) {
670
-				if ( ! empty( $meta->id ) ) {
671
-					$this->data_store->delete_meta( $this, $meta );
672
-					unset( $this->meta_data[ $array_key ] );
668
+		foreach ($this->meta_data as $array_key => $meta) {
669
+			if (is_null($meta->value)) {
670
+				if (!empty($meta->id)) {
671
+					$this->data_store->delete_meta($this, $meta);
672
+					unset($this->meta_data[$array_key]);
673 673
 				}
674
-			} elseif ( empty( $meta->id ) ) {
675
-				$meta->id = $this->data_store->add_meta( $this, $meta );
674
+			} elseif (empty($meta->id)) {
675
+				$meta->id = $this->data_store->add_meta($this, $meta);
676 676
 				$meta->apply_changes();
677 677
 			} else {
678
-				if ( $meta->get_changes() ) {
679
-					$this->data_store->update_meta( $this, $meta );
678
+				if ($meta->get_changes()) {
679
+					$this->data_store->update_meta($this, $meta);
680 680
 					$meta->apply_changes();
681 681
 				}
682 682
 			}
683 683
 		}
684
-		if ( ! empty( $this->cache_group ) ) {
685
-			$cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id();
686
-			wp_cache_delete( $cache_key, $this->cache_group );
684
+		if (!empty($this->cache_group)) {
685
+			$cache_key = GetPaid_Cache_Helper::get_cache_prefix($this->cache_group) . GetPaid_Cache_Helper::get_cache_prefix('object_' . $this->get_id()) . 'object_meta_' . $this->get_id();
686
+			wp_cache_delete($cache_key, $this->cache_group);
687 687
 		}
688 688
 	}
689 689
 
@@ -693,8 +693,8 @@  discard block
 block discarded – undo
693 693
 	 * @since 1.0.19
694 694
 	 * @param int $id ID.
695 695
 	 */
696
-	public function set_id( $id ) {
697
-		$this->id = absint( $id );
696
+	public function set_id($id) {
697
+		$this->id = absint($id);
698 698
 	}
699 699
 
700 700
 	/**
@@ -704,10 +704,10 @@  discard block
 block discarded – undo
704 704
 	 * @param string $status New status.
705 705
 	 * @return array details of change.
706 706
 	 */
707
-	public function set_status( $status ) {
707
+	public function set_status($status) {
708 708
         $old_status = $this->get_status();
709 709
 
710
-		$this->set_prop( 'status', $status );
710
+		$this->set_prop('status', $status);
711 711
 
712 712
 		return array(
713 713
 			'from' => $old_status,
@@ -723,7 +723,7 @@  discard block
 block discarded – undo
723 723
 	public function set_defaults() {
724 724
 		$this->data    = $this->default_data;
725 725
 		$this->changes = array();
726
-		$this->set_object_read( false );
726
+		$this->set_object_read(false);
727 727
 	}
728 728
 
729 729
 	/**
@@ -732,7 +732,7 @@  discard block
 block discarded – undo
732 732
 	 * @since 1.0.19
733 733
 	 * @param boolean $read Should read?.
734 734
 	 */
735
-	public function set_object_read( $read = true ) {
735
+	public function set_object_read($read = true) {
736 736
 		$this->object_read = (bool) $read;
737 737
 	}
738 738
 
@@ -757,33 +757,33 @@  discard block
 block discarded – undo
757 757
 	 *
758 758
 	 * @return bool|WP_Error
759 759
 	 */
760
-	public function set_props( $props, $context = 'set' ) {
760
+	public function set_props($props, $context = 'set') {
761 761
 		$errors = false;
762 762
 
763
-		$props = wp_unslash( $props );
764
-		foreach ( $props as $prop => $value ) {
763
+		$props = wp_unslash($props);
764
+		foreach ($props as $prop => $value) {
765 765
 			try {
766 766
 				/**
767 767
 				 * Checks if the prop being set is allowed, and the value is not null.
768 768
 				 */
769
-				if ( is_null( $value ) || in_array( $prop, array( 'prop', 'date_prop', 'meta_data' ), true ) ) {
769
+				if (is_null($value) || in_array($prop, array('prop', 'date_prop', 'meta_data'), true)) {
770 770
 					continue;
771 771
 				}
772 772
 				$setter = "set_$prop";
773 773
 
774
-				if ( is_callable( array( $this, $setter ) ) ) {
775
-					$this->{$setter}( $value );
774
+				if (is_callable(array($this, $setter))) {
775
+					$this->{$setter}($value);
776 776
 				}
777
-			} catch ( Exception $e ) {
778
-				if ( ! $errors ) {
777
+			} catch (Exception $e) {
778
+				if (!$errors) {
779 779
 					$errors = new WP_Error();
780 780
 				}
781
-				$errors->add( $e->getCode(), $e->getMessage() );
781
+				$errors->add($e->getCode(), $e->getMessage());
782 782
 				$this->last_error = $e->getMessage();
783 783
 			}
784 784
 		}
785 785
 
786
-		return $errors && count( $errors->get_error_codes() ) ? $errors : true;
786
+		return $errors && count($errors->get_error_codes()) ? $errors : true;
787 787
 	}
788 788
 
789 789
 	/**
@@ -796,14 +796,14 @@  discard block
 block discarded – undo
796 796
 	 * @param string $prop Name of prop to set.
797 797
 	 * @param mixed  $value Value of the prop.
798 798
 	 */
799
-	protected function set_prop( $prop, $value ) {
800
-		if ( array_key_exists( $prop, $this->data ) ) {
801
-			if ( true === $this->object_read ) {
802
-				if ( $value !== $this->data[ $prop ] || array_key_exists( $prop, $this->changes ) ) {
803
-					$this->changes[ $prop ] = $value;
799
+	protected function set_prop($prop, $value) {
800
+		if (array_key_exists($prop, $this->data)) {
801
+			if (true === $this->object_read) {
802
+				if ($value !== $this->data[$prop] || array_key_exists($prop, $this->changes)) {
803
+					$this->changes[$prop] = $value;
804 804
 				}
805 805
 			} else {
806
-				$this->data[ $prop ] = $value;
806
+				$this->data[$prop] = $value;
807 807
 			}
808 808
 		}
809 809
 	}
@@ -824,7 +824,7 @@  discard block
 block discarded – undo
824 824
 	 * @since 1.0.19
825 825
 	 */
826 826
 	public function apply_changes() {
827
-		$this->data    = array_replace( $this->data, $this->changes );
827
+		$this->data    = array_replace($this->data, $this->changes);
828 828
 		$this->changes = array();
829 829
 	}
830 830
 
@@ -849,14 +849,14 @@  discard block
 block discarded – undo
849 849
 	 * @param  string $context What the value is for. Valid values are view and edit.
850 850
 	 * @return mixed
851 851
 	 */
852
-	protected function get_prop( $prop, $context = 'view' ) {
852
+	protected function get_prop($prop, $context = 'view') {
853 853
 		$value = null;
854 854
 
855
-		if ( array_key_exists( $prop, $this->data ) ) {
856
-			$value = array_key_exists( $prop, $this->changes ) ? $this->changes[ $prop ] : $this->data[ $prop ];
855
+		if (array_key_exists($prop, $this->data)) {
856
+			$value = array_key_exists($prop, $this->changes) ? $this->changes[$prop] : $this->data[$prop];
857 857
 
858
-			if ( 'view' === $context ) {
859
-				$value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this );
858
+			if ('view' === $context) {
859
+				$value = apply_filters($this->get_hook_prefix() . $prop, $value, $this);
860 860
 			}
861 861
 		}
862 862
 
@@ -870,13 +870,13 @@  discard block
 block discarded – undo
870 870
 	 * @param string         $prop Name of prop to set.
871 871
 	 * @param string|integer $value Value of the prop.
872 872
 	 */
873
-	protected function set_date_prop( $prop, $value ) {
873
+	protected function set_date_prop($prop, $value) {
874 874
 
875
-		if ( empty( $value ) ) {
876
-			$this->set_prop( $prop, null );
875
+		if (empty($value)) {
876
+			$this->set_prop($prop, null);
877 877
 			return;
878 878
 		}
879
-		$this->set_prop( $prop, $value );
879
+		$this->set_prop($prop, $value);
880 880
 
881 881
 	}
882 882
 
@@ -887,7 +887,7 @@  discard block
 block discarded – undo
887 887
 	 * @param string $code             Error code.
888 888
 	 * @param string $message          Error message.
889 889
 	 */
890
-	protected function error( $code, $message ) {
890
+	protected function error($code, $message) {
891 891
 		$this->last_error = $message;
892 892
 	}
893 893
 
@@ -899,7 +899,7 @@  discard block
 block discarded – undo
899 899
 	 */
900 900
 	public function exists() {
901 901
 		$id = $this->get_id();
902
-		return ! empty( $id );
902
+		return !empty($id);
903 903
 	}
904 904
 
905 905
 }
Please login to merge, or discard this patch.
includes/data/admin-settings.php 1 patch
Spacing   +170 added lines, -170 removed lines patch added patch discarded remove patch
@@ -8,99 +8,99 @@  discard block
 block discarded – undo
8 8
  * @version 1.0.19
9 9
  */
10 10
 
11
-defined( 'ABSPATH' ) || exit;
11
+defined('ABSPATH') || exit;
12 12
 
13 13
 $getpaid_pages = GetPaid_Installer::get_pages();
14
-$pages         = wpinv_get_pages( true );
14
+$pages         = wpinv_get_pages(true);
15 15
     
16 16
 $currencies = wpinv_get_currencies();
17 17
     
18 18
 $currency_code_options = array();
19
-foreach ( $currencies as $code => $name ) {
20
-    $currency_code_options[ $code ] = $code . ' - ' . $name . ' (' . wpinv_currency_symbol( $code ) . ')';
19
+foreach ($currencies as $code => $name) {
20
+    $currency_code_options[$code] = $code . ' - ' . $name . ' (' . wpinv_currency_symbol($code) . ')';
21 21
 }
22 22
 
23 23
 $invoice_number_padd_options = array();
24
-for ( $i = 0; $i <= 20; $i++ ) {
24
+for ($i = 0; $i <= 20; $i++) {
25 25
     $invoice_number_padd_options[$i] = $i;
26 26
 }
27 27
     
28 28
 $currency_symbol = wpinv_currency_symbol();
29 29
     
30 30
 $last_number = $reset_number = '';
31
-if ( $last_invoice_number = get_option( 'wpinv_last_invoice_number' ) ) {
32
-    $last_invoice_number = preg_replace( '/[^0-9]/', '', $last_invoice_number );
31
+if ($last_invoice_number = get_option('wpinv_last_invoice_number')) {
32
+    $last_invoice_number = preg_replace('/[^0-9]/', '', $last_invoice_number);
33 33
 
34
-    if ( !empty( $last_invoice_number ) ) {
35
-        $last_number = ' ' . wp_sprintf( __( "( Last Invoice's sequential number: <b>%s</b> )", 'invoicing' ), $last_invoice_number );
34
+    if (!empty($last_invoice_number)) {
35
+        $last_number = ' ' . wp_sprintf(__("( Last Invoice's sequential number: <b>%s</b> )", 'invoicing'), $last_invoice_number);
36 36
     }
37 37
 
38 38
     $nonce = wp_create_nonce('reset_invoice_count');
39
-    $reset_number = '<a href="'.add_query_arg(array('reset_invoice_count' => 1, '_nonce' => $nonce)).'" class="btn button">'.__('Force Reset Sequence', 'invoicing' ). '</a>';
39
+    $reset_number = '<a href="' . add_query_arg(array('reset_invoice_count' => 1, '_nonce' => $nonce)) . '" class="btn button">' . __('Force Reset Sequence', 'invoicing') . '</a>';
40 40
 }
41 41
     
42 42
 $alert_wrapper_start = '<p style="color: #F00">';
43 43
 $alert_wrapper_close = '</p>';
44 44
 
45 45
 return array(
46
-    'general' => apply_filters( 'wpinv_settings_general',
46
+    'general' => apply_filters('wpinv_settings_general',
47 47
         array(
48 48
             'main' => array(
49 49
                 'location_settings' => array(
50 50
                     'id'   => 'location_settings',
51
-                    'name' => '<h3>' . __( 'Default Location', 'invoicing' ) . '</h3>',
51
+                    'name' => '<h3>' . __('Default Location', 'invoicing') . '</h3>',
52 52
                     'desc' => '',
53 53
                     'type' => 'header',
54 54
                 ),
55 55
                 'default_country' => array(
56 56
                     'id'      => 'default_country',
57
-                    'name'    => __( 'Default Country', 'invoicing' ),
58
-                    'desc'    => __( 'Where does your store operate from?', 'invoicing' ),
57
+                    'name'    => __('Default Country', 'invoicing'),
58
+                    'desc'    => __('Where does your store operate from?', 'invoicing'),
59 59
                     'type'    => 'select',
60 60
                     'options' => wpinv_get_country_list(),
61 61
                     'std'     => 'GB',
62 62
                     'class'   => 'wpi_select2',
63
-                    'placeholder' => __( 'Select a country', 'invoicing' ),
63
+                    'placeholder' => __('Select a country', 'invoicing'),
64 64
                 ),
65 65
                 'default_state' => array(
66 66
                     'id'      => 'default_state',
67
-                    'name'    => __( 'Default State / Province', 'invoicing' ),
68
-                    'desc'    => __( 'What state / province does your store operate from?', 'invoicing' ),
67
+                    'name'    => __('Default State / Province', 'invoicing'),
68
+                    'desc'    => __('What state / province does your store operate from?', 'invoicing'),
69 69
                     'type'    => 'country_states',
70 70
                     'class'   => 'wpi_select2',
71
-                    'placeholder' => __( 'Select a state', 'invoicing' ),
71
+                    'placeholder' => __('Select a state', 'invoicing'),
72 72
                 ),
73 73
                 'store_name' => array(
74 74
                     'id'   => 'store_name',
75
-                    'name' => __( 'Store Name', 'invoicing' ),
76
-                    'desc' => __( 'Store name to print on invoices.', 'invoicing' ),
75
+                    'name' => __('Store Name', 'invoicing'),
76
+                    'desc' => __('Store name to print on invoices.', 'invoicing'),
77 77
                     'std'     => get_option('blogname'),
78 78
                     'type' => 'text',
79 79
                 ),
80 80
                 'logo' => array(
81 81
                     'id'   => 'logo',
82
-                    'name' => __( 'Logo URL', 'invoicing' ),
83
-                    'desc' => __( 'Store logo to print on invoices.', 'invoicing' ),
82
+                    'name' => __('Logo URL', 'invoicing'),
83
+                    'desc' => __('Store logo to print on invoices.', 'invoicing'),
84 84
                     'type' => 'text',
85 85
                 ),
86 86
                 'logo_width'      => array(
87 87
                     'id'          => 'logo_width',
88
-                    'name'        => __( 'Logo width', 'invoicing' ),
89
-                    'desc'        => __( 'Logo width to use in invoice image.', 'invoicing' ),
88
+                    'name'        => __('Logo width', 'invoicing'),
89
+                    'desc'        => __('Logo width to use in invoice image.', 'invoicing'),
90 90
                     'type'        => 'number',
91
-                    'placeholder' => __( 'Auto', 'invoicing' ),
91
+                    'placeholder' => __('Auto', 'invoicing'),
92 92
                 ),
93 93
                 'logo_height'     => array(
94 94
                     'id'          => 'logo_height',
95
-                    'name'        => __( 'Logo height', 'invoicing' ),
96
-                    'desc'        => __( 'Logo height to use in invoice image.', 'invoicing' ),
95
+                    'name'        => __('Logo height', 'invoicing'),
96
+                    'desc'        => __('Logo height to use in invoice image.', 'invoicing'),
97 97
                     'type'        => 'number',
98
-                    'placeholder' => __( 'Auto', 'invoicing' ),
98
+                    'placeholder' => __('Auto', 'invoicing'),
99 99
                 ),
100 100
                 'store_address' => array(
101 101
                     'id'   => 'store_address',
102
-                    'name' => __( 'Store Address', 'invoicing' ),
103
-                    'desc' => __( 'Enter the store address to display on invoice', 'invoicing' ),
102
+                    'name' => __('Store Address', 'invoicing'),
103
+                    'desc' => __('Enter the store address to display on invoice', 'invoicing'),
104 104
                     'type' => 'textarea',
105 105
                 ),
106 106
 
@@ -108,114 +108,114 @@  discard block
 block discarded – undo
108 108
             'page_section' => array(
109 109
                 'page_settings' => array(
110 110
                     'id'   => 'page_settings',
111
-                    'name' => '<h3>' . __( 'Page Settings', 'invoicing' ) . '</h3>',
111
+                    'name' => '<h3>' . __('Page Settings', 'invoicing') . '</h3>',
112 112
                     'desc' => '',
113 113
                     'type' => 'header',
114 114
                 ),
115 115
                 'checkout_page' => array(
116 116
                     'id'          => 'checkout_page',
117
-                    'name'        => __( 'Checkout Page', 'invoicing' ),
118
-                    'desc'        => __( 'This is the checkout page where buyers will complete their payments. The <b>[wpinv_checkout]</b> short code must be on this page.', 'invoicing' ),
117
+                    'name'        => __('Checkout Page', 'invoicing'),
118
+                    'desc'        => __('This is the checkout page where buyers will complete their payments. The <b>[wpinv_checkout]</b> short code must be on this page.', 'invoicing'),
119 119
                     'type'        => 'select',
120 120
                     'options'     => $pages,
121 121
                     'class'       => 'wpi_select2',
122
-                    'placeholder' => __( 'Select a page', 'invoicing' ),
123
-                    'default_content' => empty( $getpaid_pages['checkout_page'] ) ? '' : $getpaid_pages['checkout_page']['content'],
122
+                    'placeholder' => __('Select a page', 'invoicing'),
123
+                    'default_content' => empty($getpaid_pages['checkout_page']) ? '' : $getpaid_pages['checkout_page']['content'],
124 124
                     'help-tip'    => true,
125 125
                 ),
126 126
                 'success_page' => array(
127 127
                     'id'          => 'success_page',
128
-                    'name'        => __( 'Success Page', 'invoicing' ),
129
-                    'desc'        => __( 'This is the page buyers are sent to after completing their payments. The <b>[wpinv_receipt]</b> short code should be on this page.', 'invoicing' ),
128
+                    'name'        => __('Success Page', 'invoicing'),
129
+                    'desc'        => __('This is the page buyers are sent to after completing their payments. The <b>[wpinv_receipt]</b> short code should be on this page.', 'invoicing'),
130 130
                     'type'        => 'select',
131 131
                     'options'     => $pages,
132 132
                     'class'       => 'wpi_select2',
133
-                    'placeholder' => __( 'Select a page', 'invoicing' ),
134
-                    'default_content' => empty( $getpaid_pages['success_page'] ) ? '' : $getpaid_pages['success_page']['content'],
133
+                    'placeholder' => __('Select a page', 'invoicing'),
134
+                    'default_content' => empty($getpaid_pages['success_page']) ? '' : $getpaid_pages['success_page']['content'],
135 135
                     'help-tip'    => true,
136 136
                 ),
137 137
                 'failure_page' => array(
138 138
                     'id'          => 'failure_page',
139
-                    'name'        => __( 'Failed Transaction Page', 'invoicing' ),
140
-                    'desc'        => __( 'This is the page buyers are sent to if their transaction is cancelled or fails.', 'invoicing' ),
139
+                    'name'        => __('Failed Transaction Page', 'invoicing'),
140
+                    'desc'        => __('This is the page buyers are sent to if their transaction is cancelled or fails.', 'invoicing'),
141 141
                     'type'        => 'select',
142 142
                     'options'     => $pages,
143 143
                     'class'       => 'wpi_select2',
144
-                    'placeholder' => __( 'Select a page', 'invoicing' ),
145
-                    'default_content' => empty( $getpaid_pages['failure_page'] ) ? '' : $getpaid_pages['failure_page']['content'],
144
+                    'placeholder' => __('Select a page', 'invoicing'),
145
+                    'default_content' => empty($getpaid_pages['failure_page']) ? '' : $getpaid_pages['failure_page']['content'],
146 146
                     'help-tip'    => true,
147 147
                 ),
148 148
                 'invoice_history_page' => array(
149 149
                     'id'          => 'invoice_history_page',
150
-                    'name'        => __( 'Invoice History Page', 'invoicing' ),
151
-                    'desc'        => __( 'This page shows an invoice history for the current user. The <b>[wpinv_history]</b> short code should be on this page.', 'invoicing' ),
150
+                    'name'        => __('Invoice History Page', 'invoicing'),
151
+                    'desc'        => __('This page shows an invoice history for the current user. The <b>[wpinv_history]</b> short code should be on this page.', 'invoicing'),
152 152
                     'type'        => 'select',
153 153
                     'options'     => $pages,
154 154
                     'class'       => 'wpi_select2',
155
-                    'placeholder' => __( 'Select a page', 'invoicing' ),
156
-                    'default_content' => empty( $getpaid_pages['invoice_history_page'] ) ? '' : $getpaid_pages['invoice_history_page']['content'],
155
+                    'placeholder' => __('Select a page', 'invoicing'),
156
+                    'default_content' => empty($getpaid_pages['invoice_history_page']) ? '' : $getpaid_pages['invoice_history_page']['content'],
157 157
                     'help-tip'    => true,
158 158
                 ),
159 159
                 'invoice_subscription_page' => array(
160 160
                     'id'          => 'invoice_subscription_page',
161
-                    'name'        => __( 'Invoice Subscriptions Page', 'invoicing' ),
162
-                    'desc'        => __( 'This page shows subscriptions history for the current user. The <b>[wpinv_subscriptions]</b> short code should be on this page.', 'invoicing' ),
161
+                    'name'        => __('Invoice Subscriptions Page', 'invoicing'),
162
+                    'desc'        => __('This page shows subscriptions history for the current user. The <b>[wpinv_subscriptions]</b> short code should be on this page.', 'invoicing'),
163 163
                     'type'        => 'select',
164 164
                     'options'     => $pages,
165 165
                     'class'       => 'wpi_select2',
166
-                    'placeholder' => __( 'Select a page', 'invoicing' ),
167
-                    'default_content' => empty( $getpaid_pages['invoice_subscription_page'] ) ? '' : $getpaid_pages['invoice_subscription_page']['content'],
166
+                    'placeholder' => __('Select a page', 'invoicing'),
167
+                    'default_content' => empty($getpaid_pages['invoice_subscription_page']) ? '' : $getpaid_pages['invoice_subscription_page']['content'],
168 168
                     'help-tip'    => true,
169 169
                 ),
170 170
             ),
171 171
             'currency_section' => array(
172 172
                 'currency_settings' => array(
173 173
                     'id'   => 'currency_settings',
174
-                    'name' => '<h3>' . __( 'Currency Settings', 'invoicing' ) . '</h3>',
174
+                    'name' => '<h3>' . __('Currency Settings', 'invoicing') . '</h3>',
175 175
                     'desc' => '',
176 176
                     'type' => 'header',
177 177
                 ),
178 178
                 'currency' => array(
179 179
                     'id'      => 'currency',
180
-                    'name'    => __( 'Currency', 'invoicing' ),
181
-                    'desc'    => __( 'Choose your currency. Note that some payment gateways have currency restrictions.', 'invoicing' ),
180
+                    'name'    => __('Currency', 'invoicing'),
181
+                    'desc'    => __('Choose your currency. Note that some payment gateways have currency restrictions.', 'invoicing'),
182 182
                     'type'    => 'select',
183 183
                     'class'       => 'wpi_select2',
184 184
                     'options' => $currency_code_options,
185 185
                 ),
186 186
                 'currency_position' => array(
187 187
                     'id'      => 'currency_position',
188
-                    'name'    => __( 'Currency Position', 'invoicing' ),
189
-                    'desc'    => __( 'Choose the location of the currency sign.', 'invoicing' ),
188
+                    'name'    => __('Currency Position', 'invoicing'),
189
+                    'desc'    => __('Choose the location of the currency sign.', 'invoicing'),
190 190
                     'type'    => 'select',
191 191
                     'class'   => 'wpi_select2',
192 192
                     'options'  => array(
193
-                        'left'        => __( 'Left', 'invoicing' ) . ' (' . $currency_symbol . wpinv_format_amount( '99.99' ) . ')',
194
-                        'right'       => __( 'Right', 'invoicing' ) . ' ('. wpinv_format_amount( '99.99' ) . $currency_symbol . ')',
195
-                        'left_space'  => __( 'Left with space', 'invoicing' ) . ' (' . $currency_symbol . ' ' . wpinv_format_amount( '99.99' ) . ')',
196
-                        'right_space' => __( 'Right with space', 'invoicing' ) . ' (' . wpinv_format_amount( '99.99' ) . ' ' . $currency_symbol . ')'
193
+                        'left'        => __('Left', 'invoicing') . ' (' . $currency_symbol . wpinv_format_amount('99.99') . ')',
194
+                        'right'       => __('Right', 'invoicing') . ' (' . wpinv_format_amount('99.99') . $currency_symbol . ')',
195
+                        'left_space'  => __('Left with space', 'invoicing') . ' (' . $currency_symbol . ' ' . wpinv_format_amount('99.99') . ')',
196
+                        'right_space' => __('Right with space', 'invoicing') . ' (' . wpinv_format_amount('99.99') . ' ' . $currency_symbol . ')'
197 197
                     )
198 198
                 ),
199 199
                 'thousands_separator' => array(
200 200
                     'id'   => 'thousands_separator',
201
-                    'name' => __( 'Thousands Separator', 'invoicing' ),
202
-                    'desc' => __( 'The symbol (usually , or .) to separate thousands', 'invoicing' ),
201
+                    'name' => __('Thousands Separator', 'invoicing'),
202
+                    'desc' => __('The symbol (usually , or .) to separate thousands', 'invoicing'),
203 203
                     'type' => 'text',
204 204
                     'size' => 'small',
205 205
                     'std'  => ',',
206 206
                 ),
207 207
                 'decimal_separator' => array(
208 208
                     'id'   => 'decimal_separator',
209
-                    'name' => __( 'Decimal Separator', 'invoicing' ),
210
-                    'desc' => __( 'The symbol (usually , or .) to separate decimal points', 'invoicing' ),
209
+                    'name' => __('Decimal Separator', 'invoicing'),
210
+                    'desc' => __('The symbol (usually , or .) to separate decimal points', 'invoicing'),
211 211
                     'type' => 'text',
212 212
                     'size' => 'small',
213 213
                     'std'  => '.',
214 214
                 ),
215 215
                 'decimals' => array(
216 216
                     'id'   => 'decimals',
217
-                    'name' => __( 'Number of Decimals', 'invoicing' ),
218
-                    'desc' => __( 'This sets the number of decimal points shown in displayed prices.', 'invoicing' ),
217
+                    'name' => __('Number of Decimals', 'invoicing'),
218
+                    'desc' => __('This sets the number of decimal points shown in displayed prices.', 'invoicing'),
219 219
                     'type' => 'number',
220 220
                     'size' => 'small',
221 221
                     'std'  => '2',
@@ -227,21 +227,21 @@  discard block
 block discarded – undo
227 227
             'labels' => array(
228 228
                 'labels' => array(
229 229
                     'id'   => 'labels_settings',
230
-                    'name' => '<h3>' . __( 'Invoice Labels', 'invoicing' ) . '</h3>',
230
+                    'name' => '<h3>' . __('Invoice Labels', 'invoicing') . '</h3>',
231 231
                     'desc' => '',
232 232
                     'type' => 'header',
233 233
                 ),
234 234
                 'vat_invoice_notice_label' => array(
235 235
                     'id' => 'vat_invoice_notice_label',
236
-                    'name' => __( 'Invoice Notice Label', 'invoicing' ),
237
-                    'desc' => __( 'Use this to add an invoice notice section (label) to your invoices', 'invoicing' ),
236
+                    'name' => __('Invoice Notice Label', 'invoicing'),
237
+                    'desc' => __('Use this to add an invoice notice section (label) to your invoices', 'invoicing'),
238 238
                     'type' => 'text',
239 239
                     'size' => 'regular',
240 240
                 ),
241 241
                 'vat_invoice_notice' => array(
242 242
                     'id' => 'vat_invoice_notice',
243
-                    'name' => __( 'Invoice notice', 'invoicing' ),
244
-                    'desc' =>   __( 'Use this to add an invoice notice section (description) to your invoices', 'invoicing' ),
243
+                    'name' => __('Invoice notice', 'invoicing'),
244
+                    'desc' =>   __('Use this to add an invoice notice section (description) to your invoices', 'invoicing'),
245 245
                     'type' => 'text',
246 246
                     'size' => 'regular',
247 247
                 ),
@@ -253,22 +253,22 @@  discard block
 block discarded – undo
253 253
             'main' => array(
254 254
                 'gateway_settings' => array(
255 255
                     'id'   => 'api_header',
256
-                    'name' => '<h3>' . __( 'Gateway Settings', 'invoicing' ) . '</h3>',
256
+                    'name' => '<h3>' . __('Gateway Settings', 'invoicing') . '</h3>',
257 257
                     'desc' => '',
258 258
                     'type' => 'header',
259 259
                 ),
260 260
                 'gateways' => array(
261 261
                     'id'      => 'gateways',
262
-                    'name'    => __( 'Payment Gateways', 'invoicing' ),
263
-                    'desc'    => __( 'Choose the payment gateways you want to enable.', 'invoicing' ),
262
+                    'name'    => __('Payment Gateways', 'invoicing'),
263
+                    'desc'    => __('Choose the payment gateways you want to enable.', 'invoicing'),
264 264
                     'type'    => 'gateways',
265
-                    'std'     => array( 'manual'=>1 ),
265
+                    'std'     => array('manual'=>1),
266 266
                     'options' => wpinv_get_payment_gateways(),
267 267
                 ),
268 268
                 'default_gateway' => array(
269 269
                     'id'      => 'default_gateway',
270
-                    'name'    => __( 'Default Gateway', 'invoicing' ),
271
-                    'desc'    => __( 'This gateway will be loaded automatically with the checkout page.', 'invoicing' ),
270
+                    'name'    => __('Default Gateway', 'invoicing'),
271
+                    'desc'    => __('This gateway will be loaded automatically with the checkout page.', 'invoicing'),
272 272
                     'type'    => 'gateway_select',
273 273
                     'std'     => 'manual',
274 274
                     'class'   => 'wpi_select2',
@@ -283,32 +283,32 @@  discard block
 block discarded – undo
283 283
             'main' => array(
284 284
                 'tax_settings' => array(
285 285
                     'id'   => 'tax_settings',
286
-                    'name' => '<h3>' . __( 'Tax Settings', 'invoicing' ) . '</h3>',
286
+                    'name' => '<h3>' . __('Tax Settings', 'invoicing') . '</h3>',
287 287
                     'type' => 'header',
288 288
                 ),
289 289
 
290 290
                 'enable_taxes' => array(
291 291
                     'id'       => 'enable_taxes',
292
-                    'name'     => __( 'Enable Taxes', 'invoicing' ),
293
-                    'desc'     => __( 'Enable tax rates and calculations.', 'invoicing' ),
292
+                    'name'     => __('Enable Taxes', 'invoicing'),
293
+                    'desc'     => __('Enable tax rates and calculations.', 'invoicing'),
294 294
                     'type'     => 'checkbox',
295 295
                     'std'      => 0,
296 296
                 ),
297 297
 
298 298
                 'tax_subtotal_rounding' => array(
299 299
                     'id'                => 'tax_subtotal_rounding',
300
-                    'name'              => __( 'Rounding', 'invoicing' ),
301
-                    'desc'              => __( 'Round tax at subtotal level, instead of rounding per tax rate', 'invoicing' ),
300
+                    'name'              => __('Rounding', 'invoicing'),
301
+                    'desc'              => __('Round tax at subtotal level, instead of rounding per tax rate', 'invoicing'),
302 302
                     'type'              => 'checkbox',
303 303
                     'std'               => 1,
304 304
                 ),
305 305
 
306 306
                 'prices_include_tax' => array(
307 307
                     'id'      => 'prices_include_tax',
308
-                    'name'    => __( 'Prices entered with tax', 'invoicing' ),
308
+                    'name'    => __('Prices entered with tax', 'invoicing'),
309 309
                     'options' => array(
310
-                        'yes' => __( 'Yes, I will enter prices inclusive of tax', 'invoicing' ),
311
-                        'no'  => __( 'No, I will enter prices exclusive of tax', 'invoicing' ),
310
+                        'yes' => __('Yes, I will enter prices inclusive of tax', 'invoicing'),
311
+                        'no'  => __('No, I will enter prices exclusive of tax', 'invoicing'),
312 312
                     ),
313 313
                     'type'    => 'select',
314 314
                     'std'     => 'no',
@@ -316,10 +316,10 @@  discard block
 block discarded – undo
316 316
 
317 317
                 'tax_base'              => array(
318 318
                     'id'                => 'tax_base',
319
-                    'name'              => __( 'Calculate tax based on', 'invoicing' ),
319
+                    'name'              => __('Calculate tax based on', 'invoicing'),
320 320
                     'options'           => array(
321
-                        'billing'       => __( 'Customer billing address', 'invoicing' ),
322
-                        'base'          => __( 'Shop base address', 'invoicing' ),
321
+                        'billing'       => __('Customer billing address', 'invoicing'),
322
+                        'base'          => __('Shop base address', 'invoicing'),
323 323
                     ),
324 324
                     'type'              => 'select',
325 325
                     'std'               => 'billing',
@@ -327,10 +327,10 @@  discard block
 block discarded – undo
327 327
 
328 328
                 'tax_display_totals'    => array(
329 329
                     'id'                => 'tax_display_totals',
330
-                    'name'              => __( 'Display tax totals', 'invoicing' ),
330
+                    'name'              => __('Display tax totals', 'invoicing'),
331 331
                     'options'           => array(
332
-                        'single'        => __( 'As a single total', 'invoicing' ),
333
-                        'individual'    => __( 'As individual tax rates', 'invoicing' ),
332
+                        'single'        => __('As a single total', 'invoicing'),
333
+                        'individual'    => __('As individual tax rates', 'invoicing'),
334 334
                     ),
335 335
                     'type'              => 'select',
336 336
                     'std'               => 'individual',
@@ -338,8 +338,8 @@  discard block
 block discarded – undo
338 338
 
339 339
                 'tax_rate' => array(
340 340
                     'id'   => 'tax_rate',
341
-                    'name' => __( 'Fallback Tax Rate', 'invoicing' ),
342
-                    'desc' => __( 'Enter a percentage, such as 6.5. Customers not in a specific rate will be charged this rate.', 'invoicing' ),
341
+                    'name' => __('Fallback Tax Rate', 'invoicing'),
342
+                    'desc' => __('Enter a percentage, such as 6.5. Customers not in a specific rate will be charged this rate.', 'invoicing'),
343 343
                     'type' => 'number',
344 344
                     'size' => 'small',
345 345
                     'min'  => '0',
@@ -351,8 +351,8 @@  discard block
 block discarded – undo
351 351
             'rates' => array(
352 352
                 'tax_rates' => array(
353 353
                     'id'   => 'tax_rates',
354
-                    'name' => '<h3>' . __( 'Tax Rates', 'invoicing' ) . '</h3>',
355
-                    'desc' => __( 'Enter tax rates for specific regions.', 'invoicing' ),
354
+                    'name' => '<h3>' . __('Tax Rates', 'invoicing') . '</h3>',
355
+                    'desc' => __('Enter tax rates for specific regions.', 'invoicing'),
356 356
                     'type' => 'tax_rates',
357 357
                 ),
358 358
             ),
@@ -361,45 +361,45 @@  discard block
 block discarded – undo
361 361
 
362 362
                 'vat_company_name' => array(
363 363
                     'id' => 'vat_company_name',
364
-                    'name' => __( 'Company Name', 'invoicing' ),
365
-                    'desc' => wp_sprintf(__( 'Verify your company name and  VAT number on the %sEU VIES System.%s', 'invoicing' ), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>' ),
364
+                    'name' => __('Company Name', 'invoicing'),
365
+                    'desc' => wp_sprintf(__('Verify your company name and  VAT number on the %sEU VIES System.%s', 'invoicing'), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>'),
366 366
                     'type' => 'text',
367 367
                     'size' => 'regular',
368 368
                 ),
369 369
 
370 370
                 'vat_number' => array(
371 371
                     'id'   => 'vat_number',
372
-                    'name' => __( 'VAT Number', 'invoicing' ),
373
-                    'desc' => __( 'Enter your VAT number including the country identifier, eg: GB123456789', 'invoicing' ),
372
+                    'name' => __('VAT Number', 'invoicing'),
373
+                    'desc' => __('Enter your VAT number including the country identifier, eg: GB123456789', 'invoicing'),
374 374
                     'type' => 'text',
375 375
                     'size' => 'regular',
376 376
                 ),
377 377
 
378 378
                 'vat_prevent_b2c_purchase' => array(
379 379
                     'id' => 'vat_prevent_b2c_purchase',
380
-                    'name' => __( 'Prevent B2C Sales', 'invoicing' ),
381
-                    'desc' => __( 'Require everyone in the EU to provide a VAT number.', 'invoicing' ),
380
+                    'name' => __('Prevent B2C Sales', 'invoicing'),
381
+                    'desc' => __('Require everyone in the EU to provide a VAT number.', 'invoicing'),
382 382
                     'type' => 'checkbox'
383 383
                 ),
384 384
 
385 385
                 'validate_vat_number' => array(
386 386
                     'id'   => 'validate_vat_number',
387
-                    'name' => __( 'Validate VAT Number', 'invoicing' ),
388
-                    'desc' => __( 'Validate VAT numbers with VIES.', 'invoicing' ),
387
+                    'name' => __('Validate VAT Number', 'invoicing'),
388
+                    'desc' => __('Validate VAT numbers with VIES.', 'invoicing'),
389 389
                     'type' => 'checkbox'
390 390
                 ),
391 391
 
392 392
                 'vat_same_country_rule' => array(
393 393
                     'id'          => 'vat_same_country_rule',
394
-                    'name'        => __( 'Same Country Rule', 'invoicing' ),
395
-                    'desc'        => __( 'What should happen if a customer is from the same country as your business?', 'invoicing' ),
394
+                    'name'        => __('Same Country Rule', 'invoicing'),
395
+                    'desc'        => __('What should happen if a customer is from the same country as your business?', 'invoicing'),
396 396
                     'type'        => 'select',
397 397
                     'options'     => array(
398
-                        'no'        => __( 'Do not charge tax', 'invoicing' ),
399
-                        'always'    => __( 'Charge tax unless vat number is validated', 'invoicing' ),
400
-                        'vat_too'   => __( 'Charge tax even if vat number is validated', 'invoicing' )
398
+                        'no'        => __('Do not charge tax', 'invoicing'),
399
+                        'always'    => __('Charge tax unless vat number is validated', 'invoicing'),
400
+                        'vat_too'   => __('Charge tax even if vat number is validated', 'invoicing')
401 401
                     ),
402
-                    'placeholder' => __( 'Select an option', 'invoicing' ),
402
+                    'placeholder' => __('Select an option', 'invoicing'),
403 403
                     'std'         => 'vat_too',
404 404
                 ),
405 405
 
@@ -413,66 +413,66 @@  discard block
 block discarded – undo
413 413
             'main' => array(
414 414
                 'email_settings_header' => array(
415 415
                     'id'   => 'email_settings_header',
416
-                    'name' => '<h3>' . __( 'Email Sender Options', 'invoicing' ) . '</h3>',
416
+                    'name' => '<h3>' . __('Email Sender Options', 'invoicing') . '</h3>',
417 417
                     'type' => 'header',
418 418
                 ),
419 419
                 'email_from_name' => array(
420 420
                     'id'   => 'email_from_name',
421
-                    'name' => __( 'From Name', 'invoicing' ),
422
-                    'desc' => __( 'Enter the sender\'s name appears in outgoing invoice emails. This should be your site name.', 'invoicing' ),
423
-                    'std' => esc_attr( get_bloginfo( 'name', 'display' ) ),
421
+                    'name' => __('From Name', 'invoicing'),
422
+                    'desc' => __('Enter the sender\'s name appears in outgoing invoice emails. This should be your site name.', 'invoicing'),
423
+                    'std' => esc_attr(get_bloginfo('name', 'display')),
424 424
                     'type' => 'text',
425 425
                 ),
426 426
                 'email_from' => array(
427 427
                     'id'   => 'email_from',
428
-                    'name' => __( 'From Email', 'invoicing' ),
429
-                    'desc' => sprintf (__( 'Email address to send invoice emails from. This will act as the "from" address. %s If emails are not being sent it may be that your hosting prevents emails being sent if the email domains do not match.%s', 'invoicing' ), $alert_wrapper_start, $alert_wrapper_close),
430
-                    'std' => get_option( 'admin_email' ),
428
+                    'name' => __('From Email', 'invoicing'),
429
+                    'desc' => sprintf(__('Email address to send invoice emails from. This will act as the "from" address. %s If emails are not being sent it may be that your hosting prevents emails being sent if the email domains do not match.%s', 'invoicing'), $alert_wrapper_start, $alert_wrapper_close),
430
+                    'std' => get_option('admin_email'),
431 431
                     'type' => 'text',
432 432
                 ),
433 433
                 'admin_email' => array(
434 434
                     'id'   => 'admin_email',
435
-                    'name' => __( 'Admin Email', 'invoicing' ),
436
-                    'desc' => __( 'Where should we send admin notifications? This will is also act as the "reply-to" address for invoice emails', 'invoicing' ),
437
-                    'std' => get_option( 'admin_email' ),
435
+                    'name' => __('Admin Email', 'invoicing'),
436
+                    'desc' => __('Where should we send admin notifications? This will is also act as the "reply-to" address for invoice emails', 'invoicing'),
437
+                    'std' => get_option('admin_email'),
438 438
                     'type' => 'text',
439 439
                 ),
440 440
                 'skip_email_free_invoice' => array(
441 441
                     'id'   => 'skip_email_free_invoice',
442
-                    'name' => __( 'Skip Free Invoices', 'invoicing' ),
443
-                    'desc' => __( 'Check this to disable sending emails for free invoices.', 'invoicing' ),
442
+                    'name' => __('Skip Free Invoices', 'invoicing'),
443
+                    'desc' => __('Check this to disable sending emails for free invoices.', 'invoicing'),
444 444
                     'type' => 'checkbox',
445 445
                     'std'  => false,
446 446
                 ),
447 447
                 'overdue_settings_header' => array(
448 448
                     'id'   => 'overdue_settings_header',
449
-                    'name' => '<h3>' . __( 'Due Date Settings', 'invoicing' ) . '</h3>',
449
+                    'name' => '<h3>' . __('Due Date Settings', 'invoicing') . '</h3>',
450 450
                     'type' => 'header',
451 451
                 ),
452 452
                 'overdue_active' => array(
453 453
                     'id'   => 'overdue_active',
454
-                    'name' => __( 'Enable Due Date', 'invoicing' ),
455
-                    'desc' => __( 'Check this to enable due date option for invoices.', 'invoicing' ),
454
+                    'name' => __('Enable Due Date', 'invoicing'),
455
+                    'desc' => __('Check this to enable due date option for invoices.', 'invoicing'),
456 456
                     'type' => 'checkbox',
457 457
                     'std'  => false,
458 458
                 ),
459 459
                 'email_template_header' => array(
460 460
                     'id'   => 'email_template_header',
461
-                    'name' => '<h3>' . __( 'Email Template', 'invoicing' ) . '</h3>',
461
+                    'name' => '<h3>' . __('Email Template', 'invoicing') . '</h3>',
462 462
                     'type' => 'header',
463 463
                 ),
464 464
                 'email_header_image' => array(
465 465
                     'id'   => 'email_header_image',
466
-                    'name' => __( 'Header Image', 'invoicing' ),
467
-                    'desc' => __( 'URL to an image you want to show in the email header. Upload images using the media uploader (Admin > Media).', 'invoicing' ),
466
+                    'name' => __('Header Image', 'invoicing'),
467
+                    'desc' => __('URL to an image you want to show in the email header. Upload images using the media uploader (Admin > Media).', 'invoicing'),
468 468
                     'std' => '',
469 469
                     'type' => 'text',
470 470
                 ),
471 471
                 'email_footer_text' => array(
472 472
                     'id'   => 'email_footer_text',
473
-                    'name' => __( 'Footer Text', 'invoicing' ),
474
-                    'desc' => __( 'The text to appear in the footer of all invoice emails.', 'invoicing' ),
475
-                    'std' => get_bloginfo( 'name', 'display' ) . ' - ' . __( 'Powered by GetPaid', 'invoicing' ),
473
+                    'name' => __('Footer Text', 'invoicing'),
474
+                    'desc' => __('The text to appear in the footer of all invoice emails.', 'invoicing'),
475
+                    'std' => get_bloginfo('name', 'display') . ' - ' . __('Powered by GetPaid', 'invoicing'),
476 476
                     'type' => 'textarea',
477 477
                     'class' => 'regular-text',
478 478
                     'rows' => 2,
@@ -480,29 +480,29 @@  discard block
 block discarded – undo
480 480
                 ),
481 481
                 'email_base_color' => array(
482 482
                     'id'   => 'email_base_color',
483
-                    'name' => __( 'Base Color', 'invoicing' ),
484
-                    'desc' => __( 'The base color for invoice email template. Default <code>#557da2</code>.', 'invoicing' ),
483
+                    'name' => __('Base Color', 'invoicing'),
484
+                    'desc' => __('The base color for invoice email template. Default <code>#557da2</code>.', 'invoicing'),
485 485
                     'std' => '#557da2',
486 486
                     'type' => 'color',
487 487
                 ),
488 488
                 'email_background_color' => array(
489 489
                     'id'   => 'email_background_color',
490
-                    'name' => __( 'Background Color', 'invoicing' ),
491
-                    'desc' => __( 'The background color of email template. Default <code>#f5f5f5</code>.', 'invoicing' ),
490
+                    'name' => __('Background Color', 'invoicing'),
491
+                    'desc' => __('The background color of email template. Default <code>#f5f5f5</code>.', 'invoicing'),
492 492
                     'std' => '#f5f5f5',
493 493
                     'type' => 'color',
494 494
                 ),
495 495
                 'email_body_background_color' => array(
496 496
                     'id'   => 'email_body_background_color',
497
-                    'name' => __( 'Body Background Color', 'invoicing' ),
498
-                    'desc' => __( 'The main body background color of email template. Default <code>#fdfdfd</code>.', 'invoicing' ),
497
+                    'name' => __('Body Background Color', 'invoicing'),
498
+                    'desc' => __('The main body background color of email template. Default <code>#fdfdfd</code>.', 'invoicing'),
499 499
                     'std' => '#fdfdfd',
500 500
                     'type' => 'color',
501 501
                 ),
502 502
                 'email_text_color' => array(
503 503
                     'id'   => 'email_text_color',
504
-                    'name' => __( 'Body Text Color', 'invoicing' ),
505
-                    'desc' => __( 'The main body text color. Default <code>#505050</code>.', 'invoicing' ),
504
+                    'name' => __('Body Text Color', 'invoicing'),
505
+                    'desc' => __('The main body text color. Default <code>#505050</code>.', 'invoicing'),
506 506
                     'std' => '#505050',
507 507
                     'type' => 'color',
508 508
                 ),
@@ -517,7 +517,7 @@  discard block
 block discarded – undo
517 517
     ),
518 518
 
519 519
     // Integrations.
520
-    'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'settings', 'id' ),
520
+    'integrations' => wp_list_pluck(getpaid_get_integration_settings(), 'settings', 'id'),
521 521
 
522 522
     /** Privacy Settings */
523 523
     'privacy' => apply_filters('wpinv_settings_privacy',
@@ -525,17 +525,17 @@  discard block
 block discarded – undo
525 525
             'main' => array(
526 526
                 'invoicing_privacy_policy_settings' => array(
527 527
                     'id'   => 'invoicing_privacy_policy_settings',
528
-                    'name' => '<h3>' . __( 'Privacy Policy', 'invoicing' ) . '</h3>',
528
+                    'name' => '<h3>' . __('Privacy Policy', 'invoicing') . '</h3>',
529 529
                     'type' => 'header',
530 530
                 ),
531 531
                 'privacy_page' => array(
532 532
                     'id'          => 'privacy_page',
533
-                    'name'        => __( 'Privacy Page', 'invoicing' ),
534
-                    'desc'        => __( 'If no privacy policy page set in Settings->Privacy default settings, this page will be used on checkout page.', 'invoicing' ),
533
+                    'name'        => __('Privacy Page', 'invoicing'),
534
+                    'desc'        => __('If no privacy policy page set in Settings->Privacy default settings, this page will be used on checkout page.', 'invoicing'),
535 535
                     'type'        => 'select',
536
-                    'options'     => wpinv_get_pages( true,  __( 'Select a page', 'invoicing' )),
536
+                    'options'     => wpinv_get_pages(true, __('Select a page', 'invoicing')),
537 537
                     'class'       => 'wpi_select2',
538
-                    'placeholder' => __( 'Select a page', 'invoicing' ),
538
+                    'placeholder' => __('Select a page', 'invoicing'),
539 539
                 ),
540 540
             ),
541 541
         )
@@ -546,19 +546,19 @@  discard block
 block discarded – undo
546 546
             'main' => array(
547 547
                 'invoice_number_format_settings' => array(
548 548
                     'id'   => 'invoice_number_format_settings',
549
-                    'name' => '<h3>' . __( 'Invoice Number', 'invoicing' ) . '</h3>',
549
+                    'name' => '<h3>' . __('Invoice Number', 'invoicing') . '</h3>',
550 550
                     'type' => 'header',
551 551
                 ),
552 552
                 'sequential_invoice_number' => array(
553 553
                     'id'   => 'sequential_invoice_number',
554
-                    'name' => __( 'Sequential Invoice Numbers', 'invoicing' ),
555
-                    'desc' => __('Check this box to enable sequential invoice numbers.', 'invoicing' ) . $reset_number,
554
+                    'name' => __('Sequential Invoice Numbers', 'invoicing'),
555
+                    'desc' => __('Check this box to enable sequential invoice numbers.', 'invoicing') . $reset_number,
556 556
                     'type' => 'checkbox',
557 557
                 ),
558 558
                 'invoice_sequence_start' => array(
559 559
                     'id'   => 'invoice_sequence_start',
560
-                    'name' => __( 'Sequential Starting Number', 'invoicing' ),
561
-                    'desc' => __( 'The number at which the invoice number sequence should begin.', 'invoicing' ) . $last_number,
560
+                    'name' => __('Sequential Starting Number', 'invoicing'),
561
+                    'desc' => __('The number at which the invoice number sequence should begin.', 'invoicing') . $last_number,
562 562
                     'type' => 'number',
563 563
                     'size' => 'small',
564 564
                     'std'  => '1',
@@ -566,8 +566,8 @@  discard block
 block discarded – undo
566 566
                 ),
567 567
                 'invoice_number_padd' => array(
568 568
                     'id'      => 'invoice_number_padd',
569
-                    'name'    => __( 'Minimum Digits', 'invoicing' ),
570
-                    'desc'    => __( 'If the invoice number has less digits than this number, it is left padded with 0s. Ex: invoice number 108 will padded to 00108 if digits set to 5. The default 0 means no padding.', 'invoicing' ),
569
+                    'name'    => __('Minimum Digits', 'invoicing'),
570
+                    'desc'    => __('If the invoice number has less digits than this number, it is left padded with 0s. Ex: invoice number 108 will padded to 00108 if digits set to 5. The default 0 means no padding.', 'invoicing'),
571 571
                     'type'    => 'select',
572 572
                     'options' => $invoice_number_padd_options,
573 573
                     'std'     => 5,
@@ -575,8 +575,8 @@  discard block
 block discarded – undo
575 575
                 ),
576 576
                 'invoice_number_prefix' => array(
577 577
                     'id' => 'invoice_number_prefix',
578
-                    'name' => __( 'Invoice Number Prefix', 'invoicing' ),
579
-                    'desc' => __( 'Prefix for all invoice numbers. Ex: INV-', 'invoicing' ),
578
+                    'name' => __('Invoice Number Prefix', 'invoicing'),
579
+                    'desc' => __('Prefix for all invoice numbers. Ex: INV-', 'invoicing'),
580 580
                     'type' => 'text',
581 581
                     'size' => 'regular',
582 582
                     'std' => 'INV-',
@@ -584,46 +584,46 @@  discard block
 block discarded – undo
584 584
                 ),
585 585
                 'invoice_number_postfix' => array(
586 586
                     'id' => 'invoice_number_postfix',
587
-                    'name' => __( 'Invoice Number Postfix', 'invoicing' ),
588
-                    'desc' => __( 'Postfix for all invoice numbers.', 'invoicing' ),
587
+                    'name' => __('Invoice Number Postfix', 'invoicing'),
588
+                    'desc' => __('Postfix for all invoice numbers.', 'invoicing'),
589 589
                     'type' => 'text',
590 590
                     'size' => 'regular',
591 591
                     'std' => ''
592 592
                 ),
593 593
                 'checkout_settings' => array(
594 594
                     'id'   => 'checkout_settings',
595
-                    'name' => '<h3>' . __( 'Checkout Settings', 'invoicing' ) . '</h3>',
595
+                    'name' => '<h3>' . __('Checkout Settings', 'invoicing') . '</h3>',
596 596
                     'type' => 'header',
597 597
                 ),
598 598
                 'disable_new_user_emails' => array(
599 599
                     'id'   => 'disable_new_user_emails',
600
-                    'name' => __( 'Disable new user emails', 'invoicing' ),
601
-                    'desc' => __( 'Do not send an email to customers when a new user account is created for them.', 'invoicing' ),
600
+                    'name' => __('Disable new user emails', 'invoicing'),
601
+                    'desc' => __('Do not send an email to customers when a new user account is created for them.', 'invoicing'),
602 602
                     'type' => 'checkbox',
603 603
                 ),
604 604
                 'login_to_checkout' => array(
605 605
                     'id'   => 'login_to_checkout',
606
-                    'name' => __( 'Require Login To Checkout', 'invoicing' ),
607
-                    'desc' => __( 'If ticked then user needs to be logged in to view or pay invoice, can only view or pay their own invoice. If unticked then anyone can view or pay the invoice.', 'invoicing' ),
606
+                    'name' => __('Require Login To Checkout', 'invoicing'),
607
+                    'desc' => __('If ticked then user needs to be logged in to view or pay invoice, can only view or pay their own invoice. If unticked then anyone can view or pay the invoice.', 'invoicing'),
608 608
                     'type' => 'checkbox',
609 609
                 ),
610 610
                 'maxmind_license_key' => array(
611 611
                     'id'   => 'maxmind_license_key',
612
-                    'name' => __( 'MaxMind License Key', 'invoicing' ),
612
+                    'name' => __('MaxMind License Key', 'invoicing'),
613 613
                     'type' => 'text',
614 614
                     'size' => 'regular',
615
-                    'desc' => __( "Enter you license key if you would like to use MaxMind to automatically detect a customer's country.", 'invoicing' ) . ' <a href="https://support.maxmind.com/account-faq/license-keys/how-do-i-generate-a-license-key/">' . __( 'How to generate a free license key.', 'invoicing' ) . '</a>',
615
+                    'desc' => __("Enter you license key if you would like to use MaxMind to automatically detect a customer's country.", 'invoicing') . ' <a href="https://support.maxmind.com/account-faq/license-keys/how-do-i-generate-a-license-key/">' . __('How to generate a free license key.', 'invoicing') . '</a>',
616 616
                 ),
617 617
 
618 618
                 'uninstall_settings' => array(
619 619
                     'id'   => 'uninstall_settings',
620
-                    'name' => '<h3>' . __( 'Uninstall Settings', 'invoicing' ) . '</h3>',
620
+                    'name' => '<h3>' . __('Uninstall Settings', 'invoicing') . '</h3>',
621 621
                     'type' => 'header',
622 622
                 ),
623 623
                 'remove_data_on_unistall' => array(
624 624
                     'id'   => 'remove_data_on_unistall',
625
-                    'name' => __( 'Remove Data on Uninstall?', 'invoicing' ),
626
-                    'desc' => __( 'Check this box if you would like Invoicing plugin to completely remove all of its data when the plugin is deleted/uninstalled.', 'invoicing' ),
625
+                    'name' => __('Remove Data on Uninstall?', 'invoicing'),
626
+                    'desc' => __('Check this box if you would like Invoicing plugin to completely remove all of its data when the plugin is deleted/uninstalled.', 'invoicing'),
627 627
                     'type' => 'checkbox',
628 628
                     'std'  => ''
629 629
                 ),
@@ -632,13 +632,13 @@  discard block
 block discarded – undo
632 632
             'custom-css' => array(
633 633
                 'css_settings' => array(
634 634
                     'id'   => 'css_settings',
635
-                    'name' => '<h3>' . __( 'Custom CSS', 'invoicing' ) . '</h3>',
635
+                    'name' => '<h3>' . __('Custom CSS', 'invoicing') . '</h3>',
636 636
                     'type' => 'header',
637 637
                 ),
638 638
                 'template_custom_css' => array(
639 639
                     'id' => 'template_custom_css',
640
-                    'name' => __( 'Invoice Template CSS', 'invoicing' ),
641
-                    'desc' => __( 'Add CSS to modify appearance of the print invoice page.', 'invoicing' ),
640
+                    'name' => __('Invoice Template CSS', 'invoicing'),
641
+                    'desc' => __('Add CSS to modify appearance of the print invoice page.', 'invoicing'),
642 642
                     'type' => 'textarea',
643 643
                     'class'=> 'regular-text',
644 644
                     'rows' => 10,
@@ -652,8 +652,8 @@  discard block
 block discarded – undo
652 652
             'main' => array(
653 653
                 'tool_settings' => array(
654 654
                     'id'   => 'tool_settings',
655
-                    'name' => '<h3>' . __( 'Diagnostic Tools', 'invoicing' ) . '</h3>',
656
-                    'desc' => __( 'Invoicing diagnostic tools', 'invoicing' ),
655
+                    'name' => '<h3>' . __('Diagnostic Tools', 'invoicing') . '</h3>',
656
+                    'desc' => __('Invoicing diagnostic tools', 'invoicing'),
657 657
                     'type' => 'tools',
658 658
                 ),
659 659
             ),
Please login to merge, or discard this patch.
includes/admin/views/wizard-header.php 3 patches
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -20,13 +20,13 @@
 block discarded – undo
20 20
 			<title><?php esc_html_e( 'GetPaid &rsaquo; Setup Wizard', 'invoicing' ); ?></title>
21 21
 			<?php
22 22
                 getpaid_admin()->enqeue_scripts();
23
-				wp_enqueue_style( 'font-awesome', 'https://use.fontawesome.com/releases/v5.13.0/css/all.css', array(), 'v5.13.0' );
24
-				wp_print_styles( 'select2' );
23
+                wp_enqueue_style( 'font-awesome', 'https://use.fontawesome.com/releases/v5.13.0/css/all.css', array(), 'v5.13.0' );
24
+                wp_print_styles( 'select2' );
25 25
                 wp_print_scripts( 'select2' );
26
-				wp_print_scripts( 'wpinv-admin-script' );
26
+                wp_print_scripts( 'wpinv-admin-script' );
27 27
                 do_action( 'admin_print_styles' );
28 28
                 do_action( 'admin_head' );
29
-			?>
29
+            ?>
30 30
 			<style>
31 31
 				body, p{
32 32
 					font-size: 16px;
Please login to merge, or discard this patch.
Braces   +5 added lines, -2 removed lines patch added patch discarded remove patch
@@ -55,9 +55,12 @@
 block discarded – undo
55 55
                         </li>
56 56
                     <?php endforeach; ?>
57 57
                 </ol>
58
-            <?php else: ?>
58
+            <?php else {
59
+    : ?>
59 60
                 <div class='mb-3'>&nbsp;</div>
60
-            <?php endif; ?>
61
+            <?php endif;
62
+}
63
+?>
61 64
 
62 65
             <div class="text-center pb-3 mt-5">
63 66
                 <a class=" text-decoration-none" href="https://wpgetpaid.com/">
Please login to merge, or discard this patch.
Spacing   +15 added lines, -15 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
 $aui_settings = AyeCode_UI_Settings::instance();
10 10
 $aui_settings->enqueue_scripts();
@@ -17,15 +17,15 @@  discard block
 block discarded – undo
17 17
 		<head>
18 18
 			<meta name="viewport" content="width=device-width"/>
19 19
 			<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
20
-			<title><?php esc_html_e( 'GetPaid &rsaquo; Setup Wizard', 'invoicing' ); ?></title>
20
+			<title><?php esc_html_e('GetPaid &rsaquo; Setup Wizard', 'invoicing'); ?></title>
21 21
 			<?php
22 22
                 getpaid_admin()->enqeue_scripts();
23
-				wp_enqueue_style( 'font-awesome', 'https://use.fontawesome.com/releases/v5.13.0/css/all.css', array(), 'v5.13.0' );
24
-				wp_print_styles( 'select2' );
25
-                wp_print_scripts( 'select2' );
26
-				wp_print_scripts( 'wpinv-admin-script' );
27
-                do_action( 'admin_print_styles' );
28
-                do_action( 'admin_head' );
23
+				wp_enqueue_style('font-awesome', 'https://use.fontawesome.com/releases/v5.13.0/css/all.css', array(), 'v5.13.0');
24
+				wp_print_styles('select2');
25
+                wp_print_scripts('select2');
26
+				wp_print_scripts('wpinv-admin-script');
27
+                do_action('admin_print_styles');
28
+                do_action('admin_head');
29 29
 			?>
30 30
 			<style>
31 31
 				body, p{
@@ -37,21 +37,21 @@  discard block
 block discarded – undo
37 37
                     font-weight: 500;
38 38
                     margin-bottom: .1rem;
39 39
                 }
40
-				<?php echo $aui_settings::css_primary( '#009874', true ); ?>
40
+				<?php echo $aui_settings::css_primary('#009874', true); ?>
41 41
 			</style>
42 42
 		</head>
43 43
 
44 44
         <body class="gp-setup wp-core-ui bg-lightx mx-auto text-dark scrollbars-ios" style="background: #f3f6ff;">
45 45
 
46
-            <?php if ( isset( $_REQUEST['step'] ) ) : ?>
46
+            <?php if (isset($_REQUEST['step'])) : ?>
47 47
                 <ol class="gp-setup-steps mb-0 pb-4 mw-100 list-group list-group-horizontal text-center">
48
-                    <?php foreach ( $steps as $step => $data ) : ?>
48
+                    <?php foreach ($steps as $step => $data) : ?>
49 49
                         <li class="list-group-item flex-fill rounded-0 <?php
50 50
                             echo $step == $current ? 'active' : 'd-none d-md-block';
51
-                            echo array_search( $current, array_keys( $steps ) ) > array_search( $step, array_keys( $steps ) ) ? ' done' : '';
51
+                            echo array_search($current, array_keys($steps)) > array_search($step, array_keys($steps)) ? ' done' : '';
52 52
                         ?>">
53
-                            <i class="far fa-check-circle <?php echo array_search( $current, array_keys( $steps ) ) > array_search( $step, array_keys( $steps ) ) ? 'text-success' : '' ;?>"></i>
54
-                            <?php echo esc_html( $data['name'] ); ?>
53
+                            <i class="far fa-check-circle <?php echo array_search($current, array_keys($steps)) > array_search($step, array_keys($steps)) ? 'text-success' : ''; ?>"></i>
54
+                            <?php echo esc_html($data['name']); ?>
55 55
                         </li>
56 56
                     <?php endforeach; ?>
57 57
                 </ol>
@@ -62,7 +62,7 @@  discard block
 block discarded – undo
62 62
             <div class="text-center pb-3 mt-5">
63 63
                 <a class=" text-decoration-none" href="https://wpgetpaid.com/">
64 64
                     <span class="text-black-50">
65
-                        <img class="ml-n3x" src="<?php echo esc_url( WPINV_PLUGIN_URL . 'assets/images/getpaid-logo.png' );?>" />
65
+                        <img class="ml-n3x" src="<?php echo esc_url(WPINV_PLUGIN_URL . 'assets/images/getpaid-logo.png'); ?>" />
66 66
                     </span>
67 67
                 </a>
68 68
             </div>
69 69
\ No newline at end of file
Please login to merge, or discard this patch.
includes/admin/admin-pages.php 3 patches
Indentation   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -57,8 +57,8 @@  discard block
 block discarded – undo
57 57
             'getpaid-nonce',
58 58
             'getpaid-nonce'
59 59
         );
60
-		$anchor = __( 'Deactivate', 'invoicing' );
61
-		$title  = esc_attr__( 'Are you sure you want to deactivate this discount?', 'invoicing' );
60
+        $anchor = __( 'Deactivate', 'invoicing' );
61
+        $title  = esc_attr__( 'Are you sure you want to deactivate this discount?', 'invoicing' );
62 62
         $row_actions['deactivate'] = "<a href='$url' onclick='return confirm(\"$title\")'>$anchor</a>";
63 63
 
64 64
     } else if( in_array( strtolower( $discount->post_status ),  array( 'pending', 'draft' ) ) ) {
@@ -73,8 +73,8 @@  discard block
 block discarded – undo
73 73
             'getpaid-nonce',
74 74
             'getpaid-nonce'
75 75
         );
76
-		$anchor = __( 'Activate', 'invoicing' );
77
-		$title  = esc_attr__( 'Are you sure you want to activate this discount?', 'invoicing' );
76
+        $anchor = __( 'Activate', 'invoicing' );
77
+        $title  = esc_attr__( 'Are you sure you want to activate this discount?', 'invoicing' );
78 78
         $row_actions['activate'] = "<a href='$url' onclick='return confirm(\"$title\")'>$anchor</a>";
79 79
 
80 80
     }
@@ -91,8 +91,8 @@  discard block
 block discarded – undo
91 91
             'getpaid-nonce'
92 92
         )
93 93
     );
94
-	$anchor = __( 'Delete', 'invoicing' );
95
-	$title  = esc_attr__( 'Are you sure you want to delete this discount?', 'invoicing' );
94
+    $anchor = __( 'Delete', 'invoicing' );
95
+    $title  = esc_attr__( 'Are you sure you want to delete this discount?', 'invoicing' );
96 96
     $row_actions['delete'] = "<a href='$url' onclick='return confirm(\"$title\")'>$anchor</a>";
97 97
 
98 98
     $row_actions = apply_filters( 'wpinv_discount_row_actions', $row_actions, $discount );
Please login to merge, or discard this patch.
Spacing   +76 added lines, -76 removed lines patch added patch discarded remove patch
@@ -1,51 +1,51 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 // MUST have WordPress.
3
-if ( !defined( 'WPINC' ) ) {
4
-    exit( 'Do NOT access this file directly: ' . basename( __FILE__ ) );
3
+if (!defined('WPINC')) {
4
+    exit('Do NOT access this file directly: ' . basename(__FILE__));
5 5
 }
6 6
 
7
-add_action( 'manage_wpi_discount_posts_custom_column', 'wpinv_discount_custom_column' );
8
-function wpinv_discount_custom_column( $column ) {
7
+add_action('manage_wpi_discount_posts_custom_column', 'wpinv_discount_custom_column');
8
+function wpinv_discount_custom_column($column) {
9 9
     global $post;
10 10
 
11
-    $discount = new WPInv_Discount( $post );
11
+    $discount = new WPInv_Discount($post);
12 12
 
13
-    switch ( $column ) {
13
+    switch ($column) {
14 14
         case 'code' :
15
-            echo esc_html( $discount->get_code() );
15
+            echo esc_html($discount->get_code());
16 16
         break;
17 17
         case 'amount' :
18
-            echo wp_kses_post( $discount->get_formatted_amount() );
18
+            echo wp_kses_post($discount->get_formatted_amount());
19 19
         break;
20 20
         case 'usage' :
21
-            echo wp_kses_post( $discount->get_usage() );
21
+            echo wp_kses_post($discount->get_usage());
22 22
         break;
23 23
         case 'start_date' :
24
-            echo wp_kses_post( getpaid_format_date_value( $discount->get_start_date() ) );
24
+            echo wp_kses_post(getpaid_format_date_value($discount->get_start_date()));
25 25
         break;
26 26
         case 'expiry_date' :
27
-            echo wp_kses_post( getpaid_format_date_value( $discount->get_expiration_date(), __( 'Never', 'invoicing' ) ) );
27
+            echo wp_kses_post(getpaid_format_date_value($discount->get_expiration_date(), __('Never', 'invoicing')));
28 28
         break;
29 29
     }
30 30
 }
31 31
 
32
-add_filter( 'post_row_actions', 'wpinv_post_row_actions', 90, 2 );
33
-function wpinv_post_row_actions( $actions, $post ) {
34
-    $post_type = !empty( $post->post_type ) ? $post->post_type : '';
32
+add_filter('post_row_actions', 'wpinv_post_row_actions', 90, 2);
33
+function wpinv_post_row_actions($actions, $post) {
34
+    $post_type = !empty($post->post_type) ? $post->post_type : '';
35 35
 
36
-    if ( $post_type == 'wpi_discount' ) {
37
-        $actions = wpinv_discount_row_actions( $post, $actions );
36
+    if ($post_type == 'wpi_discount') {
37
+        $actions = wpinv_discount_row_actions($post, $actions);
38 38
     }
39 39
 
40 40
     return $actions;
41 41
 }
42 42
 
43
-function wpinv_discount_row_actions( $discount, $row_actions ) {
44
-    $row_actions  = array();
45
-    $edit_link = get_edit_post_link( $discount->ID );
46
-    $row_actions['edit'] = '<a href="' . esc_url( $edit_link ) . '">' . __( 'Edit', 'invoicing' ) . '</a>';
43
+function wpinv_discount_row_actions($discount, $row_actions) {
44
+    $row_actions = array();
45
+    $edit_link = get_edit_post_link($discount->ID);
46
+    $row_actions['edit'] = '<a href="' . esc_url($edit_link) . '">' . __('Edit', 'invoicing') . '</a>';
47 47
 
48
-    if ( in_array( strtolower( $discount->post_status ),  array(  'publish' ) ) ) {
48
+    if (in_array(strtolower($discount->post_status), array('publish'))) {
49 49
 
50 50
         $url = wp_nonce_url(
51 51
             add_query_arg(
@@ -57,13 +57,13 @@  discard block
 block discarded – undo
57 57
             'getpaid-nonce',
58 58
             'getpaid-nonce'
59 59
         );
60
-		$anchor = __( 'Deactivate', 'invoicing' );
61
-		$title  = esc_attr__( 'Are you sure you want to deactivate this discount?', 'invoicing' );
60
+		$anchor = __('Deactivate', 'invoicing');
61
+		$title  = esc_attr__('Are you sure you want to deactivate this discount?', 'invoicing');
62 62
         $row_actions['deactivate'] = "<a href='$url' onclick='return confirm(\"$title\")'>$anchor</a>";
63 63
 
64
-    } else if( in_array( strtolower( $discount->post_status ),  array( 'pending', 'draft' ) ) ) {
64
+    } else if (in_array(strtolower($discount->post_status), array('pending', 'draft'))) {
65 65
 
66
-        $url    = wp_nonce_url(
66
+        $url = wp_nonce_url(
67 67
             add_query_arg(
68 68
                 array(
69 69
                     'getpaid-admin-action' => 'activate_discount',
@@ -73,13 +73,13 @@  discard block
 block discarded – undo
73 73
             'getpaid-nonce',
74 74
             'getpaid-nonce'
75 75
         );
76
-		$anchor = __( 'Activate', 'invoicing' );
77
-		$title  = esc_attr__( 'Are you sure you want to activate this discount?', 'invoicing' );
76
+		$anchor = __('Activate', 'invoicing');
77
+		$title  = esc_attr__('Are you sure you want to activate this discount?', 'invoicing');
78 78
         $row_actions['activate'] = "<a href='$url' onclick='return confirm(\"$title\")'>$anchor</a>";
79 79
 
80 80
     }
81 81
 
82
-    $url    = esc_url(
82
+    $url = esc_url(
83 83
         wp_nonce_url(
84 84
             add_query_arg(
85 85
                 array(
@@ -91,11 +91,11 @@  discard block
 block discarded – undo
91 91
             'getpaid-nonce'
92 92
         )
93 93
     );
94
-	$anchor = __( 'Delete', 'invoicing' );
95
-	$title  = esc_attr__( 'Are you sure you want to delete this discount?', 'invoicing' );
94
+	$anchor = __('Delete', 'invoicing');
95
+	$title  = esc_attr__('Are you sure you want to delete this discount?', 'invoicing');
96 96
     $row_actions['delete'] = "<a href='$url' onclick='return confirm(\"$title\")'>$anchor</a>";
97 97
 
98
-    $row_actions = apply_filters( 'wpinv_discount_row_actions', $row_actions, $discount );
98
+    $row_actions = apply_filters('wpinv_discount_row_actions', $row_actions, $discount);
99 99
 
100 100
     return $row_actions;
101 101
 }
@@ -103,68 +103,68 @@  discard block
 block discarded – undo
103 103
 function wpinv_restrict_manage_posts() {
104 104
     global $typenow;
105 105
 
106
-    if( 'wpi_discount' == $typenow ) {
106
+    if ('wpi_discount' == $typenow) {
107 107
         wpinv_discount_filters();
108 108
     }
109 109
 }
110
-add_action( 'restrict_manage_posts', 'wpinv_restrict_manage_posts', 10 );
110
+add_action('restrict_manage_posts', 'wpinv_restrict_manage_posts', 10);
111 111
 
112 112
 function wpinv_discount_filters() {
113 113
 
114 114
     ?>
115 115
     <select name="discount_type" id="dropdown_wpinv_discount_type">
116
-        <option value=""><?php _e( 'Show all types', 'invoicing' ); ?></option>
116
+        <option value=""><?php _e('Show all types', 'invoicing'); ?></option>
117 117
         <?php
118 118
             $types = wpinv_get_discount_types();
119 119
 
120
-            foreach ( $types as $name => $type ) {
121
-                echo '<option value="' . esc_attr( $name ) . '"';
120
+            foreach ($types as $name => $type) {
121
+                echo '<option value="' . esc_attr($name) . '"';
122 122
 
123
-                if ( isset( $_GET['discount_type'] ) )
124
-                    selected( $name, sanitize_text_field( $_GET['discount_type'] ) );
123
+                if (isset($_GET['discount_type']))
124
+                    selected($name, sanitize_text_field($_GET['discount_type']));
125 125
 
126
-                echo '>' . esc_html__( $type, 'invoicing' ) . '</option>';
126
+                echo '>' . esc_html__($type, 'invoicing') . '</option>';
127 127
             }
128 128
         ?>
129 129
     </select>
130 130
     <?php
131 131
 }
132 132
 
133
-function wpinv_request( $vars ) {
133
+function wpinv_request($vars) {
134 134
     global $typenow, $wp_post_statuses;
135 135
 
136
-    if ( getpaid_is_invoice_post_type( $typenow ) ) {
137
-        if ( ! isset( $vars['post_status'] ) ) {
138
-            $post_statuses = wpinv_get_invoice_statuses( false, false, $typenow );
136
+    if (getpaid_is_invoice_post_type($typenow)) {
137
+        if (!isset($vars['post_status'])) {
138
+            $post_statuses = wpinv_get_invoice_statuses(false, false, $typenow);
139 139
 
140
-            foreach ( $post_statuses as $status => $value ) {
141
-                if ( isset( $wp_post_statuses[ $status ] ) && false === $wp_post_statuses[ $status ]->show_in_admin_all_list ) {
142
-                    unset( $post_statuses[ $status ] );
140
+            foreach ($post_statuses as $status => $value) {
141
+                if (isset($wp_post_statuses[$status]) && false === $wp_post_statuses[$status]->show_in_admin_all_list) {
142
+                    unset($post_statuses[$status]);
143 143
                 }
144 144
             }
145 145
 
146
-            $vars['post_status'] = array_keys( $post_statuses );
146
+            $vars['post_status'] = array_keys($post_statuses);
147 147
         }
148 148
 
149
-    } else if ( 'wpi_discount' == $typenow ) {
150
-        $meta_query = !empty( $vars['meta_query'] ) ? $vars['meta_query'] : array();
149
+    } else if ('wpi_discount' == $typenow) {
150
+        $meta_query = !empty($vars['meta_query']) ? $vars['meta_query'] : array();
151 151
         // Filter vat rule type
152
-        if ( isset( $_GET['discount_type'] ) && $_GET['discount_type'] !== '' ) {
152
+        if (isset($_GET['discount_type']) && $_GET['discount_type'] !== '') {
153 153
             $meta_query[] = array(
154 154
                     'key'   => '_wpi_discount_type',
155
-                    'value' => sanitize_key( urldecode( $_GET['discount_type'] ) ),
155
+                    'value' => sanitize_key(urldecode($_GET['discount_type'])),
156 156
                     'compare' => '='
157 157
                 );
158 158
         }
159 159
 
160
-        if ( !empty( $meta_query ) ) {
160
+        if (!empty($meta_query)) {
161 161
             $vars['meta_query'] = $meta_query;
162 162
         }
163 163
     }
164 164
 
165 165
     return $vars;
166 166
 }
167
-add_filter( 'request', 'wpinv_request' );
167
+add_filter('request', 'wpinv_request');
168 168
 
169 169
 /**
170 170
  * Create a page and store the ID in an option.
@@ -176,19 +176,19 @@  discard block
 block discarded – undo
176 176
  * @param int $post_parent (default: 0) Parent for the new page
177 177
  * @return int page ID
178 178
  */
179
-function wpinv_create_page( $slug, $option = '', $page_title = '', $page_content = '', $post_parent = 0 ) {
179
+function wpinv_create_page($slug, $option = '', $page_title = '', $page_content = '', $post_parent = 0) {
180 180
     global $wpdb;
181 181
 
182
-    $option_value = wpinv_get_option( $option );
182
+    $option_value = wpinv_get_option($option);
183 183
 
184
-    if ( ! empty( $option_value ) && ( $page_object = get_post( $option_value ) ) ) {
185
-        if ( 'page' === $page_object->post_type && ! in_array( $page_object->post_status, array( 'pending', 'trash', 'future', 'auto-draft' ) ) ) {
184
+    if (!empty($option_value) && ($page_object = get_post($option_value))) {
185
+        if ('page' === $page_object->post_type && !in_array($page_object->post_status, array('pending', 'trash', 'future', 'auto-draft'))) {
186 186
             // Valid page is already in place
187 187
             return $page_object->ID;
188 188
         }
189 189
     }
190 190
 
191
-    if(!empty($post_parent)){
191
+    if (!empty($post_parent)) {
192 192
         $page = get_page_by_path($post_parent);
193 193
         if ($page) {
194 194
             $post_parent = $page->ID;
@@ -197,40 +197,40 @@  discard block
 block discarded – undo
197 197
         }
198 198
     }
199 199
 
200
-    if ( strlen( $page_content ) > 0 ) {
200
+    if (strlen($page_content) > 0) {
201 201
         // Search for an existing page with the specified page content (typically a shortcode)
202
-        $valid_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status NOT IN ( 'pending', 'trash', 'future', 'auto-draft' ) AND post_content LIKE %s LIMIT 1;", "%{$page_content}%" ) );
202
+        $valid_page_found = $wpdb->get_var($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status NOT IN ( 'pending', 'trash', 'future', 'auto-draft' ) AND post_content LIKE %s LIMIT 1;", "%{$page_content}%"));
203 203
     } else {
204 204
         // Search for an existing page with the specified page slug
205
-        $valid_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status NOT IN ( 'pending', 'trash', 'future', 'auto-draft' )  AND post_name = %s LIMIT 1;", $slug ) );
205
+        $valid_page_found = $wpdb->get_var($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status NOT IN ( 'pending', 'trash', 'future', 'auto-draft' )  AND post_name = %s LIMIT 1;", $slug));
206 206
     }
207 207
 
208
-    $valid_page_found = apply_filters( 'wpinv_create_page_id', $valid_page_found, $slug, $page_content );
208
+    $valid_page_found = apply_filters('wpinv_create_page_id', $valid_page_found, $slug, $page_content);
209 209
 
210
-    if ( $valid_page_found ) {
211
-        if ( $option ) {
212
-            wpinv_update_option( $option, $valid_page_found );
210
+    if ($valid_page_found) {
211
+        if ($option) {
212
+            wpinv_update_option($option, $valid_page_found);
213 213
         }
214 214
         return $valid_page_found;
215 215
     }
216 216
 
217 217
     // Search for a matching valid trashed page
218
-    if ( strlen( $page_content ) > 0 ) {
218
+    if (strlen($page_content) > 0) {
219 219
         // Search for an existing page with the specified page content (typically a shortcode)
220
-        $trashed_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status = 'trash' AND post_content LIKE %s LIMIT 1;", "%{$page_content}%" ) );
220
+        $trashed_page_found = $wpdb->get_var($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status = 'trash' AND post_content LIKE %s LIMIT 1;", "%{$page_content}%"));
221 221
     } else {
222 222
         // Search for an existing page with the specified page slug
223
-        $trashed_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status = 'trash' AND post_name = %s LIMIT 1;", $slug ) );
223
+        $trashed_page_found = $wpdb->get_var($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status = 'trash' AND post_name = %s LIMIT 1;", $slug));
224 224
     }
225 225
 
226
-    if ( $trashed_page_found ) {
226
+    if ($trashed_page_found) {
227 227
         $page_id   = $trashed_page_found;
228 228
         $page_data = array(
229 229
             'ID'             => $page_id,
230 230
             'post_status'    => 'publish',
231 231
             'post_parent'    => $post_parent,
232 232
         );
233
-        wp_update_post( $page_data );
233
+        wp_update_post($page_data);
234 234
     } else {
235 235
         $page_data = array(
236 236
             'post_status'    => 'publish',
@@ -242,11 +242,11 @@  discard block
 block discarded – undo
242 242
             'post_parent'    => $post_parent,
243 243
             'comment_status' => 'closed',
244 244
         );
245
-        $page_id = wp_insert_post( $page_data );
245
+        $page_id = wp_insert_post($page_data);
246 246
     }
247 247
 
248
-    if ( $option ) {
249
-        wpinv_update_option( $option, (int) $page_id );
248
+    if ($option) {
249
+        wpinv_update_option($option, (int) $page_id);
250 250
     }
251 251
 
252 252
     return $page_id;
@@ -259,11 +259,11 @@  discard block
 block discarded – undo
259 259
  *
260 260
  * @return array
261 261
  */
262
-function wpinv_add_aui_screens($screen_ids){
262
+function wpinv_add_aui_screens($screen_ids) {
263 263
 
264 264
     // load on these pages if set
265
-    $screen_ids = array_merge( $screen_ids, wpinv_get_screen_ids() );
265
+    $screen_ids = array_merge($screen_ids, wpinv_get_screen_ids());
266 266
 
267 267
     return $screen_ids;
268 268
 }
269
-add_filter('aui_screen_ids','wpinv_add_aui_screens');
270 269
\ No newline at end of file
270
+add_filter('aui_screen_ids', 'wpinv_add_aui_screens');
271 271
\ No newline at end of file
Please login to merge, or discard this patch.
Braces   +3 added lines, -2 removed lines patch added patch discarded remove patch
@@ -120,8 +120,9 @@
 block discarded – undo
120 120
             foreach ( $types as $name => $type ) {
121 121
                 echo '<option value="' . esc_attr( $name ) . '"';
122 122
 
123
-                if ( isset( $_GET['discount_type'] ) )
124
-                    selected( $name, sanitize_text_field( $_GET['discount_type'] ) );
123
+                if ( isset( $_GET['discount_type'] ) ) {
124
+                                    selected( $name, sanitize_text_field( $_GET['discount_type'] ) );
125
+                }
125 126
 
126 127
                 echo '>' . esc_html__( $type, 'invoicing' ) . '</option>';
127 128
             }
Please login to merge, or discard this patch.