Passed
Push — master ( 9dee83...fe7410 )
by Stiofan
06:39
created
includes/gateways/class-getpaid-paypal-gateway-ipn-handler.php 2 patches
Indentation   +405 added lines, -405 removed lines patch added patch discarded remove patch
@@ -12,482 +12,482 @@
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Paypal_Gateway_IPN_Handler {
14 14
 
15
-	/**
16
-	 * Payment method id.
17
-	 *
18
-	 * @var string
19
-	 */
20
-	protected $id = 'paypal';
21
-
22
-	/**
23
-	 * Payment method object.
24
-	 *
25
-	 * @var GetPaid_Paypal_Gateway
26
-	 */
27
-	protected $gateway;
28
-
29
-	/**
30
-	 * Class constructor.
31
-	 *
32
-	 * @param GetPaid_Paypal_Gateway $gateway
33
-	 */
34
-	public function __construct( $gateway ) {
35
-		$this->gateway = $gateway;
36
-		$this->verify_ipn();
37
-	}
38
-
39
-	/**
40
-	 * Processes ipns and marks payments as complete.
41
-	 *
42
-	 * @return void
43
-	 */
44
-	public function verify_ipn() {
45
-
46
-		wpinv_error_log( 'GetPaid PayPal IPN Handler', false );
47
-
48
-		// Validate the IPN.
49
-		if ( empty( $_POST ) || ! $this->validate_ipn() ) {
50
-			wp_die( 'PayPal IPN Request Failure', 500 );
51
-		}
52
-
53
-		// Process the IPN.
54
-		$posted  = wp_unslash( $_POST );
55
-		$invoice = $this->get_ipn_invoice( $posted );
56
-
57
-		// Abort if it was not paid by our gateway.
58
-		if ( $this->id != $invoice->get_gateway() ) {
59
-			wpinv_error_log( 'Aborting, Invoice was not paid via PayPal', false );
60
-			wp_die( 'Invoice not paid via PayPal', 200 );
61
-		}
62
-
63
-		$posted['payment_status'] = isset( $posted['payment_status'] ) ? sanitize_key( strtolower( $posted['payment_status'] ) ) : '';
64
-		$posted['txn_type']       = sanitize_key( strtolower( $posted['txn_type'] ) );
65
-
66
-		wpinv_error_log( 'Payment status:' . $posted['payment_status'], false );
67
-		wpinv_error_log( 'IPN Type:' . $posted['txn_type'], false );
68
-
69
-		if ( method_exists( $this, 'ipn_txn_' . $posted['txn_type'] ) ) {
70
-			call_user_func( array( $this, 'ipn_txn_' . $posted['txn_type'] ), $invoice, $posted );
71
-			wpinv_error_log( 'Done processing IPN', false );
72
-			wp_die( 'Processed', 200 );
73
-		}
74
-
75
-		wpinv_error_log( 'Aborting, Unsupported IPN type:' . $posted['txn_type'], false );
76
-		wp_die( 'Unsupported IPN type', 200 );
77
-
78
-	}
79
-
80
-	/**
81
-	 * Retrieves IPN Invoice.
82
-	 *
83
-	 * @param array $posted
84
-	 * @return WPInv_Invoice
85
-	 */
86
-	protected function get_ipn_invoice( $posted ) {
87
-
88
-		wpinv_error_log( 'Retrieving PayPal IPN Response Invoice', false );
89
-
90
-		if ( ! empty( $posted['custom'] ) ) {
91
-			$invoice = new WPInv_Invoice( $posted['custom'] );
92
-
93
-			if ( $invoice->exists() ) {
94
-				wpinv_error_log( 'Found invoice #' . $invoice->get_number(), false );
95
-				return $invoice;
96
-			}
97
-		}
98
-
99
-		wpinv_error_log( 'Could not retrieve the associated invoice.', false );
100
-		wp_die( 'Could not retrieve the associated invoice.', 200 );
101
-	}
102
-
103
-	/**
104
-	 * Check PayPal IPN validity.
105
-	 */
106
-	protected function validate_ipn() {
107
-
108
-		wpinv_error_log( 'Validating PayPal IPN response', false );
109
-
110
-		// Retrieve the associated invoice.
111
-		$posted  = wp_unslash( $_POST );
112
-		$invoice = $this->get_ipn_invoice( $posted );
113
-
114
-		if ( $this->gateway->is_sandbox( $invoice ) ) {
115
-			wpinv_error_log( $posted, 'Invoice was processed in sandbox hence logging the posted data', false );
116
-		}
117
-
118
-		// Validate the IPN.
119
-		$posted['cmd'] = '_notify-validate';
120
-
121
-		// Send back post vars to paypal.
122
-		$params = array(
123
-			'body'        => $posted,
124
-			'timeout'     => 60,
125
-			'httpversion' => '1.1',
126
-			'compress'    => false,
127
-			'decompress'  => false,
128
-			'user-agent'  => 'GetPaid/' . WPINV_VERSION,
129
-		);
130
-
131
-		// Post back to get a response.
132
-		$response = wp_safe_remote_post( $this->gateway->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params );
133
-
134
-		// Check to see if the request was valid.
135
-		if ( ! is_wp_error( $response ) && $response['response']['code'] < 300 && strstr( $response['body'], 'VERIFIED' ) ) {
136
-			$invoice->add_note( 'Received valid response from PayPal IPN: ' . $response['body'], false, false, true );
137
-			wpinv_error_log( 'Received valid response from PayPal IPN: ' . $response['body'], false );
138
-			return true;
139
-		}
140
-
141
-		$invoice->add_note( 'IPN message:' . wp_json_encode( $posted ), false, false, true );
142
-
143
-		if ( is_wp_error( $response ) ) {
144
-			$invoice->add_note( 'Received invalid response from PayPal IPN: ' . $response->get_error_message(), false, false, true );
145
-			wpinv_error_log( $response->get_error_message(), 'Received invalid response from PayPal IPN' );
146
-			return false;
147
-		}
148
-
149
-		$invoice->add_note( 'Received invalid response from PayPal IPN: ' . $response['body'], false, false, true );
150
-		wpinv_error_log( $response['body'], 'Received invalid response from PayPal IPN' );
151
-		return false;
152
-
153
-	}
154
-
155
-	/**
156
-	 * Check currency from IPN matches the invoice.
157
-	 *
158
-	 * @param WPInv_Invoice $invoice          Invoice object.
159
-	 * @param string   $currency currency to validate.
160
-	 */
161
-	protected function validate_ipn_currency( $invoice, $currency ) {
15
+    /**
16
+     * Payment method id.
17
+     *
18
+     * @var string
19
+     */
20
+    protected $id = 'paypal';
21
+
22
+    /**
23
+     * Payment method object.
24
+     *
25
+     * @var GetPaid_Paypal_Gateway
26
+     */
27
+    protected $gateway;
28
+
29
+    /**
30
+     * Class constructor.
31
+     *
32
+     * @param GetPaid_Paypal_Gateway $gateway
33
+     */
34
+    public function __construct( $gateway ) {
35
+        $this->gateway = $gateway;
36
+        $this->verify_ipn();
37
+    }
38
+
39
+    /**
40
+     * Processes ipns and marks payments as complete.
41
+     *
42
+     * @return void
43
+     */
44
+    public function verify_ipn() {
45
+
46
+        wpinv_error_log( 'GetPaid PayPal IPN Handler', false );
47
+
48
+        // Validate the IPN.
49
+        if ( empty( $_POST ) || ! $this->validate_ipn() ) {
50
+            wp_die( 'PayPal IPN Request Failure', 500 );
51
+        }
52
+
53
+        // Process the IPN.
54
+        $posted  = wp_unslash( $_POST );
55
+        $invoice = $this->get_ipn_invoice( $posted );
56
+
57
+        // Abort if it was not paid by our gateway.
58
+        if ( $this->id != $invoice->get_gateway() ) {
59
+            wpinv_error_log( 'Aborting, Invoice was not paid via PayPal', false );
60
+            wp_die( 'Invoice not paid via PayPal', 200 );
61
+        }
62
+
63
+        $posted['payment_status'] = isset( $posted['payment_status'] ) ? sanitize_key( strtolower( $posted['payment_status'] ) ) : '';
64
+        $posted['txn_type']       = sanitize_key( strtolower( $posted['txn_type'] ) );
65
+
66
+        wpinv_error_log( 'Payment status:' . $posted['payment_status'], false );
67
+        wpinv_error_log( 'IPN Type:' . $posted['txn_type'], false );
68
+
69
+        if ( method_exists( $this, 'ipn_txn_' . $posted['txn_type'] ) ) {
70
+            call_user_func( array( $this, 'ipn_txn_' . $posted['txn_type'] ), $invoice, $posted );
71
+            wpinv_error_log( 'Done processing IPN', false );
72
+            wp_die( 'Processed', 200 );
73
+        }
74
+
75
+        wpinv_error_log( 'Aborting, Unsupported IPN type:' . $posted['txn_type'], false );
76
+        wp_die( 'Unsupported IPN type', 200 );
77
+
78
+    }
79
+
80
+    /**
81
+     * Retrieves IPN Invoice.
82
+     *
83
+     * @param array $posted
84
+     * @return WPInv_Invoice
85
+     */
86
+    protected function get_ipn_invoice( $posted ) {
87
+
88
+        wpinv_error_log( 'Retrieving PayPal IPN Response Invoice', false );
89
+
90
+        if ( ! empty( $posted['custom'] ) ) {
91
+            $invoice = new WPInv_Invoice( $posted['custom'] );
92
+
93
+            if ( $invoice->exists() ) {
94
+                wpinv_error_log( 'Found invoice #' . $invoice->get_number(), false );
95
+                return $invoice;
96
+            }
97
+        }
98
+
99
+        wpinv_error_log( 'Could not retrieve the associated invoice.', false );
100
+        wp_die( 'Could not retrieve the associated invoice.', 200 );
101
+    }
102
+
103
+    /**
104
+     * Check PayPal IPN validity.
105
+     */
106
+    protected function validate_ipn() {
107
+
108
+        wpinv_error_log( 'Validating PayPal IPN response', false );
109
+
110
+        // Retrieve the associated invoice.
111
+        $posted  = wp_unslash( $_POST );
112
+        $invoice = $this->get_ipn_invoice( $posted );
113
+
114
+        if ( $this->gateway->is_sandbox( $invoice ) ) {
115
+            wpinv_error_log( $posted, 'Invoice was processed in sandbox hence logging the posted data', false );
116
+        }
117
+
118
+        // Validate the IPN.
119
+        $posted['cmd'] = '_notify-validate';
120
+
121
+        // Send back post vars to paypal.
122
+        $params = array(
123
+            'body'        => $posted,
124
+            'timeout'     => 60,
125
+            'httpversion' => '1.1',
126
+            'compress'    => false,
127
+            'decompress'  => false,
128
+            'user-agent'  => 'GetPaid/' . WPINV_VERSION,
129
+        );
130
+
131
+        // Post back to get a response.
132
+        $response = wp_safe_remote_post( $this->gateway->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params );
133
+
134
+        // Check to see if the request was valid.
135
+        if ( ! is_wp_error( $response ) && $response['response']['code'] < 300 && strstr( $response['body'], 'VERIFIED' ) ) {
136
+            $invoice->add_note( 'Received valid response from PayPal IPN: ' . $response['body'], false, false, true );
137
+            wpinv_error_log( 'Received valid response from PayPal IPN: ' . $response['body'], false );
138
+            return true;
139
+        }
140
+
141
+        $invoice->add_note( 'IPN message:' . wp_json_encode( $posted ), false, false, true );
142
+
143
+        if ( is_wp_error( $response ) ) {
144
+            $invoice->add_note( 'Received invalid response from PayPal IPN: ' . $response->get_error_message(), false, false, true );
145
+            wpinv_error_log( $response->get_error_message(), 'Received invalid response from PayPal IPN' );
146
+            return false;
147
+        }
148
+
149
+        $invoice->add_note( 'Received invalid response from PayPal IPN: ' . $response['body'], false, false, true );
150
+        wpinv_error_log( $response['body'], 'Received invalid response from PayPal IPN' );
151
+        return false;
152
+
153
+    }
154
+
155
+    /**
156
+     * Check currency from IPN matches the invoice.
157
+     *
158
+     * @param WPInv_Invoice $invoice          Invoice object.
159
+     * @param string   $currency currency to validate.
160
+     */
161
+    protected function validate_ipn_currency( $invoice, $currency ) {
162 162
 
163
-		if ( strtolower( $invoice->get_currency() ) !== strtolower( $currency ) ) {
164
-
165
-			/* translators: %s: currency code. */
166
-			$invoice->update_status( 'wpi-processing', wp_sprintf( __( 'Validation error: PayPal currencies do not match (code %s).', 'invoicing' ), $currency ) );
167
-			$invoice->add_note( wp_sprintf( __( 'Validation error: PayPal currencies do not match (code %s).', 'invoicing' ), $currency ), false, false, true );
168
-
169
-			wpinv_error_log( "Currencies do not match: {$currency} instead of {$invoice->get_currency()}", 'IPN Error', __FILE__, __LINE__, true );
170
-		}
171
-
172
-		wpinv_error_log( $currency, 'Validated IPN Currency', false );
173
-	}
163
+        if ( strtolower( $invoice->get_currency() ) !== strtolower( $currency ) ) {
164
+
165
+            /* translators: %s: currency code. */
166
+            $invoice->update_status( 'wpi-processing', wp_sprintf( __( 'Validation error: PayPal currencies do not match (code %s).', 'invoicing' ), $currency ) );
167
+            $invoice->add_note( wp_sprintf( __( 'Validation error: PayPal currencies do not match (code %s).', 'invoicing' ), $currency ), false, false, true );
168
+
169
+            wpinv_error_log( "Currencies do not match: {$currency} instead of {$invoice->get_currency()}", 'IPN Error', __FILE__, __LINE__, true );
170
+        }
171
+
172
+        wpinv_error_log( $currency, 'Validated IPN Currency', false );
173
+    }
174 174
 
175
-	/**
176
-	 * Check payment amount from IPN matches the invoice.
177
-	 *
178
-	 * @param WPInv_Invoice $invoice          Invoice object.
179
-	 * @param float   $amount amount to validate.
180
-	 */
181
-	protected function validate_ipn_amount( $invoice, $amount ) {
182
-		if ( number_format( $invoice->get_total(), 2, '.', '' ) !== number_format( $amount, 2, '.', '' ) ) {
175
+    /**
176
+     * Check payment amount from IPN matches the invoice.
177
+     *
178
+     * @param WPInv_Invoice $invoice          Invoice object.
179
+     * @param float   $amount amount to validate.
180
+     */
181
+    protected function validate_ipn_amount( $invoice, $amount ) {
182
+        if ( number_format( $invoice->get_total(), 2, '.', '' ) !== number_format( $amount, 2, '.', '' ) ) {
183 183
 
184
-			/* translators: %s: Amount. */
185
-			$invoice->update_status( 'wpi-processing', wp_sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'invoicing' ), $amount ) );
186
-			$invoice->add_note( wp_sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'invoicing' ), $amount ), false, false, true );
184
+            /* translators: %s: Amount. */
185
+            $invoice->update_status( 'wpi-processing', wp_sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'invoicing' ), $amount ) );
186
+            $invoice->add_note( wp_sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'invoicing' ), $amount ), false, false, true );
187 187
 
188
-			wpinv_error_log( "Amounts do not match: {$amount} instead of {$invoice->get_total()}", 'IPN Error', __FILE__, __LINE__, true );
189
-		}
188
+            wpinv_error_log( "Amounts do not match: {$amount} instead of {$invoice->get_total()}", 'IPN Error', __FILE__, __LINE__, true );
189
+        }
190 190
 
191
-		wpinv_error_log( $amount, 'Validated IPN Amount', false );
192
-	}
191
+        wpinv_error_log( $amount, 'Validated IPN Amount', false );
192
+    }
193 193
 
194
-	/**
195
-	 * Verify receiver email from PayPal.
196
-	 *
197
-	 * @param WPInv_Invoice $invoice          Invoice object.
198
-	 * @param string   $receiver_email Email to validate.
199
-	 */
200
-	protected function validate_ipn_receiver_email( $invoice, $receiver_email ) {
201
-		$paypal_email = $this->gateway->is_sandbox( $invoice ) ? wpinv_get_option( 'paypal_sandbox_email', wpinv_get_option( 'paypal_email', '' ) ) : wpinv_get_option( 'paypal_email', '' );
194
+    /**
195
+     * Verify receiver email from PayPal.
196
+     *
197
+     * @param WPInv_Invoice $invoice          Invoice object.
198
+     * @param string   $receiver_email Email to validate.
199
+     */
200
+    protected function validate_ipn_receiver_email( $invoice, $receiver_email ) {
201
+        $paypal_email = $this->gateway->is_sandbox( $invoice ) ? wpinv_get_option( 'paypal_sandbox_email', wpinv_get_option( 'paypal_email', '' ) ) : wpinv_get_option( 'paypal_email', '' );
202 202
 
203
-		if ( $receiver_email && strcasecmp( trim( $receiver_email ), trim( $paypal_email ) ) !== 0 ) {
204
-			wpinv_record_gateway_error( 'IPN Error', "IPN Response is for another account: {$receiver_email}. Your PayPal email is {$paypal_email}." );
205
-
206
-			/* translators: %s: email address . */
207
-			$invoice->update_status( 'wpi-processing', wp_sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s). Your PayPal email is %s.', 'invoicing' ), $receiver_email, $paypal_email ) );
208
-			$invoice->add_note( wp_sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s). Your PayPal email is %s.', 'invoicing' ), $receiver_email, $paypal_email ), false, false, true );
203
+        if ( $receiver_email && strcasecmp( trim( $receiver_email ), trim( $paypal_email ) ) !== 0 ) {
204
+            wpinv_record_gateway_error( 'IPN Error', "IPN Response is for another account: {$receiver_email}. Your PayPal email is {$paypal_email}." );
205
+
206
+            /* translators: %s: email address . */
207
+            $invoice->update_status( 'wpi-processing', wp_sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s). Your PayPal email is %s.', 'invoicing' ), $receiver_email, $paypal_email ) );
208
+            $invoice->add_note( wp_sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s). Your PayPal email is %s.', 'invoicing' ), $receiver_email, $paypal_email ), false, false, true );
209 209
 
210
-			return wpinv_error_log( "IPN Response is for another account: {$receiver_email}. Your email PayPal is {$paypal_email}.", 'IPN Error', __FILE__, __LINE__, true );
211
-		}
210
+            return wpinv_error_log( "IPN Response is for another account: {$receiver_email}. Your email PayPal is {$paypal_email}.", 'IPN Error', __FILE__, __LINE__, true );
211
+        }
212 212
 
213
-		wpinv_error_log( 'Validated PayPal Email', false );
214
-	}
215
-
216
-	/**
217
-	 * Handles one time payments.
218
-	 *
219
-	 * @param WPInv_Invoice $invoice  Invoice object.
220
-	 * @param array    $posted Posted data.
221
-	 */
222
-	protected function ipn_txn_web_accept( $invoice, $posted ) {
213
+        wpinv_error_log( 'Validated PayPal Email', false );
214
+    }
215
+
216
+    /**
217
+     * Handles one time payments.
218
+     *
219
+     * @param WPInv_Invoice $invoice  Invoice object.
220
+     * @param array    $posted Posted data.
221
+     */
222
+    protected function ipn_txn_web_accept( $invoice, $posted ) {
223 223
 
224
-		// Collect payment details
225
-		$payment_status = strtolower( $posted['payment_status'] );
226
-		$business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] );
224
+        // Collect payment details
225
+        $payment_status = strtolower( $posted['payment_status'] );
226
+        $business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] );
227 227
 
228
-		$this->validate_ipn_receiver_email( $invoice, $business_email );
229
-		$this->validate_ipn_currency( $invoice, $posted['mc_currency'] );
228
+        $this->validate_ipn_receiver_email( $invoice, $business_email );
229
+        $this->validate_ipn_currency( $invoice, $posted['mc_currency'] );
230 230
 
231
-		// Update the transaction id.
232
-		if ( ! empty( $posted['txn_id'] ) ) {
233
-			$invoice->set_transaction_id( wpinv_clean( $posted['txn_id'] ) );
234
-			$invoice->save();
235
-		}
231
+        // Update the transaction id.
232
+        if ( ! empty( $posted['txn_id'] ) ) {
233
+            $invoice->set_transaction_id( wpinv_clean( $posted['txn_id'] ) );
234
+            $invoice->save();
235
+        }
236 236
 
237
-		$invoice->add_system_note( __( 'Processing invoice IPN', 'invoicing' ) );
237
+        $invoice->add_system_note( __( 'Processing invoice IPN', 'invoicing' ) );
238 238
 
239
-		// Process a refund.
240
-		if ( 'refunded' === $payment_status || 'reversed' === $payment_status ) {
239
+        // Process a refund.
240
+        if ( 'refunded' === $payment_status || 'reversed' === $payment_status ) {
241 241
 
242
-			update_post_meta( $invoice->get_id(), 'refunded_remotely', 1 );
242
+            update_post_meta( $invoice->get_id(), 'refunded_remotely', 1 );
243 243
 
244
-			if ( ! $invoice->is_refunded() ) {
245
-				$invoice->update_status( 'wpi-refunded', $posted['reason_code'] );
246
-			}
244
+            if ( ! $invoice->is_refunded() ) {
245
+                $invoice->update_status( 'wpi-refunded', $posted['reason_code'] );
246
+            }
247 247
 
248
-			return wpinv_error_log( $posted['reason_code'], false );
249
-		}
248
+            return wpinv_error_log( $posted['reason_code'], false );
249
+        }
250 250
 
251
-		// Process payments.
252
-		if ( 'completed' === $payment_status ) {
251
+        // Process payments.
252
+        if ( 'completed' === $payment_status ) {
253 253
 
254
-			if ( $invoice->is_paid() && 'wpi_processing' != $invoice->get_status() ) {
255
-				return wpinv_error_log( 'Aborting, Invoice #' . $invoice->get_number() . ' is already paid.', false );
256
-			}
254
+            if ( $invoice->is_paid() && 'wpi_processing' != $invoice->get_status() ) {
255
+                return wpinv_error_log( 'Aborting, Invoice #' . $invoice->get_number() . ' is already paid.', false );
256
+            }
257 257
 
258
-			$this->validate_ipn_amount( $invoice, $posted['mc_gross'] );
258
+            $this->validate_ipn_amount( $invoice, $posted['mc_gross'] );
259 259
 
260
-			$note = '';
260
+            $note = '';
261 261
 
262
-			if ( ! empty( $posted['mc_fee'] ) ) {
263
-				$note = sprintf( __( 'PayPal Transaction Fee %s.', 'invoicing' ), sanitize_text_field( $posted['mc_fee'] ) );
264
-			}
262
+            if ( ! empty( $posted['mc_fee'] ) ) {
263
+                $note = sprintf( __( 'PayPal Transaction Fee %s.', 'invoicing' ), sanitize_text_field( $posted['mc_fee'] ) );
264
+            }
265 265
 
266
-			if ( ! empty( $posted['payer_status'] ) ) {
267
-				$note = ' ' . sprintf( __( 'Buyer status %s.', 'invoicing' ), sanitize_text_field( $posted['payer_status'] ) );
268
-			}
266
+            if ( ! empty( $posted['payer_status'] ) ) {
267
+                $note = ' ' . sprintf( __( 'Buyer status %s.', 'invoicing' ), sanitize_text_field( $posted['payer_status'] ) );
268
+            }
269 269
 
270
-			$invoice->mark_paid( ( ! empty( $posted['txn_id'] ) ? sanitize_text_field( $posted['txn_id'] ) : '' ), trim( $note ) );
271
-			return wpinv_error_log( 'Invoice marked as paid.', false );
270
+            $invoice->mark_paid( ( ! empty( $posted['txn_id'] ) ? sanitize_text_field( $posted['txn_id'] ) : '' ), trim( $note ) );
271
+            return wpinv_error_log( 'Invoice marked as paid.', false );
272 272
 
273
-		}
273
+        }
274 274
 
275
-		// Pending payments.
276
-		if ( 'pending' === $payment_status ) {
275
+        // Pending payments.
276
+        if ( 'pending' === $payment_status ) {
277 277
 
278
-			/* translators: %s: pending reason. */
279
-			$invoice->update_status( 'wpi-onhold', wp_sprintf( __( 'Payment pending (%s).', 'invoicing' ), $posted['pending_reason'] ) );
280
-			$invoice->add_note( wp_sprintf( __( 'Payment pending (%s).', 'invoicing' ), $posted['pending_reason'] ), false, false, true );
278
+            /* translators: %s: pending reason. */
279
+            $invoice->update_status( 'wpi-onhold', wp_sprintf( __( 'Payment pending (%s).', 'invoicing' ), $posted['pending_reason'] ) );
280
+            $invoice->add_note( wp_sprintf( __( 'Payment pending (%s).', 'invoicing' ), $posted['pending_reason'] ), false, false, true );
281 281
 
282
-			return wpinv_error_log( 'Invoice marked as "payment held".', false );
283
-		}
282
+            return wpinv_error_log( 'Invoice marked as "payment held".', false );
283
+        }
284 284
 
285
-		/* translators: %s: payment status. */
286
-		$invoice->update_status( 'wpi-failed', sprintf( __( 'Payment %s via IPN.', 'invoicing' ), sanitize_text_field( $posted['payment_status'] ) ) );
285
+        /* translators: %s: payment status. */
286
+        $invoice->update_status( 'wpi-failed', sprintf( __( 'Payment %s via IPN.', 'invoicing' ), sanitize_text_field( $posted['payment_status'] ) ) );
287 287
 
288
-	}
288
+    }
289 289
 
290
-	/**
291
-	 * Handles one time payments.
292
-	 *
293
-	 * @param WPInv_Invoice $invoice  Invoice object.
294
-	 * @param array    $posted Posted data.
295
-	 */
296
-	protected function ipn_txn_cart( $invoice, $posted ) {
297
-		$this->ipn_txn_web_accept( $invoice, $posted );
298
-	}
290
+    /**
291
+     * Handles one time payments.
292
+     *
293
+     * @param WPInv_Invoice $invoice  Invoice object.
294
+     * @param array    $posted Posted data.
295
+     */
296
+    protected function ipn_txn_cart( $invoice, $posted ) {
297
+        $this->ipn_txn_web_accept( $invoice, $posted );
298
+    }
299 299
 
300
-	/**
301
-	 * Handles subscription sign ups.
302
-	 *
303
-	 * @param WPInv_Invoice $invoice  Invoice object.
304
-	 * @param array    $posted Posted data.
305
-	 */
306
-	protected function ipn_txn_subscr_signup( $invoice, $posted ) {
300
+    /**
301
+     * Handles subscription sign ups.
302
+     *
303
+     * @param WPInv_Invoice $invoice  Invoice object.
304
+     * @param array    $posted Posted data.
305
+     */
306
+    protected function ipn_txn_subscr_signup( $invoice, $posted ) {
307 307
 
308
-		wpinv_error_log( 'Processing subscription signup', false );
308
+        wpinv_error_log( 'Processing subscription signup', false );
309 309
 
310
-		// Make sure the invoice has a subscription.
311
-		$subscription = getpaid_get_invoice_subscription( $invoice );
310
+        // Make sure the invoice has a subscription.
311
+        $subscription = getpaid_get_invoice_subscription( $invoice );
312 312
 
313
-		if ( empty( $subscription ) ) {
314
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
315
-		}
313
+        if ( empty( $subscription ) ) {
314
+            return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
315
+        }
316 316
 
317
-		wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false );
317
+        wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false );
318 318
 
319
-		// Validate the IPN.
320
-		$business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] );
321
-		$this->validate_ipn_receiver_email( $invoice, $business_email );
322
-		$this->validate_ipn_currency( $invoice, $posted['mc_currency'] );
319
+        // Validate the IPN.
320
+        $business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] );
321
+        $this->validate_ipn_receiver_email( $invoice, $business_email );
322
+        $this->validate_ipn_currency( $invoice, $posted['mc_currency'] );
323 323
 
324
-		// Activate the subscription.
325
-		$duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
326
-		$subscription->set_date_created( current_time( 'mysql' ) );
327
-		$subscription->set_expiration( date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ) );
328
-		$subscription->set_profile_id( sanitize_text_field( $posted['subscr_id'] ) );
329
-		$subscription->activate();
324
+        // Activate the subscription.
325
+        $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
326
+        $subscription->set_date_created( current_time( 'mysql' ) );
327
+        $subscription->set_expiration( date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ) );
328
+        $subscription->set_profile_id( sanitize_text_field( $posted['subscr_id'] ) );
329
+        $subscription->activate();
330 330
 
331
-		// Set the transaction id.
332
-		if ( ! empty( $posted['txn_id'] ) ) {
333
-			$invoice->add_note( sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true );
334
-			$invoice->set_transaction_id( $posted['txn_id'] );
335
-		}
331
+        // Set the transaction id.
332
+        if ( ! empty( $posted['txn_id'] ) ) {
333
+            $invoice->add_note( sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true );
334
+            $invoice->set_transaction_id( $posted['txn_id'] );
335
+        }
336 336
 
337
-		// Update the payment status.
338
-		$invoice->mark_paid();
337
+        // Update the payment status.
338
+        $invoice->mark_paid();
339 339
 
340
-		$invoice->add_note( sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true );
340
+        $invoice->add_note( sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true );
341 341
 
342
-		wpinv_error_log( 'Subscription started.', false );
343
-	}
342
+        wpinv_error_log( 'Subscription started.', false );
343
+    }
344 344
 
345
-	/**
346
-	 * Handles subscription renewals.
347
-	 *
348
-	 * @param WPInv_Invoice $invoice  Invoice object.
349
-	 * @param array    $posted Posted data.
350
-	 */
351
-	protected function ipn_txn_subscr_payment( $invoice, $posted ) {
345
+    /**
346
+     * Handles subscription renewals.
347
+     *
348
+     * @param WPInv_Invoice $invoice  Invoice object.
349
+     * @param array    $posted Posted data.
350
+     */
351
+    protected function ipn_txn_subscr_payment( $invoice, $posted ) {
352 352
 
353
-		// Make sure the invoice has a subscription.
354
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
353
+        // Make sure the invoice has a subscription.
354
+        $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
355 355
 
356
-		if ( empty( $subscription ) ) {
357
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
358
-		}
356
+        if ( empty( $subscription ) ) {
357
+            return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
358
+        }
359 359
 
360
-		wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false );
360
+        wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false );
361 361
 
362
-		// PayPal sends a subscr_payment for the first payment too.
363
-		$date_completed = getpaid_format_date( $invoice->get_date_completed() );
364
-		$date_created   = getpaid_format_date( $invoice->get_date_created() );
365
-		$today_date     = getpaid_format_date( current_time( 'mysql' ) );
366
-		$payment_date   = getpaid_format_date( $posted['payment_date'] );
367
-		$subscribe_date = getpaid_format_date( $subscription->get_date_created() );
368
-		$dates          = array_filter( compact( 'date_completed', 'date_created', 'subscribe_date' ) );
362
+        // PayPal sends a subscr_payment for the first payment too.
363
+        $date_completed = getpaid_format_date( $invoice->get_date_completed() );
364
+        $date_created   = getpaid_format_date( $invoice->get_date_created() );
365
+        $today_date     = getpaid_format_date( current_time( 'mysql' ) );
366
+        $payment_date   = getpaid_format_date( $posted['payment_date'] );
367
+        $subscribe_date = getpaid_format_date( $subscription->get_date_created() );
368
+        $dates          = array_filter( compact( 'date_completed', 'date_created', 'subscribe_date' ) );
369 369
 
370
-		foreach ( $dates as $date ) {
370
+        foreach ( $dates as $date ) {
371 371
 
372
-			if ( $date !== $today_date && $date !== $payment_date ) {
373
-				continue;
374
-			}
372
+            if ( $date !== $today_date && $date !== $payment_date ) {
373
+                continue;
374
+            }
375 375
 
376
-			if ( ! empty( $posted['txn_id'] ) ) {
377
-				$invoice->set_transaction_id( sanitize_text_field( $posted['txn_id'] ) );
378
-				$invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), sanitize_text_field( $posted['txn_id'] ) ), false, false, true );
379
-			}
376
+            if ( ! empty( $posted['txn_id'] ) ) {
377
+                $invoice->set_transaction_id( sanitize_text_field( $posted['txn_id'] ) );
378
+                $invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), sanitize_text_field( $posted['txn_id'] ) ), false, false, true );
379
+            }
380 380
 
381
-			return $invoice->mark_paid();
382
-
383
-		}
381
+            return $invoice->mark_paid();
382
+
383
+        }
384 384
 
385
-		wpinv_error_log( 'Processing subscription renewal payment for the invoice ' . $invoice->get_id(), false );
386
-
387
-		// Abort if the payment is already recorded.
388
-		if ( wpinv_get_id_by_transaction_id( $posted['txn_id'] ) ) {
389
-			return wpinv_error_log( 'Aborting, Transaction ' . $posted['txn_id'] . ' has already been processed', false );
390
-		}
391
-
392
-		$args = array(
393
-			'transaction_id' => $posted['txn_id'],
394
-			'gateway'        => $this->id,
395
-		);
396
-
397
-		$invoice = wpinv_get_invoice( $subscription->add_payment( $args ) );
385
+        wpinv_error_log( 'Processing subscription renewal payment for the invoice ' . $invoice->get_id(), false );
386
+
387
+        // Abort if the payment is already recorded.
388
+        if ( wpinv_get_id_by_transaction_id( $posted['txn_id'] ) ) {
389
+            return wpinv_error_log( 'Aborting, Transaction ' . $posted['txn_id'] . ' has already been processed', false );
390
+        }
391
+
392
+        $args = array(
393
+            'transaction_id' => $posted['txn_id'],
394
+            'gateway'        => $this->id,
395
+        );
396
+
397
+        $invoice = wpinv_get_invoice( $subscription->add_payment( $args ) );
398 398
 
399
-		if ( empty( $invoice ) ) {
400
-			return;
401
-		}
399
+        if ( empty( $invoice ) ) {
400
+            return;
401
+        }
402 402
 
403
-		$invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true );
404
-		$invoice->add_note( wp_sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true );
403
+        $invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true );
404
+        $invoice->add_note( wp_sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true );
405 405
 
406
-		$subscription->renew();
407
-		wpinv_error_log( 'Subscription renewed.', false );
406
+        $subscription->renew();
407
+        wpinv_error_log( 'Subscription renewed.', false );
408 408
 
409
-	}
409
+    }
410 410
 
411
-	/**
412
-	 * Handles subscription cancelations.
413
-	 *
414
-	 * @param WPInv_Invoice $invoice  Invoice object.
415
-	 */
416
-	protected function ipn_txn_subscr_cancel( $invoice ) {
411
+    /**
412
+     * Handles subscription cancelations.
413
+     *
414
+     * @param WPInv_Invoice $invoice  Invoice object.
415
+     */
416
+    protected function ipn_txn_subscr_cancel( $invoice ) {
417 417
 
418
-		// Make sure the invoice has a subscription.
419
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
420
-
421
-		if ( empty( $subscription ) ) {
422
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
423
-		}
424
-
425
-		wpinv_error_log( 'Processing subscription cancellation for the invoice ' . $invoice->get_id(), false );
426
-		$subscription->cancel();
427
-		wpinv_error_log( 'Subscription cancelled.', false );
418
+        // Make sure the invoice has a subscription.
419
+        $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
420
+
421
+        if ( empty( $subscription ) ) {
422
+            return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
423
+        }
424
+
425
+        wpinv_error_log( 'Processing subscription cancellation for the invoice ' . $invoice->get_id(), false );
426
+        $subscription->cancel();
427
+        wpinv_error_log( 'Subscription cancelled.', false );
428 428
 
429
-	}
429
+    }
430 430
 
431
-	/**
432
-	 * Handles subscription completions.
433
-	 *
434
-	 * @param WPInv_Invoice $invoice  Invoice object.
435
-	 * @param array    $posted Posted data.
436
-	 */
437
-	protected function ipn_txn_subscr_eot( $invoice ) {
431
+    /**
432
+     * Handles subscription completions.
433
+     *
434
+     * @param WPInv_Invoice $invoice  Invoice object.
435
+     * @param array    $posted Posted data.
436
+     */
437
+    protected function ipn_txn_subscr_eot( $invoice ) {
438 438
 
439
-		// Make sure the invoice has a subscription.
440
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
439
+        // Make sure the invoice has a subscription.
440
+        $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
441 441
 
442
-		if ( empty( $subscription ) ) {
443
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
444
-		}
442
+        if ( empty( $subscription ) ) {
443
+            return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
444
+        }
445 445
 
446
-		wpinv_error_log( 'Processing subscription end of life for the invoice ' . $invoice->get_id(), false );
447
-		$subscription->complete();
448
-		wpinv_error_log( 'Subscription completed.', false );
446
+        wpinv_error_log( 'Processing subscription end of life for the invoice ' . $invoice->get_id(), false );
447
+        $subscription->complete();
448
+        wpinv_error_log( 'Subscription completed.', false );
449 449
 
450
-	}
450
+    }
451 451
 
452
-	/**
453
-	 * Handles subscription fails.
454
-	 *
455
-	 * @param WPInv_Invoice $invoice  Invoice object.
456
-	 * @param array    $posted Posted data.
457
-	 */
458
-	protected function ipn_txn_subscr_failed( $invoice ) {
452
+    /**
453
+     * Handles subscription fails.
454
+     *
455
+     * @param WPInv_Invoice $invoice  Invoice object.
456
+     * @param array    $posted Posted data.
457
+     */
458
+    protected function ipn_txn_subscr_failed( $invoice ) {
459 459
 
460
-		// Make sure the invoice has a subscription.
461
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
460
+        // Make sure the invoice has a subscription.
461
+        $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
462 462
 
463
-		if ( empty( $subscription ) ) {
464
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
465
-		}
463
+        if ( empty( $subscription ) ) {
464
+            return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
465
+        }
466 466
 
467
-		wpinv_error_log( 'Processing subscription payment failure for the invoice ' . $invoice->get_id(), false );
468
-		$subscription->failing();
469
-		wpinv_error_log( 'Subscription marked as failing.', false );
467
+        wpinv_error_log( 'Processing subscription payment failure for the invoice ' . $invoice->get_id(), false );
468
+        $subscription->failing();
469
+        wpinv_error_log( 'Subscription marked as failing.', false );
470 470
 
471
-	}
471
+    }
472 472
 
473
-	/**
474
-	 * Handles subscription suspensions.
475
-	 *
476
-	 * @param WPInv_Invoice $invoice  Invoice object.
477
-	 * @param array    $posted Posted data.
478
-	 */
479
-	protected function ipn_txn_recurring_payment_suspended_due_to_max_failed_payment( $invoice ) {
473
+    /**
474
+     * Handles subscription suspensions.
475
+     *
476
+     * @param WPInv_Invoice $invoice  Invoice object.
477
+     * @param array    $posted Posted data.
478
+     */
479
+    protected function ipn_txn_recurring_payment_suspended_due_to_max_failed_payment( $invoice ) {
480 480
 
481
-		// Make sure the invoice has a subscription.
482
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
481
+        // Make sure the invoice has a subscription.
482
+        $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
483 483
 
484
-		if ( empty( $subscription ) ) {
485
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
486
-		}
487
-
488
-		wpinv_error_log( 'Processing subscription cancellation due to max failed payment for the invoice ' . $invoice->get_id(), false );
489
-		$subscription->cancel();
490
-		wpinv_error_log( 'Subscription cancelled.', false );
491
-	}
484
+        if ( empty( $subscription ) ) {
485
+            return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
486
+        }
487
+
488
+        wpinv_error_log( 'Processing subscription cancellation due to max failed payment for the invoice ' . $invoice->get_id(), false );
489
+        $subscription->cancel();
490
+        wpinv_error_log( 'Subscription cancelled.', false );
491
+    }
492 492
 
493 493
 }
Please login to merge, or discard this patch.
Spacing   +159 added lines, -159 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
  * Paypal Payment Gateway IPN handler class.
@@ -31,7 +31,7 @@  discard block
 block discarded – undo
31 31
 	 *
32 32
 	 * @param GetPaid_Paypal_Gateway $gateway
33 33
 	 */
34
-	public function __construct( $gateway ) {
34
+	public function __construct($gateway) {
35 35
 		$this->gateway = $gateway;
36 36
 		$this->verify_ipn();
37 37
 	}
@@ -43,37 +43,37 @@  discard block
 block discarded – undo
43 43
 	 */
44 44
 	public function verify_ipn() {
45 45
 
46
-		wpinv_error_log( 'GetPaid PayPal IPN Handler', false );
46
+		wpinv_error_log('GetPaid PayPal IPN Handler', false);
47 47
 
48 48
 		// Validate the IPN.
49
-		if ( empty( $_POST ) || ! $this->validate_ipn() ) {
50
-			wp_die( 'PayPal IPN Request Failure', 500 );
49
+		if (empty($_POST) || !$this->validate_ipn()) {
50
+			wp_die('PayPal IPN Request Failure', 500);
51 51
 		}
52 52
 
53 53
 		// Process the IPN.
54
-		$posted  = wp_unslash( $_POST );
55
-		$invoice = $this->get_ipn_invoice( $posted );
54
+		$posted  = wp_unslash($_POST);
55
+		$invoice = $this->get_ipn_invoice($posted);
56 56
 
57 57
 		// Abort if it was not paid by our gateway.
58
-		if ( $this->id != $invoice->get_gateway() ) {
59
-			wpinv_error_log( 'Aborting, Invoice was not paid via PayPal', false );
60
-			wp_die( 'Invoice not paid via PayPal', 200 );
58
+		if ($this->id != $invoice->get_gateway()) {
59
+			wpinv_error_log('Aborting, Invoice was not paid via PayPal', false);
60
+			wp_die('Invoice not paid via PayPal', 200);
61 61
 		}
62 62
 
63
-		$posted['payment_status'] = isset( $posted['payment_status'] ) ? sanitize_key( strtolower( $posted['payment_status'] ) ) : '';
64
-		$posted['txn_type']       = sanitize_key( strtolower( $posted['txn_type'] ) );
63
+		$posted['payment_status'] = isset($posted['payment_status']) ? sanitize_key(strtolower($posted['payment_status'])) : '';
64
+		$posted['txn_type']       = sanitize_key(strtolower($posted['txn_type']));
65 65
 
66
-		wpinv_error_log( 'Payment status:' . $posted['payment_status'], false );
67
-		wpinv_error_log( 'IPN Type:' . $posted['txn_type'], false );
66
+		wpinv_error_log('Payment status:' . $posted['payment_status'], false);
67
+		wpinv_error_log('IPN Type:' . $posted['txn_type'], false);
68 68
 
69
-		if ( method_exists( $this, 'ipn_txn_' . $posted['txn_type'] ) ) {
70
-			call_user_func( array( $this, 'ipn_txn_' . $posted['txn_type'] ), $invoice, $posted );
71
-			wpinv_error_log( 'Done processing IPN', false );
72
-			wp_die( 'Processed', 200 );
69
+		if (method_exists($this, 'ipn_txn_' . $posted['txn_type'])) {
70
+			call_user_func(array($this, 'ipn_txn_' . $posted['txn_type']), $invoice, $posted);
71
+			wpinv_error_log('Done processing IPN', false);
72
+			wp_die('Processed', 200);
73 73
 		}
74 74
 
75
-		wpinv_error_log( 'Aborting, Unsupported IPN type:' . $posted['txn_type'], false );
76
-		wp_die( 'Unsupported IPN type', 200 );
75
+		wpinv_error_log('Aborting, Unsupported IPN type:' . $posted['txn_type'], false);
76
+		wp_die('Unsupported IPN type', 200);
77 77
 
78 78
 	}
79 79
 
@@ -83,21 +83,21 @@  discard block
 block discarded – undo
83 83
 	 * @param array $posted
84 84
 	 * @return WPInv_Invoice
85 85
 	 */
86
-	protected function get_ipn_invoice( $posted ) {
86
+	protected function get_ipn_invoice($posted) {
87 87
 
88
-		wpinv_error_log( 'Retrieving PayPal IPN Response Invoice', false );
88
+		wpinv_error_log('Retrieving PayPal IPN Response Invoice', false);
89 89
 
90
-		if ( ! empty( $posted['custom'] ) ) {
91
-			$invoice = new WPInv_Invoice( $posted['custom'] );
90
+		if (!empty($posted['custom'])) {
91
+			$invoice = new WPInv_Invoice($posted['custom']);
92 92
 
93
-			if ( $invoice->exists() ) {
94
-				wpinv_error_log( 'Found invoice #' . $invoice->get_number(), false );
93
+			if ($invoice->exists()) {
94
+				wpinv_error_log('Found invoice #' . $invoice->get_number(), false);
95 95
 				return $invoice;
96 96
 			}
97 97
 		}
98 98
 
99
-		wpinv_error_log( 'Could not retrieve the associated invoice.', false );
100
-		wp_die( 'Could not retrieve the associated invoice.', 200 );
99
+		wpinv_error_log('Could not retrieve the associated invoice.', false);
100
+		wp_die('Could not retrieve the associated invoice.', 200);
101 101
 	}
102 102
 
103 103
 	/**
@@ -105,14 +105,14 @@  discard block
 block discarded – undo
105 105
 	 */
106 106
 	protected function validate_ipn() {
107 107
 
108
-		wpinv_error_log( 'Validating PayPal IPN response', false );
108
+		wpinv_error_log('Validating PayPal IPN response', false);
109 109
 
110 110
 		// Retrieve the associated invoice.
111
-		$posted  = wp_unslash( $_POST );
112
-		$invoice = $this->get_ipn_invoice( $posted );
111
+		$posted  = wp_unslash($_POST);
112
+		$invoice = $this->get_ipn_invoice($posted);
113 113
 
114
-		if ( $this->gateway->is_sandbox( $invoice ) ) {
115
-			wpinv_error_log( $posted, 'Invoice was processed in sandbox hence logging the posted data', false );
114
+		if ($this->gateway->is_sandbox($invoice)) {
115
+			wpinv_error_log($posted, 'Invoice was processed in sandbox hence logging the posted data', false);
116 116
 		}
117 117
 
118 118
 		// Validate the IPN.
@@ -129,25 +129,25 @@  discard block
 block discarded – undo
129 129
 		);
130 130
 
131 131
 		// Post back to get a response.
132
-		$response = wp_safe_remote_post( $this->gateway->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params );
132
+		$response = wp_safe_remote_post($this->gateway->is_sandbox($invoice) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params);
133 133
 
134 134
 		// Check to see if the request was valid.
135
-		if ( ! is_wp_error( $response ) && $response['response']['code'] < 300 && strstr( $response['body'], 'VERIFIED' ) ) {
136
-			$invoice->add_note( 'Received valid response from PayPal IPN: ' . $response['body'], false, false, true );
137
-			wpinv_error_log( 'Received valid response from PayPal IPN: ' . $response['body'], false );
135
+		if (!is_wp_error($response) && $response['response']['code'] < 300 && strstr($response['body'], 'VERIFIED')) {
136
+			$invoice->add_note('Received valid response from PayPal IPN: ' . $response['body'], false, false, true);
137
+			wpinv_error_log('Received valid response from PayPal IPN: ' . $response['body'], false);
138 138
 			return true;
139 139
 		}
140 140
 
141
-		$invoice->add_note( 'IPN message:' . wp_json_encode( $posted ), false, false, true );
141
+		$invoice->add_note('IPN message:' . wp_json_encode($posted), false, false, true);
142 142
 
143
-		if ( is_wp_error( $response ) ) {
144
-			$invoice->add_note( 'Received invalid response from PayPal IPN: ' . $response->get_error_message(), false, false, true );
145
-			wpinv_error_log( $response->get_error_message(), 'Received invalid response from PayPal IPN' );
143
+		if (is_wp_error($response)) {
144
+			$invoice->add_note('Received invalid response from PayPal IPN: ' . $response->get_error_message(), false, false, true);
145
+			wpinv_error_log($response->get_error_message(), 'Received invalid response from PayPal IPN');
146 146
 			return false;
147 147
 		}
148 148
 
149
-		$invoice->add_note( 'Received invalid response from PayPal IPN: ' . $response['body'], false, false, true );
150
-		wpinv_error_log( $response['body'], 'Received invalid response from PayPal IPN' );
149
+		$invoice->add_note('Received invalid response from PayPal IPN: ' . $response['body'], false, false, true);
150
+		wpinv_error_log($response['body'], 'Received invalid response from PayPal IPN');
151 151
 		return false;
152 152
 
153 153
 	}
@@ -158,18 +158,18 @@  discard block
 block discarded – undo
158 158
 	 * @param WPInv_Invoice $invoice          Invoice object.
159 159
 	 * @param string   $currency currency to validate.
160 160
 	 */
161
-	protected function validate_ipn_currency( $invoice, $currency ) {
161
+	protected function validate_ipn_currency($invoice, $currency) {
162 162
 
163
-		if ( strtolower( $invoice->get_currency() ) !== strtolower( $currency ) ) {
163
+		if (strtolower($invoice->get_currency()) !== strtolower($currency)) {
164 164
 
165 165
 			/* translators: %s: currency code. */
166
-			$invoice->update_status( 'wpi-processing', wp_sprintf( __( 'Validation error: PayPal currencies do not match (code %s).', 'invoicing' ), $currency ) );
167
-			$invoice->add_note( wp_sprintf( __( 'Validation error: PayPal currencies do not match (code %s).', 'invoicing' ), $currency ), false, false, true );
166
+			$invoice->update_status('wpi-processing', wp_sprintf(__('Validation error: PayPal currencies do not match (code %s).', 'invoicing'), $currency));
167
+			$invoice->add_note(wp_sprintf(__('Validation error: PayPal currencies do not match (code %s).', 'invoicing'), $currency), false, false, true);
168 168
 
169
-			wpinv_error_log( "Currencies do not match: {$currency} instead of {$invoice->get_currency()}", 'IPN Error', __FILE__, __LINE__, true );
169
+			wpinv_error_log("Currencies do not match: {$currency} instead of {$invoice->get_currency()}", 'IPN Error', __FILE__, __LINE__, true);
170 170
 		}
171 171
 
172
-		wpinv_error_log( $currency, 'Validated IPN Currency', false );
172
+		wpinv_error_log($currency, 'Validated IPN Currency', false);
173 173
 	}
174 174
 
175 175
 	/**
@@ -178,17 +178,17 @@  discard block
 block discarded – undo
178 178
 	 * @param WPInv_Invoice $invoice          Invoice object.
179 179
 	 * @param float   $amount amount to validate.
180 180
 	 */
181
-	protected function validate_ipn_amount( $invoice, $amount ) {
182
-		if ( number_format( $invoice->get_total(), 2, '.', '' ) !== number_format( $amount, 2, '.', '' ) ) {
181
+	protected function validate_ipn_amount($invoice, $amount) {
182
+		if (number_format($invoice->get_total(), 2, '.', '') !== number_format($amount, 2, '.', '')) {
183 183
 
184 184
 			/* translators: %s: Amount. */
185
-			$invoice->update_status( 'wpi-processing', wp_sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'invoicing' ), $amount ) );
186
-			$invoice->add_note( wp_sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'invoicing' ), $amount ), false, false, true );
185
+			$invoice->update_status('wpi-processing', wp_sprintf(__('Validation error: PayPal amounts do not match (gross %s).', 'invoicing'), $amount));
186
+			$invoice->add_note(wp_sprintf(__('Validation error: PayPal amounts do not match (gross %s).', 'invoicing'), $amount), false, false, true);
187 187
 
188
-			wpinv_error_log( "Amounts do not match: {$amount} instead of {$invoice->get_total()}", 'IPN Error', __FILE__, __LINE__, true );
188
+			wpinv_error_log("Amounts do not match: {$amount} instead of {$invoice->get_total()}", 'IPN Error', __FILE__, __LINE__, true);
189 189
 		}
190 190
 
191
-		wpinv_error_log( $amount, 'Validated IPN Amount', false );
191
+		wpinv_error_log($amount, 'Validated IPN Amount', false);
192 192
 	}
193 193
 
194 194
 	/**
@@ -197,20 +197,20 @@  discard block
 block discarded – undo
197 197
 	 * @param WPInv_Invoice $invoice          Invoice object.
198 198
 	 * @param string   $receiver_email Email to validate.
199 199
 	 */
200
-	protected function validate_ipn_receiver_email( $invoice, $receiver_email ) {
201
-		$paypal_email = $this->gateway->is_sandbox( $invoice ) ? wpinv_get_option( 'paypal_sandbox_email', wpinv_get_option( 'paypal_email', '' ) ) : wpinv_get_option( 'paypal_email', '' );
200
+	protected function validate_ipn_receiver_email($invoice, $receiver_email) {
201
+		$paypal_email = $this->gateway->is_sandbox($invoice) ? wpinv_get_option('paypal_sandbox_email', wpinv_get_option('paypal_email', '')) : wpinv_get_option('paypal_email', '');
202 202
 
203
-		if ( $receiver_email && strcasecmp( trim( $receiver_email ), trim( $paypal_email ) ) !== 0 ) {
204
-			wpinv_record_gateway_error( 'IPN Error', "IPN Response is for another account: {$receiver_email}. Your PayPal email is {$paypal_email}." );
203
+		if ($receiver_email && strcasecmp(trim($receiver_email), trim($paypal_email)) !== 0) {
204
+			wpinv_record_gateway_error('IPN Error', "IPN Response is for another account: {$receiver_email}. Your PayPal email is {$paypal_email}.");
205 205
 
206 206
 			/* translators: %s: email address . */
207
-			$invoice->update_status( 'wpi-processing', wp_sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s). Your PayPal email is %s.', 'invoicing' ), $receiver_email, $paypal_email ) );
208
-			$invoice->add_note( wp_sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s). Your PayPal email is %s.', 'invoicing' ), $receiver_email, $paypal_email ), false, false, true );
207
+			$invoice->update_status('wpi-processing', wp_sprintf(__('Validation error: PayPal IPN response from a different email address (%s). Your PayPal email is %s.', 'invoicing'), $receiver_email, $paypal_email));
208
+			$invoice->add_note(wp_sprintf(__('Validation error: PayPal IPN response from a different email address (%s). Your PayPal email is %s.', 'invoicing'), $receiver_email, $paypal_email), false, false, true);
209 209
 
210
-			return wpinv_error_log( "IPN Response is for another account: {$receiver_email}. Your email PayPal is {$paypal_email}.", 'IPN Error', __FILE__, __LINE__, true );
210
+			return wpinv_error_log("IPN Response is for another account: {$receiver_email}. Your email PayPal is {$paypal_email}.", 'IPN Error', __FILE__, __LINE__, true);
211 211
 		}
212 212
 
213
-		wpinv_error_log( 'Validated PayPal Email', false );
213
+		wpinv_error_log('Validated PayPal Email', false);
214 214
 	}
215 215
 
216 216
 	/**
@@ -219,71 +219,71 @@  discard block
 block discarded – undo
219 219
 	 * @param WPInv_Invoice $invoice  Invoice object.
220 220
 	 * @param array    $posted Posted data.
221 221
 	 */
222
-	protected function ipn_txn_web_accept( $invoice, $posted ) {
222
+	protected function ipn_txn_web_accept($invoice, $posted) {
223 223
 
224 224
 		// Collect payment details
225
-		$payment_status = strtolower( $posted['payment_status'] );
226
-		$business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] );
225
+		$payment_status = strtolower($posted['payment_status']);
226
+		$business_email = isset($posted['business']) && is_email($posted['business']) ? trim($posted['business']) : trim($posted['receiver_email']);
227 227
 
228
-		$this->validate_ipn_receiver_email( $invoice, $business_email );
229
-		$this->validate_ipn_currency( $invoice, $posted['mc_currency'] );
228
+		$this->validate_ipn_receiver_email($invoice, $business_email);
229
+		$this->validate_ipn_currency($invoice, $posted['mc_currency']);
230 230
 
231 231
 		// Update the transaction id.
232
-		if ( ! empty( $posted['txn_id'] ) ) {
233
-			$invoice->set_transaction_id( wpinv_clean( $posted['txn_id'] ) );
232
+		if (!empty($posted['txn_id'])) {
233
+			$invoice->set_transaction_id(wpinv_clean($posted['txn_id']));
234 234
 			$invoice->save();
235 235
 		}
236 236
 
237
-		$invoice->add_system_note( __( 'Processing invoice IPN', 'invoicing' ) );
237
+		$invoice->add_system_note(__('Processing invoice IPN', 'invoicing'));
238 238
 
239 239
 		// Process a refund.
240
-		if ( 'refunded' === $payment_status || 'reversed' === $payment_status ) {
240
+		if ('refunded' === $payment_status || 'reversed' === $payment_status) {
241 241
 
242
-			update_post_meta( $invoice->get_id(), 'refunded_remotely', 1 );
242
+			update_post_meta($invoice->get_id(), 'refunded_remotely', 1);
243 243
 
244
-			if ( ! $invoice->is_refunded() ) {
245
-				$invoice->update_status( 'wpi-refunded', $posted['reason_code'] );
244
+			if (!$invoice->is_refunded()) {
245
+				$invoice->update_status('wpi-refunded', $posted['reason_code']);
246 246
 			}
247 247
 
248
-			return wpinv_error_log( $posted['reason_code'], false );
248
+			return wpinv_error_log($posted['reason_code'], false);
249 249
 		}
250 250
 
251 251
 		// Process payments.
252
-		if ( 'completed' === $payment_status ) {
252
+		if ('completed' === $payment_status) {
253 253
 
254
-			if ( $invoice->is_paid() && 'wpi_processing' != $invoice->get_status() ) {
255
-				return wpinv_error_log( 'Aborting, Invoice #' . $invoice->get_number() . ' is already paid.', false );
254
+			if ($invoice->is_paid() && 'wpi_processing' != $invoice->get_status()) {
255
+				return wpinv_error_log('Aborting, Invoice #' . $invoice->get_number() . ' is already paid.', false);
256 256
 			}
257 257
 
258
-			$this->validate_ipn_amount( $invoice, $posted['mc_gross'] );
258
+			$this->validate_ipn_amount($invoice, $posted['mc_gross']);
259 259
 
260 260
 			$note = '';
261 261
 
262
-			if ( ! empty( $posted['mc_fee'] ) ) {
263
-				$note = sprintf( __( 'PayPal Transaction Fee %s.', 'invoicing' ), sanitize_text_field( $posted['mc_fee'] ) );
262
+			if (!empty($posted['mc_fee'])) {
263
+				$note = sprintf(__('PayPal Transaction Fee %s.', 'invoicing'), sanitize_text_field($posted['mc_fee']));
264 264
 			}
265 265
 
266
-			if ( ! empty( $posted['payer_status'] ) ) {
267
-				$note = ' ' . sprintf( __( 'Buyer status %s.', 'invoicing' ), sanitize_text_field( $posted['payer_status'] ) );
266
+			if (!empty($posted['payer_status'])) {
267
+				$note = ' ' . sprintf(__('Buyer status %s.', 'invoicing'), sanitize_text_field($posted['payer_status']));
268 268
 			}
269 269
 
270
-			$invoice->mark_paid( ( ! empty( $posted['txn_id'] ) ? sanitize_text_field( $posted['txn_id'] ) : '' ), trim( $note ) );
271
-			return wpinv_error_log( 'Invoice marked as paid.', false );
270
+			$invoice->mark_paid((!empty($posted['txn_id']) ? sanitize_text_field($posted['txn_id']) : ''), trim($note));
271
+			return wpinv_error_log('Invoice marked as paid.', false);
272 272
 
273 273
 		}
274 274
 
275 275
 		// Pending payments.
276
-		if ( 'pending' === $payment_status ) {
276
+		if ('pending' === $payment_status) {
277 277
 
278 278
 			/* translators: %s: pending reason. */
279
-			$invoice->update_status( 'wpi-onhold', wp_sprintf( __( 'Payment pending (%s).', 'invoicing' ), $posted['pending_reason'] ) );
280
-			$invoice->add_note( wp_sprintf( __( 'Payment pending (%s).', 'invoicing' ), $posted['pending_reason'] ), false, false, true );
279
+			$invoice->update_status('wpi-onhold', wp_sprintf(__('Payment pending (%s).', 'invoicing'), $posted['pending_reason']));
280
+			$invoice->add_note(wp_sprintf(__('Payment pending (%s).', 'invoicing'), $posted['pending_reason']), false, false, true);
281 281
 
282
-			return wpinv_error_log( 'Invoice marked as "payment held".', false );
282
+			return wpinv_error_log('Invoice marked as "payment held".', false);
283 283
 		}
284 284
 
285 285
 		/* translators: %s: payment status. */
286
-		$invoice->update_status( 'wpi-failed', sprintf( __( 'Payment %s via IPN.', 'invoicing' ), sanitize_text_field( $posted['payment_status'] ) ) );
286
+		$invoice->update_status('wpi-failed', sprintf(__('Payment %s via IPN.', 'invoicing'), sanitize_text_field($posted['payment_status'])));
287 287
 
288 288
 	}
289 289
 
@@ -293,8 +293,8 @@  discard block
 block discarded – undo
293 293
 	 * @param WPInv_Invoice $invoice  Invoice object.
294 294
 	 * @param array    $posted Posted data.
295 295
 	 */
296
-	protected function ipn_txn_cart( $invoice, $posted ) {
297
-		$this->ipn_txn_web_accept( $invoice, $posted );
296
+	protected function ipn_txn_cart($invoice, $posted) {
297
+		$this->ipn_txn_web_accept($invoice, $posted);
298 298
 	}
299 299
 
300 300
 	/**
@@ -303,43 +303,43 @@  discard block
 block discarded – undo
303 303
 	 * @param WPInv_Invoice $invoice  Invoice object.
304 304
 	 * @param array    $posted Posted data.
305 305
 	 */
306
-	protected function ipn_txn_subscr_signup( $invoice, $posted ) {
306
+	protected function ipn_txn_subscr_signup($invoice, $posted) {
307 307
 
308
-		wpinv_error_log( 'Processing subscription signup', false );
308
+		wpinv_error_log('Processing subscription signup', false);
309 309
 
310 310
 		// Make sure the invoice has a subscription.
311
-		$subscription = getpaid_get_invoice_subscription( $invoice );
311
+		$subscription = getpaid_get_invoice_subscription($invoice);
312 312
 
313
-		if ( empty( $subscription ) ) {
314
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
313
+		if (empty($subscription)) {
314
+			return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false);
315 315
 		}
316 316
 
317
-		wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false );
317
+		wpinv_error_log('Found subscription #' . $subscription->get_id(), false);
318 318
 
319 319
 		// Validate the IPN.
320
-		$business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] );
321
-		$this->validate_ipn_receiver_email( $invoice, $business_email );
322
-		$this->validate_ipn_currency( $invoice, $posted['mc_currency'] );
320
+		$business_email = isset($posted['business']) && is_email($posted['business']) ? trim($posted['business']) : trim($posted['receiver_email']);
321
+		$this->validate_ipn_receiver_email($invoice, $business_email);
322
+		$this->validate_ipn_currency($invoice, $posted['mc_currency']);
323 323
 
324 324
 		// Activate the subscription.
325
-		$duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
326
-		$subscription->set_date_created( current_time( 'mysql' ) );
327
-		$subscription->set_expiration( date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ) );
328
-		$subscription->set_profile_id( sanitize_text_field( $posted['subscr_id'] ) );
325
+		$duration = strtotime($subscription->get_expiration()) - strtotime($subscription->get_date_created());
326
+		$subscription->set_date_created(current_time('mysql'));
327
+		$subscription->set_expiration(date('Y-m-d H:i:s', (current_time('timestamp') + $duration)));
328
+		$subscription->set_profile_id(sanitize_text_field($posted['subscr_id']));
329 329
 		$subscription->activate();
330 330
 
331 331
 		// Set the transaction id.
332
-		if ( ! empty( $posted['txn_id'] ) ) {
333
-			$invoice->add_note( sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true );
334
-			$invoice->set_transaction_id( $posted['txn_id'] );
332
+		if (!empty($posted['txn_id'])) {
333
+			$invoice->add_note(sprintf(__('PayPal Transaction ID: %s', 'invoicing'), $posted['txn_id']), false, false, true);
334
+			$invoice->set_transaction_id($posted['txn_id']);
335 335
 		}
336 336
 
337 337
 		// Update the payment status.
338 338
 		$invoice->mark_paid();
339 339
 
340
-		$invoice->add_note( sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true );
340
+		$invoice->add_note(sprintf(__('PayPal Subscription ID: %s', 'invoicing'), $posted['subscr_id']), false, false, true);
341 341
 
342
-		wpinv_error_log( 'Subscription started.', false );
342
+		wpinv_error_log('Subscription started.', false);
343 343
 	}
344 344
 
345 345
 	/**
@@ -348,45 +348,45 @@  discard block
 block discarded – undo
348 348
 	 * @param WPInv_Invoice $invoice  Invoice object.
349 349
 	 * @param array    $posted Posted data.
350 350
 	 */
351
-	protected function ipn_txn_subscr_payment( $invoice, $posted ) {
351
+	protected function ipn_txn_subscr_payment($invoice, $posted) {
352 352
 
353 353
 		// Make sure the invoice has a subscription.
354
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
354
+		$subscription = getpaid_subscriptions()->get_invoice_subscription($invoice);
355 355
 
356
-		if ( empty( $subscription ) ) {
357
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
356
+		if (empty($subscription)) {
357
+			return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false);
358 358
 		}
359 359
 
360
-		wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false );
360
+		wpinv_error_log('Found subscription #' . $subscription->get_id(), false);
361 361
 
362 362
 		// PayPal sends a subscr_payment for the first payment too.
363
-		$date_completed = getpaid_format_date( $invoice->get_date_completed() );
364
-		$date_created   = getpaid_format_date( $invoice->get_date_created() );
365
-		$today_date     = getpaid_format_date( current_time( 'mysql' ) );
366
-		$payment_date   = getpaid_format_date( $posted['payment_date'] );
367
-		$subscribe_date = getpaid_format_date( $subscription->get_date_created() );
368
-		$dates          = array_filter( compact( 'date_completed', 'date_created', 'subscribe_date' ) );
363
+		$date_completed = getpaid_format_date($invoice->get_date_completed());
364
+		$date_created   = getpaid_format_date($invoice->get_date_created());
365
+		$today_date     = getpaid_format_date(current_time('mysql'));
366
+		$payment_date   = getpaid_format_date($posted['payment_date']);
367
+		$subscribe_date = getpaid_format_date($subscription->get_date_created());
368
+		$dates          = array_filter(compact('date_completed', 'date_created', 'subscribe_date'));
369 369
 
370
-		foreach ( $dates as $date ) {
370
+		foreach ($dates as $date) {
371 371
 
372
-			if ( $date !== $today_date && $date !== $payment_date ) {
372
+			if ($date !== $today_date && $date !== $payment_date) {
373 373
 				continue;
374 374
 			}
375 375
 
376
-			if ( ! empty( $posted['txn_id'] ) ) {
377
-				$invoice->set_transaction_id( sanitize_text_field( $posted['txn_id'] ) );
378
-				$invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), sanitize_text_field( $posted['txn_id'] ) ), false, false, true );
376
+			if (!empty($posted['txn_id'])) {
377
+				$invoice->set_transaction_id(sanitize_text_field($posted['txn_id']));
378
+				$invoice->add_note(wp_sprintf(__('PayPal Transaction ID: %s', 'invoicing'), sanitize_text_field($posted['txn_id'])), false, false, true);
379 379
 			}
380 380
 
381 381
 			return $invoice->mark_paid();
382 382
 
383 383
 		}
384 384
 
385
-		wpinv_error_log( 'Processing subscription renewal payment for the invoice ' . $invoice->get_id(), false );
385
+		wpinv_error_log('Processing subscription renewal payment for the invoice ' . $invoice->get_id(), false);
386 386
 
387 387
 		// Abort if the payment is already recorded.
388
-		if ( wpinv_get_id_by_transaction_id( $posted['txn_id'] ) ) {
389
-			return wpinv_error_log( 'Aborting, Transaction ' . $posted['txn_id'] . ' has already been processed', false );
388
+		if (wpinv_get_id_by_transaction_id($posted['txn_id'])) {
389
+			return wpinv_error_log('Aborting, Transaction ' . $posted['txn_id'] . ' has already been processed', false);
390 390
 		}
391 391
 
392 392
 		$args = array(
@@ -394,17 +394,17 @@  discard block
 block discarded – undo
394 394
 			'gateway'        => $this->id,
395 395
 		);
396 396
 
397
-		$invoice = wpinv_get_invoice( $subscription->add_payment( $args ) );
397
+		$invoice = wpinv_get_invoice($subscription->add_payment($args));
398 398
 
399
-		if ( empty( $invoice ) ) {
399
+		if (empty($invoice)) {
400 400
 			return;
401 401
 		}
402 402
 
403
-		$invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true );
404
-		$invoice->add_note( wp_sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true );
403
+		$invoice->add_note(wp_sprintf(__('PayPal Transaction ID: %s', 'invoicing'), $posted['txn_id']), false, false, true);
404
+		$invoice->add_note(wp_sprintf(__('PayPal Subscription ID: %s', 'invoicing'), $posted['subscr_id']), false, false, true);
405 405
 
406 406
 		$subscription->renew();
407
-		wpinv_error_log( 'Subscription renewed.', false );
407
+		wpinv_error_log('Subscription renewed.', false);
408 408
 
409 409
 	}
410 410
 
@@ -413,18 +413,18 @@  discard block
 block discarded – undo
413 413
 	 *
414 414
 	 * @param WPInv_Invoice $invoice  Invoice object.
415 415
 	 */
416
-	protected function ipn_txn_subscr_cancel( $invoice ) {
416
+	protected function ipn_txn_subscr_cancel($invoice) {
417 417
 
418 418
 		// Make sure the invoice has a subscription.
419
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
419
+		$subscription = getpaid_subscriptions()->get_invoice_subscription($invoice);
420 420
 
421
-		if ( empty( $subscription ) ) {
422
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
421
+		if (empty($subscription)) {
422
+			return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false);
423 423
 		}
424 424
 
425
-		wpinv_error_log( 'Processing subscription cancellation for the invoice ' . $invoice->get_id(), false );
425
+		wpinv_error_log('Processing subscription cancellation for the invoice ' . $invoice->get_id(), false);
426 426
 		$subscription->cancel();
427
-		wpinv_error_log( 'Subscription cancelled.', false );
427
+		wpinv_error_log('Subscription cancelled.', false);
428 428
 
429 429
 	}
430 430
 
@@ -434,18 +434,18 @@  discard block
 block discarded – undo
434 434
 	 * @param WPInv_Invoice $invoice  Invoice object.
435 435
 	 * @param array    $posted Posted data.
436 436
 	 */
437
-	protected function ipn_txn_subscr_eot( $invoice ) {
437
+	protected function ipn_txn_subscr_eot($invoice) {
438 438
 
439 439
 		// Make sure the invoice has a subscription.
440
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
440
+		$subscription = getpaid_subscriptions()->get_invoice_subscription($invoice);
441 441
 
442
-		if ( empty( $subscription ) ) {
443
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
442
+		if (empty($subscription)) {
443
+			return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false);
444 444
 		}
445 445
 
446
-		wpinv_error_log( 'Processing subscription end of life for the invoice ' . $invoice->get_id(), false );
446
+		wpinv_error_log('Processing subscription end of life for the invoice ' . $invoice->get_id(), false);
447 447
 		$subscription->complete();
448
-		wpinv_error_log( 'Subscription completed.', false );
448
+		wpinv_error_log('Subscription completed.', false);
449 449
 
450 450
 	}
451 451
 
@@ -455,18 +455,18 @@  discard block
 block discarded – undo
455 455
 	 * @param WPInv_Invoice $invoice  Invoice object.
456 456
 	 * @param array    $posted Posted data.
457 457
 	 */
458
-	protected function ipn_txn_subscr_failed( $invoice ) {
458
+	protected function ipn_txn_subscr_failed($invoice) {
459 459
 
460 460
 		// Make sure the invoice has a subscription.
461
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
461
+		$subscription = getpaid_subscriptions()->get_invoice_subscription($invoice);
462 462
 
463
-		if ( empty( $subscription ) ) {
464
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
463
+		if (empty($subscription)) {
464
+			return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false);
465 465
 		}
466 466
 
467
-		wpinv_error_log( 'Processing subscription payment failure for the invoice ' . $invoice->get_id(), false );
467
+		wpinv_error_log('Processing subscription payment failure for the invoice ' . $invoice->get_id(), false);
468 468
 		$subscription->failing();
469
-		wpinv_error_log( 'Subscription marked as failing.', false );
469
+		wpinv_error_log('Subscription marked as failing.', false);
470 470
 
471 471
 	}
472 472
 
@@ -476,18 +476,18 @@  discard block
 block discarded – undo
476 476
 	 * @param WPInv_Invoice $invoice  Invoice object.
477 477
 	 * @param array    $posted Posted data.
478 478
 	 */
479
-	protected function ipn_txn_recurring_payment_suspended_due_to_max_failed_payment( $invoice ) {
479
+	protected function ipn_txn_recurring_payment_suspended_due_to_max_failed_payment($invoice) {
480 480
 
481 481
 		// Make sure the invoice has a subscription.
482
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
482
+		$subscription = getpaid_subscriptions()->get_invoice_subscription($invoice);
483 483
 
484
-		if ( empty( $subscription ) ) {
485
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
484
+		if (empty($subscription)) {
485
+			return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false);
486 486
 		}
487 487
 
488
-		wpinv_error_log( 'Processing subscription cancellation due to max failed payment for the invoice ' . $invoice->get_id(), false );
488
+		wpinv_error_log('Processing subscription cancellation due to max failed payment for the invoice ' . $invoice->get_id(), false);
489 489
 		$subscription->cancel();
490
-		wpinv_error_log( 'Subscription cancelled.', false );
490
+		wpinv_error_log('Subscription cancelled.', false);
491 491
 	}
492 492
 
493 493
 }
Please login to merge, or discard this patch.
includes/gateways/class-getpaid-paypal-gateway.php 2 patches
Indentation   +404 added lines, -404 removed lines patch added patch discarded remove patch
@@ -13,97 +13,97 @@  discard block
 block discarded – undo
13 13
 class GetPaid_Paypal_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 = 'paypal';
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', 'single_subscription_group' );
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 = 1;
35 35
 
36 36
     /**
37
-	 * Stores line items to send to PayPal.
38
-	 *
39
-	 * @var array
40
-	 */
37
+     * Stores line items to send to PayPal.
38
+     *
39
+     * @var array
40
+     */
41 41
     protected $line_items = array();
42 42
 
43 43
     /**
44
-	 * Endpoint for requests from PayPal.
45
-	 *
46
-	 * @var string
47
-	 */
48
-	protected $notify_url;
49
-
50
-	/**
51
-	 * Endpoint for requests to PayPal.
52
-	 *
53
-	 * @var string
54
-	 */
44
+     * Endpoint for requests from PayPal.
45
+     *
46
+     * @var string
47
+     */
48
+    protected $notify_url;
49
+
50
+    /**
51
+     * Endpoint for requests to PayPal.
52
+     *
53
+     * @var string
54
+     */
55 55
     protected $endpoint;
56 56
 
57 57
     /**
58
-	 * Currencies this gateway is allowed for.
59
-	 *
60
-	 * @var array
61
-	 */
62
-	public $currencies = array( 'AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR' );
58
+     * Currencies this gateway is allowed for.
59
+     *
60
+     * @var array
61
+     */
62
+    public $currencies = array( 'AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR' );
63 63
 
64 64
     /**
65
-	 * URL to view a transaction.
66
-	 *
67
-	 * @var string
68
-	 */
65
+     * URL to view a transaction.
66
+     *
67
+     * @var string
68
+     */
69 69
     public $view_transaction_url = 'https://www.{sandbox}paypal.com/activity/payment/%s';
70 70
 
71 71
     /**
72
-	 * URL to view a subscription.
73
-	 *
74
-	 * @var string
75
-	 */
76
-	public $view_subscription_url = 'https://www.{sandbox}paypal.com/cgi-bin/webscr?cmd=_profile-recurring-payments&encrypted_profile_id=%s';
72
+     * URL to view a subscription.
73
+     *
74
+     * @var string
75
+     */
76
+    public $view_subscription_url = 'https://www.{sandbox}paypal.com/cgi-bin/webscr?cmd=_profile-recurring-payments&encrypted_profile_id=%s';
77 77
 
78 78
     /**
79
-	 * Class constructor.
80
-	 */
81
-	public function __construct() {
79
+     * Class constructor.
80
+     */
81
+    public function __construct() {
82 82
 
83 83
         $this->title                = __( 'PayPal Standard', 'invoicing' );
84 84
         $this->method_title         = __( 'PayPal Standard', 'invoicing' );
85 85
         $this->checkout_button_text = __( 'Proceed to PayPal', 'invoicing' );
86 86
         $this->notify_url           = wpinv_get_ipn_url( $this->id );
87 87
 
88
-		add_filter( 'wpinv_subscription_cancel_url', array( $this, 'filter_cancel_subscription_url' ), 10, 2 );
89
-		add_filter( 'getpaid_paypal_args', array( $this, 'process_subscription' ), 10, 2 );
88
+        add_filter( 'wpinv_subscription_cancel_url', array( $this, 'filter_cancel_subscription_url' ), 10, 2 );
89
+        add_filter( 'getpaid_paypal_args', array( $this, 'process_subscription' ), 10, 2 );
90 90
         add_filter( 'getpaid_paypal_sandbox_notice', array( $this, 'sandbox_notice' ) );
91
-		add_filter( 'getpaid_get_paypal_connect_url', array( $this, 'maybe_get_connect_url' ), 10, 2 );
92
-		add_action( 'getpaid_authenticated_admin_action_connect_paypal', array( $this, 'connect_paypal' ) );
93
-		add_action( 'wpinv_paypal_connect', array( $this, 'display_connect_buttons' ) );
94
-		parent::__construct();
91
+        add_filter( 'getpaid_get_paypal_connect_url', array( $this, 'maybe_get_connect_url' ), 10, 2 );
92
+        add_action( 'getpaid_authenticated_admin_action_connect_paypal', array( $this, 'connect_paypal' ) );
93
+        add_action( 'wpinv_paypal_connect', array( $this, 'display_connect_buttons' ) );
94
+        parent::__construct();
95 95
     }
96 96
 
97 97
     /**
98
-	 * Process Payment.
99
-	 *
100
-	 *
101
-	 * @param WPInv_Invoice $invoice Invoice.
102
-	 * @param array $submission_data Posted checkout fields.
103
-	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
104
-	 * @return array
105
-	 */
106
-	public function process_payment( $invoice, $submission_data, $submission ) {
98
+     * Process Payment.
99
+     *
100
+     *
101
+     * @param WPInv_Invoice $invoice Invoice.
102
+     * @param array $submission_data Posted checkout fields.
103
+     * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
104
+     * @return array
105
+     */
106
+    public function process_payment( $invoice, $submission_data, $submission ) {
107 107
 
108 108
         // Get redirect url.
109 109
         $paypal_redirect = $this->get_request_url( $invoice );
@@ -126,15 +126,15 @@  discard block
 block discarded – undo
126 126
     }
127 127
 
128 128
     /**
129
-	 * Get the PayPal request URL for an invoice.
130
-	 *
131
-	 * @param  WPInv_Invoice $invoice Invoice object.
132
-	 * @return string
133
-	 */
134
-	public function get_request_url( $invoice ) {
129
+     * Get the PayPal request URL for an invoice.
130
+     *
131
+     * @param  WPInv_Invoice $invoice Invoice object.
132
+     * @return string
133
+     */
134
+    public function get_request_url( $invoice ) {
135 135
 
136 136
         // Endpoint for this request
137
-		$this->endpoint    = $this->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?';
137
+        $this->endpoint    = $this->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?';
138 138
 
139 139
         // Retrieve paypal args.
140 140
         $paypal_args       = map_deep( $this->get_paypal_args( $invoice ), 'urlencode' );
@@ -147,45 +147,45 @@  discard block
 block discarded – undo
147 147
 
148 148
         return add_query_arg( $paypal_args, $this->endpoint );
149 149
 
150
-	}
150
+    }
151 151
 
152 152
     /**
153
-	 * Get PayPal Args for passing to PP.
154
-	 *
155
-	 * @param  WPInv_Invoice $invoice Invoice object.
156
-	 * @return array
157
-	 */
158
-	protected function get_paypal_args( $invoice ) {
153
+     * Get PayPal Args for passing to PP.
154
+     *
155
+     * @param  WPInv_Invoice $invoice Invoice object.
156
+     * @return array
157
+     */
158
+    protected function get_paypal_args( $invoice ) {
159 159
 
160 160
         // Whether or not to send the line items as one item.
161
-		$force_one_line_item = apply_filters( 'getpaid_paypal_force_one_line_item', true, $invoice );
162
-
163
-		if ( $invoice->is_recurring() || ( wpinv_use_taxes() && wpinv_prices_include_tax() ) ) {
164
-			$force_one_line_item = true;
165
-		}
166
-
167
-		$paypal_args = apply_filters(
168
-			'getpaid_paypal_args',
169
-			array_merge(
170
-				$this->get_transaction_args( $invoice ),
171
-				$this->get_line_item_args( $invoice, $force_one_line_item )
172
-			),
173
-			$invoice
174
-		);
175
-
176
-		return $this->fix_request_length( $invoice, $paypal_args );
161
+        $force_one_line_item = apply_filters( 'getpaid_paypal_force_one_line_item', true, $invoice );
162
+
163
+        if ( $invoice->is_recurring() || ( wpinv_use_taxes() && wpinv_prices_include_tax() ) ) {
164
+            $force_one_line_item = true;
165
+        }
166
+
167
+        $paypal_args = apply_filters(
168
+            'getpaid_paypal_args',
169
+            array_merge(
170
+                $this->get_transaction_args( $invoice ),
171
+                $this->get_line_item_args( $invoice, $force_one_line_item )
172
+            ),
173
+            $invoice
174
+        );
175
+
176
+        return $this->fix_request_length( $invoice, $paypal_args );
177 177
     }
178 178
 
179 179
     /**
180
-	 * Get transaction args for paypal request.
181
-	 *
182
-	 * @param WPInv_Invoice $invoice Invoice object.
183
-	 * @return array
184
-	 */
185
-	protected function get_transaction_args( $invoice ) {
186
-
187
-		$email = $this->is_sandbox( $invoice ) ? wpinv_get_option( 'paypal_sandbox_email', wpinv_get_option( 'paypal_email', '' ) ) : wpinv_get_option( 'paypal_email', '' );
188
-		return array(
180
+     * Get transaction args for paypal request.
181
+     *
182
+     * @param WPInv_Invoice $invoice Invoice object.
183
+     * @return array
184
+     */
185
+    protected function get_transaction_args( $invoice ) {
186
+
187
+        $email = $this->is_sandbox( $invoice ) ? wpinv_get_option( 'paypal_sandbox_email', wpinv_get_option( 'paypal_email', '' ) ) : wpinv_get_option( 'paypal_email', '' );
188
+        return array(
189 189
             'cmd'           => '_cart',
190 190
             'business'      => $email,
191 191
             'no_shipping'   => '1',
@@ -210,16 +210,16 @@  discard block
 block discarded – undo
210 210
     }
211 211
 
212 212
     /**
213
-	 * Get line item args for paypal request.
214
-	 *
215
-	 * @param  WPInv_Invoice $invoice Invoice object.
216
-	 * @param  bool     $force_one_line_item Create only one item for this invoice.
217
-	 * @return array
218
-	 */
219
-	protected function get_line_item_args( $invoice, $force_one_line_item = false ) {
213
+     * Get line item args for paypal request.
214
+     *
215
+     * @param  WPInv_Invoice $invoice Invoice object.
216
+     * @param  bool     $force_one_line_item Create only one item for this invoice.
217
+     * @return array
218
+     */
219
+    protected function get_line_item_args( $invoice, $force_one_line_item = false ) {
220 220
 
221 221
         // Maybe send invoice as a single item.
222
-		if ( $force_one_line_item ) {
222
+        if ( $force_one_line_item ) {
223 223
             return $this->get_line_item_args_single_item( $invoice );
224 224
         }
225 225
 
@@ -239,134 +239,134 @@  discard block
 block discarded – undo
239 239
             $line_item_args['discount_amount_cart'] = wpinv_sanitize_amount( (float) $invoice->get_total_discount(), 2 );
240 240
         }
241 241
 
242
-		return array_merge( $line_item_args, $this->get_line_items() );
242
+        return array_merge( $line_item_args, $this->get_line_items() );
243 243
 
244 244
     }
245 245
 
246 246
     /**
247
-	 * Get line item args for paypal request as a single line item.
248
-	 *
249
-	 * @param  WPInv_Invoice $invoice Invoice object.
250
-	 * @return array
251
-	 */
252
-	protected function get_line_item_args_single_item( $invoice ) {
253
-		$this->delete_line_items();
247
+     * Get line item args for paypal request as a single line item.
248
+     *
249
+     * @param  WPInv_Invoice $invoice Invoice object.
250
+     * @return array
251
+     */
252
+    protected function get_line_item_args_single_item( $invoice ) {
253
+        $this->delete_line_items();
254 254
 
255 255
         $item_name = wp_sprintf( __( 'Invoice %s', 'invoicing' ), $invoice->get_number() );
256
-		$this->add_line_item( $item_name, 1, wpinv_round_amount( (float) $invoice->get_total(), 2, true ), $invoice->get_id() );
256
+        $this->add_line_item( $item_name, 1, wpinv_round_amount( (float) $invoice->get_total(), 2, true ), $invoice->get_id() );
257 257
 
258
-		return $this->get_line_items();
258
+        return $this->get_line_items();
259 259
     }
260 260
 
261 261
     /**
262
-	 * Return all line items.
263
-	 */
264
-	protected function get_line_items() {
265
-		return $this->line_items;
266
-	}
262
+     * Return all line items.
263
+     */
264
+    protected function get_line_items() {
265
+        return $this->line_items;
266
+    }
267 267
 
268 268
     /**
269
-	 * Remove all line items.
270
-	 */
271
-	protected function delete_line_items() {
272
-		$this->line_items = array();
269
+     * Remove all line items.
270
+     */
271
+    protected function delete_line_items() {
272
+        $this->line_items = array();
273 273
     }
274 274
 
275 275
     /**
276
-	 * Prepare line items to send to paypal.
277
-	 *
278
-	 * @param  WPInv_Invoice $invoice Invoice object.
279
-	 */
280
-	protected function prepare_line_items( $invoice ) {
281
-		$this->delete_line_items();
282
-
283
-		// Items.
284
-		foreach ( $invoice->get_items() as $item ) {
285
-			$amount   = $item->get_price();
286
-			$quantity = $invoice->get_template() == 'amount' ? 1 : $item->get_quantity();
287
-			$this->add_line_item( $item->get_raw_name(), $quantity, $amount, $item->get_id() );
276
+     * Prepare line items to send to paypal.
277
+     *
278
+     * @param  WPInv_Invoice $invoice Invoice object.
279
+     */
280
+    protected function prepare_line_items( $invoice ) {
281
+        $this->delete_line_items();
282
+
283
+        // Items.
284
+        foreach ( $invoice->get_items() as $item ) {
285
+            $amount   = $item->get_price();
286
+            $quantity = $invoice->get_template() == 'amount' ? 1 : $item->get_quantity();
287
+            $this->add_line_item( $item->get_raw_name(), $quantity, $amount, $item->get_id() );
288 288
         }
289 289
 
290 290
         // Fees.
291
-		foreach ( $invoice->get_fees() as $fee => $data ) {
291
+        foreach ( $invoice->get_fees() as $fee => $data ) {
292 292
             $this->add_line_item( $fee, 1, wpinv_sanitize_amount( $data['initial_fee'] ) );
293 293
         }
294 294
 
295 295
     }
296 296
 
297 297
     /**
298
-	 * Add PayPal Line Item.
299
-	 *
300
-	 * @param  string $item_name Item name.
301
-	 * @param  float    $quantity Item quantity.
302
-	 * @param  float  $amount Amount.
303
-	 * @param  string $item_number Item number.
304
-	 */
305
-	protected function add_line_item( $item_name, $quantity = 1, $amount = 0.0, $item_number = '' ) {
306
-		$index = ( count( $this->line_items ) / 4 ) + 1;
307
-
308
-		/**
309
-		 * Prevent error "Things don't appear to be working at the moment. (https://www.sandbox.paypal.com/webapps/hermes/error)"
310
-		 */
311
-		$item_name = str_replace( "#", "", $item_name );
312
-
313
-		$item = apply_filters(
314
-			'getpaid_paypal_line_item',
315
-			array(
316
-				'item_name'   => html_entity_decode( getpaid_limit_length( $item_name ? wp_strip_all_tags( $item_name ) : __( 'Item', 'invoicing' ), 127 ), ENT_NOQUOTES, 'UTF-8' ),
317
-				'quantity'    => (float) $quantity,
318
-				'amount'      => wpinv_sanitize_amount( (float) $amount, 2 ),
319
-				'item_number' => $item_number,
320
-			),
321
-			$item_name,
322
-			$quantity,
323
-			$amount,
324
-			$item_number
325
-		);
326
-
327
-		$this->line_items[ 'item_name_' . $index ]   = getpaid_limit_length( $item['item_name'], 127 );
298
+     * Add PayPal Line Item.
299
+     *
300
+     * @param  string $item_name Item name.
301
+     * @param  float    $quantity Item quantity.
302
+     * @param  float  $amount Amount.
303
+     * @param  string $item_number Item number.
304
+     */
305
+    protected function add_line_item( $item_name, $quantity = 1, $amount = 0.0, $item_number = '' ) {
306
+        $index = ( count( $this->line_items ) / 4 ) + 1;
307
+
308
+        /**
309
+         * Prevent error "Things don't appear to be working at the moment. (https://www.sandbox.paypal.com/webapps/hermes/error)"
310
+         */
311
+        $item_name = str_replace( "#", "", $item_name );
312
+
313
+        $item = apply_filters(
314
+            'getpaid_paypal_line_item',
315
+            array(
316
+                'item_name'   => html_entity_decode( getpaid_limit_length( $item_name ? wp_strip_all_tags( $item_name ) : __( 'Item', 'invoicing' ), 127 ), ENT_NOQUOTES, 'UTF-8' ),
317
+                'quantity'    => (float) $quantity,
318
+                'amount'      => wpinv_sanitize_amount( (float) $amount, 2 ),
319
+                'item_number' => $item_number,
320
+            ),
321
+            $item_name,
322
+            $quantity,
323
+            $amount,
324
+            $item_number
325
+        );
326
+
327
+        $this->line_items[ 'item_name_' . $index ]   = getpaid_limit_length( $item['item_name'], 127 );
328 328
         $this->line_items[ 'quantity_' . $index ]    = $item['quantity'];
329 329
 
330 330
         // The price or amount of the product, service, or contribution, not including shipping, handling, or tax.
331
-		$this->line_items[ 'amount_' . $index ]      = $item['amount'] * $item['quantity'];
332
-		$this->line_items[ 'item_number_' . $index ] = getpaid_limit_length( $item['item_number'], 127 );
331
+        $this->line_items[ 'amount_' . $index ]      = $item['amount'] * $item['quantity'];
332
+        $this->line_items[ 'item_number_' . $index ] = getpaid_limit_length( $item['item_number'], 127 );
333 333
     }
334 334
 
335 335
     /**
336
-	 * If the default request with line items is too long, generate a new one with only one line item.
337
-	 *
338
-	 * https://support.microsoft.com/en-us/help/208427/maximum-url-length-is-2-083-characters-in-internet-explorer.
339
-	 *
340
-	 * @param WPInv_Invoice $invoice Invoice to be sent to Paypal.
341
-	 * @param array    $paypal_args Arguments sent to Paypal in the request.
342
-	 * @return array
343
-	 */
344
-	protected function fix_request_length( $invoice, $paypal_args ) {
345
-		$max_paypal_length = 2083;
346
-		$query_candidate   = http_build_query( $paypal_args, '', '&' );
347
-
348
-		if ( strlen( $this->endpoint . $query_candidate ) <= $max_paypal_length ) {
349
-			return $paypal_args;
350
-		}
351
-
352
-		return apply_filters(
353
-			'getpaid_paypal_args',
354
-			array_merge(
355
-				$this->get_transaction_args( $invoice ),
356
-				$this->get_line_item_args( $invoice, true )
357
-			),
358
-			$invoice
359
-		);
336
+     * If the default request with line items is too long, generate a new one with only one line item.
337
+     *
338
+     * https://support.microsoft.com/en-us/help/208427/maximum-url-length-is-2-083-characters-in-internet-explorer.
339
+     *
340
+     * @param WPInv_Invoice $invoice Invoice to be sent to Paypal.
341
+     * @param array    $paypal_args Arguments sent to Paypal in the request.
342
+     * @return array
343
+     */
344
+    protected function fix_request_length( $invoice, $paypal_args ) {
345
+        $max_paypal_length = 2083;
346
+        $query_candidate   = http_build_query( $paypal_args, '', '&' );
347
+
348
+        if ( strlen( $this->endpoint . $query_candidate ) <= $max_paypal_length ) {
349
+            return $paypal_args;
350
+        }
351
+
352
+        return apply_filters(
353
+            'getpaid_paypal_args',
354
+            array_merge(
355
+                $this->get_transaction_args( $invoice ),
356
+                $this->get_line_item_args( $invoice, true )
357
+            ),
358
+            $invoice
359
+        );
360 360
 
361 361
     }
362 362
 
363 363
     /**
364
-	 * Processes recurring invoices.
365
-	 *
366
-	 * @param  array $paypal_args PayPal args.
367
-	 * @param  WPInv_Invoice    $invoice Invoice object.
368
-	 */
369
-	public function process_subscription( $paypal_args, $invoice ) {
364
+     * Processes recurring invoices.
365
+     *
366
+     * @param  array $paypal_args PayPal args.
367
+     * @param  WPInv_Invoice    $invoice Invoice object.
368
+     */
369
+    public function process_subscription( $paypal_args, $invoice ) {
370 370
 
371 371
         // Make sure this is a subscription.
372 372
         if ( ! $invoice->is_recurring() || ! $subscription = getpaid_get_invoice_subscription( $invoice ) ) {
@@ -387,21 +387,21 @@  discard block
 block discarded – undo
387 387
         $recurring_amount       = (float) wpinv_sanitize_amount( $invoice->get_recurring_total(), 2 );
388 388
         $subscription_item      = $invoice->get_recurring( true );
389 389
 
390
-		// Convert 365 days to 1 year.
391
-		if ( 'D' == $period && 365 == $interval ) {
392
-			$period = 'Y';
393
-			$interval = 1;
394
-		}
390
+        // Convert 365 days to 1 year.
391
+        if ( 'D' == $period && 365 == $interval ) {
392
+            $period = 'Y';
393
+            $interval = 1;
394
+        }
395 395
 
396 396
         if ( $subscription_item->has_free_trial() ) {
397 397
 
398 398
             $paypal_args['a1'] = 0 == $initial_amount ? 0 : $initial_amount;
399 399
 
400
-			// Trial period length.
401
-			$paypal_args['p1'] = $subscription_item->get_trial_interval();
400
+            // Trial period length.
401
+            $paypal_args['p1'] = $subscription_item->get_trial_interval();
402 402
 
403
-			// Trial period.
404
-			$paypal_args['t1'] = $subscription_item->get_trial_period();
403
+            // Trial period.
404
+            $paypal_args['t1'] = $subscription_item->get_trial_period();
405 405
 
406 406
         } elseif ( $initial_amount != $recurring_amount ) {
407 407
 
@@ -424,40 +424,40 @@  discard block
 block discarded – undo
424 424
         }
425 425
 
426 426
         // We have a recurring payment
427
-		if ( ! isset( $param_number ) || 1 == $param_number ) {
427
+        if ( ! isset( $param_number ) || 1 == $param_number ) {
428 428
 
429
-			// Subscription price
430
-			$paypal_args['a3'] = $recurring_amount;
429
+            // Subscription price
430
+            $paypal_args['a3'] = $recurring_amount;
431 431
 
432
-			// Subscription duration
433
-			$paypal_args['p3'] = $interval;
432
+            // Subscription duration
433
+            $paypal_args['p3'] = $interval;
434 434
 
435
-			// Subscription period
436
-			$paypal_args['t3'] = $period;
435
+            // Subscription period
436
+            $paypal_args['t3'] = $period;
437 437
 
438 438
         }
439 439
 
440 440
         // Recurring payments
441
-		if ( 1 == $bill_times || ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() && 2 == $bill_times ) ) {
441
+        if ( 1 == $bill_times || ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() && 2 == $bill_times ) ) {
442 442
 
443
-			// Non-recurring payments
444
-			$paypal_args['src'] = 0;
443
+            // Non-recurring payments
444
+            $paypal_args['src'] = 0;
445 445
 
446
-		} else {
446
+        } else {
447 447
 
448
-			$paypal_args['src'] = 1;
448
+            $paypal_args['src'] = 1;
449 449
 
450
-			if ( $bill_times > 0 ) {
450
+            if ( $bill_times > 0 ) {
451 451
 
452
-				// An initial period is being used to charge a sign-up fee
453
-				if ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() ) {
454
-					$bill_times--;
455
-				}
452
+                // An initial period is being used to charge a sign-up fee
453
+                if ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() ) {
454
+                    $bill_times--;
455
+                }
456 456
 
457 457
                 // Make sure it's not over the max of 52
458 458
                 $paypal_args['srt'] = ( $bill_times <= 52 ? absint( $bill_times ) : 52 );
459 459
 
460
-			}
460
+            }
461 461
         }
462 462
 
463 463
         // Force return URL so that order description & instructions display
@@ -472,19 +472,19 @@  discard block
 block discarded – undo
472 472
 }
473 473
 
474 474
         return apply_filters(
475
-			'getpaid_paypal_subscription_args',
476
-			$paypal_args,
477
-			$invoice
475
+            'getpaid_paypal_subscription_args',
476
+            $paypal_args,
477
+            $invoice
478 478
         );
479 479
 
480 480
     }
481 481
 
482 482
     /**
483
-	 * Processes ipns and marks payments as complete.
484
-	 *
485
-	 * @return void
486
-	 */
487
-	public function verify_ipn() {
483
+     * Processes ipns and marks payments as complete.
484
+     *
485
+     * @return void
486
+     */
487
+    public function verify_ipn() {
488 488
         new GetPaid_Paypal_Gateway_IPN_Handler( $this );
489 489
     }
490 490
 
@@ -494,19 +494,19 @@  discard block
 block discarded – undo
494 494
     public function sandbox_notice() {
495 495
 
496 496
         return sprintf(
497
-			__( 'SANDBOX ENABLED. You can use sandbox testing accounts only. See the %1$sPayPal Sandbox Testing Guide%2$s for more details.', 'invoicing' ),
498
-			'<a href="https://developer.paypal.com/docs/classic/lifecycle/ug_sandbox/">',
499
-			'</a>'
500
-		);
497
+            __( 'SANDBOX ENABLED. You can use sandbox testing accounts only. See the %1$sPayPal Sandbox Testing Guide%2$s for more details.', 'invoicing' ),
498
+            '<a href="https://developer.paypal.com/docs/classic/lifecycle/ug_sandbox/">',
499
+            '</a>'
500
+        );
501 501
 
502 502
     }
503 503
 
504
-	/**
505
-	 * Filters the gateway settings.
506
-	 *
507
-	 * @param array $admin_settings
508
-	 */
509
-	public function admin_settings( $admin_settings ) {
504
+    /**
505
+     * Filters the gateway settings.
506
+     *
507
+     * @param array $admin_settings
508
+     */
509
+    public function admin_settings( $admin_settings ) {
510 510
 
511 511
         $currencies = sprintf(
512 512
             __( 'Supported Currencies: %s', 'invoicing' ),
@@ -516,66 +516,66 @@  discard block
 block discarded – undo
516 516
         $admin_settings['paypal_active']['desc'] .= " ($currencies)";
517 517
         $admin_settings['paypal_desc']['std']     = __( 'Pay via PayPal: you can pay with your credit card if you don\'t have a PayPal account.', 'invoicing' );
518 518
 
519
-		// Access tokens.
520
-		$live_email      = wpinv_get_option( 'paypal_email' );
521
-		$sandbox_email   = wpinv_get_option( 'paypal_sandbox_email' );
519
+        // Access tokens.
520
+        $live_email      = wpinv_get_option( 'paypal_email' );
521
+        $sandbox_email   = wpinv_get_option( 'paypal_sandbox_email' );
522 522
 
523
-		$admin_settings['paypal_connect'] = array(
524
-			'type' => 'hook',
525
-			'id'   => 'paypal_connect',
526
-			'name' => __( 'Connect to PayPal', 'invoicing' ),
527
-		);
523
+        $admin_settings['paypal_connect'] = array(
524
+            'type' => 'hook',
525
+            'id'   => 'paypal_connect',
526
+            'name' => __( 'Connect to PayPal', 'invoicing' ),
527
+        );
528 528
 
529 529
         $admin_settings['paypal_email'] = array(
530 530
             'type'  => 'text',
531
-			'class' => 'live-auth-data',
531
+            'class' => 'live-auth-data',
532 532
             'id'    => 'paypal_email',
533 533
             'name'  => __( 'Live Email Address', 'invoicing' ),
534 534
             'desc'  => __( 'The email address of your PayPal account.', 'invoicing' ),
535 535
         );
536 536
 
537
-		$admin_settings['paypal_sandbox_email'] = array(
537
+        $admin_settings['paypal_sandbox_email'] = array(
538 538
             'type'  => 'text',
539
-			'class' => 'sandbox-auth-data',
539
+            'class' => 'sandbox-auth-data',
540 540
             'id'    => 'paypal_sandbox_email',
541 541
             'name'  => __( 'Sandbox Email Address', 'invoicing' ),
542 542
             'desc'  => __( 'The email address of your sandbox PayPal account.', 'invoicing' ),
543
-			'std'   => wpinv_get_option( 'paypal_email', '' ),
543
+            'std'   => wpinv_get_option( 'paypal_email', '' ),
544
+        );
545
+
546
+        // Client ID and secret.
547
+        $admin_settings['paypal_client_id'] = array(
548
+            'type'  => 'text',
549
+            'class' => 'live-auth-data',
550
+            'id'    => 'paypal_client_id',
551
+            'name'  => __( 'Live Client ID', 'invoicing' ),
552
+            'desc'  => __( 'The client ID of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
553
+        );
554
+
555
+        $admin_settings['paypal_sandbox_client_id'] = array(
556
+            'type'  => 'text',
557
+            'class' => 'sandbox-auth-data',
558
+            'id'    => 'paypal_sandbox_client_id',
559
+            'name'  => __( 'Sandbox Client ID', 'invoicing' ),
560
+            'desc'  => __( 'The client ID of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
561
+            'std'   => wpinv_get_option( 'paypal_client_id', '' ),
544 562
         );
545 563
 
546
-		// Client ID and secret.
547
-		$admin_settings['paypal_client_id'] = array(
548
-			'type'  => 'text',
549
-			'class' => 'live-auth-data',
550
-			'id'    => 'paypal_client_id',
551
-			'name'  => __( 'Live Client ID', 'invoicing' ),
552
-			'desc'  => __( 'The client ID of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
553
-		);
554
-
555
-		$admin_settings['paypal_sandbox_client_id'] = array(
556
-			'type'  => 'text',
557
-			'class' => 'sandbox-auth-data',
558
-			'id'    => 'paypal_sandbox_client_id',
559
-			'name'  => __( 'Sandbox Client ID', 'invoicing' ),
560
-			'desc'  => __( 'The client ID of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
561
-			'std'   => wpinv_get_option( 'paypal_client_id', '' ),
562
-		);
563
-
564
-		$admin_settings['paypal_secret'] = array(
565
-			'type'  => 'text',
566
-			'class' => 'live-auth-data',
567
-			'id'    => 'paypal_secret',
568
-			'name'  => __( 'Live Secret', 'invoicing' ),
569
-			'desc'  => __( 'The secret of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
570
-		);
571
-
572
-		$admin_settings['paypal_sandbox_secret'] = array(
573
-			'type'  => 'text',
574
-			'class' => 'sandbox-auth-data',
575
-			'id'    => 'paypal_sandbox_secret',
576
-			'name'  => __( 'Sandbox Secret', 'invoicing' ),
577
-			'desc'  => __( 'The secret of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
578
-		);
564
+        $admin_settings['paypal_secret'] = array(
565
+            'type'  => 'text',
566
+            'class' => 'live-auth-data',
567
+            'id'    => 'paypal_secret',
568
+            'name'  => __( 'Live Secret', 'invoicing' ),
569
+            'desc'  => __( 'The secret of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
570
+        );
571
+
572
+        $admin_settings['paypal_sandbox_secret'] = array(
573
+            'type'  => 'text',
574
+            'class' => 'sandbox-auth-data',
575
+            'id'    => 'paypal_sandbox_secret',
576
+            'name'  => __( 'Sandbox Secret', 'invoicing' ),
577
+            'desc'  => __( 'The secret of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
578
+        );
579 579
 
580 580
         $admin_settings['paypal_ipn_url'] = array(
581 581
             'type'     => 'ipn_url',
@@ -586,57 +586,57 @@  discard block
 block discarded – undo
586 586
             'readonly' => true,
587 587
         );
588 588
 
589
-		return $admin_settings;
590
-	}
591
-
592
-	/**
593
-	 * Retrieves the URL to cancel a subscription.
594
-	 *
595
-	 * @param string $url
596
-	 * @param WPInv_Subscription $subscription
597
-	 */
598
-	public function filter_cancel_subscription_url( $url, $subscription ) {
599
-
600
-		if ( $this->id !== $subscription->get_gateway() ) {
601
-			return $url;
602
-		}
603
-
604
-		// Get the PayPal profile ID.
605
-		$profile_id = $subscription->get_profile_id();
606
-
607
-		// Bail if no profile ID.
608
-		if ( empty( $profile_id ) ) {
609
-			return $url;
610
-		}
611
-
612
-		$cancel_url = 'https://www.paypal.com/myaccount/autopay/connect/%s/cancel';
613
-		if ( $this->is_sandbox( $subscription->get_parent_payment() ) ) {
614
-			$cancel_url = 'https://www.sandbox.paypal.com/myaccount/autopay/connect/%s/cancel';
615
-		}
616
-
617
-		return sprintf( $cancel_url, $profile_id );
618
-	}
619
-
620
-	/**
621
-	 * Retrieves the PayPal connect URL when using the setup wizzard.
622
-	 *
623
-	 *
589
+        return $admin_settings;
590
+    }
591
+
592
+    /**
593
+     * Retrieves the URL to cancel a subscription.
594
+     *
595
+     * @param string $url
596
+     * @param WPInv_Subscription $subscription
597
+     */
598
+    public function filter_cancel_subscription_url( $url, $subscription ) {
599
+
600
+        if ( $this->id !== $subscription->get_gateway() ) {
601
+            return $url;
602
+        }
603
+
604
+        // Get the PayPal profile ID.
605
+        $profile_id = $subscription->get_profile_id();
606
+
607
+        // Bail if no profile ID.
608
+        if ( empty( $profile_id ) ) {
609
+            return $url;
610
+        }
611
+
612
+        $cancel_url = 'https://www.paypal.com/myaccount/autopay/connect/%s/cancel';
613
+        if ( $this->is_sandbox( $subscription->get_parent_payment() ) ) {
614
+            $cancel_url = 'https://www.sandbox.paypal.com/myaccount/autopay/connect/%s/cancel';
615
+        }
616
+
617
+        return sprintf( $cancel_url, $profile_id );
618
+    }
619
+
620
+    /**
621
+     * Retrieves the PayPal connect URL when using the setup wizzard.
622
+     *
623
+     *
624 624
      * @param array $data
625 625
      * @return string
626
-	 */
627
-	public static function maybe_get_connect_url( $url = '', $data = array() ) {
628
-		return self::get_connect_url( false, urldecode( $data['redirect'] ) );
629
-	}
630
-
631
-	/**
632
-	 * Retrieves the PayPal connect URL.
633
-	 *
634
-	 *
626
+     */
627
+    public static function maybe_get_connect_url( $url = '', $data = array() ) {
628
+        return self::get_connect_url( false, urldecode( $data['redirect'] ) );
629
+    }
630
+
631
+    /**
632
+     * Retrieves the PayPal connect URL.
633
+     *
634
+     *
635 635
      * @param bool $is_sandbox
636
-	 * @param string $redirect
636
+     * @param string $redirect
637 637
      * @return string
638
-	 */
639
-	public static function get_connect_url( $is_sandbox, $redirect = '' ) {
638
+     */
639
+    public static function get_connect_url( $is_sandbox, $redirect = '' ) {
640 640
 
641 641
         $redirect_url = add_query_arg(
642 642
             array(
@@ -646,7 +646,7 @@  discard block
 block discarded – undo
646 646
                 'tab'                  => 'gateways',
647 647
                 'section'              => 'paypal',
648 648
                 'getpaid-nonce'        => wp_create_nonce( 'getpaid-nonce' ),
649
-				'redirect'             => urlencode( $redirect ),
649
+                'redirect'             => urlencode( $redirect ),
650 650
             ),
651 651
             admin_url( 'admin.php' )
652 652
         );
@@ -661,12 +661,12 @@  discard block
 block discarded – undo
661 661
 
662 662
     }
663 663
 
664
-	/**
665
-	 * Generates settings page js.
666
-	 *
664
+    /**
665
+     * Generates settings page js.
666
+     *
667 667
      * @return void
668
-	 */
669
-	public static function display_connect_buttons() {
668
+     */
669
+    public static function display_connect_buttons() {
670 670
 
671 671
         ?>
672 672
 			<div class="wpinv-paypal-connect-live">
@@ -708,70 +708,70 @@  discard block
 block discarded – undo
708 708
         <?php
709 709
     }
710 710
 
711
-	/**
712
-	 * Connects to PayPal.
713
-	 *
714
-	 * @param array $data Connection data.
715
-	 * @return void
716
-	 */
717
-	public function connect_paypal( $data ) {
718
-
719
-		$sandbox      = $this->is_sandbox();
720
-		$data         = wp_unslash( $data );
721
-		$access_token = empty( $data['access_token'] ) ? '' : sanitize_text_field( $data['access_token'] );
722
-
723
-		if ( isset( $data['live_mode'] ) ) {
724
-			$sandbox = empty( $data['live_mode'] );
725
-		}
726
-
727
-		wpinv_update_option( 'paypal_sandbox', (int) $sandbox );
728
-		wpinv_update_option( 'paypal_active', 1 );
729
-
730
-		if ( ! empty( $data['error_description'] ) ) {
731
-			getpaid_admin()->show_error( wp_kses_post( urldecode( $data['error_description'] ) ) );
732
-		} else {
733
-
734
-			// Retrieve the user info.
735
-			$user_info = wp_remote_get(
736
-				! $sandbox ? 'https://api-m.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1' : 'https://api-m.sandbox.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1',
737
-				array(
738
-
739
-					'headers' => array(
740
-						'Authorization' => 'Bearer ' . $access_token,
741
-						'Content-type'  => 'application/json',
742
-					),
743
-
744
-				)
745
-			);
746
-
747
-			if ( is_wp_error( $user_info ) ) {
748
-				getpaid_admin()->show_error( wp_kses_post( $user_info->get_error_message() ) );
749
-			} else {
750
-
751
-				// Create application.
752
-				$user_info = json_decode( wp_remote_retrieve_body( $user_info ) );
753
-
754
-				if ( $sandbox ) {
755
-					wpinv_update_option( 'paypal_sandbox_email', sanitize_email( $user_info->emails[0]->value ) );
756
-					wpinv_update_option( 'paypal_sandbox_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
757
-					set_transient( 'getpaid_paypal_sandbox_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
758
-					getpaid_admin()->show_success( __( 'Successfully connected your PayPal sandbox account', 'invoicing' ) );
759
-				} else {
760
-					wpinv_update_option( 'paypal_email', sanitize_email( $user_info->emails[0]->value ) );
761
-					wpinv_update_option( 'paypal_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
762
-					set_transient( 'getpaid_paypal_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
763
-					getpaid_admin()->show_success( __( 'Successfully connected your PayPal account', 'invoicing' ) );
764
-				}
711
+    /**
712
+     * Connects to PayPal.
713
+     *
714
+     * @param array $data Connection data.
715
+     * @return void
716
+     */
717
+    public function connect_paypal( $data ) {
718
+
719
+        $sandbox      = $this->is_sandbox();
720
+        $data         = wp_unslash( $data );
721
+        $access_token = empty( $data['access_token'] ) ? '' : sanitize_text_field( $data['access_token'] );
722
+
723
+        if ( isset( $data['live_mode'] ) ) {
724
+            $sandbox = empty( $data['live_mode'] );
725
+        }
726
+
727
+        wpinv_update_option( 'paypal_sandbox', (int) $sandbox );
728
+        wpinv_update_option( 'paypal_active', 1 );
729
+
730
+        if ( ! empty( $data['error_description'] ) ) {
731
+            getpaid_admin()->show_error( wp_kses_post( urldecode( $data['error_description'] ) ) );
732
+        } else {
733
+
734
+            // Retrieve the user info.
735
+            $user_info = wp_remote_get(
736
+                ! $sandbox ? 'https://api-m.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1' : 'https://api-m.sandbox.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1',
737
+                array(
738
+
739
+                    'headers' => array(
740
+                        'Authorization' => 'Bearer ' . $access_token,
741
+                        'Content-type'  => 'application/json',
742
+                    ),
743
+
744
+                )
745
+            );
746
+
747
+            if ( is_wp_error( $user_info ) ) {
748
+                getpaid_admin()->show_error( wp_kses_post( $user_info->get_error_message() ) );
749
+            } else {
750
+
751
+                // Create application.
752
+                $user_info = json_decode( wp_remote_retrieve_body( $user_info ) );
753
+
754
+                if ( $sandbox ) {
755
+                    wpinv_update_option( 'paypal_sandbox_email', sanitize_email( $user_info->emails[0]->value ) );
756
+                    wpinv_update_option( 'paypal_sandbox_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
757
+                    set_transient( 'getpaid_paypal_sandbox_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
758
+                    getpaid_admin()->show_success( __( 'Successfully connected your PayPal sandbox account', 'invoicing' ) );
759
+                } else {
760
+                    wpinv_update_option( 'paypal_email', sanitize_email( $user_info->emails[0]->value ) );
761
+                    wpinv_update_option( 'paypal_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
762
+                    set_transient( 'getpaid_paypal_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
763
+                    getpaid_admin()->show_success( __( 'Successfully connected your PayPal account', 'invoicing' ) );
764
+                }
765 765
 }
766 766
 }
767 767
 
768
-		$redirect = empty( $data['redirect'] ) ? admin_url( 'admin.php?page=wpinv-settings&tab=gateways&section=paypal' ) : urldecode( $data['redirect'] );
768
+        $redirect = empty( $data['redirect'] ) ? admin_url( 'admin.php?page=wpinv-settings&tab=gateways&section=paypal' ) : urldecode( $data['redirect'] );
769 769
 
770
-		if ( isset( $data['step'] ) ) {
771
-			$redirect = add_query_arg( 'step', $data['step'], $redirect );
772
-		}
773
-		wp_redirect( $redirect );
774
-		exit;
775
-	}
770
+        if ( isset( $data['step'] ) ) {
771
+            $redirect = add_query_arg( 'step', $data['step'], $redirect );
772
+        }
773
+        wp_redirect( $redirect );
774
+        exit;
775
+    }
776 776
 
777 777
 }
Please login to merge, or discard this patch.
Spacing   +161 added lines, -161 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
  * Paypal 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', 'single_subscription_group' );
27
+    protected $supports = array('subscription', 'sandbox', 'single_subscription_group');
28 28
 
29 29
     /**
30 30
 	 * Payment method order.
@@ -59,7 +59,7 @@  discard block
 block discarded – undo
59 59
 	 *
60 60
 	 * @var array
61 61
 	 */
62
-	public $currencies = array( 'AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR' );
62
+	public $currencies = array('AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR');
63 63
 
64 64
     /**
65 65
 	 * URL to view a transaction.
@@ -80,17 +80,17 @@  discard block
 block discarded – undo
80 80
 	 */
81 81
 	public function __construct() {
82 82
 
83
-        $this->title                = __( 'PayPal Standard', 'invoicing' );
84
-        $this->method_title         = __( 'PayPal Standard', 'invoicing' );
85
-        $this->checkout_button_text = __( 'Proceed to PayPal', 'invoicing' );
86
-        $this->notify_url           = wpinv_get_ipn_url( $this->id );
87
-
88
-		add_filter( 'wpinv_subscription_cancel_url', array( $this, 'filter_cancel_subscription_url' ), 10, 2 );
89
-		add_filter( 'getpaid_paypal_args', array( $this, 'process_subscription' ), 10, 2 );
90
-        add_filter( 'getpaid_paypal_sandbox_notice', array( $this, 'sandbox_notice' ) );
91
-		add_filter( 'getpaid_get_paypal_connect_url', array( $this, 'maybe_get_connect_url' ), 10, 2 );
92
-		add_action( 'getpaid_authenticated_admin_action_connect_paypal', array( $this, 'connect_paypal' ) );
93
-		add_action( 'wpinv_paypal_connect', array( $this, 'display_connect_buttons' ) );
83
+        $this->title                = __('PayPal Standard', 'invoicing');
84
+        $this->method_title         = __('PayPal Standard', 'invoicing');
85
+        $this->checkout_button_text = __('Proceed to PayPal', 'invoicing');
86
+        $this->notify_url           = wpinv_get_ipn_url($this->id);
87
+
88
+		add_filter('wpinv_subscription_cancel_url', array($this, 'filter_cancel_subscription_url'), 10, 2);
89
+		add_filter('getpaid_paypal_args', array($this, 'process_subscription'), 10, 2);
90
+        add_filter('getpaid_paypal_sandbox_notice', array($this, 'sandbox_notice'));
91
+		add_filter('getpaid_get_paypal_connect_url', array($this, 'maybe_get_connect_url'), 10, 2);
92
+		add_action('getpaid_authenticated_admin_action_connect_paypal', array($this, 'connect_paypal'));
93
+		add_action('wpinv_paypal_connect', array($this, 'display_connect_buttons'));
94 94
 		parent::__construct();
95 95
     }
96 96
 
@@ -103,16 +103,16 @@  discard block
 block discarded – undo
103 103
 	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
104 104
 	 * @return array
105 105
 	 */
106
-	public function process_payment( $invoice, $submission_data, $submission ) {
106
+	public function process_payment($invoice, $submission_data, $submission) {
107 107
 
108 108
         // Get redirect url.
109
-        $paypal_redirect = $this->get_request_url( $invoice );
109
+        $paypal_redirect = $this->get_request_url($invoice);
110 110
 
111 111
         // Add a note about the request url.
112 112
         $invoice->add_note(
113 113
             sprintf(
114
-                __( 'Redirecting to PayPal: %s', 'invoicing' ),
115
-                esc_url( $paypal_redirect )
114
+                __('Redirecting to PayPal: %s', 'invoicing'),
115
+                esc_url($paypal_redirect)
116 116
             ),
117 117
             false,
118 118
             false,
@@ -120,7 +120,7 @@  discard block
 block discarded – undo
120 120
         );
121 121
 
122 122
         // Redirect to PayPal
123
-        wp_redirect( $paypal_redirect );
123
+        wp_redirect($paypal_redirect);
124 124
         exit;
125 125
 
126 126
     }
@@ -131,21 +131,21 @@  discard block
 block discarded – undo
131 131
 	 * @param  WPInv_Invoice $invoice Invoice object.
132 132
 	 * @return string
133 133
 	 */
134
-	public function get_request_url( $invoice ) {
134
+	public function get_request_url($invoice) {
135 135
 
136 136
         // Endpoint for this request
137
-		$this->endpoint    = $this->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?';
137
+		$this->endpoint = $this->is_sandbox($invoice) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?';
138 138
 
139 139
         // Retrieve paypal args.
140
-        $paypal_args       = map_deep( $this->get_paypal_args( $invoice ), 'urlencode' );
140
+        $paypal_args = map_deep($this->get_paypal_args($invoice), 'urlencode');
141 141
 
142
-        if ( $invoice->is_recurring() ) {
142
+        if ($invoice->is_recurring()) {
143 143
             $paypal_args['bn'] = 'GetPaid_Subscribe_WPS_US';
144 144
         } else {
145 145
             $paypal_args['bn'] = 'GetPaid_ShoppingCart_WPS_US';
146 146
         }
147 147
 
148
-        return add_query_arg( $paypal_args, $this->endpoint );
148
+        return add_query_arg($paypal_args, $this->endpoint);
149 149
 
150 150
 	}
151 151
 
@@ -155,25 +155,25 @@  discard block
 block discarded – undo
155 155
 	 * @param  WPInv_Invoice $invoice Invoice object.
156 156
 	 * @return array
157 157
 	 */
158
-	protected function get_paypal_args( $invoice ) {
158
+	protected function get_paypal_args($invoice) {
159 159
 
160 160
         // Whether or not to send the line items as one item.
161
-		$force_one_line_item = apply_filters( 'getpaid_paypal_force_one_line_item', true, $invoice );
161
+		$force_one_line_item = apply_filters('getpaid_paypal_force_one_line_item', true, $invoice);
162 162
 
163
-		if ( $invoice->is_recurring() || ( wpinv_use_taxes() && wpinv_prices_include_tax() ) ) {
163
+		if ($invoice->is_recurring() || (wpinv_use_taxes() && wpinv_prices_include_tax())) {
164 164
 			$force_one_line_item = true;
165 165
 		}
166 166
 
167 167
 		$paypal_args = apply_filters(
168 168
 			'getpaid_paypal_args',
169 169
 			array_merge(
170
-				$this->get_transaction_args( $invoice ),
171
-				$this->get_line_item_args( $invoice, $force_one_line_item )
170
+				$this->get_transaction_args($invoice),
171
+				$this->get_line_item_args($invoice, $force_one_line_item)
172 172
 			),
173 173
 			$invoice
174 174
 		);
175 175
 
176
-		return $this->fix_request_length( $invoice, $paypal_args );
176
+		return $this->fix_request_length($invoice, $paypal_args);
177 177
     }
178 178
 
179 179
     /**
@@ -182,9 +182,9 @@  discard block
 block discarded – undo
182 182
 	 * @param WPInv_Invoice $invoice Invoice object.
183 183
 	 * @return array
184 184
 	 */
185
-	protected function get_transaction_args( $invoice ) {
185
+	protected function get_transaction_args($invoice) {
186 186
 
187
-		$email = $this->is_sandbox( $invoice ) ? wpinv_get_option( 'paypal_sandbox_email', wpinv_get_option( 'paypal_email', '' ) ) : wpinv_get_option( 'paypal_email', '' );
187
+		$email = $this->is_sandbox($invoice) ? wpinv_get_option('paypal_sandbox_email', wpinv_get_option('paypal_email', '')) : wpinv_get_option('paypal_email', '');
188 188
 		return array(
189 189
             'cmd'           => '_cart',
190 190
             'business'      => $email,
@@ -195,16 +195,16 @@  discard block
 block discarded – undo
195 195
             'rm'            => is_ssl() ? 2 : 1,
196 196
             'upload'        => 1,
197 197
             'currency_code' => $invoice->get_currency(), // https://developer.paypal.com/docs/nvp-soap-api/currency-codes/#paypal
198
-            'return'        => esc_url_raw( $this->get_return_url( $invoice ) ),
199
-            'cancel_return' => esc_url_raw( $invoice->get_checkout_payment_url() ),
200
-            'notify_url'    => getpaid_limit_length( $this->notify_url, 255 ),
201
-            'invoice'       => getpaid_limit_length( $invoice->get_number(), 127 ),
198
+            'return'        => esc_url_raw($this->get_return_url($invoice)),
199
+            'cancel_return' => esc_url_raw($invoice->get_checkout_payment_url()),
200
+            'notify_url'    => getpaid_limit_length($this->notify_url, 255),
201
+            'invoice'       => getpaid_limit_length($invoice->get_number(), 127),
202 202
             'custom'        => $invoice->get_id(),
203
-            'first_name'    => getpaid_limit_length( $invoice->get_first_name(), 32 ),
204
-            'last_name'     => getpaid_limit_length( $invoice->get_last_name(), 64 ),
205
-            'country'       => getpaid_limit_length( $invoice->get_country(), 2 ),
206
-            'email'         => getpaid_limit_length( $invoice->get_email(), 127 ),
207
-            'cbt'           => get_bloginfo( 'name' ),
203
+            'first_name'    => getpaid_limit_length($invoice->get_first_name(), 32),
204
+            'last_name'     => getpaid_limit_length($invoice->get_last_name(), 64),
205
+            'country'       => getpaid_limit_length($invoice->get_country(), 2),
206
+            'email'         => getpaid_limit_length($invoice->get_email(), 127),
207
+            'cbt'           => get_bloginfo('name'),
208 208
         );
209 209
 
210 210
     }
@@ -216,30 +216,30 @@  discard block
 block discarded – undo
216 216
 	 * @param  bool     $force_one_line_item Create only one item for this invoice.
217 217
 	 * @return array
218 218
 	 */
219
-	protected function get_line_item_args( $invoice, $force_one_line_item = false ) {
219
+	protected function get_line_item_args($invoice, $force_one_line_item = false) {
220 220
 
221 221
         // Maybe send invoice as a single item.
222
-		if ( $force_one_line_item ) {
223
-            return $this->get_line_item_args_single_item( $invoice );
222
+		if ($force_one_line_item) {
223
+            return $this->get_line_item_args_single_item($invoice);
224 224
         }
225 225
 
226 226
         // Send each line item individually.
227 227
         $line_item_args = array();
228 228
 
229 229
         // Prepare line items.
230
-        $this->prepare_line_items( $invoice );
230
+        $this->prepare_line_items($invoice);
231 231
 
232 232
         // Add taxes to the cart
233
-        if ( wpinv_use_taxes() && $invoice->is_taxable() ) {
234
-            $line_item_args['tax_cart'] = wpinv_sanitize_amount( (float) $invoice->get_total_tax(), 2 );
233
+        if (wpinv_use_taxes() && $invoice->is_taxable()) {
234
+            $line_item_args['tax_cart'] = wpinv_sanitize_amount((float) $invoice->get_total_tax(), 2);
235 235
         }
236 236
 
237 237
         // Add discount.
238
-        if ( $invoice->get_total_discount() > 0 ) {
239
-            $line_item_args['discount_amount_cart'] = wpinv_sanitize_amount( (float) $invoice->get_total_discount(), 2 );
238
+        if ($invoice->get_total_discount() > 0) {
239
+            $line_item_args['discount_amount_cart'] = wpinv_sanitize_amount((float) $invoice->get_total_discount(), 2);
240 240
         }
241 241
 
242
-		return array_merge( $line_item_args, $this->get_line_items() );
242
+		return array_merge($line_item_args, $this->get_line_items());
243 243
 
244 244
     }
245 245
 
@@ -249,11 +249,11 @@  discard block
 block discarded – undo
249 249
 	 * @param  WPInv_Invoice $invoice Invoice object.
250 250
 	 * @return array
251 251
 	 */
252
-	protected function get_line_item_args_single_item( $invoice ) {
252
+	protected function get_line_item_args_single_item($invoice) {
253 253
 		$this->delete_line_items();
254 254
 
255
-        $item_name = wp_sprintf( __( 'Invoice %s', 'invoicing' ), $invoice->get_number() );
256
-		$this->add_line_item( $item_name, 1, wpinv_round_amount( (float) $invoice->get_total(), 2, true ), $invoice->get_id() );
255
+        $item_name = wp_sprintf(__('Invoice %s', 'invoicing'), $invoice->get_number());
256
+		$this->add_line_item($item_name, 1, wpinv_round_amount((float) $invoice->get_total(), 2, true), $invoice->get_id());
257 257
 
258 258
 		return $this->get_line_items();
259 259
     }
@@ -277,19 +277,19 @@  discard block
 block discarded – undo
277 277
 	 *
278 278
 	 * @param  WPInv_Invoice $invoice Invoice object.
279 279
 	 */
280
-	protected function prepare_line_items( $invoice ) {
280
+	protected function prepare_line_items($invoice) {
281 281
 		$this->delete_line_items();
282 282
 
283 283
 		// Items.
284
-		foreach ( $invoice->get_items() as $item ) {
284
+		foreach ($invoice->get_items() as $item) {
285 285
 			$amount   = $item->get_price();
286 286
 			$quantity = $invoice->get_template() == 'amount' ? 1 : $item->get_quantity();
287
-			$this->add_line_item( $item->get_raw_name(), $quantity, $amount, $item->get_id() );
287
+			$this->add_line_item($item->get_raw_name(), $quantity, $amount, $item->get_id());
288 288
         }
289 289
 
290 290
         // Fees.
291
-		foreach ( $invoice->get_fees() as $fee => $data ) {
292
-            $this->add_line_item( $fee, 1, wpinv_sanitize_amount( $data['initial_fee'] ) );
291
+		foreach ($invoice->get_fees() as $fee => $data) {
292
+            $this->add_line_item($fee, 1, wpinv_sanitize_amount($data['initial_fee']));
293 293
         }
294 294
 
295 295
     }
@@ -302,20 +302,20 @@  discard block
 block discarded – undo
302 302
 	 * @param  float  $amount Amount.
303 303
 	 * @param  string $item_number Item number.
304 304
 	 */
305
-	protected function add_line_item( $item_name, $quantity = 1, $amount = 0.0, $item_number = '' ) {
306
-		$index = ( count( $this->line_items ) / 4 ) + 1;
305
+	protected function add_line_item($item_name, $quantity = 1, $amount = 0.0, $item_number = '') {
306
+		$index = (count($this->line_items) / 4) + 1;
307 307
 
308 308
 		/**
309 309
 		 * Prevent error "Things don't appear to be working at the moment. (https://www.sandbox.paypal.com/webapps/hermes/error)"
310 310
 		 */
311
-		$item_name = str_replace( "#", "", $item_name );
311
+		$item_name = str_replace("#", "", $item_name);
312 312
 
313 313
 		$item = apply_filters(
314 314
 			'getpaid_paypal_line_item',
315 315
 			array(
316
-				'item_name'   => html_entity_decode( getpaid_limit_length( $item_name ? wp_strip_all_tags( $item_name ) : __( 'Item', 'invoicing' ), 127 ), ENT_NOQUOTES, 'UTF-8' ),
316
+				'item_name'   => html_entity_decode(getpaid_limit_length($item_name ? wp_strip_all_tags($item_name) : __('Item', 'invoicing'), 127), ENT_NOQUOTES, 'UTF-8'),
317 317
 				'quantity'    => (float) $quantity,
318
-				'amount'      => wpinv_sanitize_amount( (float) $amount, 2 ),
318
+				'amount'      => wpinv_sanitize_amount((float) $amount, 2),
319 319
 				'item_number' => $item_number,
320 320
 			),
321 321
 			$item_name,
@@ -324,12 +324,12 @@  discard block
 block discarded – undo
324 324
 			$item_number
325 325
 		);
326 326
 
327
-		$this->line_items[ 'item_name_' . $index ]   = getpaid_limit_length( $item['item_name'], 127 );
328
-        $this->line_items[ 'quantity_' . $index ]    = $item['quantity'];
327
+		$this->line_items['item_name_' . $index] = getpaid_limit_length($item['item_name'], 127);
328
+        $this->line_items['quantity_' . $index] = $item['quantity'];
329 329
 
330 330
         // The price or amount of the product, service, or contribution, not including shipping, handling, or tax.
331
-		$this->line_items[ 'amount_' . $index ]      = $item['amount'] * $item['quantity'];
332
-		$this->line_items[ 'item_number_' . $index ] = getpaid_limit_length( $item['item_number'], 127 );
331
+		$this->line_items['amount_' . $index]      = $item['amount'] * $item['quantity'];
332
+		$this->line_items['item_number_' . $index] = getpaid_limit_length($item['item_number'], 127);
333 333
     }
334 334
 
335 335
     /**
@@ -341,19 +341,19 @@  discard block
 block discarded – undo
341 341
 	 * @param array    $paypal_args Arguments sent to Paypal in the request.
342 342
 	 * @return array
343 343
 	 */
344
-	protected function fix_request_length( $invoice, $paypal_args ) {
344
+	protected function fix_request_length($invoice, $paypal_args) {
345 345
 		$max_paypal_length = 2083;
346
-		$query_candidate   = http_build_query( $paypal_args, '', '&' );
346
+		$query_candidate   = http_build_query($paypal_args, '', '&');
347 347
 
348
-		if ( strlen( $this->endpoint . $query_candidate ) <= $max_paypal_length ) {
348
+		if (strlen($this->endpoint . $query_candidate) <= $max_paypal_length) {
349 349
 			return $paypal_args;
350 350
 		}
351 351
 
352 352
 		return apply_filters(
353 353
 			'getpaid_paypal_args',
354 354
 			array_merge(
355
-				$this->get_transaction_args( $invoice ),
356
-				$this->get_line_item_args( $invoice, true )
355
+				$this->get_transaction_args($invoice),
356
+				$this->get_line_item_args($invoice, true)
357 357
 			),
358 358
 			$invoice
359 359
 		);
@@ -366,10 +366,10 @@  discard block
 block discarded – undo
366 366
 	 * @param  array $paypal_args PayPal args.
367 367
 	 * @param  WPInv_Invoice    $invoice Invoice object.
368 368
 	 */
369
-	public function process_subscription( $paypal_args, $invoice ) {
369
+	public function process_subscription($paypal_args, $invoice) {
370 370
 
371 371
         // Make sure this is a subscription.
372
-        if ( ! $invoice->is_recurring() || ! $subscription = getpaid_get_invoice_subscription( $invoice ) ) {
372
+        if (!$invoice->is_recurring() || !$subscription = getpaid_get_invoice_subscription($invoice)) {
373 373
             return $paypal_args;
374 374
         }
375 375
 
@@ -377,23 +377,23 @@  discard block
 block discarded – undo
377 377
         $paypal_args['cmd'] = '_xclick-subscriptions';
378 378
 
379 379
         // Subscription name.
380
-        $paypal_args['item_name'] = wp_sprintf( __( 'Invoice %s', 'invoicing' ), $invoice->get_number() );
380
+        $paypal_args['item_name'] = wp_sprintf(__('Invoice %s', 'invoicing'), $invoice->get_number());
381 381
 
382 382
         // Get subscription args.
383
-        $period                 = strtoupper( substr( $subscription->get_period(), 0, 1 ) );
383
+        $period                 = strtoupper(substr($subscription->get_period(), 0, 1));
384 384
         $interval               = (int) $subscription->get_frequency();
385 385
         $bill_times             = (int) $subscription->get_bill_times();
386
-        $initial_amount         = (float) wpinv_sanitize_amount( $invoice->get_initial_total(), 2 );
387
-        $recurring_amount       = (float) wpinv_sanitize_amount( $invoice->get_recurring_total(), 2 );
388
-        $subscription_item      = $invoice->get_recurring( true );
386
+        $initial_amount         = (float) wpinv_sanitize_amount($invoice->get_initial_total(), 2);
387
+        $recurring_amount       = (float) wpinv_sanitize_amount($invoice->get_recurring_total(), 2);
388
+        $subscription_item      = $invoice->get_recurring(true);
389 389
 
390 390
 		// Convert 365 days to 1 year.
391
-		if ( 'D' == $period && 365 == $interval ) {
391
+		if ('D' == $period && 365 == $interval) {
392 392
 			$period = 'Y';
393 393
 			$interval = 1;
394 394
 		}
395 395
 
396
-        if ( $subscription_item->has_free_trial() ) {
396
+        if ($subscription_item->has_free_trial()) {
397 397
 
398 398
             $paypal_args['a1'] = 0 == $initial_amount ? 0 : $initial_amount;
399 399
 
@@ -403,28 +403,28 @@  discard block
 block discarded – undo
403 403
 			// Trial period.
404 404
 			$paypal_args['t1'] = $subscription_item->get_trial_period();
405 405
 
406
-        } elseif ( $initial_amount != $recurring_amount ) {
406
+        } elseif ($initial_amount != $recurring_amount) {
407 407
 
408 408
             // No trial period, but initial amount includes a sign-up fee and/or other items, so charge it as a separate period.
409 409
 
410
-            if ( 1 == $bill_times ) {
410
+            if (1 == $bill_times) {
411 411
                 $param_number = 3;
412 412
             } else {
413 413
                 $param_number = 1;
414 414
             }
415 415
 
416
-            $paypal_args[ 'a' . $param_number ] = $initial_amount ? $initial_amount : 0;
416
+            $paypal_args['a' . $param_number] = $initial_amount ? $initial_amount : 0;
417 417
 
418 418
             // Sign Up interval
419
-            $paypal_args[ 'p' . $param_number ] = $interval;
419
+            $paypal_args['p' . $param_number] = $interval;
420 420
 
421 421
             // Sign Up unit of duration
422
-            $paypal_args[ 't' . $param_number ] = $period;
422
+            $paypal_args['t' . $param_number] = $period;
423 423
 
424 424
         }
425 425
 
426 426
         // We have a recurring payment
427
-		if ( ! isset( $param_number ) || 1 == $param_number ) {
427
+		if (!isset($param_number) || 1 == $param_number) {
428 428
 
429 429
 			// Subscription price
430 430
 			$paypal_args['a3'] = $recurring_amount;
@@ -438,7 +438,7 @@  discard block
 block discarded – undo
438 438
         }
439 439
 
440 440
         // Recurring payments
441
-		if ( 1 == $bill_times || ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() && 2 == $bill_times ) ) {
441
+		if (1 == $bill_times || ($initial_amount != $recurring_amount && !$subscription_item->has_free_trial() && 2 == $bill_times)) {
442 442
 
443 443
 			// Non-recurring payments
444 444
 			$paypal_args['src'] = 0;
@@ -447,15 +447,15 @@  discard block
 block discarded – undo
447 447
 
448 448
 			$paypal_args['src'] = 1;
449 449
 
450
-			if ( $bill_times > 0 ) {
450
+			if ($bill_times > 0) {
451 451
 
452 452
 				// An initial period is being used to charge a sign-up fee
453
-				if ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() ) {
453
+				if ($initial_amount != $recurring_amount && !$subscription_item->has_free_trial()) {
454 454
 					$bill_times--;
455 455
 				}
456 456
 
457 457
                 // Make sure it's not over the max of 52
458
-                $paypal_args['srt'] = ( $bill_times <= 52 ? absint( $bill_times ) : 52 );
458
+                $paypal_args['srt'] = ($bill_times <= 52 ? absint($bill_times) : 52);
459 459
 
460 460
 			}
461 461
         }
@@ -464,10 +464,10 @@  discard block
 block discarded – undo
464 464
         $paypal_args['rm'] = 2;
465 465
 
466 466
         // Get rid of redudant items.
467
-        foreach ( array( 'item_name_1', 'quantity_1', 'amount_1', 'item_number_1' ) as $arg ) {
467
+        foreach (array('item_name_1', 'quantity_1', 'amount_1', 'item_number_1') as $arg) {
468 468
 
469
-            if ( isset( $paypal_args[ $arg ] ) ) {
470
-                unset( $paypal_args[ $arg ] );
469
+            if (isset($paypal_args[$arg])) {
470
+                unset($paypal_args[$arg]);
471 471
             }
472 472
 }
473 473
 
@@ -485,7 +485,7 @@  discard block
 block discarded – undo
485 485
 	 * @return void
486 486
 	 */
487 487
 	public function verify_ipn() {
488
-        new GetPaid_Paypal_Gateway_IPN_Handler( $this );
488
+        new GetPaid_Paypal_Gateway_IPN_Handler($this);
489 489
     }
490 490
 
491 491
     /**
@@ -494,7 +494,7 @@  discard block
 block discarded – undo
494 494
     public function sandbox_notice() {
495 495
 
496 496
         return sprintf(
497
-			__( 'SANDBOX ENABLED. You can use sandbox testing accounts only. See the %1$sPayPal Sandbox Testing Guide%2$s for more details.', 'invoicing' ),
497
+			__('SANDBOX ENABLED. You can use sandbox testing accounts only. See the %1$sPayPal Sandbox Testing Guide%2$s for more details.', 'invoicing'),
498 498
 			'<a href="https://developer.paypal.com/docs/classic/lifecycle/ug_sandbox/">',
499 499
 			'</a>'
500 500
 		);
@@ -506,41 +506,41 @@  discard block
 block discarded – undo
506 506
 	 *
507 507
 	 * @param array $admin_settings
508 508
 	 */
509
-	public function admin_settings( $admin_settings ) {
509
+	public function admin_settings($admin_settings) {
510 510
 
511 511
         $currencies = sprintf(
512
-            __( 'Supported Currencies: %s', 'invoicing' ),
513
-            implode( ', ', $this->currencies )
512
+            __('Supported Currencies: %s', 'invoicing'),
513
+            implode(', ', $this->currencies)
514 514
         );
515 515
 
516 516
         $admin_settings['paypal_active']['desc'] .= " ($currencies)";
517
-        $admin_settings['paypal_desc']['std']     = __( 'Pay via PayPal: you can pay with your credit card if you don\'t have a PayPal account.', 'invoicing' );
517
+        $admin_settings['paypal_desc']['std']     = __('Pay via PayPal: you can pay with your credit card if you don\'t have a PayPal account.', 'invoicing');
518 518
 
519 519
 		// Access tokens.
520
-		$live_email      = wpinv_get_option( 'paypal_email' );
521
-		$sandbox_email   = wpinv_get_option( 'paypal_sandbox_email' );
520
+		$live_email      = wpinv_get_option('paypal_email');
521
+		$sandbox_email   = wpinv_get_option('paypal_sandbox_email');
522 522
 
523 523
 		$admin_settings['paypal_connect'] = array(
524 524
 			'type' => 'hook',
525 525
 			'id'   => 'paypal_connect',
526
-			'name' => __( 'Connect to PayPal', 'invoicing' ),
526
+			'name' => __('Connect to PayPal', 'invoicing'),
527 527
 		);
528 528
 
529 529
         $admin_settings['paypal_email'] = array(
530 530
             'type'  => 'text',
531 531
 			'class' => 'live-auth-data',
532 532
             'id'    => 'paypal_email',
533
-            'name'  => __( 'Live Email Address', 'invoicing' ),
534
-            'desc'  => __( 'The email address of your PayPal account.', 'invoicing' ),
533
+            'name'  => __('Live Email Address', 'invoicing'),
534
+            'desc'  => __('The email address of your PayPal account.', 'invoicing'),
535 535
         );
536 536
 
537 537
 		$admin_settings['paypal_sandbox_email'] = array(
538 538
             'type'  => 'text',
539 539
 			'class' => 'sandbox-auth-data',
540 540
             'id'    => 'paypal_sandbox_email',
541
-            'name'  => __( 'Sandbox Email Address', 'invoicing' ),
542
-            'desc'  => __( 'The email address of your sandbox PayPal account.', 'invoicing' ),
543
-			'std'   => wpinv_get_option( 'paypal_email', '' ),
541
+            'name'  => __('Sandbox Email Address', 'invoicing'),
542
+            'desc'  => __('The email address of your sandbox PayPal account.', 'invoicing'),
543
+			'std'   => wpinv_get_option('paypal_email', ''),
544 544
         );
545 545
 
546 546
 		// Client ID and secret.
@@ -548,41 +548,41 @@  discard block
 block discarded – undo
548 548
 			'type'  => 'text',
549 549
 			'class' => 'live-auth-data',
550 550
 			'id'    => 'paypal_client_id',
551
-			'name'  => __( 'Live Client ID', 'invoicing' ),
552
-			'desc'  => __( 'The client ID of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
551
+			'name'  => __('Live Client ID', 'invoicing'),
552
+			'desc'  => __('The client ID of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing'),
553 553
 		);
554 554
 
555 555
 		$admin_settings['paypal_sandbox_client_id'] = array(
556 556
 			'type'  => 'text',
557 557
 			'class' => 'sandbox-auth-data',
558 558
 			'id'    => 'paypal_sandbox_client_id',
559
-			'name'  => __( 'Sandbox Client ID', 'invoicing' ),
560
-			'desc'  => __( 'The client ID of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
561
-			'std'   => wpinv_get_option( 'paypal_client_id', '' ),
559
+			'name'  => __('Sandbox Client ID', 'invoicing'),
560
+			'desc'  => __('The client ID of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing'),
561
+			'std'   => wpinv_get_option('paypal_client_id', ''),
562 562
 		);
563 563
 
564 564
 		$admin_settings['paypal_secret'] = array(
565 565
 			'type'  => 'text',
566 566
 			'class' => 'live-auth-data',
567 567
 			'id'    => 'paypal_secret',
568
-			'name'  => __( 'Live Secret', 'invoicing' ),
569
-			'desc'  => __( 'The secret of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
568
+			'name'  => __('Live Secret', 'invoicing'),
569
+			'desc'  => __('The secret of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing'),
570 570
 		);
571 571
 
572 572
 		$admin_settings['paypal_sandbox_secret'] = array(
573 573
 			'type'  => 'text',
574 574
 			'class' => 'sandbox-auth-data',
575 575
 			'id'    => 'paypal_sandbox_secret',
576
-			'name'  => __( 'Sandbox Secret', 'invoicing' ),
577
-			'desc'  => __( 'The secret of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
576
+			'name'  => __('Sandbox Secret', 'invoicing'),
577
+			'desc'  => __('The secret of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing'),
578 578
 		);
579 579
 
580 580
         $admin_settings['paypal_ipn_url'] = array(
581 581
             'type'     => 'ipn_url',
582 582
             'id'       => 'paypal_ipn_url',
583
-            'name'     => __( 'IPN Url', 'invoicing' ),
583
+            'name'     => __('IPN Url', 'invoicing'),
584 584
             'std'      => $this->notify_url,
585
-            'desc'     => __( "If you've not enabled IPNs in your paypal account, use the above URL to enable them.", 'invoicing' ) . ' <a href="https://developer.paypal.com/docs/api-basics/notifications/ipn/"><em>' . __( 'Learn more.', 'invoicing' ) . '</em></a>',
585
+            'desc'     => __("If you've not enabled IPNs in your paypal account, use the above URL to enable them.", 'invoicing') . ' <a href="https://developer.paypal.com/docs/api-basics/notifications/ipn/"><em>' . __('Learn more.', 'invoicing') . '</em></a>',
586 586
             'readonly' => true,
587 587
         );
588 588
 
@@ -595,9 +595,9 @@  discard block
 block discarded – undo
595 595
 	 * @param string $url
596 596
 	 * @param WPInv_Subscription $subscription
597 597
 	 */
598
-	public function filter_cancel_subscription_url( $url, $subscription ) {
598
+	public function filter_cancel_subscription_url($url, $subscription) {
599 599
 
600
-		if ( $this->id !== $subscription->get_gateway() ) {
600
+		if ($this->id !== $subscription->get_gateway()) {
601 601
 			return $url;
602 602
 		}
603 603
 
@@ -605,16 +605,16 @@  discard block
 block discarded – undo
605 605
 		$profile_id = $subscription->get_profile_id();
606 606
 
607 607
 		// Bail if no profile ID.
608
-		if ( empty( $profile_id ) ) {
608
+		if (empty($profile_id)) {
609 609
 			return $url;
610 610
 		}
611 611
 
612 612
 		$cancel_url = 'https://www.paypal.com/myaccount/autopay/connect/%s/cancel';
613
-		if ( $this->is_sandbox( $subscription->get_parent_payment() ) ) {
613
+		if ($this->is_sandbox($subscription->get_parent_payment())) {
614 614
 			$cancel_url = 'https://www.sandbox.paypal.com/myaccount/autopay/connect/%s/cancel';
615 615
 		}
616 616
 
617
-		return sprintf( $cancel_url, $profile_id );
617
+		return sprintf($cancel_url, $profile_id);
618 618
 	}
619 619
 
620 620
 	/**
@@ -624,8 +624,8 @@  discard block
 block discarded – undo
624 624
      * @param array $data
625 625
      * @return string
626 626
 	 */
627
-	public static function maybe_get_connect_url( $url = '', $data = array() ) {
628
-		return self::get_connect_url( false, urldecode( $data['redirect'] ) );
627
+	public static function maybe_get_connect_url($url = '', $data = array()) {
628
+		return self::get_connect_url(false, urldecode($data['redirect']));
629 629
 	}
630 630
 
631 631
 	/**
@@ -636,25 +636,25 @@  discard block
 block discarded – undo
636 636
 	 * @param string $redirect
637 637
      * @return string
638 638
 	 */
639
-	public static function get_connect_url( $is_sandbox, $redirect = '' ) {
639
+	public static function get_connect_url($is_sandbox, $redirect = '') {
640 640
 
641 641
         $redirect_url = add_query_arg(
642 642
             array(
643 643
                 'getpaid-admin-action' => 'connect_paypal',
644 644
                 'page'                 => 'wpinv-settings',
645
-                'live_mode'            => (int) empty( $is_sandbox ),
645
+                'live_mode'            => (int) empty($is_sandbox),
646 646
                 'tab'                  => 'gateways',
647 647
                 'section'              => 'paypal',
648
-                'getpaid-nonce'        => wp_create_nonce( 'getpaid-nonce' ),
649
-				'redirect'             => urlencode( $redirect ),
648
+                'getpaid-nonce'        => wp_create_nonce('getpaid-nonce'),
649
+				'redirect'             => urlencode($redirect),
650 650
             ),
651
-            admin_url( 'admin.php' )
651
+            admin_url('admin.php')
652 652
         );
653 653
 
654 654
         return add_query_arg(
655 655
             array(
656
-                'live_mode'    => (int) empty( $is_sandbox ),
657
-                'redirect_url' => urlencode( str_replace( '&amp;', '&', $redirect_url ) ),
656
+                'live_mode'    => (int) empty($is_sandbox),
657
+                'redirect_url' => urlencode(str_replace('&amp;', '&', $redirect_url)),
658 658
             ),
659 659
             'https://ayecode.io/oauth/paypal'
660 660
         );
@@ -670,10 +670,10 @@  discard block
 block discarded – undo
670 670
 
671 671
         ?>
672 672
 			<div class="wpinv-paypal-connect-live">
673
-				<a class="button button-primary" href="<?php echo esc_url( self::get_connect_url( false ) ); ?>"><?php esc_html_e( 'Connect to PayPal', 'invoicing' ); ?></a>
673
+				<a class="button button-primary" href="<?php echo esc_url(self::get_connect_url(false)); ?>"><?php esc_html_e('Connect to PayPal', 'invoicing'); ?></a>
674 674
 			</div>
675 675
 			<div class="wpinv-paypal-connect-sandbox">
676
-				<a class="button button-primary" href="<?php echo esc_url( self::get_connect_url( true ) ); ?>"><?php esc_html_e( 'Connect to PayPal Sandbox', 'invoicing' ); ?></a>
676
+				<a class="button button-primary" href="<?php echo esc_url(self::get_connect_url(true)); ?>"><?php esc_html_e('Connect to PayPal Sandbox', 'invoicing'); ?></a>
677 677
 			</div>
678 678
 
679 679
             <script>
@@ -714,26 +714,26 @@  discard block
 block discarded – undo
714 714
 	 * @param array $data Connection data.
715 715
 	 * @return void
716 716
 	 */
717
-	public function connect_paypal( $data ) {
717
+	public function connect_paypal($data) {
718 718
 
719 719
 		$sandbox      = $this->is_sandbox();
720
-		$data         = wp_unslash( $data );
721
-		$access_token = empty( $data['access_token'] ) ? '' : sanitize_text_field( $data['access_token'] );
720
+		$data         = wp_unslash($data);
721
+		$access_token = empty($data['access_token']) ? '' : sanitize_text_field($data['access_token']);
722 722
 
723
-		if ( isset( $data['live_mode'] ) ) {
724
-			$sandbox = empty( $data['live_mode'] );
723
+		if (isset($data['live_mode'])) {
724
+			$sandbox = empty($data['live_mode']);
725 725
 		}
726 726
 
727
-		wpinv_update_option( 'paypal_sandbox', (int) $sandbox );
728
-		wpinv_update_option( 'paypal_active', 1 );
727
+		wpinv_update_option('paypal_sandbox', (int) $sandbox);
728
+		wpinv_update_option('paypal_active', 1);
729 729
 
730
-		if ( ! empty( $data['error_description'] ) ) {
731
-			getpaid_admin()->show_error( wp_kses_post( urldecode( $data['error_description'] ) ) );
730
+		if (!empty($data['error_description'])) {
731
+			getpaid_admin()->show_error(wp_kses_post(urldecode($data['error_description'])));
732 732
 		} else {
733 733
 
734 734
 			// Retrieve the user info.
735 735
 			$user_info = wp_remote_get(
736
-				! $sandbox ? 'https://api-m.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1' : 'https://api-m.sandbox.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1',
736
+				!$sandbox ? 'https://api-m.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1' : 'https://api-m.sandbox.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1',
737 737
 				array(
738 738
 
739 739
 					'headers' => array(
@@ -744,33 +744,33 @@  discard block
 block discarded – undo
744 744
 				)
745 745
 			);
746 746
 
747
-			if ( is_wp_error( $user_info ) ) {
748
-				getpaid_admin()->show_error( wp_kses_post( $user_info->get_error_message() ) );
747
+			if (is_wp_error($user_info)) {
748
+				getpaid_admin()->show_error(wp_kses_post($user_info->get_error_message()));
749 749
 			} else {
750 750
 
751 751
 				// Create application.
752
-				$user_info = json_decode( wp_remote_retrieve_body( $user_info ) );
752
+				$user_info = json_decode(wp_remote_retrieve_body($user_info));
753 753
 
754
-				if ( $sandbox ) {
755
-					wpinv_update_option( 'paypal_sandbox_email', sanitize_email( $user_info->emails[0]->value ) );
756
-					wpinv_update_option( 'paypal_sandbox_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
757
-					set_transient( 'getpaid_paypal_sandbox_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
758
-					getpaid_admin()->show_success( __( 'Successfully connected your PayPal sandbox account', 'invoicing' ) );
754
+				if ($sandbox) {
755
+					wpinv_update_option('paypal_sandbox_email', sanitize_email($user_info->emails[0]->value));
756
+					wpinv_update_option('paypal_sandbox_refresh_token', sanitize_text_field(urldecode($data['refresh_token'])));
757
+					set_transient('getpaid_paypal_sandbox_access_token', sanitize_text_field(urldecode($data['access_token'])), (int) $data['expires_in']);
758
+					getpaid_admin()->show_success(__('Successfully connected your PayPal sandbox account', 'invoicing'));
759 759
 				} else {
760
-					wpinv_update_option( 'paypal_email', sanitize_email( $user_info->emails[0]->value ) );
761
-					wpinv_update_option( 'paypal_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
762
-					set_transient( 'getpaid_paypal_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
763
-					getpaid_admin()->show_success( __( 'Successfully connected your PayPal account', 'invoicing' ) );
760
+					wpinv_update_option('paypal_email', sanitize_email($user_info->emails[0]->value));
761
+					wpinv_update_option('paypal_refresh_token', sanitize_text_field(urldecode($data['refresh_token'])));
762
+					set_transient('getpaid_paypal_access_token', sanitize_text_field(urldecode($data['access_token'])), (int) $data['expires_in']);
763
+					getpaid_admin()->show_success(__('Successfully connected your PayPal account', 'invoicing'));
764 764
 				}
765 765
 }
766 766
 }
767 767
 
768
-		$redirect = empty( $data['redirect'] ) ? admin_url( 'admin.php?page=wpinv-settings&tab=gateways&section=paypal' ) : urldecode( $data['redirect'] );
768
+		$redirect = empty($data['redirect']) ? admin_url('admin.php?page=wpinv-settings&tab=gateways&section=paypal') : urldecode($data['redirect']);
769 769
 
770
-		if ( isset( $data['step'] ) ) {
771
-			$redirect = add_query_arg( 'step', $data['step'], $redirect );
770
+		if (isset($data['step'])) {
771
+			$redirect = add_query_arg('step', $data['step'], $redirect);
772 772
 		}
773
-		wp_redirect( $redirect );
773
+		wp_redirect($redirect);
774 774
 		exit;
775 775
 	}
776 776
 
Please login to merge, or discard this patch.
includes/admin/html-admin-page-addons.php 3 patches
Indentation   +75 added lines, -75 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  *
5 5
  */
6 6
 if ( ! defined( 'ABSPATH' ) ) {
7
-	exit;
7
+    exit;
8 8
 }
9 9
 add_ThickBox();
10 10
 ?>
@@ -14,18 +14,18 @@  discard block
 block discarded – undo
14 14
 	<?php if ( $tabs ) { ?>
15 15
 		<nav class="nav-tab-wrapper wpi-nav-tab-wrapper">
16 16
 			<?php
17
-			foreach ( $tabs as $name => $label ) {
18
-				echo '<a href="' . esc_url( admin_url( 'admin.php?page=wpi-addons&tab=' . $name ) ) . '" class="nav-tab ' . ( $current_tab == $name ? 'nav-tab-active' : '' ) . '">' . esc_html( $label ) . '</a>';
19
-			}
20
-			do_action( 'wpi_addons_tabs' );
21
-			?>
17
+            foreach ( $tabs as $name => $label ) {
18
+                echo '<a href="' . esc_url( admin_url( 'admin.php?page=wpi-addons&tab=' . $name ) ) . '" class="nav-tab ' . ( $current_tab == $name ? 'nav-tab-active' : '' ) . '">' . esc_html( $label ) . '</a>';
19
+            }
20
+            do_action( 'wpi_addons_tabs' );
21
+            ?>
22 22
 		</nav>
23 23
 
24 24
 		<?php
25 25
 
26
-		if ( $current_tab == 'membership' ) {
26
+        if ( $current_tab == 'membership' ) {
27 27
 
28
-			?>
28
+            ?>
29 29
 
30 30
 			<div class="wpi-membership-tab-conatiner">
31 31
 				<div class="membership-content">
@@ -36,9 +36,9 @@  discard block
 block discarded – undo
36 36
 					<h2><?php esc_html_e( 'Have a membership key?', 'invoicing' ); ?></h2>
37 37
 					<p>
38 38
 						<?php
39
-						$wpeu_admin = new External_Updates_Admin( 'wpinvoicing.com', '1' );
40
-						echo $wpeu_admin->render_licence_actions( 'wpinvoicing.com', 'membership', array( 95, 106, 108, 12351 ) );
41
-						?>
39
+                        $wpeu_admin = new External_Updates_Admin( 'wpinvoicing.com', '1' );
40
+                        echo $wpeu_admin->render_licence_actions( 'wpinvoicing.com', 'membership', array( 95, 106, 108, 12351 ) );
41
+                        ?>
42 42
 					</p>
43 43
 				<?php } ?>
44 44
 
@@ -48,13 +48,13 @@  discard block
 block discarded – undo
48 48
 							<div class="feature-list">
49 49
 								<ul>
50 50
 									<?php
51
-									$addon_obj = new WPInv_Admin_Addons();
52
-									if ( $addons = $addon_obj->get_section_data( 'addons' ) ) {
53
-										foreach ( $addons as $addon ) {
54
-											echo '<li><i class="far fa-check-circle fa-sm"></i> ' . esc_html( $addon->info->title ) . '</li>';
55
-										}
56
-									}
57
-									?>
51
+                                    $addon_obj = new WPInv_Admin_Addons();
52
+                                    if ( $addons = $addon_obj->get_section_data( 'addons' ) ) {
53
+                                        foreach ( $addons as $addon ) {
54
+                                            echo '<li><i class="far fa-check-circle fa-sm"></i> ' . esc_html( $addon->info->title ) . '</li>';
55
+                                        }
56
+                                    }
57
+                                    ?>
58 58
 									</ul>
59 59
 
60 60
 									<div class="feature-cta">
@@ -65,12 +65,12 @@  discard block
 block discarded – undo
65 65
 									<h3><?php esc_html_e( 'Included Gateways:', 'invoicing' ); ?></h3>
66 66
 									<ul>
67 67
 										<?php
68
-										if ( $addons = $addon_obj->get_section_data( 'gateways' ) ) {
69
-											foreach ( $addons as $addon ) {
70
-												echo '<li><i class="far fa-check-circle fa-sm"></i> ' . esc_html( $addon->info->title ) . '</li>';
71
-											}
72
-										}
73
-										?>
68
+                                        if ( $addons = $addon_obj->get_section_data( 'gateways' ) ) {
69
+                                            foreach ( $addons as $addon ) {
70
+                                                echo '<li><i class="far fa-check-circle fa-sm"></i> ' . esc_html( $addon->info->title ) . '</li>';
71
+                                            }
72
+                                        }
73
+                                        ?>
74 74
 								</ul>
75 75
 							</div>
76 76
 
@@ -81,8 +81,8 @@  discard block
 block discarded – undo
81 81
 						<div class="testimonial-content">
82 82
 							<div class="t-image">
83 83
 								<?php
84
-									echo '<img src="' . esc_url( plugins_url( 'images/t-image2.png', dirname( __FILE__ ) ) ) . '" > ';
85
-								?>
84
+                                    echo '<img src="' . esc_url( plugins_url( 'images/t-image2.png', dirname( __FILE__ ) ) ) . '" > ';
85
+                                ?>
86 86
 							</div>
87 87
 							<div class="t-content">
88 88
 								<p>
@@ -101,8 +101,8 @@  discard block
 block discarded – undo
101 101
 						<div class="testimonial-content">
102 102
 							<div class="t-image">
103 103
 								<?php
104
-									echo '<img src="' . esc_url( plugins_url( 'images/t-image1.png', dirname( __FILE__ ) ) ) . '" > ';
105
-								?>
104
+                                    echo '<img src="' . esc_url( plugins_url( 'images/t-image1.png', dirname( __FILE__ ) ) ) . '" > ';
105
+                                ?>
106 106
 							</div>
107 107
 							<div class="t-content">
108 108
 								<p>
@@ -126,26 +126,26 @@  discard block
 block discarded – undo
126 126
 			</div>
127 127
 		</div>
128 128
 			<?php
129
-		} else {
130
-			$installed_plugins = get_plugins();
129
+        } else {
130
+            $installed_plugins = get_plugins();
131 131
             $addon_obj = new WPInv_Admin_Addons();
132
-			if ( $addons = $addon_obj->get_section_data( $current_tab ) ) :
133
-				//print_r($addons);
134
-				?>
132
+            if ( $addons = $addon_obj->get_section_data( $current_tab ) ) :
133
+                //print_r($addons);
134
+                ?>
135 135
 				<ul class="wpi-products">
136 136
                 <?php
137 137
                 foreach ( $addons as $addon ) :
138 138
                         if ( 965 == $addon->info->id ) {
139 139
 continue;}// don't show quote add on
140
-						?>
140
+                        ?>
141 141
                         <li class="wpi-product">
142 142
 								<div class="wpi-product-title">
143 143
 									<h3>
144 144
                                     <?php
145
-										if ( ! empty( $addon->info->excerpt ) ) {
146
-										wpi_help_tip( $addon->info->excerpt, false, false, true );
147
-										}
148
-										echo esc_html( $addon->info->title );
145
+                                        if ( ! empty( $addon->info->excerpt ) ) {
146
+                                        wpi_help_tip( $addon->info->excerpt, false, false, true );
147
+                                        }
148
+                                        echo esc_html( $addon->info->title );
149 149
                                         ?>
150 150
                                         </h3>
151 151
 								</div>
@@ -156,40 +156,40 @@  discard block
 block discarded – undo
156 156
 									<?php
157 157
                                     endif;
158 158
 
159
-									if ( 'stripe-payment-gateway' == $addon->info->slug ) {
160
-										$addon->info->slug = 'getpaid-stripe-payments';
161
-										$addon->info->link = 'https://wordpress.org/plugins/getpaid-stripe-payments/';
162
-									}
159
+                                    if ( 'stripe-payment-gateway' == $addon->info->slug ) {
160
+                                        $addon->info->slug = 'getpaid-stripe-payments';
161
+                                        $addon->info->link = 'https://wordpress.org/plugins/getpaid-stripe-payments/';
162
+                                    }
163 163
                                     elseif( 'wallet' == $addon->info->slug ){
164
-										$addon->info->slug = 'getpaid-wallet';
165
-										$addon->info->link = 'https://wordpress.org/plugins/getpaid-wallet/';
166
-									}
164
+                                        $addon->info->slug = 'getpaid-wallet';
165
+                                        $addon->info->link = 'https://wordpress.org/plugins/getpaid-wallet/';
166
+                                    }
167 167
                                     elseif( 'item-inventory' == $addon->info->slug ){
168
-										$addon->info->slug = 'getpaid-item-inventory';
169
-										$addon->info->link = 'https://wordpress.org/plugins/getpaid-item-inventory/';
170
-									}
171
-
172
-									if ( isset( $addon->info->link ) && substr( $addon->info->link, 0, 21 ) === 'https://wordpress.org' ) {
173
-										echo '<a href="' . esc_url( admin_url( '/plugin-install.php?tab=plugin-information&plugin=' . $addon->info->slug ) ) . '&width=770&height=660&TB_iframe=true" class="thickbox" >';
174
-										echo '<span class="wpi-product-info">' . esc_html__( 'More info', 'invoicing' ) . '</span>';
175
-										echo '</a>';
176
-									} elseif ( isset( $addon->info->link ) && ( substr( $addon->info->link, 0, 23 ) === 'https://wpinvoicing.com' || substr( $addon->info->link, 0, 21 ) === 'https://wpgetpaid.com' ) ) {
177
-										if ( defined( 'WP_EASY_UPDATES_ACTIVE' ) ) {
178
-											$url = admin_url( '/plugin-install.php?tab=plugin-information&plugin=' . $addon->info->slug . '&width=770&height=660&item_id=' . $addon->info->id . '&update_url=https://wpgetpaid.com&TB_iframe=true' );
179
-										} else {
180
-											// if installed show activation link
181
-											if ( isset( $installed_plugins['wp-easy-updates/external-updates.php'] ) ) {
182
-												$url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-activation';
183
-											} else {
184
-												$url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-for-external';
185
-											}
186
-										}
187
-										echo '<a href="' . esc_url( $url ) . '" class="thickbox">';
188
-										echo '<span class="wpi-product-info">' . esc_html__( 'More info', 'invoicing' ) . '</span>';
189
-										echo '</a>';
190
-									}
191
-
192
-									?>
168
+                                        $addon->info->slug = 'getpaid-item-inventory';
169
+                                        $addon->info->link = 'https://wordpress.org/plugins/getpaid-item-inventory/';
170
+                                    }
171
+
172
+                                    if ( isset( $addon->info->link ) && substr( $addon->info->link, 0, 21 ) === 'https://wordpress.org' ) {
173
+                                        echo '<a href="' . esc_url( admin_url( '/plugin-install.php?tab=plugin-information&plugin=' . $addon->info->slug ) ) . '&width=770&height=660&TB_iframe=true" class="thickbox" >';
174
+                                        echo '<span class="wpi-product-info">' . esc_html__( 'More info', 'invoicing' ) . '</span>';
175
+                                        echo '</a>';
176
+                                    } elseif ( isset( $addon->info->link ) && ( substr( $addon->info->link, 0, 23 ) === 'https://wpinvoicing.com' || substr( $addon->info->link, 0, 21 ) === 'https://wpgetpaid.com' ) ) {
177
+                                        if ( defined( 'WP_EASY_UPDATES_ACTIVE' ) ) {
178
+                                            $url = admin_url( '/plugin-install.php?tab=plugin-information&plugin=' . $addon->info->slug . '&width=770&height=660&item_id=' . $addon->info->id . '&update_url=https://wpgetpaid.com&TB_iframe=true' );
179
+                                        } else {
180
+                                            // if installed show activation link
181
+                                            if ( isset( $installed_plugins['wp-easy-updates/external-updates.php'] ) ) {
182
+                                                $url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-activation';
183
+                                            } else {
184
+                                                $url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-for-external';
185
+                                            }
186
+                                        }
187
+                                        echo '<a href="' . esc_url( $url ) . '" class="thickbox">';
188
+                                        echo '<span class="wpi-product-info">' . esc_html__( 'More info', 'invoicing' ) . '</span>';
189
+                                        echo '</a>';
190
+                                    }
191
+
192
+                                    ?>
193 193
 
194 194
 								</span>
195 195
 
@@ -197,15 +197,15 @@  discard block
 block discarded – undo
197 197
 								<span class="wpi-product-button">
198 198
 									<?php
199 199
                                     $addon_obj->output_button( $addon );
200
-									?>
200
+                                    ?>
201 201
 								</span>
202 202
 
203 203
 								<span class="wpi-price"><?php //print_r($addon); //echo wp_kses_post( $addon->price ); ?></span></li><?php endforeach; ?></ul>
204 204
 			<?php
205 205
             endif;
206
-		}
206
+        }
207 207
 }
208
-	?>
208
+    ?>
209 209
 
210 210
 
211 211
 	<div class="clearfix" ></div>
@@ -224,8 +224,8 @@  discard block
 block discarded – undo
224 224
 			<input class="wpeu-licence-key" type="text" placeholder="<?php esc_attr_e( 'Enter your licence key', 'invoicing' ); ?>"> <button class="button-primary wpeu-licence-popup-button" ><?php esc_html_e( 'Install', 'invoicing' ); ?></button>
225 225
 			<br>
226 226
 			<?php
227
-			printf( esc_html__( '%1$sFind your licence key here%2$s OR %3$sBuy one here%4$s', 'invoicing' ), '<a href="https://wpinvoicing.com/your-account/" target="_blank">', '</a>', '<a class="wpeu-licence-link" href="https://wpinvoicing.com/downloads/category/addons/" target="_blank">', '</a>' );
228
-			?>
227
+            printf( esc_html__( '%1$sFind your licence key here%2$s OR %3$sBuy one here%4$s', 'invoicing' ), '<a href="https://wpinvoicing.com/your-account/" target="_blank">', '</a>', '<a class="wpeu-licence-link" href="https://wpinvoicing.com/downloads/category/addons/" target="_blank">', '</a>' );
228
+            ?>
229 229
 		</span>
230 230
 	</div>
231 231
 
Please login to merge, or discard this patch.
Spacing   +56 added lines, -56 removed lines patch added patch discarded remove patch
@@ -3,27 +3,27 @@  discard block
 block discarded – undo
3 3
  * Admin View: Page - Addons
4 4
  *
5 5
  */
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
 	exit;
8 8
 }
9 9
 add_ThickBox();
10 10
 ?>
11 11
 <div class="wrap wpi_addons_wrap">
12
-	<h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
12
+	<h1><?php echo esc_html(get_admin_page_title()); ?></h1>
13 13
 
14
-	<?php if ( $tabs ) { ?>
14
+	<?php if ($tabs) { ?>
15 15
 		<nav class="nav-tab-wrapper wpi-nav-tab-wrapper">
16 16
 			<?php
17
-			foreach ( $tabs as $name => $label ) {
18
-				echo '<a href="' . esc_url( admin_url( 'admin.php?page=wpi-addons&tab=' . $name ) ) . '" class="nav-tab ' . ( $current_tab == $name ? 'nav-tab-active' : '' ) . '">' . esc_html( $label ) . '</a>';
17
+			foreach ($tabs as $name => $label) {
18
+				echo '<a href="' . esc_url(admin_url('admin.php?page=wpi-addons&tab=' . $name)) . '" class="nav-tab ' . ($current_tab == $name ? 'nav-tab-active' : '') . '">' . esc_html($label) . '</a>';
19 19
 			}
20
-			do_action( 'wpi_addons_tabs' );
20
+			do_action('wpi_addons_tabs');
21 21
 			?>
22 22
 		</nav>
23 23
 
24 24
 		<?php
25 25
 
26
-		if ( $current_tab == 'membership' ) {
26
+		if ($current_tab == 'membership') {
27 27
 
28 28
 			?>
29 29
 
@@ -32,42 +32,42 @@  discard block
 block discarded – undo
32 32
 <!--
33 33
 				<h2>With our WPInvoicing Membership you get access to all our products!</h2>
34 34
 				<p><a class="button button-primary" href="https://wpinvoicing.com/downloads/membership/">View Memberships</a></p>-->
35
-				<?php if ( defined( 'WP_EASY_UPDATES_ACTIVE' ) ) { ?>
36
-					<h2><?php esc_html_e( 'Have a membership key?', 'invoicing' ); ?></h2>
35
+				<?php if (defined('WP_EASY_UPDATES_ACTIVE')) { ?>
36
+					<h2><?php esc_html_e('Have a membership key?', 'invoicing'); ?></h2>
37 37
 					<p>
38 38
 						<?php
39
-						$wpeu_admin = new External_Updates_Admin( 'wpinvoicing.com', '1' );
40
-						echo $wpeu_admin->render_licence_actions( 'wpinvoicing.com', 'membership', array( 95, 106, 108, 12351 ) );
39
+						$wpeu_admin = new External_Updates_Admin('wpinvoicing.com', '1');
40
+						echo $wpeu_admin->render_licence_actions('wpinvoicing.com', 'membership', array(95, 106, 108, 12351));
41 41
 						?>
42 42
 					</p>
43 43
 				<?php } ?>
44 44
 
45 45
 				<div class="membership-cta-contet">
46 46
 					<div class="main-cta">
47
-							<h2><?php esc_html_e( 'Membership benefits Include:', 'invoicing' ); ?></h2>
47
+							<h2><?php esc_html_e('Membership benefits Include:', 'invoicing'); ?></h2>
48 48
 							<div class="feature-list">
49 49
 								<ul>
50 50
 									<?php
51 51
 									$addon_obj = new WPInv_Admin_Addons();
52
-									if ( $addons = $addon_obj->get_section_data( 'addons' ) ) {
53
-										foreach ( $addons as $addon ) {
54
-											echo '<li><i class="far fa-check-circle fa-sm"></i> ' . esc_html( $addon->info->title ) . '</li>';
52
+									if ($addons = $addon_obj->get_section_data('addons')) {
53
+										foreach ($addons as $addon) {
54
+											echo '<li><i class="far fa-check-circle fa-sm"></i> ' . esc_html($addon->info->title) . '</li>';
55 55
 										}
56 56
 									}
57 57
 									?>
58 58
 									</ul>
59 59
 
60 60
 									<div class="feature-cta">
61
-										<h3><?php esc_html_e( 'Membership Starts from', 'invoicing' ); ?></h3>
61
+										<h3><?php esc_html_e('Membership Starts from', 'invoicing'); ?></h3>
62 62
 										<h4>$99</h4>
63
-										<a href="https://wpinvoicing.com/downloads/membership/" target="_blank"><?php esc_attr_e( 'Buy Membership', 'invoicing' ); ?></a>
63
+										<a href="https://wpinvoicing.com/downloads/membership/" target="_blank"><?php esc_attr_e('Buy Membership', 'invoicing'); ?></a>
64 64
 									</div>
65
-									<h3><?php esc_html_e( 'Included Gateways:', 'invoicing' ); ?></h3>
65
+									<h3><?php esc_html_e('Included Gateways:', 'invoicing'); ?></h3>
66 66
 									<ul>
67 67
 										<?php
68
-										if ( $addons = $addon_obj->get_section_data( 'gateways' ) ) {
69
-											foreach ( $addons as $addon ) {
70
-												echo '<li><i class="far fa-check-circle fa-sm"></i> ' . esc_html( $addon->info->title ) . '</li>';
68
+										if ($addons = $addon_obj->get_section_data('gateways')) {
69
+											foreach ($addons as $addon) {
70
+												echo '<li><i class="far fa-check-circle fa-sm"></i> ' . esc_html($addon->info->title) . '</li>';
71 71
 											}
72 72
 										}
73 73
 										?>
@@ -81,7 +81,7 @@  discard block
 block discarded – undo
81 81
 						<div class="testimonial-content">
82 82
 							<div class="t-image">
83 83
 								<?php
84
-									echo '<img src="' . esc_url( plugins_url( 'images/t-image2.png', dirname( __FILE__ ) ) ) . '" > ';
84
+									echo '<img src="' . esc_url(plugins_url('images/t-image2.png', dirname(__FILE__))) . '" > ';
85 85
 								?>
86 86
 							</div>
87 87
 							<div class="t-content">
@@ -101,7 +101,7 @@  discard block
 block discarded – undo
101 101
 						<div class="testimonial-content">
102 102
 							<div class="t-image">
103 103
 								<?php
104
-									echo '<img src="' . esc_url( plugins_url( 'images/t-image1.png', dirname( __FILE__ ) ) ) . '" > ';
104
+									echo '<img src="' . esc_url(plugins_url('images/t-image1.png', dirname(__FILE__))) . '" > ';
105 105
 								?>
106 106
 							</div>
107 107
 							<div class="t-content">
@@ -117,8 +117,8 @@  discard block
 block discarded – undo
117 117
 						</div>
118 118
 					</div>
119 119
 					<div class="member-footer">
120
-						<a class="footer-btn" href="https://wpinvoicing.com/downloads/membership/" target="_blank"><?php esc_html_e( 'Buy Membership', 'invoicing' ); ?></a>
121
-						<a class="footer-link" href="post-new.php?post_type=wpi_invoice"><?php esc_html_e( 'Create Invoice', 'invoicing' ); ?></a>
120
+						<a class="footer-btn" href="https://wpinvoicing.com/downloads/membership/" target="_blank"><?php esc_html_e('Buy Membership', 'invoicing'); ?></a>
121
+						<a class="footer-link" href="post-new.php?post_type=wpi_invoice"><?php esc_html_e('Create Invoice', 'invoicing'); ?></a>
122 122
 					</div>
123 123
 				</div>
124 124
 
@@ -129,63 +129,63 @@  discard block
 block discarded – undo
129 129
 		} else {
130 130
 			$installed_plugins = get_plugins();
131 131
             $addon_obj = new WPInv_Admin_Addons();
132
-			if ( $addons = $addon_obj->get_section_data( $current_tab ) ) :
132
+			if ($addons = $addon_obj->get_section_data($current_tab)) :
133 133
 				//print_r($addons);
134 134
 				?>
135 135
 				<ul class="wpi-products">
136 136
                 <?php
137
-                foreach ( $addons as $addon ) :
138
-                        if ( 965 == $addon->info->id ) {
139
-continue;}// don't show quote add on
137
+                foreach ($addons as $addon) :
138
+                        if (965 == $addon->info->id) {
139
+continue; }// don't show quote add on
140 140
 						?>
141 141
                         <li class="wpi-product">
142 142
 								<div class="wpi-product-title">
143 143
 									<h3>
144 144
                                     <?php
145
-										if ( ! empty( $addon->info->excerpt ) ) {
146
-										wpi_help_tip( $addon->info->excerpt, false, false, true );
145
+										if (!empty($addon->info->excerpt)) {
146
+										wpi_help_tip($addon->info->excerpt, false, false, true);
147 147
 										}
148
-										echo esc_html( $addon->info->title );
148
+										echo esc_html($addon->info->title);
149 149
                                         ?>
150 150
                                         </h3>
151 151
 								</div>
152 152
 
153 153
 								<span class="wpi-product-image">
154
-									<?php if ( ! empty( $addon->info->thumbnail ) ) : ?>
155
-										<img src="<?php echo esc_attr( $addon->info->thumbnail ); ?>"/>
154
+									<?php if (!empty($addon->info->thumbnail)) : ?>
155
+										<img src="<?php echo esc_attr($addon->info->thumbnail); ?>"/>
156 156
 									<?php
157 157
                                     endif;
158 158
 
159
-									if ( 'stripe-payment-gateway' == $addon->info->slug ) {
159
+									if ('stripe-payment-gateway' == $addon->info->slug) {
160 160
 										$addon->info->slug = 'getpaid-stripe-payments';
161 161
 										$addon->info->link = 'https://wordpress.org/plugins/getpaid-stripe-payments/';
162 162
 									}
163
-                                    elseif( 'wallet' == $addon->info->slug ){
163
+                                    elseif ('wallet' == $addon->info->slug) {
164 164
 										$addon->info->slug = 'getpaid-wallet';
165 165
 										$addon->info->link = 'https://wordpress.org/plugins/getpaid-wallet/';
166 166
 									}
167
-                                    elseif( 'item-inventory' == $addon->info->slug ){
167
+                                    elseif ('item-inventory' == $addon->info->slug) {
168 168
 										$addon->info->slug = 'getpaid-item-inventory';
169 169
 										$addon->info->link = 'https://wordpress.org/plugins/getpaid-item-inventory/';
170 170
 									}
171 171
 
172
-									if ( isset( $addon->info->link ) && substr( $addon->info->link, 0, 21 ) === 'https://wordpress.org' ) {
173
-										echo '<a href="' . esc_url( admin_url( '/plugin-install.php?tab=plugin-information&plugin=' . $addon->info->slug ) ) . '&width=770&height=660&TB_iframe=true" class="thickbox" >';
174
-										echo '<span class="wpi-product-info">' . esc_html__( 'More info', 'invoicing' ) . '</span>';
172
+									if (isset($addon->info->link) && substr($addon->info->link, 0, 21) === 'https://wordpress.org') {
173
+										echo '<a href="' . esc_url(admin_url('/plugin-install.php?tab=plugin-information&plugin=' . $addon->info->slug)) . '&width=770&height=660&TB_iframe=true" class="thickbox" >';
174
+										echo '<span class="wpi-product-info">' . esc_html__('More info', 'invoicing') . '</span>';
175 175
 										echo '</a>';
176
-									} elseif ( isset( $addon->info->link ) && ( substr( $addon->info->link, 0, 23 ) === 'https://wpinvoicing.com' || substr( $addon->info->link, 0, 21 ) === 'https://wpgetpaid.com' ) ) {
177
-										if ( defined( 'WP_EASY_UPDATES_ACTIVE' ) ) {
178
-											$url = admin_url( '/plugin-install.php?tab=plugin-information&plugin=' . $addon->info->slug . '&width=770&height=660&item_id=' . $addon->info->id . '&update_url=https://wpgetpaid.com&TB_iframe=true' );
176
+									} elseif (isset($addon->info->link) && (substr($addon->info->link, 0, 23) === 'https://wpinvoicing.com' || substr($addon->info->link, 0, 21) === 'https://wpgetpaid.com')) {
177
+										if (defined('WP_EASY_UPDATES_ACTIVE')) {
178
+											$url = admin_url('/plugin-install.php?tab=plugin-information&plugin=' . $addon->info->slug . '&width=770&height=660&item_id=' . $addon->info->id . '&update_url=https://wpgetpaid.com&TB_iframe=true');
179 179
 										} else {
180 180
 											// if installed show activation link
181
-											if ( isset( $installed_plugins['wp-easy-updates/external-updates.php'] ) ) {
181
+											if (isset($installed_plugins['wp-easy-updates/external-updates.php'])) {
182 182
 												$url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-activation';
183 183
 											} else {
184 184
 												$url = '#TB_inline?width=600&height=50&inlineId=wpi-wpeu-required-for-external';
185 185
 											}
186 186
 										}
187
-										echo '<a href="' . esc_url( $url ) . '" class="thickbox">';
188
-										echo '<span class="wpi-product-info">' . esc_html__( 'More info', 'invoicing' ) . '</span>';
187
+										echo '<a href="' . esc_url($url) . '" class="thickbox">';
188
+										echo '<span class="wpi-product-info">' . esc_html__('More info', 'invoicing') . '</span>';
189 189
 										echo '</a>';
190 190
 									}
191 191
 
@@ -196,7 +196,7 @@  discard block
 block discarded – undo
196 196
 
197 197
 								<span class="wpi-product-button">
198 198
 									<?php
199
-                                    $addon_obj->output_button( $addon );
199
+                                    $addon_obj->output_button($addon);
200 200
 									?>
201 201
 								</span>
202 202
 
@@ -210,21 +210,21 @@  discard block
 block discarded – undo
210 210
 
211 211
 	<div class="clearfix" ></div>
212 212
 
213
-	<?php if ( $current_tab == 'addons' ) { ?>
214
-	<p><?php printf(  esc_attr__( 'All of our Addons can be found on wpGetPaid.com here: %sInvoicing Addons%s', 'invoicing' ), '<a href="https://wpinvoicing.com/downloads/category/addons/">','</a>' ); ?></p>
215
-	<?php } if ( $current_tab == 'gateways' ) { ?>
216
-    <p><?php printf( esc_attr__( 'All of our Payment Gateways can be found on wpGetPaid.com here: %sGetPaid Payment Gateways %s', 'invoicing' ), '<a href="https://wpinvoicing.com/downloads/category/gateways/">','</a>'  ); ?></p>
213
+	<?php if ($current_tab == 'addons') { ?>
214
+	<p><?php printf(esc_attr__('All of our Addons can be found on wpGetPaid.com here: %sInvoicing Addons%s', 'invoicing'), '<a href="https://wpinvoicing.com/downloads/category/addons/">', '</a>'); ?></p>
215
+	<?php } if ($current_tab == 'gateways') { ?>
216
+    <p><?php printf(esc_attr__('All of our Payment Gateways can be found on wpGetPaid.com here: %sGetPaid Payment Gateways %s', 'invoicing'), '<a href="https://wpinvoicing.com/downloads/category/gateways/">', '</a>'); ?></p>
217 217
     <?php } ?>
218 218
 
219
-	<div id="wpi-wpeu-required-activation" style="display:none;"><span class="wpi-notification "><?php echo wp_kses_post(  sprintf( __( "The plugin <a href='https://wpeasyupdates.com/' target='_blank'>WP Easy Updates</a> is required to check for and update some installed plugins/themes, please <a href='%s'>activate</a> it now.", 'invoicing' ), wp_nonce_url( admin_url( 'plugins.php?action=activate&plugin=wp-easy-updates/external-updates.php' ), 'activate-plugin_wp-easy-updates/external-updates.php' ) ) ); ?></span></div>
220
-	<div id="wpi-wpeu-required-for-external" style="display:none;"><span class="wpi-notification "><?php echo wp_kses_post( sprintf( __( "The plugin <a href='https://wpeasyupdates.com/' target='_blank'>WP Easy Updates</a> is required to check for and update some installed plugins/themes, please <a href='%s' onclick='window.open(\"https://wpeasyupdates.com/wp-easy-updates.zip\", \"_blank\");' >download</a> and install it now.", 'invoicing' ), admin_url( 'plugin-install.php?tab=upload&wpeu-install=true' ) ) ); ?></span></div>
219
+	<div id="wpi-wpeu-required-activation" style="display:none;"><span class="wpi-notification "><?php echo wp_kses_post(sprintf(__("The plugin <a href='https://wpeasyupdates.com/' target='_blank'>WP Easy Updates</a> is required to check for and update some installed plugins/themes, please <a href='%s'>activate</a> it now.", 'invoicing'), wp_nonce_url(admin_url('plugins.php?action=activate&plugin=wp-easy-updates/external-updates.php'), 'activate-plugin_wp-easy-updates/external-updates.php'))); ?></span></div>
220
+	<div id="wpi-wpeu-required-for-external" style="display:none;"><span class="wpi-notification "><?php echo wp_kses_post(sprintf(__("The plugin <a href='https://wpeasyupdates.com/' target='_blank'>WP Easy Updates</a> is required to check for and update some installed plugins/themes, please <a href='%s' onclick='window.open(\"https://wpeasyupdates.com/wp-easy-updates.zip\", \"_blank\");' >download</a> and install it now.", 'invoicing'), admin_url('plugin-install.php?tab=upload&wpeu-install=true'))); ?></span></div>
221 221
 	<div id="wpeu-licence-popup" style="display:none;">
222 222
 		<span class="wpi-notification noti-white">
223
-			<h3 class="wpeu-licence-title"><?php esc_html_e( 'Licence key', 'invoicing' ); ?></h3>
224
-			<input class="wpeu-licence-key" type="text" placeholder="<?php esc_attr_e( 'Enter your licence key', 'invoicing' ); ?>"> <button class="button-primary wpeu-licence-popup-button" ><?php esc_html_e( 'Install', 'invoicing' ); ?></button>
223
+			<h3 class="wpeu-licence-title"><?php esc_html_e('Licence key', 'invoicing'); ?></h3>
224
+			<input class="wpeu-licence-key" type="text" placeholder="<?php esc_attr_e('Enter your licence key', 'invoicing'); ?>"> <button class="button-primary wpeu-licence-popup-button" ><?php esc_html_e('Install', 'invoicing'); ?></button>
225 225
 			<br>
226 226
 			<?php
227
-			printf( esc_html__( '%1$sFind your licence key here%2$s OR %3$sBuy one here%4$s', 'invoicing' ), '<a href="https://wpinvoicing.com/your-account/" target="_blank">', '</a>', '<a class="wpeu-licence-link" href="https://wpinvoicing.com/downloads/category/addons/" target="_blank">', '</a>' );
227
+			printf(esc_html__('%1$sFind your licence key here%2$s OR %3$sBuy one here%4$s', 'invoicing'), '<a href="https://wpinvoicing.com/your-account/" target="_blank">', '</a>', '<a class="wpeu-licence-link" href="https://wpinvoicing.com/downloads/category/addons/" target="_blank">', '</a>');
228 228
 			?>
229 229
 		</span>
230 230
 	</div>
Please login to merge, or discard this patch.
Braces   +2 added lines, -4 removed lines patch added patch discarded remove patch
@@ -159,12 +159,10 @@
 block discarded – undo
159 159
 									if ( 'stripe-payment-gateway' == $addon->info->slug ) {
160 160
 										$addon->info->slug = 'getpaid-stripe-payments';
161 161
 										$addon->info->link = 'https://wordpress.org/plugins/getpaid-stripe-payments/';
162
-									}
163
-                                    elseif( 'wallet' == $addon->info->slug ){
162
+									} elseif( 'wallet' == $addon->info->slug ){
164 163
 										$addon->info->slug = 'getpaid-wallet';
165 164
 										$addon->info->link = 'https://wordpress.org/plugins/getpaid-wallet/';
166
-									}
167
-                                    elseif( 'item-inventory' == $addon->info->slug ){
165
+									} elseif( 'item-inventory' == $addon->info->slug ){
168 166
 										$addon->info->slug = 'getpaid-item-inventory';
169 167
 										$addon->info->link = 'https://wordpress.org/plugins/getpaid-item-inventory/';
170 168
 									}
Please login to merge, or discard this patch.
includes/class-wpinv-addons.php 2 patches
Indentation   +210 added lines, -210 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,94 +15,94 @@  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
-		} elseif ( ! empty( $section ) ) {
49
-			if ( false === ( $section_data = get_transient( 'wpi_addons_section_' . $section_id ) ) ) { //@todo restore after testing
50
-			//if ( 1==1) {
51
-
52
-				$query_args = array(
53
-					'category' => $section_id,
54
-					'number'   => 100,
55
-				);
56
-				$query_args = apply_filters( 'wpeu_edd_api_query_args', $query_args, $api_url, $section_id );
57
-
58
-				$raw_section = wp_safe_remote_get(
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
+        } elseif ( ! empty( $section ) ) {
49
+            if ( false === ( $section_data = get_transient( 'wpi_addons_section_' . $section_id ) ) ) { //@todo restore after testing
50
+            //if ( 1==1) {
51
+
52
+                $query_args = array(
53
+                    'category' => $section_id,
54
+                    'number'   => 100,
55
+                );
56
+                $query_args = apply_filters( 'wpeu_edd_api_query_args', $query_args, $api_url, $section_id );
57
+
58
+                $raw_section = wp_safe_remote_get(
59 59
                     esc_url_raw( add_query_arg( $query_args, $api_url ) ),
60 60
                     array(
61
-						'user-agent' => 'Invoicing Addons Page',
62
-						'timeout'    => 15,
61
+                        'user-agent' => 'Invoicing Addons Page',
62
+                        'timeout'    => 15,
63 63
                     )
64 64
                 );
65 65
 
66
-				if ( ! is_wp_error( $raw_section ) ) {
67
-					$section_data = json_decode( wp_remote_retrieve_body( $raw_section ) );
66
+                if ( ! is_wp_error( $raw_section ) ) {
67
+                    $section_data = json_decode( wp_remote_retrieve_body( $raw_section ) );
68 68
 
69
-					if ( ! empty( $section_data->products ) ) {
70
-						set_transient( 'wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS );
71
-					}
72
-				}
73
-			}
69
+                    if ( ! empty( $section_data->products ) ) {
70
+                        set_transient( 'wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS );
71
+                    }
72
+                }
73
+            }
74 74
 }
75 75
 
76
-		$products = isset( $section_data->products ) ? $section_data->products : array();
77
-		if ( 'addons' == $section_id ) {
78
-
79
-			$quotes = new stdClass();
80
-			$quotes->info = new stdClass();
81
-			$quotes->info->id = '';
82
-			$quotes->info->slug = 'invoicing-quotes';
83
-			$quotes->info->title = __( 'Quotes', 'invoicing' );
84
-			$quotes->info->excerpt = __( 'Create quotes and estimates', 'invoicing' );
85
-			$quotes->info->link = 'https://wordpress.org/plugins/invoicing-quotes/';
86
-			$quotes->info->thumbnail = WPINV_PLUGIN_URL . 'assets/images/Quotes-1-768x384.png';
87
-
88
-			$products[] = $quotes;
89
-		}
90
-
91
-		return apply_filters( 'wpi_addons_section_data', $products, $section_id );
92
-	}
93
-
94
-	/**
95
-	 * Outputs a button.
96
-	 *ccc
97
-	 * @param string $url
98
-	 * @param string $text
99
-	 * @param string $theme
100
-	 * @param string $plugin
101
-	 */
102
-	public function output_button( $addon ) {
76
+        $products = isset( $section_data->products ) ? $section_data->products : array();
77
+        if ( 'addons' == $section_id ) {
78
+
79
+            $quotes = new stdClass();
80
+            $quotes->info = new stdClass();
81
+            $quotes->info->id = '';
82
+            $quotes->info->slug = 'invoicing-quotes';
83
+            $quotes->info->title = __( 'Quotes', 'invoicing' );
84
+            $quotes->info->excerpt = __( 'Create quotes and estimates', 'invoicing' );
85
+            $quotes->info->link = 'https://wordpress.org/plugins/invoicing-quotes/';
86
+            $quotes->info->thumbnail = WPINV_PLUGIN_URL . 'assets/images/Quotes-1-768x384.png';
87
+
88
+            $products[] = $quotes;
89
+        }
90
+
91
+        return apply_filters( 'wpi_addons_section_data', $products, $section_id );
92
+    }
93
+
94
+    /**
95
+     * Outputs a button.
96
+     *ccc
97
+     * @param string $url
98
+     * @param string $text
99
+     * @param string $theme
100
+     * @param string $plugin
101
+     */
102
+    public function output_button( $addon ) {
103 103
 
104 104
 //        print_r($addon);
105
-		$current_tab     = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] );
105
+        $current_tab     = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] );
106 106
 //		$button_text = __('Free','invoicing');
107 107
 //		$licensing = false;
108 108
 //		$installed = false;
@@ -114,128 +114,128 @@  discard block
 block discarded – undo
114 114
 //		$install_status = 'get';
115 115
 //		$onclick = '';
116 116
 
117
-		$wp_org_themes = array( 'supreme-directory', 'directory-starter' );
118
-
119
-		$button_args = array(
120
-			'type'           => ($current_tab == 'addons' || $current_tab == 'gateways') ? 'addons' : $current_tab,
121
-			'id'             => isset( $addon->info->id ) ? absint( $addon->info->id ) : '',
122
-			'title'          => isset( $addon->info->title ) ? $addon->info->title : '',
123
-			'button_text'    => __( 'Free', 'invoicing' ),
124
-			'price_text'     => __( 'Free', 'invoicing' ),
125
-			'link'           => isset( $addon->info->link ) ? $addon->info->link : '', // link to product
126
-			'url'            => isset( $addon->info->link ) ? $addon->info->link : '', // button url
127
-			'class'          => 'button-primary',
128
-			'install_status' => 'get',
129
-			'installed'      => false,
130
-			'price'          => '',
131
-			'licensing'      => isset( $addon->licensing->enabled ) && $addon->licensing->enabled ? true : false,
132
-			'license'        => isset( $addon->licensing->license ) && $addon->licensing->license ? $addon->licensing->license : '',
133
-			'onclick'        => '',
134
-			'slug'           => isset( $addon->info->slug ) ? $addon->info->slug : '',
135
-			'active'         => false,
136
-			'file'           => '',
137
-			'update_url'     => '',
138
-		);
139
-
140
-		if ( 'invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ( $current_tab == 'recommended_plugins' && isset( $addon->info->slug ) && $addon->info->slug ) ) {
141
-			include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; //for plugins_api..
142
-			$status = install_plugin_install_status(
117
+        $wp_org_themes = array( 'supreme-directory', 'directory-starter' );
118
+
119
+        $button_args = array(
120
+            'type'           => ($current_tab == 'addons' || $current_tab == 'gateways') ? 'addons' : $current_tab,
121
+            'id'             => isset( $addon->info->id ) ? absint( $addon->info->id ) : '',
122
+            'title'          => isset( $addon->info->title ) ? $addon->info->title : '',
123
+            'button_text'    => __( 'Free', 'invoicing' ),
124
+            'price_text'     => __( 'Free', 'invoicing' ),
125
+            'link'           => isset( $addon->info->link ) ? $addon->info->link : '', // link to product
126
+            'url'            => isset( $addon->info->link ) ? $addon->info->link : '', // button url
127
+            'class'          => 'button-primary',
128
+            'install_status' => 'get',
129
+            'installed'      => false,
130
+            'price'          => '',
131
+            'licensing'      => isset( $addon->licensing->enabled ) && $addon->licensing->enabled ? true : false,
132
+            'license'        => isset( $addon->licensing->license ) && $addon->licensing->license ? $addon->licensing->license : '',
133
+            'onclick'        => '',
134
+            'slug'           => isset( $addon->info->slug ) ? $addon->info->slug : '',
135
+            'active'         => false,
136
+            'file'           => '',
137
+            'update_url'     => '',
138
+        );
139
+
140
+        if ( 'invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ( $current_tab == 'recommended_plugins' && isset( $addon->info->slug ) && $addon->info->slug ) ) {
141
+            include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; //for plugins_api..
142
+            $status = install_plugin_install_status(
143 143
                 array(
144
-					'slug'    => $button_args['slug'],
145
-					'version' => '',
144
+                    'slug'    => $button_args['slug'],
145
+                    'version' => '',
146 146
                 )
147 147
             );
148
-			$button_args['install_status'] = isset( $status['status'] ) ? $status['status'] : 'install';
149
-			$button_args['file'] = isset( $status['file'] ) ? $status['file'] : '';
150
-		} elseif ( ($current_tab == 'addons' || $current_tab == 'gateways') && isset( $addon->info->id ) && $addon->info->id ) {
151
-			include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; //for plugins_api..
152
-			if ( ! empty( $addon->licensing->edd_slug ) ) {
148
+            $button_args['install_status'] = isset( $status['status'] ) ? $status['status'] : 'install';
149
+            $button_args['file'] = isset( $status['file'] ) ? $status['file'] : '';
150
+        } elseif ( ($current_tab == 'addons' || $current_tab == 'gateways') && isset( $addon->info->id ) && $addon->info->id ) {
151
+            include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; //for plugins_api..
152
+            if ( ! empty( $addon->licensing->edd_slug ) ) {
153 153
 $button_args['slug'] = $addon->licensing->edd_slug;}
154
-			$status = self::install_plugin_install_status( $addon );
155
-			$button_args['file'] = isset( $status['file'] ) ? $status['file'] : '';
156
-			if ( isset( $status['status'] ) ) {
154
+            $status = self::install_plugin_install_status( $addon );
155
+            $button_args['file'] = isset( $status['file'] ) ? $status['file'] : '';
156
+            if ( isset( $status['status'] ) ) {
157 157
 $button_args['install_status'] = $status['status'];}
158
-			$button_args['update_url'] = 'https://wpinvoicing.com';
159
-		} elseif ( $current_tab == 'themes' && isset( $addon->info->id ) && $addon->info->id ) {
160
-			if ( ! empty( $addon->licensing->edd_slug ) ) {
158
+            $button_args['update_url'] = 'https://wpinvoicing.com';
159
+        } elseif ( $current_tab == 'themes' && isset( $addon->info->id ) && $addon->info->id ) {
160
+            if ( ! empty( $addon->licensing->edd_slug ) ) {
161 161
 $button_args['slug'] = $addon->licensing->edd_slug;}
162
-			$button_args['installed'] = self::is_theme_installed( $addon );
163
-			if ( ! in_array( $button_args['slug'], $wp_org_themes ) ) {
164
-				$button_args['update_url'] = 'https://wpinvoicing.com';
165
-			}
166
-		}
167
-
168
-		// set price
169
-		if ( isset( $addon->pricing ) && ! empty( $addon->pricing ) ) {
170
-			if ( is_object( $addon->pricing ) ) {
171
-				$prices = (array)$addon->pricing;
172
-				$button_args['price'] = reset( $prices );
173
-			} elseif ( isset( $addon->pricing ) ) {
174
-				$button_args['price'] = $addon->pricing;
175
-			}
176
-		}
177
-
178
-		// set price text
179
-		if ( $button_args['price'] && $button_args['price'] != '0.00' ) {
180
-			$button_args['price_text'] = sprintf( __( 'From: $%d', 'invoicing' ), $button_args['price'] );
181
-		}
182
-
183
-		// set if installed
184
-		if ( in_array( $button_args['install_status'], array( 'installed', 'latest_installed', 'update_available', 'newer_installed' ) ) ) {
185
-			$button_args['installed'] = true;
186
-		}
162
+            $button_args['installed'] = self::is_theme_installed( $addon );
163
+            if ( ! in_array( $button_args['slug'], $wp_org_themes ) ) {
164
+                $button_args['update_url'] = 'https://wpinvoicing.com';
165
+            }
166
+        }
167
+
168
+        // set price
169
+        if ( isset( $addon->pricing ) && ! empty( $addon->pricing ) ) {
170
+            if ( is_object( $addon->pricing ) ) {
171
+                $prices = (array)$addon->pricing;
172
+                $button_args['price'] = reset( $prices );
173
+            } elseif ( isset( $addon->pricing ) ) {
174
+                $button_args['price'] = $addon->pricing;
175
+            }
176
+        }
177
+
178
+        // set price text
179
+        if ( $button_args['price'] && $button_args['price'] != '0.00' ) {
180
+            $button_args['price_text'] = sprintf( __( 'From: $%d', 'invoicing' ), $button_args['price'] );
181
+        }
182
+
183
+        // set if installed
184
+        if ( in_array( $button_args['install_status'], array( 'installed', 'latest_installed', 'update_available', 'newer_installed' ) ) ) {
185
+            $button_args['installed'] = true;
186
+        }
187 187
 
188 188
 //		print_r($button_args);
189
-		// set if active
190
-		if ( $button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes') ) {
191
-			if ( $button_args['type'] != 'themes' ) {
192
-				$button_args['active'] = is_plugin_active( $button_args['file'] );
193
-			} else {
194
-				$button_args['active'] = self::is_theme_active( $addon );
195
-			}
196
-		}
197
-
198
-		// set button text and class
199
-		if ( $button_args['active'] ) {
200
-			$button_args['button_text'] = __( 'Active', 'invoicing' );
201
-			$button_args['class'] = ' button-secondary disabled ';
202
-		} elseif ( $button_args['installed'] ) {
203
-			$button_args['button_text'] = __( 'Activate', 'invoicing' );
204
-
205
-			if ( $button_args['type'] != 'themes' ) {
206
-				if ( current_user_can( 'manage_options' ) ) {
207
-					$button_args['url'] = wp_nonce_url( admin_url( 'plugins.php?action=activate&plugin=' . $button_args['file'] ), 'activate-plugin_' . $button_args['file'] );
208
-				} else {
209
-					$button_args['url'] = '#';
210
-				}
211
-			} else {
212
-				if ( current_user_can( 'switch_themes' ) ) {
213
-					$button_args['url'] = self::get_theme_activation_url( $addon );
214
-				} else {
215
-					$button_args['url'] = '#';
216
-				}
217
-			}
189
+        // set if active
190
+        if ( $button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes') ) {
191
+            if ( $button_args['type'] != 'themes' ) {
192
+                $button_args['active'] = is_plugin_active( $button_args['file'] );
193
+            } else {
194
+                $button_args['active'] = self::is_theme_active( $addon );
195
+            }
196
+        }
197
+
198
+        // set button text and class
199
+        if ( $button_args['active'] ) {
200
+            $button_args['button_text'] = __( 'Active', 'invoicing' );
201
+            $button_args['class'] = ' button-secondary disabled ';
202
+        } elseif ( $button_args['installed'] ) {
203
+            $button_args['button_text'] = __( 'Activate', 'invoicing' );
204
+
205
+            if ( $button_args['type'] != 'themes' ) {
206
+                if ( current_user_can( 'manage_options' ) ) {
207
+                    $button_args['url'] = wp_nonce_url( admin_url( 'plugins.php?action=activate&plugin=' . $button_args['file'] ), 'activate-plugin_' . $button_args['file'] );
208
+                } else {
209
+                    $button_args['url'] = '#';
210
+                }
211
+            } else {
212
+                if ( current_user_can( 'switch_themes' ) ) {
213
+                    $button_args['url'] = self::get_theme_activation_url( $addon );
214
+                } else {
215
+                    $button_args['url'] = '#';
216
+                }
217
+            }
218 218
         } else {
219
-			if ( $button_args['type'] == 'recommended_plugins' ) {
220
-				$button_args['button_text'] = __( 'Install', 'invoicing' );
221
-					} else {
222
-				$button_args['button_text'] = __( 'Get it', 'invoicing' );
219
+            if ( $button_args['type'] == 'recommended_plugins' ) {
220
+                $button_args['button_text'] = __( 'Install', 'invoicing' );
221
+                    } else {
222
+                $button_args['button_text'] = __( 'Get it', 'invoicing' );
223 223
 
224
-				/*if($button_args['type'] == 'themes' && in_array($button_args['slug'],$wp_org_themes) ){
224
+                /*if($button_args['type'] == 'themes' && in_array($button_args['slug'],$wp_org_themes) ){
225 225
 			$button_args['button_text'] = __('Install','invoicing');
226 226
 			$button_args['url'] = self::get_theme_install_url($button_args['slug']);
227 227
 			$button_args['onclick'] = 'gd_set_button_installing(this);';
228 228
 				}*/
229 229
 
230
-					}
231
-		}
230
+                    }
231
+        }
232 232
 
233
-		// filter the button arguments
234
-		$button_args = apply_filters( 'edd_api_button_args', $button_args );
233
+        // filter the button arguments
234
+        $button_args = apply_filters( 'edd_api_button_args', $button_args );
235 235
 //		print_r($button_args);
236
-		// set price text
237
-		if ( isset( $button_args['price_text'] ) ) {
238
-			?>
236
+        // set price text
237
+        if ( isset( $button_args['price_text'] ) ) {
238
+            ?>
239 239
 			<a
240 240
 				target="_blank"
241 241
 				class="addons-price-text"
@@ -243,9 +243,9 @@  discard block
 block discarded – undo
243 243
 				<?php echo esc_html( $button_args['price_text'] ); ?>
244 244
 			</a>
245 245
 			<?php
246
-		}
246
+        }
247 247
 
248
-		?>
248
+        ?>
249 249
 		<a
250 250
 			data-licence="<?php echo esc_attr( $button_args['license'] ); ?>"
251 251
 			data-licensing="<?php echo $button_args['licensing'] ? 1 : 0; ?>"
@@ -269,33 +269,33 @@  discard block
 block discarded – undo
269 269
 		</a>
270 270
 		<?php
271 271
 
272
-	}
273
-
274
-
275
-	/**
276
-	 * Handles output of the addons page in admin.
277
-	 */
278
-	public function output() {
279
-		$tabs            = self::get_tabs();
280
-		$sections        = self::get_sections();
281
-		$theme           = wp_get_theme();
282
-		$section_keys    = array_keys( $sections );
283
-		$current_section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : current( $section_keys );
284
-		$current_tab     = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] );
285
-		include_once WPINV_PLUGIN_DIR . '/includes/admin/html-admin-page-addons.php';
286
-	}
287
-
288
-	/**
289
-	 * A list of recommended wp.org plugins.
290
-	 * @return array
291
-	 */
292
-	public function get_recommend_wp_plugins() {
293
-		$plugins = array(
272
+    }
273
+
274
+
275
+    /**
276
+     * Handles output of the addons page in admin.
277
+     */
278
+    public function output() {
279
+        $tabs            = self::get_tabs();
280
+        $sections        = self::get_sections();
281
+        $theme           = wp_get_theme();
282
+        $section_keys    = array_keys( $sections );
283
+        $current_section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : current( $section_keys );
284
+        $current_tab     = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] );
285
+        include_once WPINV_PLUGIN_DIR . '/includes/admin/html-admin-page-addons.php';
286
+    }
287
+
288
+    /**
289
+     * A list of recommended wp.org plugins.
290
+     * @return array
291
+     */
292
+    public function get_recommend_wp_plugins() {
293
+        $plugins = array(
294 294
             'invoicing-quotes' => array(
295 295
                 'url'       => 'https://wordpress.org/plugins/invoicing-quotes/',
296 296
                 'slug'      => 'invoicing-quotes',
297
-				'name'      => 'Quotes',
298
-				'thumbnail' => 'https://ps.w.org/invoicing-quotes/assets/banner-772x250.png',
297
+                'name'      => 'Quotes',
298
+                'thumbnail' => 'https://ps.w.org/invoicing-quotes/assets/banner-772x250.png',
299 299
                 'desc'      => __( 'Allows you to create quotes, send them to clients and convert them to Invoices when accepted by the customer.', 'invoicing' ),
300 300
             ),
301 301
             'geodirectory'     => array(
@@ -310,8 +310,8 @@  discard block
 block discarded – undo
310 310
                 'name' => 'UsersWP',
311 311
                 'desc' => __( 'Allow frontend user login and registration as well as have slick profile pages.', 'invoicing' ),
312 312
             ),
313
-		);
313
+        );
314 314
 
315
-		return $plugins;
316
-	}
315
+        return $plugins;
316
+    }
317 317
 }
Please login to merge, or discard this patch.
Spacing   +98 added lines, -98 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
 
@@ -22,10 +22,10 @@  discard block
 block discarded – undo
22 22
 	 */
23 23
 	public function get_tabs() {
24 24
 		$tabs = array(
25
-			'addons'              => __( 'Addons', 'invoicing' ),
26
-            'gateways'            => __( 'Payment Gateways', 'invoicing' ),
27
-            'recommended_plugins' => __( 'Recommended plugins', 'invoicing' ),
28
-            'membership'          => __( 'Membership', 'invoicing' ),
25
+			'addons'              => __('Addons', 'invoicing'),
26
+            'gateways'            => __('Payment Gateways', 'invoicing'),
27
+            'recommended_plugins' => __('Recommended plugins', 'invoicing'),
28
+            'membership'          => __('Membership', 'invoicing'),
29 29
 		);
30 30
 
31 31
 		return $tabs;
@@ -38,57 +38,57 @@  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
-		} elseif ( ! empty( $section ) ) {
49
-			if ( false === ( $section_data = get_transient( 'wpi_addons_section_' . $section_id ) ) ) { //@todo restore after testing
48
+		} elseif (!empty($section)) {
49
+			if (false === ($section_data = get_transient('wpi_addons_section_' . $section_id))) { //@todo restore after testing
50 50
 			//if ( 1==1) {
51 51
 
52 52
 				$query_args = array(
53 53
 					'category' => $section_id,
54 54
 					'number'   => 100,
55 55
 				);
56
-				$query_args = apply_filters( 'wpeu_edd_api_query_args', $query_args, $api_url, $section_id );
56
+				$query_args = apply_filters('wpeu_edd_api_query_args', $query_args, $api_url, $section_id);
57 57
 
58 58
 				$raw_section = wp_safe_remote_get(
59
-                    esc_url_raw( add_query_arg( $query_args, $api_url ) ),
59
+                    esc_url_raw(add_query_arg($query_args, $api_url)),
60 60
                     array(
61 61
 						'user-agent' => 'Invoicing Addons Page',
62 62
 						'timeout'    => 15,
63 63
                     )
64 64
                 );
65 65
 
66
-				if ( ! is_wp_error( $raw_section ) ) {
67
-					$section_data = json_decode( wp_remote_retrieve_body( $raw_section ) );
66
+				if (!is_wp_error($raw_section)) {
67
+					$section_data = json_decode(wp_remote_retrieve_body($raw_section));
68 68
 
69
-					if ( ! empty( $section_data->products ) ) {
70
-						set_transient( 'wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS );
69
+					if (!empty($section_data->products)) {
70
+						set_transient('wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS);
71 71
 					}
72 72
 				}
73 73
 			}
74 74
 }
75 75
 
76
-		$products = isset( $section_data->products ) ? $section_data->products : array();
77
-		if ( 'addons' == $section_id ) {
76
+		$products = isset($section_data->products) ? $section_data->products : array();
77
+		if ('addons' == $section_id) {
78 78
 
79 79
 			$quotes = new stdClass();
80 80
 			$quotes->info = new stdClass();
81 81
 			$quotes->info->id = '';
82 82
 			$quotes->info->slug = 'invoicing-quotes';
83
-			$quotes->info->title = __( 'Quotes', 'invoicing' );
84
-			$quotes->info->excerpt = __( 'Create quotes and estimates', 'invoicing' );
83
+			$quotes->info->title = __('Quotes', 'invoicing');
84
+			$quotes->info->excerpt = __('Create quotes and estimates', 'invoicing');
85 85
 			$quotes->info->link = 'https://wordpress.org/plugins/invoicing-quotes/';
86 86
 			$quotes->info->thumbnail = WPINV_PLUGIN_URL . 'assets/images/Quotes-1-768x384.png';
87 87
 
88 88
 			$products[] = $quotes;
89 89
 		}
90 90
 
91
-		return apply_filters( 'wpi_addons_section_data', $products, $section_id );
91
+		return apply_filters('wpi_addons_section_data', $products, $section_id);
92 92
 	}
93 93
 
94 94
 	/**
@@ -99,10 +99,10 @@  discard block
 block discarded – undo
99 99
 	 * @param string $theme
100 100
 	 * @param string $plugin
101 101
 	 */
102
-	public function output_button( $addon ) {
102
+	public function output_button($addon) {
103 103
 
104 104
 //        print_r($addon);
105
-		$current_tab     = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] );
105
+		$current_tab = empty($_GET['tab']) ? 'addons' : sanitize_title($_GET['tab']);
106 106
 //		$button_text = __('Free','invoicing');
107 107
 //		$licensing = false;
108 108
 //		$installed = false;
@@ -114,30 +114,30 @@  discard block
 block discarded – undo
114 114
 //		$install_status = 'get';
115 115
 //		$onclick = '';
116 116
 
117
-		$wp_org_themes = array( 'supreme-directory', 'directory-starter' );
117
+		$wp_org_themes = array('supreme-directory', 'directory-starter');
118 118
 
119 119
 		$button_args = array(
120 120
 			'type'           => ($current_tab == 'addons' || $current_tab == 'gateways') ? 'addons' : $current_tab,
121
-			'id'             => isset( $addon->info->id ) ? absint( $addon->info->id ) : '',
122
-			'title'          => isset( $addon->info->title ) ? $addon->info->title : '',
123
-			'button_text'    => __( 'Free', 'invoicing' ),
124
-			'price_text'     => __( 'Free', 'invoicing' ),
125
-			'link'           => isset( $addon->info->link ) ? $addon->info->link : '', // link to product
126
-			'url'            => isset( $addon->info->link ) ? $addon->info->link : '', // button url
121
+			'id'             => isset($addon->info->id) ? absint($addon->info->id) : '',
122
+			'title'          => isset($addon->info->title) ? $addon->info->title : '',
123
+			'button_text'    => __('Free', 'invoicing'),
124
+			'price_text'     => __('Free', 'invoicing'),
125
+			'link'           => isset($addon->info->link) ? $addon->info->link : '', // link to product
126
+			'url'            => isset($addon->info->link) ? $addon->info->link : '', // button url
127 127
 			'class'          => 'button-primary',
128 128
 			'install_status' => 'get',
129 129
 			'installed'      => false,
130 130
 			'price'          => '',
131
-			'licensing'      => isset( $addon->licensing->enabled ) && $addon->licensing->enabled ? true : false,
132
-			'license'        => isset( $addon->licensing->license ) && $addon->licensing->license ? $addon->licensing->license : '',
131
+			'licensing'      => isset($addon->licensing->enabled) && $addon->licensing->enabled ? true : false,
132
+			'license'        => isset($addon->licensing->license) && $addon->licensing->license ? $addon->licensing->license : '',
133 133
 			'onclick'        => '',
134
-			'slug'           => isset( $addon->info->slug ) ? $addon->info->slug : '',
134
+			'slug'           => isset($addon->info->slug) ? $addon->info->slug : '',
135 135
 			'active'         => false,
136 136
 			'file'           => '',
137 137
 			'update_url'     => '',
138 138
 		);
139 139
 
140
-		if ( 'invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ( $current_tab == 'recommended_plugins' && isset( $addon->info->slug ) && $addon->info->slug ) ) {
140
+		if ('invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ($current_tab == 'recommended_plugins' && isset($addon->info->slug) && $addon->info->slug)) {
141 141
 			include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; //for plugins_api..
142 142
 			$status = install_plugin_install_status(
143 143
                 array(
@@ -145,81 +145,81 @@  discard block
 block discarded – undo
145 145
 					'version' => '',
146 146
                 )
147 147
             );
148
-			$button_args['install_status'] = isset( $status['status'] ) ? $status['status'] : 'install';
149
-			$button_args['file'] = isset( $status['file'] ) ? $status['file'] : '';
150
-		} elseif ( ($current_tab == 'addons' || $current_tab == 'gateways') && isset( $addon->info->id ) && $addon->info->id ) {
148
+			$button_args['install_status'] = isset($status['status']) ? $status['status'] : 'install';
149
+			$button_args['file'] = isset($status['file']) ? $status['file'] : '';
150
+		} elseif (($current_tab == 'addons' || $current_tab == 'gateways') && isset($addon->info->id) && $addon->info->id) {
151 151
 			include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; //for plugins_api..
152
-			if ( ! empty( $addon->licensing->edd_slug ) ) {
153
-$button_args['slug'] = $addon->licensing->edd_slug;}
154
-			$status = self::install_plugin_install_status( $addon );
155
-			$button_args['file'] = isset( $status['file'] ) ? $status['file'] : '';
156
-			if ( isset( $status['status'] ) ) {
157
-$button_args['install_status'] = $status['status'];}
152
+			if (!empty($addon->licensing->edd_slug)) {
153
+$button_args['slug'] = $addon->licensing->edd_slug; }
154
+			$status = self::install_plugin_install_status($addon);
155
+			$button_args['file'] = isset($status['file']) ? $status['file'] : '';
156
+			if (isset($status['status'])) {
157
+$button_args['install_status'] = $status['status']; }
158 158
 			$button_args['update_url'] = 'https://wpinvoicing.com';
159
-		} elseif ( $current_tab == 'themes' && isset( $addon->info->id ) && $addon->info->id ) {
160
-			if ( ! empty( $addon->licensing->edd_slug ) ) {
161
-$button_args['slug'] = $addon->licensing->edd_slug;}
162
-			$button_args['installed'] = self::is_theme_installed( $addon );
163
-			if ( ! in_array( $button_args['slug'], $wp_org_themes ) ) {
159
+		} elseif ($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) {
160
+			if (!empty($addon->licensing->edd_slug)) {
161
+$button_args['slug'] = $addon->licensing->edd_slug; }
162
+			$button_args['installed'] = self::is_theme_installed($addon);
163
+			if (!in_array($button_args['slug'], $wp_org_themes)) {
164 164
 				$button_args['update_url'] = 'https://wpinvoicing.com';
165 165
 			}
166 166
 		}
167 167
 
168 168
 		// set price
169
-		if ( isset( $addon->pricing ) && ! empty( $addon->pricing ) ) {
170
-			if ( is_object( $addon->pricing ) ) {
171
-				$prices = (array)$addon->pricing;
172
-				$button_args['price'] = reset( $prices );
173
-			} elseif ( isset( $addon->pricing ) ) {
169
+		if (isset($addon->pricing) && !empty($addon->pricing)) {
170
+			if (is_object($addon->pricing)) {
171
+				$prices = (array) $addon->pricing;
172
+				$button_args['price'] = reset($prices);
173
+			} elseif (isset($addon->pricing)) {
174 174
 				$button_args['price'] = $addon->pricing;
175 175
 			}
176 176
 		}
177 177
 
178 178
 		// set price text
179
-		if ( $button_args['price'] && $button_args['price'] != '0.00' ) {
180
-			$button_args['price_text'] = sprintf( __( 'From: $%d', 'invoicing' ), $button_args['price'] );
179
+		if ($button_args['price'] && $button_args['price'] != '0.00') {
180
+			$button_args['price_text'] = sprintf(__('From: $%d', 'invoicing'), $button_args['price']);
181 181
 		}
182 182
 
183 183
 		// set if installed
184
-		if ( in_array( $button_args['install_status'], array( 'installed', 'latest_installed', 'update_available', 'newer_installed' ) ) ) {
184
+		if (in_array($button_args['install_status'], array('installed', 'latest_installed', 'update_available', 'newer_installed'))) {
185 185
 			$button_args['installed'] = true;
186 186
 		}
187 187
 
188 188
 //		print_r($button_args);
189 189
 		// set if active
190
-		if ( $button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes') ) {
191
-			if ( $button_args['type'] != 'themes' ) {
192
-				$button_args['active'] = is_plugin_active( $button_args['file'] );
190
+		if ($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')) {
191
+			if ($button_args['type'] != 'themes') {
192
+				$button_args['active'] = is_plugin_active($button_args['file']);
193 193
 			} else {
194
-				$button_args['active'] = self::is_theme_active( $addon );
194
+				$button_args['active'] = self::is_theme_active($addon);
195 195
 			}
196 196
 		}
197 197
 
198 198
 		// set button text and class
199
-		if ( $button_args['active'] ) {
200
-			$button_args['button_text'] = __( 'Active', 'invoicing' );
199
+		if ($button_args['active']) {
200
+			$button_args['button_text'] = __('Active', 'invoicing');
201 201
 			$button_args['class'] = ' button-secondary disabled ';
202
-		} elseif ( $button_args['installed'] ) {
203
-			$button_args['button_text'] = __( 'Activate', 'invoicing' );
202
+		} elseif ($button_args['installed']) {
203
+			$button_args['button_text'] = __('Activate', 'invoicing');
204 204
 
205
-			if ( $button_args['type'] != 'themes' ) {
206
-				if ( current_user_can( 'manage_options' ) ) {
207
-					$button_args['url'] = wp_nonce_url( admin_url( 'plugins.php?action=activate&plugin=' . $button_args['file'] ), 'activate-plugin_' . $button_args['file'] );
205
+			if ($button_args['type'] != 'themes') {
206
+				if (current_user_can('manage_options')) {
207
+					$button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin=' . $button_args['file']), 'activate-plugin_' . $button_args['file']);
208 208
 				} else {
209 209
 					$button_args['url'] = '#';
210 210
 				}
211 211
 			} else {
212
-				if ( current_user_can( 'switch_themes' ) ) {
213
-					$button_args['url'] = self::get_theme_activation_url( $addon );
212
+				if (current_user_can('switch_themes')) {
213
+					$button_args['url'] = self::get_theme_activation_url($addon);
214 214
 				} else {
215 215
 					$button_args['url'] = '#';
216 216
 				}
217 217
 			}
218 218
         } else {
219
-			if ( $button_args['type'] == 'recommended_plugins' ) {
220
-				$button_args['button_text'] = __( 'Install', 'invoicing' );
219
+			if ($button_args['type'] == 'recommended_plugins') {
220
+				$button_args['button_text'] = __('Install', 'invoicing');
221 221
 					} else {
222
-				$button_args['button_text'] = __( 'Get it', 'invoicing' );
222
+				$button_args['button_text'] = __('Get it', 'invoicing');
223 223
 
224 224
 				/*if($button_args['type'] == 'themes' && in_array($button_args['slug'],$wp_org_themes) ){
225 225
 			$button_args['button_text'] = __('Install','invoicing');
@@ -231,41 +231,41 @@  discard block
 block discarded – undo
231 231
 		}
232 232
 
233 233
 		// filter the button arguments
234
-		$button_args = apply_filters( 'edd_api_button_args', $button_args );
234
+		$button_args = apply_filters('edd_api_button_args', $button_args);
235 235
 //		print_r($button_args);
236 236
 		// set price text
237
-		if ( isset( $button_args['price_text'] ) ) {
237
+		if (isset($button_args['price_text'])) {
238 238
 			?>
239 239
 			<a
240 240
 				target="_blank"
241 241
 				class="addons-price-text"
242
-				href="<?php echo esc_url( $button_args['link'] ); ?>">
243
-				<?php echo esc_html( $button_args['price_text'] ); ?>
242
+				href="<?php echo esc_url($button_args['link']); ?>">
243
+				<?php echo esc_html($button_args['price_text']); ?>
244 244
 			</a>
245 245
 			<?php
246 246
 		}
247 247
 
248 248
 		?>
249 249
 		<a
250
-			data-licence="<?php echo esc_attr( $button_args['license'] ); ?>"
250
+			data-licence="<?php echo esc_attr($button_args['license']); ?>"
251 251
 			data-licensing="<?php echo $button_args['licensing'] ? 1 : 0; ?>"
252
-			data-title="<?php echo esc_attr( $button_args['title'] ); ?>"
253
-			data-type="<?php echo esc_attr( $button_args['type'] ); ?>"
254
-			data-text-error-message="<?php esc_attr_e( 'Something went wrong!', 'invoicing' ); ?>"
255
-			data-text-activate="<?php esc_attr_e( 'Activate', 'invoicing' ); ?>"
256
-			data-text-activating="<?php esc_attr_e( 'Activating', 'invoicing' ); ?>"
257
-			data-text-deactivate="<?php esc_attr_e( 'Deactivate', 'invoicing' ); ?>"
258
-			data-text-installed="<?php esc_attr_e( 'Installed', 'invoicing' ); ?>"
259
-			data-text-install="<?php esc_attr_e( 'Install', 'invoicing' ); ?>"
260
-			data-text-installing="<?php esc_attr_e( 'Installing', 'invoicing' ); ?>"
261
-			data-text-error="<?php esc_attr_e( 'Error', 'invoicing' ); ?>"
252
+			data-title="<?php echo esc_attr($button_args['title']); ?>"
253
+			data-type="<?php echo esc_attr($button_args['type']); ?>"
254
+			data-text-error-message="<?php esc_attr_e('Something went wrong!', 'invoicing'); ?>"
255
+			data-text-activate="<?php esc_attr_e('Activate', 'invoicing'); ?>"
256
+			data-text-activating="<?php esc_attr_e('Activating', 'invoicing'); ?>"
257
+			data-text-deactivate="<?php esc_attr_e('Deactivate', 'invoicing'); ?>"
258
+			data-text-installed="<?php esc_attr_e('Installed', 'invoicing'); ?>"
259
+			data-text-install="<?php esc_attr_e('Install', 'invoicing'); ?>"
260
+			data-text-installing="<?php esc_attr_e('Installing', 'invoicing'); ?>"
261
+			data-text-error="<?php esc_attr_e('Error', 'invoicing'); ?>"
262 262
 			<?php
263
-            if ( ! empty( $button_args['onclick'] ) ) {
264
-echo " onclick='" . esc_attr( $button_args['onclick'] ) . "' ";}
263
+            if (!empty($button_args['onclick'])) {
264
+echo " onclick='" . esc_attr($button_args['onclick']) . "' "; }
265 265
 ?>
266
-			class="addons-button  <?php echo esc_attr( $button_args['class'] ); ?>"
267
-			href="<?php echo esc_url( $button_args['url'] ); ?>">
268
-			<?php echo esc_html( $button_args['button_text'] ); ?>
266
+			class="addons-button  <?php echo esc_attr($button_args['class']); ?>"
267
+			href="<?php echo esc_url($button_args['url']); ?>">
268
+			<?php echo esc_html($button_args['button_text']); ?>
269 269
 		</a>
270 270
 		<?php
271 271
 
@@ -279,9 +279,9 @@  discard block
 block discarded – undo
279 279
 		$tabs            = self::get_tabs();
280 280
 		$sections        = self::get_sections();
281 281
 		$theme           = wp_get_theme();
282
-		$section_keys    = array_keys( $sections );
283
-		$current_section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : current( $section_keys );
284
-		$current_tab     = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] );
282
+		$section_keys    = array_keys($sections);
283
+		$current_section = isset($_GET['section']) ? sanitize_text_field($_GET['section']) : current($section_keys);
284
+		$current_tab     = empty($_GET['tab']) ? 'addons' : sanitize_title($_GET['tab']);
285 285
 		include_once WPINV_PLUGIN_DIR . '/includes/admin/html-admin-page-addons.php';
286 286
 	}
287 287
 
@@ -296,19 +296,19 @@  discard block
 block discarded – undo
296 296
                 'slug'      => 'invoicing-quotes',
297 297
 				'name'      => 'Quotes',
298 298
 				'thumbnail' => 'https://ps.w.org/invoicing-quotes/assets/banner-772x250.png',
299
-                'desc'      => __( 'Allows you to create quotes, send them to clients and convert them to Invoices when accepted by the customer.', 'invoicing' ),
299
+                'desc'      => __('Allows you to create quotes, send them to clients and convert them to Invoices when accepted by the customer.', 'invoicing'),
300 300
             ),
301 301
             'geodirectory'     => array(
302 302
                 'url'  => 'https://wordpress.org/plugins/geodirectory/',
303 303
                 'slug' => 'geodirectory',
304 304
                 'name' => 'GeoDirectory',
305
-                'desc' => __( 'Turn any WordPress theme into a global business directory portal.', 'invoicing' ),
305
+                'desc' => __('Turn any WordPress theme into a global business directory portal.', 'invoicing'),
306 306
             ),
307 307
             'userswp'          => array(
308 308
                 'url'  => 'https://wordpress.org/plugins/userswp/',
309 309
                 'slug' => 'userswp',
310 310
                 'name' => 'UsersWP',
311
-                'desc' => __( 'Allow frontend user login and registration as well as have slick profile pages.', 'invoicing' ),
311
+                'desc' => __('Allow frontend user login and registration as well as have slick profile pages.', 'invoicing'),
312 312
             ),
313 313
 		);
314 314
 
Please login to merge, or discard this patch.
vendor/ayecode/wp-ayecode-ui/includes/class-aui.php 3 patches
Indentation   +295 added lines, -295 removed lines patch added patch discarded remove patch
@@ -1,7 +1,7 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 if ( ! defined( 'ABSPATH' ) ) {
4
-	exit; // Exit if accessed directly
4
+    exit; // Exit if accessed directly
5 5
 }
6 6
 
7 7
 /**
@@ -11,299 +11,299 @@  discard block
 block discarded – undo
11 11
  */
12 12
 class AUI {
13 13
 
14
-	/**
15
-	 * Holds the class instance.
16
-	 *
17
-	 * @since 1.0.0
18
-	 * @var null
19
-	 */
20
-	private static $instance = null;
21
-
22
-	/**
23
-	 * Holds the current AUI version number.
24
-	 *
25
-	 * @var string $ver The current version number.
26
-	 */
27
-	public static $ver = '0.1.72';
28
-
29
-	public static $options = null;
30
-
31
-	/**
32
-	 * There can be only one.
33
-	 *
34
-	 * @since 1.0.0
35
-	 * @return AUI|null
36
-	 */
37
-	public static function instance() {
38
-		if ( self::$instance == null ) {
39
-			self::$instance = new AUI();
40
-		}
41
-
42
-		return self::$instance;
43
-	}
44
-
45
-	/**
46
-	 * AUI constructor.
47
-	 *
48
-	 * @since 1.0.0
49
-	 */
50
-	private function __construct() {
51
-		if ( function_exists( "__autoload" ) ) {
52
-			spl_autoload_register( "__autoload" );
53
-		}
54
-		spl_autoload_register( array( $this, 'autoload' ) );
55
-
56
-		// load options
57
-		self::$options = get_option('aui_options');
58
-	}
59
-
60
-	/**
61
-	 * Autoload any components on the fly.
62
-	 *
63
-	 * @since 1.0.0
64
-	 *
65
-	 * @param $classname
66
-	 */
67
-	private function autoload( $classname ) {
68
-		$class     = str_replace( '_', '-', strtolower( $classname ) );
69
-		$file_path = trailingslashit( dirname( __FILE__ ) ) . "components/class-" . $class . '.php';
70
-		if ( $file_path && is_readable( $file_path ) ) {
71
-			include_once( $file_path );
72
-		}
73
-	}
74
-
75
-	/**
76
-	 * Get the AUI options.
77
-	 *
78
-	 * @param $option
79
-	 *
80
-	 * @return string|void
81
-	 */
82
-	public function get_option( $option ){
83
-		$result = isset(self::$options[$option]) ? esc_attr(self::$options[$option]) : '';
84
-
85
-		if ( ! $result && $option) {
86
-			if( $option == 'color_primary' ){
87
-				$result = AUI_PRIMARY_COLOR;
88
-			}elseif( $option == 'color_secondary' ){
89
-				$result = AUI_SECONDARY_COLOR;
90
-			}
91
-		}
92
-		return $result;
93
-	}
94
-
95
-	public function render( $items = array(), $echo = false ) {
96
-		$output = '';
97
-
98
-		if ( ! empty( $items ) ) {
99
-			foreach ( $items as $args ) {
100
-				$render = isset( $args['render'] ) ? $args['render'] : '';
101
-				if ( $render && method_exists( __CLASS__, $render ) ) {
102
-					$output .= $this->$render( $args );
103
-				}
104
-			}
105
-		}
106
-
107
-		if ( $echo ) {
108
-			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
109
-		}else{
110
-			return $output;
111
-		}
112
-
113
-	}
114
-
115
-	/**
116
-	 * Render and return a bootstrap alert component.
117
-	 *
118
-	 * @since 1.0.0
119
-	 *
120
-	 * @param array $args The function arguments.
121
-	 * @param bool  $echo If we should return or echo.
122
-	 *
123
-	 * @return string The rendered component.
124
-	 */
125
-	public function alert( $args = array(), $echo = false ) {
126
-		$output = AUI_Component_Alert::get( $args );
127
-
128
-		if ( $echo ) {
129
-			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
130
-		}else{
131
-			return $output;
132
-		}
133
-	}
134
-
135
-	/**
136
-	 * Render and return a bootstrap input component.
137
-	 *
138
-	 * @since 1.0.0
139
-	 *
140
-	 * @param array $args The function arguments.
141
-	 * @param bool  $echo If we should return or echo.
142
-	 *
143
-	 * @return string The rendered component.
144
-	 */
145
-	public function input( $args = array(), $echo = false ) {
146
-		$output = AUI_Component_Input::input( $args );
147
-
148
-		if ( $echo ) {
149
-			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
150
-		}else{
151
-			return $output;
152
-		}
153
-	}
154
-
155
-	/**
156
-	 * Render and return a bootstrap textarea component.
157
-	 *
158
-	 * @since 1.0.0
159
-	 *
160
-	 * @param array $args The function arguments.
161
-	 * @param bool  $echo If we should return or echo.
162
-	 *
163
-	 * @return string The rendered component.
164
-	 */
165
-	public function textarea( $args = array(), $echo = false ) {
166
-		$output = AUI_Component_Input::textarea( $args );
167
-
168
-		if ( $echo ) {
169
-			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
170
-		}else{
171
-			return $output;
172
-		}
173
-	}
174
-
175
-	/**
176
-	 * Render and return a bootstrap button component.
177
-	 *
178
-	 * @since 1.0.0
179
-	 *
180
-	 * @param array $args The function arguments.
181
-	 * @param bool  $echo If we should return or echo.
182
-	 *
183
-	 * @return string The rendered component.
184
-	 */
185
-	public function button( $args = array(), $echo = false ) {
186
-		$output = AUI_Component_Button::get( $args );
187
-
188
-		if ( $echo ) {
189
-			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
190
-		}else{
191
-			return $output;
192
-		}
193
-	}
194
-
195
-	/**
196
-	 * Render and return a bootstrap button component.
197
-	 *
198
-	 * @since 1.0.0
199
-	 *
200
-	 * @param array $args The function arguments.
201
-	 * @param bool  $echo If we should return or echo.
202
-	 *
203
-	 * @return string The rendered component.
204
-	 */
205
-	public function badge( $args = array(), $echo = false ) {
206
-		$defaults = array(
207
-			'class' => 'badge badge-primary align-middle',
208
-		);
209
-
210
-		// maybe set type.
211
-		if ( empty( $args['href'] ) ) {
212
-			$defaults['type'] = 'badge';
213
-		}
214
-
215
-		/**
216
-		 * Parse incoming $args into an array and merge it with $defaults
217
-		 */
218
-		$args = wp_parse_args( $args, $defaults );
219
-
220
-		$output = AUI_Component_Button::get( $args );
221
-
222
-		if ( $echo ) {
223
-			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
224
-		}else{
225
-			return $output;
226
-		}
227
-	}
228
-
229
-	/**
230
-	 * Render and return a bootstrap dropdown component.
231
-	 *
232
-	 * @since 1.0.0
233
-	 *
234
-	 * @param array $args The function arguments.
235
-	 * @param bool  $echo If we should return or echo.
236
-	 *
237
-	 * @return string The rendered component.
238
-	 */
239
-	public function dropdown( $args = array(), $echo = false ) {
240
-		$output = AUI_Component_Dropdown::get( $args );
241
-
242
-		if ( $echo ) {
243
-			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
244
-		}else{
245
-			return $output;
246
-		}
247
-	}
248
-
249
-	/**
250
-	 * Render and return a bootstrap select component.
251
-	 *
252
-	 * @since 1.0.0
253
-	 *
254
-	 * @param array $args The function arguments.
255
-	 * @param bool  $echo If we should return or echo.
256
-	 *
257
-	 * @return string The rendered component.
258
-	 */
259
-	public function select( $args = array(), $echo = false ) {
260
-		$output = AUI_Component_Input::select( $args );
261
-
262
-		if ( $echo ) {
263
-			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
264
-		}else{
265
-			return $output;
266
-		}
267
-	}
268
-
269
-	/**
270
-	 * Render and return a bootstrap radio component.
271
-	 *
272
-	 * @since 1.0.0
273
-	 *
274
-	 * @param array $args The function arguments.
275
-	 * @param bool  $echo If we should return or echo.
276
-	 *
277
-	 * @return string The rendered component.
278
-	 */
279
-	public function radio( $args = array(), $echo = false ) {
280
-		$output = AUI_Component_Input::radio( $args );
281
-
282
-		if ( $echo ) {
283
-			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
284
-		}else{
285
-			return $output;
286
-		}
287
-	}
288
-
289
-	/**
290
-	 * Render and return a bootstrap pagination component.
291
-	 *
292
-	 * @since 1.0.0
293
-	 *
294
-	 * @param array $args The function arguments.
295
-	 * @param bool  $echo If we should return or echo.
296
-	 *
297
-	 * @return string The rendered component.
298
-	 */
299
-	public function pagination( $args = array(), $echo = false ) {
300
-		$output = AUI_Component_Pagination::get( $args );
301
-
302
-		if ( $echo ) {
303
-			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
304
-		}else{
305
-			return $output;
306
-		}
307
-	}
14
+    /**
15
+     * Holds the class instance.
16
+     *
17
+     * @since 1.0.0
18
+     * @var null
19
+     */
20
+    private static $instance = null;
21
+
22
+    /**
23
+     * Holds the current AUI version number.
24
+     *
25
+     * @var string $ver The current version number.
26
+     */
27
+    public static $ver = '0.1.72';
28
+
29
+    public static $options = null;
30
+
31
+    /**
32
+     * There can be only one.
33
+     *
34
+     * @since 1.0.0
35
+     * @return AUI|null
36
+     */
37
+    public static function instance() {
38
+        if ( self::$instance == null ) {
39
+            self::$instance = new AUI();
40
+        }
41
+
42
+        return self::$instance;
43
+    }
44
+
45
+    /**
46
+     * AUI constructor.
47
+     *
48
+     * @since 1.0.0
49
+     */
50
+    private function __construct() {
51
+        if ( function_exists( "__autoload" ) ) {
52
+            spl_autoload_register( "__autoload" );
53
+        }
54
+        spl_autoload_register( array( $this, 'autoload' ) );
55
+
56
+        // load options
57
+        self::$options = get_option('aui_options');
58
+    }
59
+
60
+    /**
61
+     * Autoload any components on the fly.
62
+     *
63
+     * @since 1.0.0
64
+     *
65
+     * @param $classname
66
+     */
67
+    private function autoload( $classname ) {
68
+        $class     = str_replace( '_', '-', strtolower( $classname ) );
69
+        $file_path = trailingslashit( dirname( __FILE__ ) ) . "components/class-" . $class . '.php';
70
+        if ( $file_path && is_readable( $file_path ) ) {
71
+            include_once( $file_path );
72
+        }
73
+    }
74
+
75
+    /**
76
+     * Get the AUI options.
77
+     *
78
+     * @param $option
79
+     *
80
+     * @return string|void
81
+     */
82
+    public function get_option( $option ){
83
+        $result = isset(self::$options[$option]) ? esc_attr(self::$options[$option]) : '';
84
+
85
+        if ( ! $result && $option) {
86
+            if( $option == 'color_primary' ){
87
+                $result = AUI_PRIMARY_COLOR;
88
+            }elseif( $option == 'color_secondary' ){
89
+                $result = AUI_SECONDARY_COLOR;
90
+            }
91
+        }
92
+        return $result;
93
+    }
94
+
95
+    public function render( $items = array(), $echo = false ) {
96
+        $output = '';
97
+
98
+        if ( ! empty( $items ) ) {
99
+            foreach ( $items as $args ) {
100
+                $render = isset( $args['render'] ) ? $args['render'] : '';
101
+                if ( $render && method_exists( __CLASS__, $render ) ) {
102
+                    $output .= $this->$render( $args );
103
+                }
104
+            }
105
+        }
106
+
107
+        if ( $echo ) {
108
+            echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
109
+        }else{
110
+            return $output;
111
+        }
112
+
113
+    }
114
+
115
+    /**
116
+     * Render and return a bootstrap alert component.
117
+     *
118
+     * @since 1.0.0
119
+     *
120
+     * @param array $args The function arguments.
121
+     * @param bool  $echo If we should return or echo.
122
+     *
123
+     * @return string The rendered component.
124
+     */
125
+    public function alert( $args = array(), $echo = false ) {
126
+        $output = AUI_Component_Alert::get( $args );
127
+
128
+        if ( $echo ) {
129
+            echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
130
+        }else{
131
+            return $output;
132
+        }
133
+    }
134
+
135
+    /**
136
+     * Render and return a bootstrap input component.
137
+     *
138
+     * @since 1.0.0
139
+     *
140
+     * @param array $args The function arguments.
141
+     * @param bool  $echo If we should return or echo.
142
+     *
143
+     * @return string The rendered component.
144
+     */
145
+    public function input( $args = array(), $echo = false ) {
146
+        $output = AUI_Component_Input::input( $args );
147
+
148
+        if ( $echo ) {
149
+            echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
150
+        }else{
151
+            return $output;
152
+        }
153
+    }
154
+
155
+    /**
156
+     * Render and return a bootstrap textarea component.
157
+     *
158
+     * @since 1.0.0
159
+     *
160
+     * @param array $args The function arguments.
161
+     * @param bool  $echo If we should return or echo.
162
+     *
163
+     * @return string The rendered component.
164
+     */
165
+    public function textarea( $args = array(), $echo = false ) {
166
+        $output = AUI_Component_Input::textarea( $args );
167
+
168
+        if ( $echo ) {
169
+            echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
170
+        }else{
171
+            return $output;
172
+        }
173
+    }
174
+
175
+    /**
176
+     * Render and return a bootstrap button component.
177
+     *
178
+     * @since 1.0.0
179
+     *
180
+     * @param array $args The function arguments.
181
+     * @param bool  $echo If we should return or echo.
182
+     *
183
+     * @return string The rendered component.
184
+     */
185
+    public function button( $args = array(), $echo = false ) {
186
+        $output = AUI_Component_Button::get( $args );
187
+
188
+        if ( $echo ) {
189
+            echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
190
+        }else{
191
+            return $output;
192
+        }
193
+    }
194
+
195
+    /**
196
+     * Render and return a bootstrap button component.
197
+     *
198
+     * @since 1.0.0
199
+     *
200
+     * @param array $args The function arguments.
201
+     * @param bool  $echo If we should return or echo.
202
+     *
203
+     * @return string The rendered component.
204
+     */
205
+    public function badge( $args = array(), $echo = false ) {
206
+        $defaults = array(
207
+            'class' => 'badge badge-primary align-middle',
208
+        );
209
+
210
+        // maybe set type.
211
+        if ( empty( $args['href'] ) ) {
212
+            $defaults['type'] = 'badge';
213
+        }
214
+
215
+        /**
216
+         * Parse incoming $args into an array and merge it with $defaults
217
+         */
218
+        $args = wp_parse_args( $args, $defaults );
219
+
220
+        $output = AUI_Component_Button::get( $args );
221
+
222
+        if ( $echo ) {
223
+            echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
224
+        }else{
225
+            return $output;
226
+        }
227
+    }
228
+
229
+    /**
230
+     * Render and return a bootstrap dropdown component.
231
+     *
232
+     * @since 1.0.0
233
+     *
234
+     * @param array $args The function arguments.
235
+     * @param bool  $echo If we should return or echo.
236
+     *
237
+     * @return string The rendered component.
238
+     */
239
+    public function dropdown( $args = array(), $echo = false ) {
240
+        $output = AUI_Component_Dropdown::get( $args );
241
+
242
+        if ( $echo ) {
243
+            echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
244
+        }else{
245
+            return $output;
246
+        }
247
+    }
248
+
249
+    /**
250
+     * Render and return a bootstrap select component.
251
+     *
252
+     * @since 1.0.0
253
+     *
254
+     * @param array $args The function arguments.
255
+     * @param bool  $echo If we should return or echo.
256
+     *
257
+     * @return string The rendered component.
258
+     */
259
+    public function select( $args = array(), $echo = false ) {
260
+        $output = AUI_Component_Input::select( $args );
261
+
262
+        if ( $echo ) {
263
+            echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
264
+        }else{
265
+            return $output;
266
+        }
267
+    }
268
+
269
+    /**
270
+     * Render and return a bootstrap radio component.
271
+     *
272
+     * @since 1.0.0
273
+     *
274
+     * @param array $args The function arguments.
275
+     * @param bool  $echo If we should return or echo.
276
+     *
277
+     * @return string The rendered component.
278
+     */
279
+    public function radio( $args = array(), $echo = false ) {
280
+        $output = AUI_Component_Input::radio( $args );
281
+
282
+        if ( $echo ) {
283
+            echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
284
+        }else{
285
+            return $output;
286
+        }
287
+    }
288
+
289
+    /**
290
+     * Render and return a bootstrap pagination component.
291
+     *
292
+     * @since 1.0.0
293
+     *
294
+     * @param array $args The function arguments.
295
+     * @param bool  $echo If we should return or echo.
296
+     *
297
+     * @return string The rendered component.
298
+     */
299
+    public function pagination( $args = array(), $echo = false ) {
300
+        $output = AUI_Component_Pagination::get( $args );
301
+
302
+        if ( $echo ) {
303
+            echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
304
+        }else{
305
+            return $output;
306
+        }
307
+    }
308 308
 
309 309
 }
310 310
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +60 added lines, -60 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-if ( ! defined( 'ABSPATH' ) ) {
3
+if (!defined('ABSPATH')) {
4 4
 	exit; // Exit if accessed directly
5 5
 }
6 6
 
@@ -35,7 +35,7 @@  discard block
 block discarded – undo
35 35
 	 * @return AUI|null
36 36
 	 */
37 37
 	public static function instance() {
38
-		if ( self::$instance == null ) {
38
+		if (self::$instance == null) {
39 39
 			self::$instance = new AUI();
40 40
 		}
41 41
 
@@ -48,10 +48,10 @@  discard block
 block discarded – undo
48 48
 	 * @since 1.0.0
49 49
 	 */
50 50
 	private function __construct() {
51
-		if ( function_exists( "__autoload" ) ) {
52
-			spl_autoload_register( "__autoload" );
51
+		if (function_exists("__autoload")) {
52
+			spl_autoload_register("__autoload");
53 53
 		}
54
-		spl_autoload_register( array( $this, 'autoload' ) );
54
+		spl_autoload_register(array($this, 'autoload'));
55 55
 
56 56
 		// load options
57 57
 		self::$options = get_option('aui_options');
@@ -64,11 +64,11 @@  discard block
 block discarded – undo
64 64
 	 *
65 65
 	 * @param $classname
66 66
 	 */
67
-	private function autoload( $classname ) {
68
-		$class     = str_replace( '_', '-', strtolower( $classname ) );
69
-		$file_path = trailingslashit( dirname( __FILE__ ) ) . "components/class-" . $class . '.php';
70
-		if ( $file_path && is_readable( $file_path ) ) {
71
-			include_once( $file_path );
67
+	private function autoload($classname) {
68
+		$class     = str_replace('_', '-', strtolower($classname));
69
+		$file_path = trailingslashit(dirname(__FILE__)) . "components/class-" . $class . '.php';
70
+		if ($file_path && is_readable($file_path)) {
71
+			include_once($file_path);
72 72
 		}
73 73
 	}
74 74
 
@@ -79,34 +79,34 @@  discard block
 block discarded – undo
79 79
 	 *
80 80
 	 * @return string|void
81 81
 	 */
82
-	public function get_option( $option ){
82
+	public function get_option($option) {
83 83
 		$result = isset(self::$options[$option]) ? esc_attr(self::$options[$option]) : '';
84 84
 
85
-		if ( ! $result && $option) {
86
-			if( $option == 'color_primary' ){
85
+		if (!$result && $option) {
86
+			if ($option == 'color_primary') {
87 87
 				$result = AUI_PRIMARY_COLOR;
88
-			}elseif( $option == 'color_secondary' ){
88
+			}elseif ($option == 'color_secondary') {
89 89
 				$result = AUI_SECONDARY_COLOR;
90 90
 			}
91 91
 		}
92 92
 		return $result;
93 93
 	}
94 94
 
95
-	public function render( $items = array(), $echo = false ) {
95
+	public function render($items = array(), $echo = false) {
96 96
 		$output = '';
97 97
 
98
-		if ( ! empty( $items ) ) {
99
-			foreach ( $items as $args ) {
100
-				$render = isset( $args['render'] ) ? $args['render'] : '';
101
-				if ( $render && method_exists( __CLASS__, $render ) ) {
102
-					$output .= $this->$render( $args );
98
+		if (!empty($items)) {
99
+			foreach ($items as $args) {
100
+				$render = isset($args['render']) ? $args['render'] : '';
101
+				if ($render && method_exists(__CLASS__, $render)) {
102
+					$output .= $this->$render($args);
103 103
 				}
104 104
 			}
105 105
 		}
106 106
 
107
-		if ( $echo ) {
107
+		if ($echo) {
108 108
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
109
-		}else{
109
+		} else {
110 110
 			return $output;
111 111
 		}
112 112
 
@@ -122,12 +122,12 @@  discard block
 block discarded – undo
122 122
 	 *
123 123
 	 * @return string The rendered component.
124 124
 	 */
125
-	public function alert( $args = array(), $echo = false ) {
126
-		$output = AUI_Component_Alert::get( $args );
125
+	public function alert($args = array(), $echo = false) {
126
+		$output = AUI_Component_Alert::get($args);
127 127
 
128
-		if ( $echo ) {
128
+		if ($echo) {
129 129
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
130
-		}else{
130
+		} else {
131 131
 			return $output;
132 132
 		}
133 133
 	}
@@ -142,12 +142,12 @@  discard block
 block discarded – undo
142 142
 	 *
143 143
 	 * @return string The rendered component.
144 144
 	 */
145
-	public function input( $args = array(), $echo = false ) {
146
-		$output = AUI_Component_Input::input( $args );
145
+	public function input($args = array(), $echo = false) {
146
+		$output = AUI_Component_Input::input($args);
147 147
 
148
-		if ( $echo ) {
148
+		if ($echo) {
149 149
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
150
-		}else{
150
+		} else {
151 151
 			return $output;
152 152
 		}
153 153
 	}
@@ -162,12 +162,12 @@  discard block
 block discarded – undo
162 162
 	 *
163 163
 	 * @return string The rendered component.
164 164
 	 */
165
-	public function textarea( $args = array(), $echo = false ) {
166
-		$output = AUI_Component_Input::textarea( $args );
165
+	public function textarea($args = array(), $echo = false) {
166
+		$output = AUI_Component_Input::textarea($args);
167 167
 
168
-		if ( $echo ) {
168
+		if ($echo) {
169 169
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
170
-		}else{
170
+		} else {
171 171
 			return $output;
172 172
 		}
173 173
 	}
@@ -182,12 +182,12 @@  discard block
 block discarded – undo
182 182
 	 *
183 183
 	 * @return string The rendered component.
184 184
 	 */
185
-	public function button( $args = array(), $echo = false ) {
186
-		$output = AUI_Component_Button::get( $args );
185
+	public function button($args = array(), $echo = false) {
186
+		$output = AUI_Component_Button::get($args);
187 187
 
188
-		if ( $echo ) {
188
+		if ($echo) {
189 189
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
190
-		}else{
190
+		} else {
191 191
 			return $output;
192 192
 		}
193 193
 	}
@@ -202,26 +202,26 @@  discard block
 block discarded – undo
202 202
 	 *
203 203
 	 * @return string The rendered component.
204 204
 	 */
205
-	public function badge( $args = array(), $echo = false ) {
205
+	public function badge($args = array(), $echo = false) {
206 206
 		$defaults = array(
207 207
 			'class' => 'badge badge-primary align-middle',
208 208
 		);
209 209
 
210 210
 		// maybe set type.
211
-		if ( empty( $args['href'] ) ) {
211
+		if (empty($args['href'])) {
212 212
 			$defaults['type'] = 'badge';
213 213
 		}
214 214
 
215 215
 		/**
216 216
 		 * Parse incoming $args into an array and merge it with $defaults
217 217
 		 */
218
-		$args = wp_parse_args( $args, $defaults );
218
+		$args = wp_parse_args($args, $defaults);
219 219
 
220
-		$output = AUI_Component_Button::get( $args );
220
+		$output = AUI_Component_Button::get($args);
221 221
 
222
-		if ( $echo ) {
222
+		if ($echo) {
223 223
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
224
-		}else{
224
+		} else {
225 225
 			return $output;
226 226
 		}
227 227
 	}
@@ -236,12 +236,12 @@  discard block
 block discarded – undo
236 236
 	 *
237 237
 	 * @return string The rendered component.
238 238
 	 */
239
-	public function dropdown( $args = array(), $echo = false ) {
240
-		$output = AUI_Component_Dropdown::get( $args );
239
+	public function dropdown($args = array(), $echo = false) {
240
+		$output = AUI_Component_Dropdown::get($args);
241 241
 
242
-		if ( $echo ) {
242
+		if ($echo) {
243 243
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
244
-		}else{
244
+		} else {
245 245
 			return $output;
246 246
 		}
247 247
 	}
@@ -256,12 +256,12 @@  discard block
 block discarded – undo
256 256
 	 *
257 257
 	 * @return string The rendered component.
258 258
 	 */
259
-	public function select( $args = array(), $echo = false ) {
260
-		$output = AUI_Component_Input::select( $args );
259
+	public function select($args = array(), $echo = false) {
260
+		$output = AUI_Component_Input::select($args);
261 261
 
262
-		if ( $echo ) {
262
+		if ($echo) {
263 263
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
264
-		}else{
264
+		} else {
265 265
 			return $output;
266 266
 		}
267 267
 	}
@@ -276,12 +276,12 @@  discard block
 block discarded – undo
276 276
 	 *
277 277
 	 * @return string The rendered component.
278 278
 	 */
279
-	public function radio( $args = array(), $echo = false ) {
280
-		$output = AUI_Component_Input::radio( $args );
279
+	public function radio($args = array(), $echo = false) {
280
+		$output = AUI_Component_Input::radio($args);
281 281
 
282
-		if ( $echo ) {
282
+		if ($echo) {
283 283
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
284
-		}else{
284
+		} else {
285 285
 			return $output;
286 286
 		}
287 287
 	}
@@ -296,12 +296,12 @@  discard block
 block discarded – undo
296 296
 	 *
297 297
 	 * @return string The rendered component.
298 298
 	 */
299
-	public function pagination( $args = array(), $echo = false ) {
300
-		$output = AUI_Component_Pagination::get( $args );
299
+	public function pagination($args = array(), $echo = false) {
300
+		$output = AUI_Component_Pagination::get($args);
301 301
 
302
-		if ( $echo ) {
302
+		if ($echo) {
303 303
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
304
-		}else{
304
+		} else {
305 305
 			return $output;
306 306
 		}
307 307
 	}
Please login to merge, or discard this patch.
Braces   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -85,7 +85,7 @@  discard block
 block discarded – undo
85 85
 		if ( ! $result && $option) {
86 86
 			if( $option == 'color_primary' ){
87 87
 				$result = AUI_PRIMARY_COLOR;
88
-			}elseif( $option == 'color_secondary' ){
88
+			} elseif( $option == 'color_secondary' ){
89 89
 				$result = AUI_SECONDARY_COLOR;
90 90
 			}
91 91
 		}
@@ -106,7 +106,7 @@  discard block
 block discarded – undo
106 106
 
107 107
 		if ( $echo ) {
108 108
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
109
-		}else{
109
+		} else{
110 110
 			return $output;
111 111
 		}
112 112
 
@@ -127,7 +127,7 @@  discard block
 block discarded – undo
127 127
 
128 128
 		if ( $echo ) {
129 129
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
130
-		}else{
130
+		} else{
131 131
 			return $output;
132 132
 		}
133 133
 	}
@@ -147,7 +147,7 @@  discard block
 block discarded – undo
147 147
 
148 148
 		if ( $echo ) {
149 149
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
150
-		}else{
150
+		} else{
151 151
 			return $output;
152 152
 		}
153 153
 	}
@@ -167,7 +167,7 @@  discard block
 block discarded – undo
167 167
 
168 168
 		if ( $echo ) {
169 169
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
170
-		}else{
170
+		} else{
171 171
 			return $output;
172 172
 		}
173 173
 	}
@@ -187,7 +187,7 @@  discard block
 block discarded – undo
187 187
 
188 188
 		if ( $echo ) {
189 189
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
190
-		}else{
190
+		} else{
191 191
 			return $output;
192 192
 		}
193 193
 	}
@@ -221,7 +221,7 @@  discard block
 block discarded – undo
221 221
 
222 222
 		if ( $echo ) {
223 223
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
224
-		}else{
224
+		} else{
225 225
 			return $output;
226 226
 		}
227 227
 	}
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
 
242 242
 		if ( $echo ) {
243 243
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
244
-		}else{
244
+		} else{
245 245
 			return $output;
246 246
 		}
247 247
 	}
@@ -261,7 +261,7 @@  discard block
 block discarded – undo
261 261
 
262 262
 		if ( $echo ) {
263 263
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
264
-		}else{
264
+		} else{
265 265
 			return $output;
266 266
 		}
267 267
 	}
@@ -281,7 +281,7 @@  discard block
 block discarded – undo
281 281
 
282 282
 		if ( $echo ) {
283 283
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
284
-		}else{
284
+		} else{
285 285
 			return $output;
286 286
 		}
287 287
 	}
@@ -301,7 +301,7 @@  discard block
 block discarded – undo
301 301
 
302 302
 		if ( $echo ) {
303 303
 			echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
304
-		}else{
304
+		} else{
305 305
 			return $output;
306 306
 		}
307 307
 	}
Please login to merge, or discard this patch.
includes/admin/class-getpaid-admin-profile.php 3 patches
Braces   +5 added lines, -2 removed lines patch added patch discarded remove patch
@@ -138,8 +138,11 @@
 block discarded – undo
138 138
 									</select>
139 139
 								<?php elseif ( ! empty( $field['type'] ) && 'checkbox' === $field['type'] ) : ?>
140 140
 									<input type="checkbox" name="<?php echo esc_attr( $key ); ?>" id="<?php echo esc_attr( $key ); ?>" value="1" class="<?php echo esc_attr( $field['class'] ); ?>" <?php checked( (int) $value, 1, true ); ?> />
141
-								<?php else : ?>
142
-									<input type="text" name="<?php echo esc_attr( $key ); ?>" id="<?php echo esc_attr( $key ); ?>" value="<?php echo esc_attr( $value ); ?>" class="<?php echo ( ! empty( $field['class'] ) ? esc_attr( $field['class'] ) : 'regular-text' ); ?>" />
141
+								<?php else {
142
+    : ?>
143
+									<input type="text" name="<?php echo esc_attr( $key );
144
+}
145
+?>" id="<?php echo esc_attr( $key ); ?>" value="<?php echo esc_attr( $value ); ?>" class="<?php echo ( ! empty( $field['class'] ) ? esc_attr( $field['class'] ) : 'regular-text' ); ?>" />
143 146
 								<?php endif; ?>
144 147
 								<p class="description"><?php echo wp_kses_post( $field['description'] ); ?></p>
145 148
 							</td>
Please login to merge, or discard this patch.
Indentation   +185 added lines, -185 removed lines patch added patch discarded remove patch
@@ -5,129 +5,129 @@  discard block
 block discarded – undo
5 5
  */
6 6
 
7 7
 if ( ! defined( 'ABSPATH' ) ) {
8
-	exit; // Exit if accessed directly
8
+    exit; // Exit if accessed directly
9 9
 }
10 10
 
11 11
 if ( ! class_exists( 'GetPaid_Admin_Profile', false ) ) :
12 12
 
13
-	/**
14
-	 * GetPaid_Admin_Profile Class.
15
-	 */
16
-	class GetPaid_Admin_Profile {
17
-
18
-		/**
19
-		 * Hook in tabs.
20
-		 */
21
-		public function __construct() {
22
-			add_action( 'show_user_profile', array( $this, 'add_customer_meta_fields' ), 100 );
23
-			add_action( 'edit_user_profile', array( $this, 'add_customer_meta_fields' ), 100 );
24
-
25
-			add_action( 'personal_options_update', array( $this, 'save_customer_meta_fields' ) );
26
-			add_action( 'edit_user_profile_update', array( $this, 'save_customer_meta_fields' ) );
27
-		}
28
-
29
-		/**
30
-		 * Get Address Fields for the edit user pages.
31
-		 *
32
-		 * @return array Fields to display which are filtered through invoicing_customer_meta_fields before being returned
33
-		 */
34
-		public function get_customer_meta_fields() {
35
-
36
-			$show_fields = apply_filters(
37
-				'getpaid_customer_meta_fields',
38
-				array(
39
-					'billing' => array(
40
-						'title'  => __( 'Billing Details (GetPaid)', 'invoicing' ),
41
-						'fields' => array(
42
-							'_wpinv_first_name' => array(
43
-								'label'       => __( 'First name', 'invoicing' ),
44
-								'description' => '',
45
-							),
46
-							'_wpinv_last_name'  => array(
47
-								'label'       => __( 'Last name', 'invoicing' ),
48
-								'description' => '',
49
-							),
50
-							'_wpinv_company'    => array(
51
-								'label'       => __( 'Company', 'invoicing' ),
52
-								'description' => '',
53
-							),
54
-							'_wpinv_company_id' => array(
55
-								'label'       => __( 'Company ID', 'invoicing' ),
56
-								'description' => '',
57
-							),
58
-							'_wpinv_address'    => array(
59
-								'label'       => __( 'Address', 'invoicing' ),
60
-								'description' => '',
61
-							),
62
-							'_wpinv_city'       => array(
63
-								'label'       => __( 'City', 'invoicing' ),
64
-								'description' => '',
65
-							),
66
-							'_wpinv_zip'        => array(
67
-								'label'       => __( 'Postcode / ZIP', 'invoicing' ),
68
-								'description' => '',
69
-							),
70
-							'_wpinv_country'    => array(
71
-								'label'       => __( 'Country / Region', 'invoicing' ),
72
-								'description' => '',
73
-								'class'       => 'getpaid_js_field-country',
74
-								'type'        => 'select',
75
-								'options'     => array( '' => __( 'Select a country / region&hellip;', 'invoicing' ) ) + wpinv_get_country_list(),
76
-							),
77
-							'_wpinv_state'      => array(
78
-								'label'       => __( 'State / County', 'invoicing' ),
79
-								'description' => __( 'State / County or state code', 'invoicing' ),
80
-								'class'       => 'getpaid_js_field-state regular-text',
81
-							),
82
-							'_wpinv_phone'      => array(
83
-								'label'       => __( 'Phone', 'invoicing' ),
84
-								'description' => '',
85
-							),
86
-							'_wpinv_vat_number' => array(
87
-								'label'       => __( 'VAT Number', 'invoicing' ),
88
-								'description' => '',
89
-							),
90
-						),
91
-					),
92
-				)
93
-			);
94
-			return $show_fields;
95
-		}
96
-
97
-		/**
98
-		 * Show Address Fields on edit user pages.
99
-		 *
100
-		 * @param WP_User $user
101
-		 */
102
-		public function add_customer_meta_fields( $user ) {
103
-			if ( ! apply_filters( 'getpaid_current_user_can_edit_customer_meta_fields', current_user_can( 'manage_options' ), $user->ID ) ) {
104
-				return;
105
-			}
106
-
107
-			$show_fields = $this->get_customer_meta_fields();
108
-
109
-			$customer = getpaid_get_customer_by_user_id( (int) $user->ID );
110
-
111
-			foreach ( $show_fields as $fieldset_key => $fieldset ) :
112
-				if ( ! wpinv_use_taxes() && isset( $fieldset['fields']['_wpinv_vat_number'] ) ) {
113
-					unset( $fieldset['fields']['_wpinv_vat_number'] );
114
-				}
115
-				?>
13
+    /**
14
+     * GetPaid_Admin_Profile Class.
15
+     */
16
+    class GetPaid_Admin_Profile {
17
+
18
+        /**
19
+         * Hook in tabs.
20
+         */
21
+        public function __construct() {
22
+            add_action( 'show_user_profile', array( $this, 'add_customer_meta_fields' ), 100 );
23
+            add_action( 'edit_user_profile', array( $this, 'add_customer_meta_fields' ), 100 );
24
+
25
+            add_action( 'personal_options_update', array( $this, 'save_customer_meta_fields' ) );
26
+            add_action( 'edit_user_profile_update', array( $this, 'save_customer_meta_fields' ) );
27
+        }
28
+
29
+        /**
30
+         * Get Address Fields for the edit user pages.
31
+         *
32
+         * @return array Fields to display which are filtered through invoicing_customer_meta_fields before being returned
33
+         */
34
+        public function get_customer_meta_fields() {
35
+
36
+            $show_fields = apply_filters(
37
+                'getpaid_customer_meta_fields',
38
+                array(
39
+                    'billing' => array(
40
+                        'title'  => __( 'Billing Details (GetPaid)', 'invoicing' ),
41
+                        'fields' => array(
42
+                            '_wpinv_first_name' => array(
43
+                                'label'       => __( 'First name', 'invoicing' ),
44
+                                'description' => '',
45
+                            ),
46
+                            '_wpinv_last_name'  => array(
47
+                                'label'       => __( 'Last name', 'invoicing' ),
48
+                                'description' => '',
49
+                            ),
50
+                            '_wpinv_company'    => array(
51
+                                'label'       => __( 'Company', 'invoicing' ),
52
+                                'description' => '',
53
+                            ),
54
+                            '_wpinv_company_id' => array(
55
+                                'label'       => __( 'Company ID', 'invoicing' ),
56
+                                'description' => '',
57
+                            ),
58
+                            '_wpinv_address'    => array(
59
+                                'label'       => __( 'Address', 'invoicing' ),
60
+                                'description' => '',
61
+                            ),
62
+                            '_wpinv_city'       => array(
63
+                                'label'       => __( 'City', 'invoicing' ),
64
+                                'description' => '',
65
+                            ),
66
+                            '_wpinv_zip'        => array(
67
+                                'label'       => __( 'Postcode / ZIP', 'invoicing' ),
68
+                                'description' => '',
69
+                            ),
70
+                            '_wpinv_country'    => array(
71
+                                'label'       => __( 'Country / Region', 'invoicing' ),
72
+                                'description' => '',
73
+                                'class'       => 'getpaid_js_field-country',
74
+                                'type'        => 'select',
75
+                                'options'     => array( '' => __( 'Select a country / region&hellip;', 'invoicing' ) ) + wpinv_get_country_list(),
76
+                            ),
77
+                            '_wpinv_state'      => array(
78
+                                'label'       => __( 'State / County', 'invoicing' ),
79
+                                'description' => __( 'State / County or state code', 'invoicing' ),
80
+                                'class'       => 'getpaid_js_field-state regular-text',
81
+                            ),
82
+                            '_wpinv_phone'      => array(
83
+                                'label'       => __( 'Phone', 'invoicing' ),
84
+                                'description' => '',
85
+                            ),
86
+                            '_wpinv_vat_number' => array(
87
+                                'label'       => __( 'VAT Number', 'invoicing' ),
88
+                                'description' => '',
89
+                            ),
90
+                        ),
91
+                    ),
92
+                )
93
+            );
94
+            return $show_fields;
95
+        }
96
+
97
+        /**
98
+         * Show Address Fields on edit user pages.
99
+         *
100
+         * @param WP_User $user
101
+         */
102
+        public function add_customer_meta_fields( $user ) {
103
+            if ( ! apply_filters( 'getpaid_current_user_can_edit_customer_meta_fields', current_user_can( 'manage_options' ), $user->ID ) ) {
104
+                return;
105
+            }
106
+
107
+            $show_fields = $this->get_customer_meta_fields();
108
+
109
+            $customer = getpaid_get_customer_by_user_id( (int) $user->ID );
110
+
111
+            foreach ( $show_fields as $fieldset_key => $fieldset ) :
112
+                if ( ! wpinv_use_taxes() && isset( $fieldset['fields']['_wpinv_vat_number'] ) ) {
113
+                    unset( $fieldset['fields']['_wpinv_vat_number'] );
114
+                }
115
+                ?>
116 116
 				<h2><?php echo esc_html( $fieldset['title'] ); ?></h2>
117 117
 				<table class="form-table" id="<?php echo esc_attr( 'getpaid-fieldset-' . $fieldset_key ); ?>">
118 118
 					<?php foreach ( $fieldset['fields'] as $key => $field ) :
119
-						if ( ! empty( $customer ) ) {
120
-							if ( strpos( $key, '_wpinv_' ) === 0 ) {
121
-								$save_key = substr( $key , 7 );
122
-							} else {
123
-								$save_key = $key;
124
-							}
125
-
126
-							$value = $customer->get( $save_key );
127
-						} else {
128
-							$value = $this->get_user_meta( $user->ID, $key );
129
-						}
130
-						?>
119
+                        if ( ! empty( $customer ) ) {
120
+                            if ( strpos( $key, '_wpinv_' ) === 0 ) {
121
+                                $save_key = substr( $key , 7 );
122
+                            } else {
123
+                                $save_key = $key;
124
+                            }
125
+
126
+                            $value = $customer->get( $save_key );
127
+                        } else {
128
+                            $value = $this->get_user_meta( $user->ID, $key );
129
+                        }
130
+                        ?>
131 131
 						<tr>
132 132
 							<th>
133 133
 								<label for="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $field['label'] ); ?></label>
@@ -150,75 +150,75 @@  discard block
 block discarded – undo
150 150
 					<?php endforeach; ?>
151 151
 				</table>
152 152
 				<?php
153
-			endforeach;
154
-		}
155
-
156
-		/**
157
-		 * Save Address Fields on edit user pages.
158
-		 *
159
-		 * @param int $user_id User ID of the user being saved
160
-		 */
161
-		public function save_customer_meta_fields( $user_id ) {
162
-			if ( ! apply_filters( 'getpaid_current_user_can_edit_customer_meta_fields', current_user_can( 'manage_options' ), $user_id ) ) {
163
-				return;
164
-			}
165
-
166
-			$save_fields = $this->get_customer_meta_fields();
167
-			$save_data = array();
168
-
169
-			foreach ( $save_fields as $fieldset ) {
170
-				foreach ( $fieldset['fields'] as $key => $field ) {
171
-					if ( strpos( $key, '_wpinv_' ) === 0 ) {
172
-						$save_key = substr( $key , 7 );
173
-					} else {
174
-						$save_key = $key;
175
-					}
176
-
177
-					if ( $save_key && isset( $field['type'] ) && 'checkbox' === $field['type'] ) {
178
-						$save_data[ $save_key ] = ! empty( $_POST[ $key ] ) ? true : false;
179
-					} else if ( $save_key && isset( $_POST[ $key ] ) ) {
180
-						$save_data[ $save_key ] = wpinv_clean( $_POST[ $key ] );
181
-					}
182
-				}
183
-			}
184
-
185
-			if ( empty( $save_data ) ) {
186
-				return;
187
-			}
188
-
189
-			$customer = getpaid_get_customer_by_user_id( (int) $user_id );
190
-
191
-			if ( empty( $customer ) ) {
192
-				$customer = new GetPaid_Customer( 0 );
193
-				$customer->clone_user( (int) $user_id );
194
-			}
195
-
196
-			foreach ( $save_data as $key => $value ) {
197
-				$customer->set( $key, $value );
198
-			}
199
-
200
-			$customer->save();
201
-		}
202
-
203
-		/**
204
-		 * Get user meta for a given key, with fallbacks to core user info for pre-existing fields.
205
-		 *
206
-		 * @since 3.1.0
207
-		 * @param int    $user_id User ID of the user being edited
208
-		 * @param string $key     Key for user meta field
209
-		 * @return string
210
-		 */
211
-		protected function get_user_meta( $user_id, $key ) {
212
-			$value           = get_user_meta( $user_id, $key, true );
213
-			$existing_fields = array( '_wpinv_first_name', '_wpinv_last_name' );
214
-
215
-			if ( ! $value && in_array( $key, $existing_fields ) ) {
216
-				$value = get_user_meta( $user_id, str_replace( '_wpinv_', '', $key ), true );
217
-			}
218
-
219
-			return $value;
220
-		}
221
-	}
153
+            endforeach;
154
+        }
155
+
156
+        /**
157
+         * Save Address Fields on edit user pages.
158
+         *
159
+         * @param int $user_id User ID of the user being saved
160
+         */
161
+        public function save_customer_meta_fields( $user_id ) {
162
+            if ( ! apply_filters( 'getpaid_current_user_can_edit_customer_meta_fields', current_user_can( 'manage_options' ), $user_id ) ) {
163
+                return;
164
+            }
165
+
166
+            $save_fields = $this->get_customer_meta_fields();
167
+            $save_data = array();
168
+
169
+            foreach ( $save_fields as $fieldset ) {
170
+                foreach ( $fieldset['fields'] as $key => $field ) {
171
+                    if ( strpos( $key, '_wpinv_' ) === 0 ) {
172
+                        $save_key = substr( $key , 7 );
173
+                    } else {
174
+                        $save_key = $key;
175
+                    }
176
+
177
+                    if ( $save_key && isset( $field['type'] ) && 'checkbox' === $field['type'] ) {
178
+                        $save_data[ $save_key ] = ! empty( $_POST[ $key ] ) ? true : false;
179
+                    } else if ( $save_key && isset( $_POST[ $key ] ) ) {
180
+                        $save_data[ $save_key ] = wpinv_clean( $_POST[ $key ] );
181
+                    }
182
+                }
183
+            }
184
+
185
+            if ( empty( $save_data ) ) {
186
+                return;
187
+            }
188
+
189
+            $customer = getpaid_get_customer_by_user_id( (int) $user_id );
190
+
191
+            if ( empty( $customer ) ) {
192
+                $customer = new GetPaid_Customer( 0 );
193
+                $customer->clone_user( (int) $user_id );
194
+            }
195
+
196
+            foreach ( $save_data as $key => $value ) {
197
+                $customer->set( $key, $value );
198
+            }
199
+
200
+            $customer->save();
201
+        }
202
+
203
+        /**
204
+         * Get user meta for a given key, with fallbacks to core user info for pre-existing fields.
205
+         *
206
+         * @since 3.1.0
207
+         * @param int    $user_id User ID of the user being edited
208
+         * @param string $key     Key for user meta field
209
+         * @return string
210
+         */
211
+        protected function get_user_meta( $user_id, $key ) {
212
+            $value           = get_user_meta( $user_id, $key, true );
213
+            $existing_fields = array( '_wpinv_first_name', '_wpinv_last_name' );
214
+
215
+            if ( ! $value && in_array( $key, $existing_fields ) ) {
216
+                $value = get_user_meta( $user_id, str_replace( '_wpinv_', '', $key ), true );
217
+            }
218
+
219
+            return $value;
220
+        }
221
+    }
222 222
 
223 223
 endif;
224 224
 
Please login to merge, or discard this patch.
Spacing   +65 added lines, -65 removed lines patch added patch discarded remove patch
@@ -4,11 +4,11 @@  discard block
 block discarded – undo
4 4
  *
5 5
  */
6 6
 
7
-if ( ! defined( 'ABSPATH' ) ) {
7
+if (!defined('ABSPATH')) {
8 8
 	exit; // Exit if accessed directly
9 9
 }
10 10
 
11
-if ( ! class_exists( 'GetPaid_Admin_Profile', false ) ) :
11
+if (!class_exists('GetPaid_Admin_Profile', false)) :
12 12
 
13 13
 	/**
14 14
 	 * GetPaid_Admin_Profile Class.
@@ -19,11 +19,11 @@  discard block
 block discarded – undo
19 19
 		 * Hook in tabs.
20 20
 		 */
21 21
 		public function __construct() {
22
-			add_action( 'show_user_profile', array( $this, 'add_customer_meta_fields' ), 100 );
23
-			add_action( 'edit_user_profile', array( $this, 'add_customer_meta_fields' ), 100 );
22
+			add_action('show_user_profile', array($this, 'add_customer_meta_fields'), 100);
23
+			add_action('edit_user_profile', array($this, 'add_customer_meta_fields'), 100);
24 24
 
25
-			add_action( 'personal_options_update', array( $this, 'save_customer_meta_fields' ) );
26
-			add_action( 'edit_user_profile_update', array( $this, 'save_customer_meta_fields' ) );
25
+			add_action('personal_options_update', array($this, 'save_customer_meta_fields'));
26
+			add_action('edit_user_profile_update', array($this, 'save_customer_meta_fields'));
27 27
 		}
28 28
 
29 29
 		/**
@@ -37,54 +37,54 @@  discard block
 block discarded – undo
37 37
 				'getpaid_customer_meta_fields',
38 38
 				array(
39 39
 					'billing' => array(
40
-						'title'  => __( 'Billing Details (GetPaid)', 'invoicing' ),
40
+						'title'  => __('Billing Details (GetPaid)', 'invoicing'),
41 41
 						'fields' => array(
42 42
 							'_wpinv_first_name' => array(
43
-								'label'       => __( 'First name', 'invoicing' ),
43
+								'label'       => __('First name', 'invoicing'),
44 44
 								'description' => '',
45 45
 							),
46 46
 							'_wpinv_last_name'  => array(
47
-								'label'       => __( 'Last name', 'invoicing' ),
47
+								'label'       => __('Last name', 'invoicing'),
48 48
 								'description' => '',
49 49
 							),
50 50
 							'_wpinv_company'    => array(
51
-								'label'       => __( 'Company', 'invoicing' ),
51
+								'label'       => __('Company', 'invoicing'),
52 52
 								'description' => '',
53 53
 							),
54 54
 							'_wpinv_company_id' => array(
55
-								'label'       => __( 'Company ID', 'invoicing' ),
55
+								'label'       => __('Company ID', 'invoicing'),
56 56
 								'description' => '',
57 57
 							),
58 58
 							'_wpinv_address'    => array(
59
-								'label'       => __( 'Address', 'invoicing' ),
59
+								'label'       => __('Address', 'invoicing'),
60 60
 								'description' => '',
61 61
 							),
62 62
 							'_wpinv_city'       => array(
63
-								'label'       => __( 'City', 'invoicing' ),
63
+								'label'       => __('City', 'invoicing'),
64 64
 								'description' => '',
65 65
 							),
66 66
 							'_wpinv_zip'        => array(
67
-								'label'       => __( 'Postcode / ZIP', 'invoicing' ),
67
+								'label'       => __('Postcode / ZIP', 'invoicing'),
68 68
 								'description' => '',
69 69
 							),
70 70
 							'_wpinv_country'    => array(
71
-								'label'       => __( 'Country / Region', 'invoicing' ),
71
+								'label'       => __('Country / Region', 'invoicing'),
72 72
 								'description' => '',
73 73
 								'class'       => 'getpaid_js_field-country',
74 74
 								'type'        => 'select',
75
-								'options'     => array( '' => __( 'Select a country / region&hellip;', 'invoicing' ) ) + wpinv_get_country_list(),
75
+								'options'     => array('' => __('Select a country / region&hellip;', 'invoicing')) + wpinv_get_country_list(),
76 76
 							),
77 77
 							'_wpinv_state'      => array(
78
-								'label'       => __( 'State / County', 'invoicing' ),
79
-								'description' => __( 'State / County or state code', 'invoicing' ),
78
+								'label'       => __('State / County', 'invoicing'),
79
+								'description' => __('State / County or state code', 'invoicing'),
80 80
 								'class'       => 'getpaid_js_field-state regular-text',
81 81
 							),
82 82
 							'_wpinv_phone'      => array(
83
-								'label'       => __( 'Phone', 'invoicing' ),
83
+								'label'       => __('Phone', 'invoicing'),
84 84
 								'description' => '',
85 85
 							),
86 86
 							'_wpinv_vat_number' => array(
87
-								'label'       => __( 'VAT Number', 'invoicing' ),
87
+								'label'       => __('VAT Number', 'invoicing'),
88 88
 								'description' => '',
89 89
 							),
90 90
 						),
@@ -99,52 +99,52 @@  discard block
 block discarded – undo
99 99
 		 *
100 100
 		 * @param WP_User $user
101 101
 		 */
102
-		public function add_customer_meta_fields( $user ) {
103
-			if ( ! apply_filters( 'getpaid_current_user_can_edit_customer_meta_fields', current_user_can( 'manage_options' ), $user->ID ) ) {
102
+		public function add_customer_meta_fields($user) {
103
+			if (!apply_filters('getpaid_current_user_can_edit_customer_meta_fields', current_user_can('manage_options'), $user->ID)) {
104 104
 				return;
105 105
 			}
106 106
 
107 107
 			$show_fields = $this->get_customer_meta_fields();
108 108
 
109
-			$customer = getpaid_get_customer_by_user_id( (int) $user->ID );
109
+			$customer = getpaid_get_customer_by_user_id((int) $user->ID);
110 110
 
111
-			foreach ( $show_fields as $fieldset_key => $fieldset ) :
112
-				if ( ! wpinv_use_taxes() && isset( $fieldset['fields']['_wpinv_vat_number'] ) ) {
113
-					unset( $fieldset['fields']['_wpinv_vat_number'] );
111
+			foreach ($show_fields as $fieldset_key => $fieldset) :
112
+				if (!wpinv_use_taxes() && isset($fieldset['fields']['_wpinv_vat_number'])) {
113
+					unset($fieldset['fields']['_wpinv_vat_number']);
114 114
 				}
115 115
 				?>
116
-				<h2><?php echo esc_html( $fieldset['title'] ); ?></h2>
117
-				<table class="form-table" id="<?php echo esc_attr( 'getpaid-fieldset-' . $fieldset_key ); ?>">
118
-					<?php foreach ( $fieldset['fields'] as $key => $field ) :
119
-						if ( ! empty( $customer ) ) {
120
-							if ( strpos( $key, '_wpinv_' ) === 0 ) {
121
-								$save_key = substr( $key , 7 );
116
+				<h2><?php echo esc_html($fieldset['title']); ?></h2>
117
+				<table class="form-table" id="<?php echo esc_attr('getpaid-fieldset-' . $fieldset_key); ?>">
118
+					<?php foreach ($fieldset['fields'] as $key => $field) :
119
+						if (!empty($customer)) {
120
+							if (strpos($key, '_wpinv_') === 0) {
121
+								$save_key = substr($key, 7);
122 122
 							} else {
123 123
 								$save_key = $key;
124 124
 							}
125 125
 
126
-							$value = $customer->get( $save_key );
126
+							$value = $customer->get($save_key);
127 127
 						} else {
128
-							$value = $this->get_user_meta( $user->ID, $key );
128
+							$value = $this->get_user_meta($user->ID, $key);
129 129
 						}
130 130
 						?>
131 131
 						<tr>
132 132
 							<th>
133
-								<label for="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $field['label'] ); ?></label>
133
+								<label for="<?php echo esc_attr($key); ?>"><?php echo esc_html($field['label']); ?></label>
134 134
 							</th>
135 135
 							<td>
136
-								<?php if ( ! empty( $field['type'] ) && 'select' === $field['type'] ) : ?>
137
-									<select name="<?php echo esc_attr( $key ); ?>" id="<?php echo esc_attr( $key ); ?>" class="<?php echo esc_attr( $field['class'] ); ?> wpi_select2" style="width: 25em;">
138
-										<?php foreach ( $field['options'] as $option_key => $option_value ) : ?>
139
-											<option value="<?php echo esc_attr( $option_key ); ?>" <?php selected( $value, $option_key, true ); ?>><?php echo esc_html( $option_value ); ?></option>
136
+								<?php if (!empty($field['type']) && 'select' === $field['type']) : ?>
137
+									<select name="<?php echo esc_attr($key); ?>" id="<?php echo esc_attr($key); ?>" class="<?php echo esc_attr($field['class']); ?> wpi_select2" style="width: 25em;">
138
+										<?php foreach ($field['options'] as $option_key => $option_value) : ?>
139
+											<option value="<?php echo esc_attr($option_key); ?>" <?php selected($value, $option_key, true); ?>><?php echo esc_html($option_value); ?></option>
140 140
 										<?php endforeach; ?>
141 141
 									</select>
142
-								<?php elseif ( ! empty( $field['type'] ) && 'checkbox' === $field['type'] ) : ?>
143
-									<input type="checkbox" name="<?php echo esc_attr( $key ); ?>" id="<?php echo esc_attr( $key ); ?>" value="1" class="<?php echo esc_attr( $field['class'] ); ?>" <?php checked( (int) $value, 1, true ); ?> />
142
+								<?php elseif (!empty($field['type']) && 'checkbox' === $field['type']) : ?>
143
+									<input type="checkbox" name="<?php echo esc_attr($key); ?>" id="<?php echo esc_attr($key); ?>" value="1" class="<?php echo esc_attr($field['class']); ?>" <?php checked((int) $value, 1, true); ?> />
144 144
 								<?php else : ?>
145
-									<input type="text" name="<?php echo esc_attr( $key ); ?>" id="<?php echo esc_attr( $key ); ?>" value="<?php echo esc_attr( $value ); ?>" class="<?php echo ( ! empty( $field['class'] ) ? esc_attr( $field['class'] ) : 'regular-text' ); ?>" />
145
+									<input type="text" name="<?php echo esc_attr($key); ?>" id="<?php echo esc_attr($key); ?>" value="<?php echo esc_attr($value); ?>" class="<?php echo (!empty($field['class']) ? esc_attr($field['class']) : 'regular-text'); ?>" />
146 146
 								<?php endif; ?>
147
-								<p class="description"><?php echo wp_kses_post( $field['description'] ); ?></p>
147
+								<p class="description"><?php echo wp_kses_post($field['description']); ?></p>
148 148
 							</td>
149 149
 						</tr>
150 150
 					<?php endforeach; ?>
@@ -158,43 +158,43 @@  discard block
 block discarded – undo
158 158
 		 *
159 159
 		 * @param int $user_id User ID of the user being saved
160 160
 		 */
161
-		public function save_customer_meta_fields( $user_id ) {
162
-			if ( ! apply_filters( 'getpaid_current_user_can_edit_customer_meta_fields', current_user_can( 'manage_options' ), $user_id ) ) {
161
+		public function save_customer_meta_fields($user_id) {
162
+			if (!apply_filters('getpaid_current_user_can_edit_customer_meta_fields', current_user_can('manage_options'), $user_id)) {
163 163
 				return;
164 164
 			}
165 165
 
166 166
 			$save_fields = $this->get_customer_meta_fields();
167 167
 			$save_data = array();
168 168
 
169
-			foreach ( $save_fields as $fieldset ) {
170
-				foreach ( $fieldset['fields'] as $key => $field ) {
171
-					if ( strpos( $key, '_wpinv_' ) === 0 ) {
172
-						$save_key = substr( $key , 7 );
169
+			foreach ($save_fields as $fieldset) {
170
+				foreach ($fieldset['fields'] as $key => $field) {
171
+					if (strpos($key, '_wpinv_') === 0) {
172
+						$save_key = substr($key, 7);
173 173
 					} else {
174 174
 						$save_key = $key;
175 175
 					}
176 176
 
177
-					if ( $save_key && isset( $field['type'] ) && 'checkbox' === $field['type'] ) {
178
-						$save_data[ $save_key ] = ! empty( $_POST[ $key ] ) ? true : false;
179
-					} else if ( $save_key && isset( $_POST[ $key ] ) ) {
180
-						$save_data[ $save_key ] = wpinv_clean( $_POST[ $key ] );
177
+					if ($save_key && isset($field['type']) && 'checkbox' === $field['type']) {
178
+						$save_data[$save_key] = !empty($_POST[$key]) ? true : false;
179
+					} else if ($save_key && isset($_POST[$key])) {
180
+						$save_data[$save_key] = wpinv_clean($_POST[$key]);
181 181
 					}
182 182
 				}
183 183
 			}
184 184
 
185
-			if ( empty( $save_data ) ) {
185
+			if (empty($save_data)) {
186 186
 				return;
187 187
 			}
188 188
 
189
-			$customer = getpaid_get_customer_by_user_id( (int) $user_id );
189
+			$customer = getpaid_get_customer_by_user_id((int) $user_id);
190 190
 
191
-			if ( empty( $customer ) ) {
192
-				$customer = new GetPaid_Customer( 0 );
193
-				$customer->clone_user( (int) $user_id );
191
+			if (empty($customer)) {
192
+				$customer = new GetPaid_Customer(0);
193
+				$customer->clone_user((int) $user_id);
194 194
 			}
195 195
 
196
-			foreach ( $save_data as $key => $value ) {
197
-				$customer->set( $key, $value );
196
+			foreach ($save_data as $key => $value) {
197
+				$customer->set($key, $value);
198 198
 			}
199 199
 
200 200
 			$customer->save();
@@ -208,12 +208,12 @@  discard block
 block discarded – undo
208 208
 		 * @param string $key     Key for user meta field
209 209
 		 * @return string
210 210
 		 */
211
-		protected function get_user_meta( $user_id, $key ) {
212
-			$value           = get_user_meta( $user_id, $key, true );
213
-			$existing_fields = array( '_wpinv_first_name', '_wpinv_last_name' );
211
+		protected function get_user_meta($user_id, $key) {
212
+			$value           = get_user_meta($user_id, $key, true);
213
+			$existing_fields = array('_wpinv_first_name', '_wpinv_last_name');
214 214
 
215
-			if ( ! $value && in_array( $key, $existing_fields ) ) {
216
-				$value = get_user_meta( $user_id, str_replace( '_wpinv_', '', $key ), true );
215
+			if (!$value && in_array($key, $existing_fields)) {
216
+				$value = get_user_meta($user_id, str_replace('_wpinv_', '', $key), true);
217 217
 			}
218 218
 
219 219
 			return $value;
Please login to merge, or discard this patch.
includes/user-functions.php 2 patches
Indentation   +97 added lines, -97 removed lines patch added patch discarded remove patch
@@ -19,28 +19,28 @@  discard block
 block discarded – undo
19 19
  */
20 20
 function getpaid_get_customers( $args = array(), $return = 'results' ) {
21 21
 
22
-	// Do not retrieve all fields if we just want the count.
23
-	if ( 'count' === $return ) {
24
-		$args['fields'] = 'id';
25
-		$args['number'] = 1;
26
-	}
22
+    // Do not retrieve all fields if we just want the count.
23
+    if ( 'count' === $return ) {
24
+        $args['fields'] = 'id';
25
+        $args['number'] = 1;
26
+    }
27 27
 
28
-	// Do not count all matches if we just want the results.
29
-	if ( 'results' === $return ) {
30
-		$args['count_total'] = false;
31
-	}
28
+    // Do not count all matches if we just want the results.
29
+    if ( 'results' === $return ) {
30
+        $args['count_total'] = false;
31
+    }
32 32
 
33
-	$query = new GetPaid_Customers_Query( $args );
33
+    $query = new GetPaid_Customers_Query( $args );
34 34
 
35
-	if ( 'results' === $return ) {
36
-		return $query->get_results();
37
-	}
35
+    if ( 'results' === $return ) {
36
+        return $query->get_results();
37
+    }
38 38
 
39
-	if ( 'count' === $return ) {
40
-		return $query->get_total();
41
-	}
39
+    if ( 'count' === $return ) {
40
+        return $query->get_total();
41
+    }
42 42
 
43
-	return $query;
43
+    return $query;
44 44
 }
45 45
 
46 46
 /**
@@ -106,11 +106,11 @@  discard block
 block discarded – undo
106 106
  */
107 107
 function wpinv_get_capability( $capalibilty = 'manage_invoicing' ) {
108 108
 
109
-	if ( current_user_can( 'manage_options' ) ) {
110
-		return 'manage_options';
111
-	};
109
+    if ( current_user_can( 'manage_options' ) ) {
110
+        return 'manage_options';
111
+    };
112 112
 
113
-	return $capalibilty;
113
+    return $capalibilty;
114 114
 }
115 115
 
116 116
 /**
@@ -133,9 +133,9 @@  discard block
 block discarded – undo
133 133
  * @return bool Whether the current user has the given capability.
134 134
  */
135 135
 function wpinv_current_user_can( $capability, $args = array() ) {
136
-	$can = wpinv_current_user_can_manage_invoicing();
136
+    $can = wpinv_current_user_can_manage_invoicing();
137 137
 
138
-	return apply_filters( 'getpaid_current_user_can', $can, $capability, $args );
138
+    return apply_filters( 'getpaid_current_user_can', $can, $capability, $args );
139 139
 }
140 140
 
141 141
 /**
@@ -149,10 +149,10 @@  discard block
 block discarded – undo
149 149
     // Prepare user values.
150 150
     $prefix = preg_replace( '/\s+/', '', $prefix );
151 151
     $prefix = empty( $prefix ) ? $email : $prefix;
152
-	$args   = array(
153
-		'user_login' => wpinv_generate_user_name( $prefix ),
154
-		'user_pass'  => wp_generate_password(),
155
-		'user_email' => $email,
152
+    $args   = array(
153
+        'user_login' => wpinv_generate_user_name( $prefix ),
154
+        'user_pass'  => wp_generate_password(),
155
+        'user_email' => $email,
156 156
         'role'       => 'subscriber',
157 157
     );
158 158
 
@@ -169,16 +169,16 @@  discard block
 block discarded – undo
169 169
 function wpinv_generate_user_name( $prefix = '' ) {
170 170
 
171 171
     // If prefix is an email, retrieve the part before the email.
172
-	$prefix = strtok( $prefix, '@' );
172
+    $prefix = strtok( $prefix, '@' );
173 173
     $prefix = trim( $prefix, '.' );
174 174
 
175
-	// Sanitize the username.
176
-	$prefix = sanitize_user( $prefix, true );
175
+    // Sanitize the username.
176
+    $prefix = sanitize_user( $prefix, true );
177 177
 
178
-	$illegal_logins = (array) apply_filters( 'illegal_user_logins', array() );
179
-	if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) {
180
-		$prefix = 'gtp_' . zeroise( wp_rand( 0, 9999 ), 4 );
181
-	}
178
+    $illegal_logins = (array) apply_filters( 'illegal_user_logins', array() );
179
+    if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) {
180
+        $prefix = 'gtp_' . zeroise( wp_rand( 0, 9999 ), 4 );
181
+    }
182 182
 
183 183
     $username = $prefix;
184 184
     $postfix  = 2;
@@ -317,43 +317,43 @@  discard block
 block discarded – undo
317 317
 
318 318
                         $value = $customer->get( $key );
319 319
 
320
-					// Display the country.
321
-					if ( 'country' == $key ) {
322
-
323
-						aui()->select(
324
-							array(
325
-								'options'     => wpinv_get_country_list(),
326
-								'name'        => 'getpaid_address[' . esc_attr( $key ) . ']',
327
-								'id'          => 'wpinv-' . sanitize_html_class( $key ),
328
-								'value'       => sanitize_text_field( $value ),
329
-								'placeholder' => $label,
330
-								'label'       => wp_kses_post( $label ),
331
-								'label_type'  => 'vertical',
332
-								'class'       => 'getpaid-address-field',
320
+                    // Display the country.
321
+                    if ( 'country' == $key ) {
322
+
323
+                        aui()->select(
324
+                            array(
325
+                                'options'     => wpinv_get_country_list(),
326
+                                'name'        => 'getpaid_address[' . esc_attr( $key ) . ']',
327
+                                'id'          => 'wpinv-' . sanitize_html_class( $key ),
328
+                                'value'       => sanitize_text_field( $value ),
329
+                                'placeholder' => $label,
330
+                                'label'       => wp_kses_post( $label ),
331
+                                'label_type'  => 'vertical',
332
+                                'class'       => 'getpaid-address-field',
333 333
                             ),
334 334
                             true
335
-						);
335
+                        );
336 336
 
337
-					}
337
+                    }
338 338
 
339
-					// Display the state.
340
-					elseif ( 'state' == $key ) {
339
+                    // Display the state.
340
+                    elseif ( 'state' == $key ) {
341 341
 
342
-						getpaid_get_states_select_markup(
342
+                        getpaid_get_states_select_markup(
343 343
                             $customer->get( 'country' ),
344
-							$value,
345
-							$label,
346
-							$label,
347
-							'',
348
-							false,
349
-							'',
350
-							'getpaid_address[' . esc_attr( $key ) . ']',
344
+                            $value,
345
+                            $label,
346
+                            $label,
347
+                            '',
348
+                            false,
349
+                            '',
350
+                            'getpaid_address[' . esc_attr( $key ) . ']',
351 351
                             true
352
-						);
352
+                        );
353 353
 
354 354
                         } else {
355 355
 
356
-						aui()->input(
356
+                        aui()->input(
357 357
                             array(
358 358
                                 'name'        => 'getpaid_address[' . esc_attr( $key ) . ']',
359 359
                                 'id'          => 'wpinv-' . sanitize_html_class( $key ),
@@ -365,7 +365,7 @@  discard block
 block discarded – undo
365 365
                                 'class'       => 'getpaid-address-field',
366 366
                             ),
367 367
                             true
368
-						);
368
+                        );
369 369
 
370 370
                         }
371 371
                     }
@@ -509,7 +509,7 @@  discard block
 block discarded – undo
509 509
 function getpaid_allowed_html() {
510 510
     $allowed_html = wp_kses_allowed_html( 'post' );
511 511
 
512
-	// form fields
512
+    // form fields
513 513
     $allowed_html['form'] = array(
514 514
         'action'         => true,
515 515
         'accept'         => true,
@@ -521,12 +521,12 @@  discard block
 block discarded – undo
521 521
     );
522 522
 
523 523
     // - input
524
-	$allowed_html['input'] = array(
525
-		'class'        => array(),
526
-		'id'           => array(),
527
-		'name'         => array(),
528
-		'value'        => array(),
529
-		'type'         => array(),
524
+    $allowed_html['input'] = array(
525
+        'class'        => array(),
526
+        'id'           => array(),
527
+        'name'         => array(),
528
+        'value'        => array(),
529
+        'type'         => array(),
530 530
         'placeholder'  => array(),
531 531
         'autocomplete' => array(),
532 532
         'autofocus'    => array(),
@@ -540,33 +540,33 @@  discard block
 block discarded – undo
540 540
         'max'          => array(),
541 541
         'step'         => array(),
542 542
         'size'         => array(),
543
-	);
543
+    );
544 544
 
545 545
     // - input
546
-	$allowed_html['textarea'] = array(
547
-		'class' => array(),
548
-		'id'    => array(),
549
-		'name'  => array(),
550
-		'value' => array(),
551
-	);
552
-
553
-	// select
554
-	$allowed_html['select'] = array(
555
-		'class'        => array(),
556
-		'id'           => array(),
557
-		'name'         => array(),
546
+    $allowed_html['textarea'] = array(
547
+        'class' => array(),
548
+        'id'    => array(),
549
+        'name'  => array(),
550
+        'value' => array(),
551
+    );
552
+
553
+    // select
554
+    $allowed_html['select'] = array(
555
+        'class'        => array(),
556
+        'id'           => array(),
557
+        'name'         => array(),
558 558
         'autocomplete' => array(),
559 559
         'multiple'     => array(),
560
-	);
560
+    );
561 561
 
562
-	// select options
563
-	$allowed_html['option'] = array(
564
-		'selected' => array(),
562
+    // select options
563
+    $allowed_html['option'] = array(
564
+        'selected' => array(),
565 565
         'disabled' => array(),
566 566
         'value'    => array(),
567
-	);
567
+    );
568 568
 
569
-	return $allowed_html;
569
+    return $allowed_html;
570 570
 
571 571
 }
572 572
 
@@ -870,14 +870,14 @@  discard block
 block discarded – undo
870 870
  * @param WP_User  $user     WP_User object of the user to delete.
871 871
  */
872 872
 function getpaid_delete_user_data( $user_id, $reassign, $user ) {
873
-	global $wpdb;
874
-
875
-	// Delete customer data.
876
-	$wpdb->delete(
877
-		$wpdb->prefix . 'getpaid_customers',
878
-		array(
879
-			'user_id' => (int) $user_id,
880
-		)
881
-	);
873
+    global $wpdb;
874
+
875
+    // Delete customer data.
876
+    $wpdb->delete(
877
+        $wpdb->prefix . 'getpaid_customers',
878
+        array(
879
+            'user_id' => (int) $user_id,
880
+        )
881
+    );
882 882
 }
883 883
 add_action( 'delete_user', 'getpaid_delete_user_data', 10, 3 );
884 884
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +152 added lines, -152 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @package GetPaid
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * Queries the customers database.
@@ -17,26 +17,26 @@  discard block
 block discarded – undo
17 17
  *
18 18
  * @return int|array|GetPaid_Customer[]|GetPaid_Customers_Query
19 19
  */
20
-function getpaid_get_customers( $args = array(), $return = 'results' ) {
20
+function getpaid_get_customers($args = array(), $return = 'results') {
21 21
 
22 22
 	// Do not retrieve all fields if we just want the count.
23
-	if ( 'count' === $return ) {
23
+	if ('count' === $return) {
24 24
 		$args['fields'] = 'id';
25 25
 		$args['number'] = 1;
26 26
 	}
27 27
 
28 28
 	// Do not count all matches if we just want the results.
29
-	if ( 'results' === $return ) {
29
+	if ('results' === $return) {
30 30
 		$args['count_total'] = false;
31 31
 	}
32 32
 
33
-	$query = new GetPaid_Customers_Query( $args );
33
+	$query = new GetPaid_Customers_Query($args);
34 34
 
35
-	if ( 'results' === $return ) {
35
+	if ('results' === $return) {
36 36
 		return $query->get_results();
37 37
 	}
38 38
 
39
-	if ( 'count' === $return ) {
39
+	if ('count' === $return) {
40 40
 		return $query->get_total();
41 41
 	}
42 42
 
@@ -49,19 +49,19 @@  discard block
 block discarded – undo
49 49
  * @param int|string|object|GetPaid_Customer $customer customer id, email or object.
50 50
  * @return GetPaid_Customer|null
51 51
  */
52
-function getpaid_get_customer( $customer ) {
52
+function getpaid_get_customer($customer) {
53 53
 
54
-    if ( empty( $customer ) ) {
54
+    if (empty($customer)) {
55 55
         return null;
56 56
     }
57 57
 
58 58
     // Retrieve the customer.
59
-    if ( ! is_a( $customer, 'GetPaid_Customer' ) ) {
60
-        $customer = new GetPaid_Customer( $customer );
59
+    if (!is_a($customer, 'GetPaid_Customer')) {
60
+        $customer = new GetPaid_Customer($customer);
61 61
     }
62 62
 
63 63
     // Check if it exists.
64
-    if ( $customer->exists() ) {
64
+    if ($customer->exists()) {
65 65
         return $customer;
66 66
     }
67 67
 
@@ -74,9 +74,9 @@  discard block
 block discarded – undo
74 74
  * @return GetPaid_Customer|null
75 75
  * @since 1.0.0
76 76
  */
77
-function getpaid_get_customer_by_user_id( $user_id ) {
77
+function getpaid_get_customer_by_user_id($user_id) {
78 78
     return getpaid_get_customer(
79
-        GetPaid_Customer::get_customer_id_by( $user_id, 'user_id' )
79
+        GetPaid_Customer::get_customer_id_by($user_id, 'user_id')
80 80
     );
81 81
 }
82 82
 
@@ -88,13 +88,13 @@  discard block
 block discarded – undo
88 88
  * @param array $args
89 89
  * @see wp_dropdown_users
90 90
  */
91
-function wpinv_dropdown_users( $args = '' ) {
91
+function wpinv_dropdown_users($args = '') {
92 92
 
93
-    if ( is_array( $args ) && ! empty( $args['show'] ) && 'display_name_with_email' == $args['show'] ) {
93
+    if (is_array($args) && !empty($args['show']) && 'display_name_with_email' == $args['show']) {
94 94
         $args['show'] = 'display_name_with_login';
95 95
     }
96 96
 
97
-    return wp_dropdown_users( $args );
97
+    return wp_dropdown_users($args);
98 98
 }
99 99
 
100 100
 /**
@@ -104,9 +104,9 @@  discard block
 block discarded – undo
104 104
  * @return string capability to check against
105 105
  * @param string $capalibilty Optional. The alternative capability to check against.
106 106
  */
107
-function wpinv_get_capability( $capalibilty = 'manage_invoicing' ) {
107
+function wpinv_get_capability($capalibilty = 'manage_invoicing') {
108 108
 
109
-	if ( current_user_can( 'manage_options' ) ) {
109
+	if (current_user_can('manage_options')) {
110 110
 		return 'manage_options';
111 111
 	};
112 112
 
@@ -120,7 +120,7 @@  discard block
 block discarded – undo
120 120
  * @return bool
121 121
  */
122 122
 function wpinv_current_user_can_manage_invoicing() {
123
-    return current_user_can( wpinv_get_capability() );
123
+    return current_user_can(wpinv_get_capability());
124 124
 }
125 125
 
126 126
 /**
@@ -132,10 +132,10 @@  discard block
 block discarded – undo
132 132
  * @param mixed  $args    Optional further parameters, typically starting with an object.
133 133
  * @return bool Whether the current user has the given capability.
134 134
  */
135
-function wpinv_current_user_can( $capability, $args = array() ) {
135
+function wpinv_current_user_can($capability, $args = array()) {
136 136
 	$can = wpinv_current_user_can_manage_invoicing();
137 137
 
138
-	return apply_filters( 'getpaid_current_user_can', $can, $capability, $args );
138
+	return apply_filters('getpaid_current_user_can', $can, $capability, $args);
139 139
 }
140 140
 
141 141
 /**
@@ -144,19 +144,19 @@  discard block
 block discarded – undo
144 144
  * @since 1.0.19
145 145
  * @return int|WP_Error
146 146
  */
147
-function wpinv_create_user( $email, $prefix = '' ) {
147
+function wpinv_create_user($email, $prefix = '') {
148 148
 
149 149
     // Prepare user values.
150
-    $prefix = preg_replace( '/\s+/', '', $prefix );
151
-    $prefix = empty( $prefix ) ? $email : $prefix;
152
-	$args   = array(
153
-		'user_login' => wpinv_generate_user_name( $prefix ),
150
+    $prefix = preg_replace('/\s+/', '', $prefix);
151
+    $prefix = empty($prefix) ? $email : $prefix;
152
+	$args = array(
153
+		'user_login' => wpinv_generate_user_name($prefix),
154 154
 		'user_pass'  => wp_generate_password(),
155 155
 		'user_email' => $email,
156 156
         'role'       => 'subscriber',
157 157
     );
158 158
 
159
-    return wp_insert_user( $args );
159
+    return wp_insert_user($args);
160 160
 
161 161
 }
162 162
 
@@ -166,26 +166,26 @@  discard block
 block discarded – undo
166 166
  * @since 1.0.19
167 167
  * @return bool|WP_User
168 168
  */
169
-function wpinv_generate_user_name( $prefix = '' ) {
169
+function wpinv_generate_user_name($prefix = '') {
170 170
 
171 171
     // If prefix is an email, retrieve the part before the email.
172
-	$prefix = strtok( $prefix, '@' );
173
-    $prefix = trim( $prefix, '.' );
172
+	$prefix = strtok($prefix, '@');
173
+    $prefix = trim($prefix, '.');
174 174
 
175 175
 	// Sanitize the username.
176
-	$prefix = sanitize_user( $prefix, true );
176
+	$prefix = sanitize_user($prefix, true);
177 177
 
178
-	$illegal_logins = (array) apply_filters( 'illegal_user_logins', array() );
179
-	if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) {
180
-		$prefix = 'gtp_' . zeroise( wp_rand( 0, 9999 ), 4 );
178
+	$illegal_logins = (array) apply_filters('illegal_user_logins', array());
179
+	if (empty($prefix) || in_array(strtolower($prefix), array_map('strtolower', $illegal_logins), true)) {
180
+		$prefix = 'gtp_' . zeroise(wp_rand(0, 9999), 4);
181 181
 	}
182 182
 
183 183
     $username = $prefix;
184 184
     $postfix  = 2;
185 185
 
186
-    while ( username_exists( $username ) ) {
186
+    while (username_exists($username)) {
187 187
         $username = "{$prefix}{$postfix}";
188
-        $postfix ++;
188
+        $postfix++;
189 189
     }
190 190
 
191 191
     return $username;
@@ -202,31 +202,31 @@  discard block
 block discarded – undo
202 202
     $tabs = array(
203 203
 
204 204
         'gp-invoices'      => array(
205
-            'label'   => __( 'Invoices', 'invoicing' ), // Name of the tab.
205
+            'label'   => __('Invoices', 'invoicing'), // Name of the tab.
206 206
             'content' => '[wpinv_history]', // Content of the tab. Or specify "callback" to provide a callback instead.
207 207
             'icon'    => 'fas fa-file-invoice', // Shown on some profile plugins.
208 208
         ),
209 209
 
210 210
         'gp-subscriptions' => array(
211
-            'label'   => __( 'Subscriptions', 'invoicing' ),
211
+            'label'   => __('Subscriptions', 'invoicing'),
212 212
             'content' => '[wpinv_subscriptions]',
213 213
             'icon'    => 'fas fa-redo',
214 214
         ),
215 215
 
216 216
         'gp-edit-address'  => array(
217
-            'label'    => __( 'Billing Address', 'invoicing' ),
217
+            'label'    => __('Billing Address', 'invoicing'),
218 218
             'callback' => 'getpaid_display_address_edit_tab',
219 219
             'icon'     => 'fas fa-credit-card',
220 220
         ),
221 221
 
222 222
     );
223 223
 
224
-    $tabs = apply_filters( 'getpaid_user_content_tabs', $tabs );
224
+    $tabs = apply_filters('getpaid_user_content_tabs', $tabs);
225 225
 
226 226
     // Make sure address editing is last on the list.
227
-    if ( isset( $tabs['gp-edit-address'] ) ) {
227
+    if (isset($tabs['gp-edit-address'])) {
228 228
         $address = $tabs['gp-edit-address'];
229
-        unset( $tabs['gp-edit-address'] );
229
+        unset($tabs['gp-edit-address']);
230 230
         $tabs['gp-edit-address'] = $address;
231 231
     }
232 232
 
@@ -240,19 +240,19 @@  discard block
 block discarded – undo
240 240
  * @param array $tab
241 241
  * @return array
242 242
  */
243
-function getpaid_prepare_user_content_tab( $tab ) {
243
+function getpaid_prepare_user_content_tab($tab) {
244 244
 
245
-    if ( ! empty( $tab['callback'] ) ) {
246
-        return call_user_func( $tab['callback'] );
245
+    if (!empty($tab['callback'])) {
246
+        return call_user_func($tab['callback']);
247 247
     }
248 248
 
249
-    if ( ! empty( $tab['content'] ) ) {
250
-        return convert_smilies( capital_P_dangit( wp_filter_content_tags( do_shortcode( shortcode_unautop( wpautop( wptexturize( do_blocks( $tab['content'] ) ) ) ) ) ) ) );
249
+    if (!empty($tab['content'])) {
250
+        return convert_smilies(capital_P_dangit(wp_filter_content_tags(do_shortcode(shortcode_unautop(wpautop(wptexturize(do_blocks($tab['content']))))))));
251 251
     }
252 252
 
253 253
     $notice = aui()->alert(
254 254
         array(
255
-            'content' => __( 'This tab has no content or content callback.', 'invoicing' ),
255
+            'content' => __('This tab has no content or content callback.', 'invoicing'),
256 256
             'type'    => 'error',
257 257
         )
258 258
     );
@@ -268,14 +268,14 @@  discard block
 block discarded – undo
268 268
  * @param string $default
269 269
  * @return array
270 270
  */
271
-function getpaid_get_tab_url( $tab, $default ) {
271
+function getpaid_get_tab_url($tab, $default) {
272 272
     global $getpaid_tab_url;
273 273
 
274
-    if ( empty( $getpaid_tab_url ) ) {
274
+    if (empty($getpaid_tab_url)) {
275 275
         return $default;
276 276
     }
277 277
 
278
-    return sprintf( $getpaid_tab_url, $tab );
278
+    return sprintf($getpaid_tab_url, $tab);
279 279
 
280 280
 }
281 281
 
@@ -287,21 +287,21 @@  discard block
 block discarded – undo
287 287
  */
288 288
 function getpaid_display_address_edit_tab() {
289 289
 
290
-    if ( 0 === get_current_user_id() ) {
290
+    if (0 === get_current_user_id()) {
291 291
         return '<div class="bsui">' . aui()->alert(
292 292
             array(
293 293
                 'type'        => 'error',
294
-                'content'     => __( 'Your must be logged in to view this section', 'invoicing' ),
294
+                'content'     => __('Your must be logged in to view this section', 'invoicing'),
295 295
                 'dismissible' => false,
296 296
             )
297 297
         ) . '</div>';
298 298
     }
299 299
 
300
-    $customer = getpaid_get_customer_by_user_id( get_current_user_id() );
300
+    $customer = getpaid_get_customer_by_user_id(get_current_user_id());
301 301
 
302
-    if ( empty( $customer ) ) {
303
-        $customer = new GetPaid_Customer( 0 );
304
-        $customer->clone_user( get_current_user_id() );
302
+    if (empty($customer)) {
303
+        $customer = new GetPaid_Customer(0);
304
+        $customer->clone_user(get_current_user_id());
305 305
         $customer->save();
306 306
     }
307 307
 
@@ -313,21 +313,21 @@  discard block
 block discarded – undo
313 313
 
314 314
                 <?php
315 315
 
316
-                    foreach ( getpaid_user_address_fields() as $key => $label ) {
316
+                    foreach (getpaid_user_address_fields() as $key => $label) {
317 317
 
318
-                        $value = $customer->get( $key );
318
+                        $value = $customer->get($key);
319 319
 
320 320
 					// Display the country.
321
-					if ( 'country' == $key ) {
321
+					if ('country' == $key) {
322 322
 
323 323
 						aui()->select(
324 324
 							array(
325 325
 								'options'     => wpinv_get_country_list(),
326
-								'name'        => 'getpaid_address[' . esc_attr( $key ) . ']',
327
-								'id'          => 'wpinv-' . sanitize_html_class( $key ),
328
-								'value'       => sanitize_text_field( $value ),
326
+								'name'        => 'getpaid_address[' . esc_attr($key) . ']',
327
+								'id'          => 'wpinv-' . sanitize_html_class($key),
328
+								'value'       => sanitize_text_field($value),
329 329
 								'placeholder' => $label,
330
-								'label'       => wp_kses_post( $label ),
330
+								'label'       => wp_kses_post($label),
331 331
 								'label_type'  => 'vertical',
332 332
 								'class'       => 'getpaid-address-field',
333 333
                             ),
@@ -337,17 +337,17 @@  discard block
 block discarded – undo
337 337
 					}
338 338
 
339 339
 					// Display the state.
340
-					elseif ( 'state' == $key ) {
340
+					elseif ('state' == $key) {
341 341
 
342 342
 						getpaid_get_states_select_markup(
343
-                            $customer->get( 'country' ),
343
+                            $customer->get('country'),
344 344
 							$value,
345 345
 							$label,
346 346
 							$label,
347 347
 							'',
348 348
 							false,
349 349
 							'',
350
-							'getpaid_address[' . esc_attr( $key ) . ']',
350
+							'getpaid_address[' . esc_attr($key) . ']',
351 351
                             true
352 352
 						);
353 353
 
@@ -355,13 +355,13 @@  discard block
 block discarded – undo
355 355
 
356 356
 						aui()->input(
357 357
                             array(
358
-                                'name'        => 'getpaid_address[' . esc_attr( $key ) . ']',
359
-                                'id'          => 'wpinv-' . sanitize_html_class( $key ),
358
+                                'name'        => 'getpaid_address[' . esc_attr($key) . ']',
359
+                                'id'          => 'wpinv-' . sanitize_html_class($key),
360 360
                                 'placeholder' => $label,
361
-                                'label'       => wp_kses_post( $label ),
361
+                                'label'       => wp_kses_post($label),
362 362
                                 'label_type'  => 'vertical',
363 363
                                 'type'        => 'text',
364
-                                'value'       => sanitize_text_field( $value ),
364
+                                'value'       => sanitize_text_field($value),
365 365
                                 'class'       => 'getpaid-address-field',
366 366
                             ),
367 367
                             true
@@ -375,32 +375,32 @@  discard block
 block discarded – undo
375 375
                             'name'        => 'getpaid_address[email_cc]',
376 376
                             'id'          => 'wpinv-email_cc',
377 377
                             'placeholder' => '[email protected], [email protected]',
378
-                            'label'       => __( 'Other email addresses', 'invoicing' ),
378
+                            'label'       => __('Other email addresses', 'invoicing'),
379 379
                             'label_type'  => 'vertical',
380 380
                             'type'        => 'text',
381
-                            'value'       => sanitize_text_field( $customer->get( 'email_cc' ) ),
381
+                            'value'       => sanitize_text_field($customer->get('email_cc')),
382 382
                             'class'       => 'getpaid-address-field',
383
-                            'help_text'   => __( 'Optionally provide other email addresses where we should send payment notifications', 'invoicing' ),
383
+                            'help_text'   => __('Optionally provide other email addresses where we should send payment notifications', 'invoicing'),
384 384
                         ),
385 385
                         true
386 386
                     );
387 387
 
388
-                    do_action( 'getpaid_display_address_edit_tab' );
388
+                    do_action('getpaid_display_address_edit_tab');
389 389
 
390 390
                     aui()->input(
391 391
                         array(
392 392
                             'name'      => 'getpaid_profile_edit_submit_button',
393 393
                             'id'        => 'getpaid_profile_edit_submit_button',
394
-                            'value'     => __( 'Save Address', 'invoicing' ),
395
-                            'help_text' => __( 'New invoices will use this address as the billing address.', 'invoicing' ),
394
+                            'value'     => __('Save Address', 'invoicing'),
395
+                            'help_text' => __('New invoices will use this address as the billing address.', 'invoicing'),
396 396
                             'type'      => 'submit',
397 397
                             'class'     => 'btn btn-primary btn-block submit-button',
398 398
                         ),
399 399
                         true
400 400
                     );
401 401
 
402
-                    wp_nonce_field( 'getpaid-nonce', 'getpaid-nonce' );
403
-                    getpaid_hidden_field( 'getpaid-action', 'edit_billing_details' );
402
+                    wp_nonce_field('getpaid-nonce', 'getpaid-nonce');
403
+                    getpaid_hidden_field('getpaid-action', 'edit_billing_details');
404 404
                 ?>
405 405
 
406 406
             </form>
@@ -410,7 +410,7 @@  discard block
 block discarded – undo
410 410
 
411 411
     return ob_get_clean();
412 412
 }
413
-add_shortcode( 'getpaid_edit_address', 'getpaid_display_address_edit_tab' );
413
+add_shortcode('getpaid_edit_address', 'getpaid_display_address_edit_tab');
414 414
 
415 415
 /**
416 416
  * Saves the billing address edit tab.
@@ -418,35 +418,35 @@  discard block
 block discarded – undo
418 418
  * @since 2.1.4
419 419
  * @param array $data
420 420
  */
421
-function getpaid_save_address_edit_tab( $data ) {
421
+function getpaid_save_address_edit_tab($data) {
422 422
 
423
-    if ( empty( $data['getpaid_address'] ) || ! is_array( $data['getpaid_address'] ) ) {
423
+    if (empty($data['getpaid_address']) || !is_array($data['getpaid_address'])) {
424 424
         return;
425 425
     }
426 426
 
427 427
     $data     = $data['getpaid_address'];
428
-    $customer = getpaid_get_customer_by_user_id( get_current_user_id() );
428
+    $customer = getpaid_get_customer_by_user_id(get_current_user_id());
429 429
 
430
-    if ( empty( $customer ) ) {
431
-        $customer = new GetPaid_Customer( 0 );
432
-        $customer->clone_user( get_current_user_id() );
430
+    if (empty($customer)) {
431
+        $customer = new GetPaid_Customer(0);
432
+        $customer->clone_user(get_current_user_id());
433 433
     }
434 434
 
435
-    foreach ( array_keys( getpaid_user_address_fields() ) as $field ) {
435
+    foreach (array_keys(getpaid_user_address_fields()) as $field) {
436 436
 
437
-        if ( isset( $data[ $field ] ) ) {
438
-            $customer->set( $field, sanitize_text_field( $data[ $field ] ) );
437
+        if (isset($data[$field])) {
438
+            $customer->set($field, sanitize_text_field($data[$field]));
439 439
         }
440 440
     }
441 441
 
442
-    if ( isset( $data['email_cc'] ) ) {
443
-        $customer->set( 'email_cc', sanitize_text_field( $data['email_cc'] ) );
442
+    if (isset($data['email_cc'])) {
443
+        $customer->set('email_cc', sanitize_text_field($data['email_cc']));
444 444
     }
445 445
 
446 446
     $customer->save();
447
-    wpinv_set_error( 'address_updated' );
447
+    wpinv_set_error('address_updated');
448 448
 }
449
-add_action( 'getpaid_authenticated_action_edit_billing_details', 'getpaid_save_address_edit_tab' );
449
+add_action('getpaid_authenticated_action_edit_billing_details', 'getpaid_save_address_edit_tab');
450 450
 
451 451
 
452 452
 /*
@@ -464,27 +464,27 @@  discard block
 block discarded – undo
464 464
  * @param  array $tabs
465 465
  * @return array
466 466
  */
467
-function getpaid_filter_userswp_account_tabs( $tabs ) {
467
+function getpaid_filter_userswp_account_tabs($tabs) {
468 468
 
469 469
     // Abort if the integration is inactive.
470
-    if ( ! getpaid_is_userswp_integration_active() ) {
470
+    if (!getpaid_is_userswp_integration_active()) {
471 471
         return $tabs;
472 472
     }
473 473
 
474
-    $new_tabs   = array();
474
+    $new_tabs = array();
475 475
 
476
-    foreach ( getpaid_get_user_content_tabs() as $slug => $tab ) {
476
+    foreach (getpaid_get_user_content_tabs() as $slug => $tab) {
477 477
 
478
-        $new_tabs[ $slug ] = array(
478
+        $new_tabs[$slug] = array(
479 479
             'title' => $tab['label'],
480 480
             'icon'  => $tab['icon'],
481 481
         );
482 482
 
483 483
     }
484 484
 
485
-    return array_merge( $tabs, $new_tabs );
485
+    return array_merge($tabs, $new_tabs);
486 486
 }
487
-add_filter( 'uwp_account_available_tabs', 'getpaid_filter_userswp_account_tabs' );
487
+add_filter('uwp_account_available_tabs', 'getpaid_filter_userswp_account_tabs');
488 488
 
489 489
 /**
490 490
  * Display our UsersWP account tabs.
@@ -493,21 +493,21 @@  discard block
 block discarded – undo
493 493
  * @param  array $tabs
494 494
  * @return array
495 495
  */
496
-function getpaid_display_userswp_account_tabs( $tab ) {
496
+function getpaid_display_userswp_account_tabs($tab) {
497 497
     global $getpaid_tab_url;
498 498
 
499 499
     $our_tabs = getpaid_get_user_content_tabs();
500 500
 
501
-    if ( getpaid_is_userswp_integration_active() && isset( $our_tabs[ $tab ] ) ) {
502
-        $getpaid_tab_url = add_query_arg( 'type', '%s', uwp_get_account_page_url() );
503
-        echo wp_kses( getpaid_prepare_user_content_tab( $our_tabs[ $tab ] ), getpaid_allowed_html() );
501
+    if (getpaid_is_userswp_integration_active() && isset($our_tabs[$tab])) {
502
+        $getpaid_tab_url = add_query_arg('type', '%s', uwp_get_account_page_url());
503
+        echo wp_kses(getpaid_prepare_user_content_tab($our_tabs[$tab]), getpaid_allowed_html());
504 504
     }
505 505
 
506 506
 }
507
-add_action( 'uwp_account_form_display', 'getpaid_display_userswp_account_tabs' );
507
+add_action('uwp_account_form_display', 'getpaid_display_userswp_account_tabs');
508 508
 
509 509
 function getpaid_allowed_html() {
510
-    $allowed_html = wp_kses_allowed_html( 'post' );
510
+    $allowed_html = wp_kses_allowed_html('post');
511 511
 
512 512
 	// form fields
513 513
     $allowed_html['form'] = array(
@@ -578,17 +578,17 @@  discard block
 block discarded – undo
578 578
  * @param  string $tab   Current tab.
579 579
  * @return string Title.
580 580
  */
581
-function getpaid_filter_userswp_account_title( $title, $tab ) {
581
+function getpaid_filter_userswp_account_title($title, $tab) {
582 582
 
583
-    $our_tabs   = getpaid_get_user_content_tabs();
583
+    $our_tabs = getpaid_get_user_content_tabs();
584 584
 
585
-    if ( getpaid_is_userswp_integration_active() && isset( $our_tabs[ $tab ] ) ) {
586
-        return $our_tabs[ $tab ]['label'];
585
+    if (getpaid_is_userswp_integration_active() && isset($our_tabs[$tab])) {
586
+        return $our_tabs[$tab]['label'];
587 587
     }
588 588
 
589 589
     return $title;
590 590
 }
591
-add_filter( 'uwp_account_page_title', 'getpaid_filter_userswp_account_title', 10, 2 );
591
+add_filter('uwp_account_page_title', 'getpaid_filter_userswp_account_title', 10, 2);
592 592
 
593 593
 /**
594 594
  * Registers the UsersWP integration settings.
@@ -597,26 +597,26 @@  discard block
 block discarded – undo
597 597
  * @param  array $settings An array of integration settings.
598 598
  * @return array
599 599
  */
600
-function getpaid_register_userswp_settings( $settings ) {
600
+function getpaid_register_userswp_settings($settings) {
601 601
 
602
-    if ( defined( 'USERSWP_PLUGIN_FILE' ) ) {
602
+    if (defined('USERSWP_PLUGIN_FILE')) {
603 603
 
604 604
         $settings[] = array(
605 605
 
606 606
             'id'       => 'userswp',
607
-            'label'    => __( 'UsersWP', 'invoicing' ),
607
+            'label'    => __('UsersWP', 'invoicing'),
608 608
             'settings' => array(
609 609
 
610 610
                 'userswp_settings' => array(
611 611
                     'id'   => 'userswp_settings',
612
-                    'name' => '<h3>' . __( 'UsersWP', 'invoicing' ) . '</h3>',
612
+                    'name' => '<h3>' . __('UsersWP', 'invoicing') . '</h3>',
613 613
                     'type' => 'header',
614 614
                 ),
615 615
 
616 616
                 'enable_userswp'   => array(
617 617
                     'id'   => 'enable_userswp',
618
-                    'name' => __( 'Enable Integration', 'invoicing' ),
619
-                    'desc' => __( 'Display GetPaid items on UsersWP account page.', 'invoicing' ),
618
+                    'name' => __('Enable Integration', 'invoicing'),
619
+                    'desc' => __('Display GetPaid items on UsersWP account page.', 'invoicing'),
620 620
                     'type' => 'checkbox',
621 621
                     'std'  => 1,
622 622
                 ),
@@ -629,7 +629,7 @@  discard block
 block discarded – undo
629 629
 
630 630
     return $settings;
631 631
 }
632
-add_filter( 'getpaid_integration_settings', 'getpaid_register_userswp_settings' );
632
+add_filter('getpaid_integration_settings', 'getpaid_register_userswp_settings');
633 633
 
634 634
 /**
635 635
  * Ovewrites the invoices history page to UsersWP.
@@ -637,18 +637,18 @@  discard block
 block discarded – undo
637 637
  * @since  2.3.1
638 638
  * @return bool
639 639
  */
640
-function getpaid_userswp_overwrite_invoice_history_page( $url, $post_type ) {
640
+function getpaid_userswp_overwrite_invoice_history_page($url, $post_type) {
641 641
 
642 642
     $our_tabs = getpaid_get_user_content_tabs();
643 643
     $tab      = "gp-{$post_type}s";
644
-    if ( getpaid_is_userswp_integration_active() && isset( $our_tabs[ $tab ] ) ) {
645
-        return add_query_arg( 'type', $tab, uwp_get_account_page_url() );
644
+    if (getpaid_is_userswp_integration_active() && isset($our_tabs[$tab])) {
645
+        return add_query_arg('type', $tab, uwp_get_account_page_url());
646 646
     }
647 647
 
648 648
     return $url;
649 649
 
650 650
 }
651
-add_filter( 'wpinv_get_history_page_uri', 'getpaid_userswp_overwrite_invoice_history_page', 10, 2 );
651
+add_filter('wpinv_get_history_page_uri', 'getpaid_userswp_overwrite_invoice_history_page', 10, 2);
652 652
 
653 653
 /**
654 654
  * Checks if the integration is enabled.
@@ -657,8 +657,8 @@  discard block
 block discarded – undo
657 657
  * @return bool
658 658
  */
659 659
 function getpaid_is_userswp_integration_active() {
660
-    $enabled = wpinv_get_option( 'enable_userswp', 1 );
661
-    return defined( 'USERSWP_PLUGIN_FILE' ) && ! empty( $enabled );
660
+    $enabled = wpinv_get_option('enable_userswp', 1);
661
+    return defined('USERSWP_PLUGIN_FILE') && !empty($enabled);
662 662
 }
663 663
 
664 664
 /*
@@ -676,26 +676,26 @@  discard block
 block discarded – undo
676 676
  * @param  array $settings An array of integration settings.
677 677
  * @return array
678 678
  */
679
-function getpaid_register_buddypress_settings( $settings ) {
679
+function getpaid_register_buddypress_settings($settings) {
680 680
 
681
-    if ( class_exists( 'BuddyPress' ) ) {
681
+    if (class_exists('BuddyPress')) {
682 682
 
683 683
         $settings[] = array(
684 684
 
685 685
             'id'       => 'buddypress',
686
-            'label'    => __( 'BuddyPress', 'invoicing' ),
686
+            'label'    => __('BuddyPress', 'invoicing'),
687 687
             'settings' => array(
688 688
 
689 689
                 'buddypress_settings' => array(
690 690
                     'id'   => 'buddypress_settings',
691
-                    'name' => '<h3>' . __( 'BuddyPress', 'invoicing' ) . '</h3>',
691
+                    'name' => '<h3>' . __('BuddyPress', 'invoicing') . '</h3>',
692 692
                     'type' => 'header',
693 693
                 ),
694 694
 
695 695
                 'enable_buddypress'   => array(
696 696
                     'id'   => 'enable_buddypress',
697
-                    'name' => __( 'Enable Integration', 'invoicing' ),
698
-                    'desc' => __( 'Display GetPaid items on BuddyPress account pages.', 'invoicing' ),
697
+                    'name' => __('Enable Integration', 'invoicing'),
698
+                    'desc' => __('Display GetPaid items on BuddyPress account pages.', 'invoicing'),
699 699
                     'type' => 'checkbox',
700 700
                     'std'  => 1,
701 701
                 ),
@@ -708,7 +708,7 @@  discard block
 block discarded – undo
708 708
 
709 709
     return $settings;
710 710
 }
711
-add_filter( 'getpaid_integration_settings', 'getpaid_register_buddypress_settings' );
711
+add_filter('getpaid_integration_settings', 'getpaid_register_buddypress_settings');
712 712
 
713 713
 /**
714 714
  * Checks if the integration is enabled.
@@ -717,8 +717,8 @@  discard block
 block discarded – undo
717 717
  * @return bool
718 718
  */
719 719
 function getpaid_is_buddypress_integration_active() {
720
-    $enabled = wpinv_get_option( 'enable_buddypress', 1 );
721
-    return class_exists( 'BuddyPress' ) && ! empty( $enabled );
720
+    $enabled = wpinv_get_option('enable_buddypress', 1);
721
+    return class_exists('BuddyPress') && !empty($enabled);
722 722
 }
723 723
 
724 724
 /**
@@ -729,13 +729,13 @@  discard block
 block discarded – undo
729 729
  */
730 730
 function getpaid_setup_buddypress_integration() {
731 731
 
732
-    if ( getpaid_is_buddypress_integration_active() ) {
732
+    if (getpaid_is_buddypress_integration_active()) {
733 733
         require_once WPINV_PLUGIN_DIR . 'includes/class-bp-getpaid-component.php';
734 734
         buddypress()->getpaid = new BP_GetPaid_Component();
735 735
     }
736 736
 
737 737
 }
738
-add_action( 'bp_setup_components', 'getpaid_setup_buddypress_integration' );
738
+add_action('bp_setup_components', 'getpaid_setup_buddypress_integration');
739 739
 
740 740
 /**
741 741
  * Checks if a given user has purchased a given item.
@@ -744,10 +744,10 @@  discard block
 block discarded – undo
744 744
  * @param int $item_id The item id.
745 745
  * @return int The IDs of users who purchased the item.
746 746
  */
747
-function getpaid_user_ids_who_purchased_item( $item_id ) {
747
+function getpaid_user_ids_who_purchased_item($item_id) {
748 748
     global $wpdb;
749 749
 
750
-    if ( empty( $item_id ) ) {
750
+    if (empty($item_id)) {
751 751
         return false;
752 752
     }
753 753
 
@@ -760,7 +760,7 @@  discard block
 block discarded – undo
760 760
         )
761 761
     );
762 762
 
763
-    return wp_parse_id_list( $ids );
763
+    return wp_parse_id_list($ids);
764 764
 }
765 765
 
766 766
 /**
@@ -769,10 +769,10 @@  discard block
 block discarded – undo
769 769
  * @since 2.6.17
770 770
  * @param int $user_id The user id.
771 771
  */
772
-function getpaid_has_user_purchased_item( $user_id, $item_id ) {
772
+function getpaid_has_user_purchased_item($user_id, $item_id) {
773 773
     global $wpdb;
774 774
 
775
-    if ( empty( $user_id ) ) {
775
+    if (empty($user_id)) {
776 776
         return false;
777 777
     }
778 778
 
@@ -787,7 +787,7 @@  discard block
 block discarded – undo
787 787
         )
788 788
     );
789 789
 
790
-    return ! empty( $count );
790
+    return !empty($count);
791 791
 }
792 792
 
793 793
 /**
@@ -796,7 +796,7 @@  discard block
 block discarded – undo
796 796
  * @since 2.6.17
797 797
  * @param int $user_id The user id.
798 798
  */
799
-function getpaid_get_user_total_spend( $user_id ) {
799
+function getpaid_get_user_total_spend($user_id) {
800 800
     $args = array(
801 801
         'data'           => array(
802 802
 
@@ -811,17 +811,17 @@  discard block
 block discarded – undo
811 811
 
812 812
             'author' => array(
813 813
                 'type'     => 'post_data',
814
-                'value'    => absint( $user_id ),
814
+                'value'    => absint($user_id),
815 815
                 'key'      => 'posts.post_author',
816 816
                 'operator' => '=',
817 817
             ),
818 818
 
819 819
         ),
820 820
         'query_type'     => 'get_var',
821
-        'invoice_status' => array( 'wpi-renewal', 'wpi-processing', 'publish' ),
821
+        'invoice_status' => array('wpi-renewal', 'wpi-processing', 'publish'),
822 822
     );
823 823
 
824
-    return wpinv_round_amount( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
824
+    return wpinv_round_amount(GetPaid_Reports_Helper::get_invoice_report_data($args));
825 825
 }
826 826
 
827 827
 /**
@@ -830,7 +830,7 @@  discard block
 block discarded – undo
830 830
  * @since 2.6.17
831 831
  * @param int $user_id The user id.
832 832
  */
833
-function getpaid_count_user_invoices( $user_id ) {
833
+function getpaid_count_user_invoices($user_id) {
834 834
     $args = array(
835 835
         'data'           => array(
836 836
 
@@ -846,17 +846,17 @@  discard block
 block discarded – undo
846 846
 
847 847
             'author' => array(
848 848
                 'type'     => 'post_data',
849
-                'value'    => absint( $user_id ),
849
+                'value'    => absint($user_id),
850 850
                 'key'      => 'posts.post_author',
851 851
                 'operator' => '=',
852 852
             ),
853 853
 
854 854
         ),
855 855
         'query_type'     => 'get_var',
856
-        'invoice_status' => array_keys( wpinv_get_invoice_statuses() ),
856
+        'invoice_status' => array_keys(wpinv_get_invoice_statuses()),
857 857
     );
858 858
 
859
-    return absint( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
859
+    return absint(GetPaid_Reports_Helper::get_invoice_report_data($args));
860 860
 }
861 861
 
862 862
 /**
@@ -869,7 +869,7 @@  discard block
 block discarded – undo
869 869
  *                           Default null, for no reassignment.
870 870
  * @param WP_User  $user     WP_User object of the user to delete.
871 871
  */
872
-function getpaid_delete_user_data( $user_id, $reassign, $user ) {
872
+function getpaid_delete_user_data($user_id, $reassign, $user) {
873 873
 	global $wpdb;
874 874
 
875 875
 	// Delete customer data.
@@ -880,4 +880,4 @@  discard block
 block discarded – undo
880 880
 		)
881 881
 	);
882 882
 }
883
-add_action( 'delete_user', 'getpaid_delete_user_data', 10, 3 );
884 883
\ No newline at end of file
884
+add_action('delete_user', 'getpaid_delete_user_data', 10, 3);
885 885
\ No newline at end of file
Please login to merge, or discard this patch.
includes/payments/class-getpaid-payment-form-submission-taxes.php 2 patches
Indentation   +244 added lines, -244 removed lines patch added patch discarded remove patch
@@ -12,257 +12,257 @@
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Payment_Form_Submission_Taxes {
14 14
 
15
-	/**
16
-	 * Submission taxes.
17
-	 * @var array
18
-	 */
19
-	public $taxes = array();
20
-
21
-	/**
22
-	 * Whether or not we should skip the taxes.
23
-	 * @var bool
24
-	 */
25
-	protected $skip_taxes = false;
15
+    /**
16
+     * Submission taxes.
17
+     * @var array
18
+     */
19
+    public $taxes = array();
20
+
21
+    /**
22
+     * Whether or not we should skip the taxes.
23
+     * @var bool
24
+     */
25
+    protected $skip_taxes = false;
26
+
27
+    /**
28
+     * Class constructor
29
+     *
30
+     * @param GetPaid_Payment_Form_Submission $submission
31
+     */
32
+    public function __construct( $submission ) {
33
+        // Validate VAT number.
34
+        $this->validate_vat( $submission );
35
+
36
+        if ( $this->skip_taxes ) {
37
+            return;
38
+        }
39
+
40
+        foreach ( $submission->get_items() as $item ) {
41
+            $this->process_item_tax( $item, $submission );
42
+        }
43
+
44
+        // Process any existing invoice taxes.
45
+        if ( $submission->has_invoice() ) {
46
+            $invoice = $submission->get_invoice();
47
+            $invoice = $this->refresh_totals( $invoice, $submission );
48
+
49
+            $this->taxes = array_replace( $invoice->get_taxes(), $this->taxes );
50
+        }
51
+    }
52
+
53
+    /**
54
+     * Maybe process tax.
55
+     *
56
+     * @since 1.0.19
57
+     * @param GetPaid_Form_Item $item
58
+     * @param GetPaid_Payment_Form_Submission $submission
59
+     */
60
+    public function process_item_tax( $item, $submission ) {
61
+
62
+        $rates    = getpaid_get_item_tax_rates( $item, $submission->country, $submission->state );
63
+        $rates    = getpaid_filter_item_tax_rates( $item, $rates );
64
+        $taxes    = getpaid_calculate_item_taxes( getpaid_get_taxable_amount( $item, false ), $rates );
65
+        $r_taxes  = getpaid_calculate_item_taxes( getpaid_get_taxable_amount( $item, true ), $rates );
66
+
67
+        foreach ( $taxes as $name => $amount ) {
68
+            $recurring = isset( $r_taxes[ $name ] ) ? $r_taxes[ $name ] : 0;
69
+            $tax       = getpaid_prepare_item_tax( $item, $name, $amount, $recurring );
70
+
71
+            $item->item_tax += wpinv_sanitize_amount( $tax['initial_tax'] );
72
+
73
+            if ( ! isset( $this->taxes[ $name ] ) ) {
74
+                $this->taxes[ $name ] = $tax;
75
+                continue;
76
+            }
77
+
78
+            $this->taxes[ $name ]['initial_tax']   += $tax['initial_tax'];
79
+            $this->taxes[ $name ]['recurring_tax'] += $tax['recurring_tax'];
80
+
81
+        }
82
+
83
+    }
26 84
 
27 85
     /**
28
-	 * Class constructor
29
-	 *
30
-	 * @param GetPaid_Payment_Form_Submission $submission
31
-	 */
32
-	public function __construct( $submission ) {
33
-		// Validate VAT number.
34
-		$this->validate_vat( $submission );
35
-
36
-		if ( $this->skip_taxes ) {
37
-			return;
38
-		}
39
-
40
-		foreach ( $submission->get_items() as $item ) {
41
-			$this->process_item_tax( $item, $submission );
42
-		}
43
-
44
-		// Process any existing invoice taxes.
45
-		if ( $submission->has_invoice() ) {
46
-			$invoice = $submission->get_invoice();
47
-			$invoice = $this->refresh_totals( $invoice, $submission );
48
-
49
-			$this->taxes = array_replace( $invoice->get_taxes(), $this->taxes );
50
-		}
51
-	}
52
-
53
-	/**
54
-	 * Maybe process tax.
55
-	 *
56
-	 * @since 1.0.19
57
-	 * @param GetPaid_Form_Item $item
58
-	 * @param GetPaid_Payment_Form_Submission $submission
59
-	 */
60
-	public function process_item_tax( $item, $submission ) {
61
-
62
-		$rates    = getpaid_get_item_tax_rates( $item, $submission->country, $submission->state );
63
-		$rates    = getpaid_filter_item_tax_rates( $item, $rates );
64
-		$taxes    = getpaid_calculate_item_taxes( getpaid_get_taxable_amount( $item, false ), $rates );
65
-		$r_taxes  = getpaid_calculate_item_taxes( getpaid_get_taxable_amount( $item, true ), $rates );
66
-
67
-		foreach ( $taxes as $name => $amount ) {
68
-			$recurring = isset( $r_taxes[ $name ] ) ? $r_taxes[ $name ] : 0;
69
-			$tax       = getpaid_prepare_item_tax( $item, $name, $amount, $recurring );
70
-
71
-			$item->item_tax += wpinv_sanitize_amount( $tax['initial_tax'] );
72
-
73
-			if ( ! isset( $this->taxes[ $name ] ) ) {
74
-				$this->taxes[ $name ] = $tax;
75
-				continue;
76
-			}
77
-
78
-			$this->taxes[ $name ]['initial_tax']   += $tax['initial_tax'];
79
-			$this->taxes[ $name ]['recurring_tax'] += $tax['recurring_tax'];
80
-
81
-		}
82
-
83
-	}
84
-
85
-	/**
86
-	 * Checks if the submission has a digital item.
87
-	 *
88
-	 * @param GetPaid_Payment_Form_Submission $submission
89
-	 * @since 1.0.19
90
-	 * @return bool
91
-	 */
92
-	public function has_digital_item( $submission ) {
93
-
94
-		foreach ( $submission->get_items() as $item ) {
95
-
96
-			if ( 'digital' == $item->get_vat_rule() ) {
97
-				return true;
98
-			}
86
+     * Checks if the submission has a digital item.
87
+     *
88
+     * @param GetPaid_Payment_Form_Submission $submission
89
+     * @since 1.0.19
90
+     * @return bool
91
+     */
92
+    public function has_digital_item( $submission ) {
93
+
94
+        foreach ( $submission->get_items() as $item ) {
95
+
96
+            if ( 'digital' == $item->get_vat_rule() ) {
97
+                return true;
98
+            }
99 99
 }
100 100
 
101
-		return false;
102
-	}
103
-
104
-	/**
105
-	 * Checks if this is an eu store.
106
-	 *
107
-	 * @since 1.0.19
108
-	 * @return bool
109
-	 */
110
-	public static function is_eu_store() {
111
-		return self::is_eu_country( wpinv_get_default_country() );
112
-	}
113
-
114
-	/**
115
-	 * Checks if this is an eu country.
116
-	 *
117
-	 * @param string $country
118
-	 * @since 1.0.19
119
-	 * @return bool
120
-	 */
121
-	public static function is_eu_country( $country ) {
122
-		return getpaid_is_eu_state( $country );
123
-	}
124
-
125
-	/**
126
-	 * Checks if this is an eu purchase.
127
-	 *
128
-	 * @param string $customer_country
129
-	 * @since 1.0.19
130
-	 * @return bool
131
-	 */
132
-	public static function is_eu_transaction( $customer_country ) {
133
-		return self::is_eu_country( $customer_country ) && self::is_eu_store();
134
-	}
135
-
136
-	/**
137
-	 * Retrieves the vat number.
138
-	 *
139
-	 * @param GetPaid_Payment_Form_Submission $submission
140
-	 * @since 1.0.19
141
-	 * @return string
142
-	 */
143
-	public function get_vat_number( $submission ) {
144
-
145
-		// Retrieve from the posted number.
146
-		$vat_number = $submission->get_field( 'wpinv_vat_number', 'billing' );
147
-		if ( ! is_null( $vat_number ) ) {
148
-			return wpinv_clean( $vat_number );
149
-		}
150
-
151
-		return $submission->has_invoice() ? $submission->get_invoice()->get_vat_number() : '';
152
-	}
153
-
154
-	/**
155
-	 * Retrieves the company.
156
-	 *
157
-	 * @param GetPaid_Payment_Form_Submission $submission
158
-	 * @since 1.0.19
159
-	 * @return string
160
-	 */
161
-	public function get_company( $submission ) {
162
-
163
-		// Retrieve from the posted data.
164
-		$company = $submission->get_field( 'wpinv_company', 'billing' );
165
-		if ( ! empty( $company ) ) {
166
-			return wpinv_clean( $company );
167
-		}
168
-
169
-		// Retrieve from the invoice.
170
-		return $submission->has_invoice() ? $submission->get_invoice()->get_company() : '';
171
-	}
172
-
173
-	/**
174
-	 * Checks if we require a VAT number.
175
-	 *
176
-	 * @param bool $ip_in_eu Whether the customer IP is from the EU
177
-	 * @param bool $country_in_eu Whether the customer country is from the EU
178
-	 * @since 1.0.19
179
-	 * @return string
180
-	 */
181
-	public function requires_vat( $ip_in_eu, $country_in_eu ) {
182
-
183
-		$prevent_b2c = wpinv_get_option( 'vat_prevent_b2c_purchase' );
184
-		$prevent_b2c = ! empty( $prevent_b2c );
185
-		$is_eu       = $ip_in_eu || $country_in_eu;
186
-
187
-		return $prevent_b2c && $is_eu;
188
-	}
189
-
190
-	/**
191
-	 * Validate VAT data.
192
-	 *
193
-	 * @param GetPaid_Payment_Form_Submission $submission
194
-	 * @since 1.0.19
195
-	 */
196
-	public function validate_vat( $submission ) {
197
-
198
-		$in_eu = $this->is_eu_transaction( $submission->country );
199
-
200
-		// Abort if we are not validating vat numbers.
201
-		if ( ! $in_eu ) {
101
+        return false;
102
+    }
103
+
104
+    /**
105
+     * Checks if this is an eu store.
106
+     *
107
+     * @since 1.0.19
108
+     * @return bool
109
+     */
110
+    public static function is_eu_store() {
111
+        return self::is_eu_country( wpinv_get_default_country() );
112
+    }
113
+
114
+    /**
115
+     * Checks if this is an eu country.
116
+     *
117
+     * @param string $country
118
+     * @since 1.0.19
119
+     * @return bool
120
+     */
121
+    public static function is_eu_country( $country ) {
122
+        return getpaid_is_eu_state( $country );
123
+    }
124
+
125
+    /**
126
+     * Checks if this is an eu purchase.
127
+     *
128
+     * @param string $customer_country
129
+     * @since 1.0.19
130
+     * @return bool
131
+     */
132
+    public static function is_eu_transaction( $customer_country ) {
133
+        return self::is_eu_country( $customer_country ) && self::is_eu_store();
134
+    }
135
+
136
+    /**
137
+     * Retrieves the vat number.
138
+     *
139
+     * @param GetPaid_Payment_Form_Submission $submission
140
+     * @since 1.0.19
141
+     * @return string
142
+     */
143
+    public function get_vat_number( $submission ) {
144
+
145
+        // Retrieve from the posted number.
146
+        $vat_number = $submission->get_field( 'wpinv_vat_number', 'billing' );
147
+        if ( ! is_null( $vat_number ) ) {
148
+            return wpinv_clean( $vat_number );
149
+        }
150
+
151
+        return $submission->has_invoice() ? $submission->get_invoice()->get_vat_number() : '';
152
+    }
153
+
154
+    /**
155
+     * Retrieves the company.
156
+     *
157
+     * @param GetPaid_Payment_Form_Submission $submission
158
+     * @since 1.0.19
159
+     * @return string
160
+     */
161
+    public function get_company( $submission ) {
162
+
163
+        // Retrieve from the posted data.
164
+        $company = $submission->get_field( 'wpinv_company', 'billing' );
165
+        if ( ! empty( $company ) ) {
166
+            return wpinv_clean( $company );
167
+        }
168
+
169
+        // Retrieve from the invoice.
170
+        return $submission->has_invoice() ? $submission->get_invoice()->get_company() : '';
171
+    }
172
+
173
+    /**
174
+     * Checks if we require a VAT number.
175
+     *
176
+     * @param bool $ip_in_eu Whether the customer IP is from the EU
177
+     * @param bool $country_in_eu Whether the customer country is from the EU
178
+     * @since 1.0.19
179
+     * @return string
180
+     */
181
+    public function requires_vat( $ip_in_eu, $country_in_eu ) {
182
+
183
+        $prevent_b2c = wpinv_get_option( 'vat_prevent_b2c_purchase' );
184
+        $prevent_b2c = ! empty( $prevent_b2c );
185
+        $is_eu       = $ip_in_eu || $country_in_eu;
186
+
187
+        return $prevent_b2c && $is_eu;
188
+    }
189
+
190
+    /**
191
+     * Validate VAT data.
192
+     *
193
+     * @param GetPaid_Payment_Form_Submission $submission
194
+     * @since 1.0.19
195
+     */
196
+    public function validate_vat( $submission ) {
197
+
198
+        $in_eu = $this->is_eu_transaction( $submission->country );
199
+
200
+        // Abort if we are not validating vat numbers.
201
+        if ( ! $in_eu ) {
202 202
             return;
203
-		}
203
+        }
204 204
 
205
-		// Prepare variables.
206
-		$vat_number  = $this->get_vat_number( $submission );
207
-		$ip_country  = getpaid_get_ip_country();
205
+        // Prepare variables.
206
+        $vat_number  = $this->get_vat_number( $submission );
207
+        $ip_country  = getpaid_get_ip_country();
208 208
         $is_eu       = $this->is_eu_country( $submission->country );
209 209
         $is_ip_eu    = $this->is_eu_country( $ip_country );
210 210
 
211
-		// Maybe abort early for initial fetches.
212
-		if ( $submission->is_initial_fetch() && empty( $vat_number ) ) {
213
-			return;
214
-		}
215
-
216
-		// If we're preventing business to consumer purchases,
217
-		if ( $this->requires_vat( $is_ip_eu, $is_eu ) && empty( $vat_number ) ) {
218
-
219
-			// Ensure that a vat number has been specified.
220
-			throw new GetPaid_Payment_Exception( '.getpaid-error-billingwpinv_vat_number.getpaid-custom-payment-form-errors', __( 'Please enter your VAT number to verify your purchase is by an EU business.', 'invoicing' ) );
221
-
222
-		}
223
-
224
-		if ( empty( $vat_number ) ) {
225
-			return;
226
-		}
227
-
228
-		if ( wpinv_should_validate_vat_number() && ! wpinv_validate_vat_number( $vat_number, $submission->country ) ) {
229
-			throw new GetPaid_Payment_Exception( '.getpaid-error-billingwpinv_vat_number.getpaid-custom-payment-form-errors', __( 'Your VAT number is invalid', 'invoicing' ) );
230
-		}
231
-
232
-		if ( wpinv_default_billing_country() == $submission->country && 'vat_too' == wpinv_get_option( 'vat_same_country_rule', 'vat_too' ) ) {
233
-			return;
234
-		}
235
-
236
-		$this->skip_taxes = true;
237
-	}
238
-
239
-	 /**
240
-	 * Refresh totals if country or region changed in payment form.
241
-	 *
242
-	 * @since 2.8.8
243
-	 *
244
-	 * @param object $invoice Invoice object.
245
-	 * @param GetPaid_Payment_Form_Submission $submission Payment form submission object.
246
-	 * @return object Invoice object.
247
-	 */
248
-	public function refresh_totals( $invoice, $submission ) {
249
-		if ( ! ( ! empty( $_POST['action'] ) && ( $_POST['action'] == 'wpinv_payment_form_refresh_prices' || $_POST['action'] == 'wpinv_payment_form' ) && isset( $_POST['billing']['wpinv_country'] ) ) ) {
250
-			return $invoice;
251
-		}
252
-
253
-		if ( ! ( ! $invoice->is_paid() && ! $invoice->is_refunded() && ! $invoice->is_held() ) ) {
254
-			return $invoice;
255
-		}
256
-
257
-		// Maybe check the country, state.
258
-		if ( $submission->country != $invoice->get_country() || $submission->state != $invoice->get_state() ) {
259
-			$invoice->set_country( sanitize_text_field( $submission->country ) );
260
-			$invoice->set_state( sanitize_text_field( $submission->state ) );
261
-
262
-			// Recalculate totals.
263
-			$invoice->recalculate_total();
264
-		}
265
-
266
-		return $invoice;
267
-	}
211
+        // Maybe abort early for initial fetches.
212
+        if ( $submission->is_initial_fetch() && empty( $vat_number ) ) {
213
+            return;
214
+        }
215
+
216
+        // If we're preventing business to consumer purchases,
217
+        if ( $this->requires_vat( $is_ip_eu, $is_eu ) && empty( $vat_number ) ) {
218
+
219
+            // Ensure that a vat number has been specified.
220
+            throw new GetPaid_Payment_Exception( '.getpaid-error-billingwpinv_vat_number.getpaid-custom-payment-form-errors', __( 'Please enter your VAT number to verify your purchase is by an EU business.', 'invoicing' ) );
221
+
222
+        }
223
+
224
+        if ( empty( $vat_number ) ) {
225
+            return;
226
+        }
227
+
228
+        if ( wpinv_should_validate_vat_number() && ! wpinv_validate_vat_number( $vat_number, $submission->country ) ) {
229
+            throw new GetPaid_Payment_Exception( '.getpaid-error-billingwpinv_vat_number.getpaid-custom-payment-form-errors', __( 'Your VAT number is invalid', 'invoicing' ) );
230
+        }
231
+
232
+        if ( wpinv_default_billing_country() == $submission->country && 'vat_too' == wpinv_get_option( 'vat_same_country_rule', 'vat_too' ) ) {
233
+            return;
234
+        }
235
+
236
+        $this->skip_taxes = true;
237
+    }
238
+
239
+        /**
240
+         * Refresh totals if country or region changed in payment form.
241
+         *
242
+         * @since 2.8.8
243
+         *
244
+         * @param object $invoice Invoice object.
245
+         * @param GetPaid_Payment_Form_Submission $submission Payment form submission object.
246
+         * @return object Invoice object.
247
+         */
248
+    public function refresh_totals( $invoice, $submission ) {
249
+        if ( ! ( ! empty( $_POST['action'] ) && ( $_POST['action'] == 'wpinv_payment_form_refresh_prices' || $_POST['action'] == 'wpinv_payment_form' ) && isset( $_POST['billing']['wpinv_country'] ) ) ) {
250
+            return $invoice;
251
+        }
252
+
253
+        if ( ! ( ! $invoice->is_paid() && ! $invoice->is_refunded() && ! $invoice->is_held() ) ) {
254
+            return $invoice;
255
+        }
256
+
257
+        // Maybe check the country, state.
258
+        if ( $submission->country != $invoice->get_country() || $submission->state != $invoice->get_state() ) {
259
+            $invoice->set_country( sanitize_text_field( $submission->country ) );
260
+            $invoice->set_state( sanitize_text_field( $submission->state ) );
261
+
262
+            // Recalculate totals.
263
+            $invoice->recalculate_total();
264
+        }
265
+
266
+        return $invoice;
267
+    }
268 268
 }
Please login to merge, or discard this patch.
Spacing   +60 added lines, -60 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
  * Payment form submission taxes class
@@ -29,24 +29,24 @@  discard block
 block discarded – undo
29 29
 	 *
30 30
 	 * @param GetPaid_Payment_Form_Submission $submission
31 31
 	 */
32
-	public function __construct( $submission ) {
32
+	public function __construct($submission) {
33 33
 		// Validate VAT number.
34
-		$this->validate_vat( $submission );
34
+		$this->validate_vat($submission);
35 35
 
36
-		if ( $this->skip_taxes ) {
36
+		if ($this->skip_taxes) {
37 37
 			return;
38 38
 		}
39 39
 
40
-		foreach ( $submission->get_items() as $item ) {
41
-			$this->process_item_tax( $item, $submission );
40
+		foreach ($submission->get_items() as $item) {
41
+			$this->process_item_tax($item, $submission);
42 42
 		}
43 43
 
44 44
 		// Process any existing invoice taxes.
45
-		if ( $submission->has_invoice() ) {
45
+		if ($submission->has_invoice()) {
46 46
 			$invoice = $submission->get_invoice();
47
-			$invoice = $this->refresh_totals( $invoice, $submission );
47
+			$invoice = $this->refresh_totals($invoice, $submission);
48 48
 
49
-			$this->taxes = array_replace( $invoice->get_taxes(), $this->taxes );
49
+			$this->taxes = array_replace($invoice->get_taxes(), $this->taxes);
50 50
 		}
51 51
 	}
52 52
 
@@ -57,26 +57,26 @@  discard block
 block discarded – undo
57 57
 	 * @param GetPaid_Form_Item $item
58 58
 	 * @param GetPaid_Payment_Form_Submission $submission
59 59
 	 */
60
-	public function process_item_tax( $item, $submission ) {
60
+	public function process_item_tax($item, $submission) {
61 61
 
62
-		$rates    = getpaid_get_item_tax_rates( $item, $submission->country, $submission->state );
63
-		$rates    = getpaid_filter_item_tax_rates( $item, $rates );
64
-		$taxes    = getpaid_calculate_item_taxes( getpaid_get_taxable_amount( $item, false ), $rates );
65
-		$r_taxes  = getpaid_calculate_item_taxes( getpaid_get_taxable_amount( $item, true ), $rates );
62
+		$rates    = getpaid_get_item_tax_rates($item, $submission->country, $submission->state);
63
+		$rates    = getpaid_filter_item_tax_rates($item, $rates);
64
+		$taxes    = getpaid_calculate_item_taxes(getpaid_get_taxable_amount($item, false), $rates);
65
+		$r_taxes  = getpaid_calculate_item_taxes(getpaid_get_taxable_amount($item, true), $rates);
66 66
 
67
-		foreach ( $taxes as $name => $amount ) {
68
-			$recurring = isset( $r_taxes[ $name ] ) ? $r_taxes[ $name ] : 0;
69
-			$tax       = getpaid_prepare_item_tax( $item, $name, $amount, $recurring );
67
+		foreach ($taxes as $name => $amount) {
68
+			$recurring = isset($r_taxes[$name]) ? $r_taxes[$name] : 0;
69
+			$tax       = getpaid_prepare_item_tax($item, $name, $amount, $recurring);
70 70
 
71
-			$item->item_tax += wpinv_sanitize_amount( $tax['initial_tax'] );
71
+			$item->item_tax += wpinv_sanitize_amount($tax['initial_tax']);
72 72
 
73
-			if ( ! isset( $this->taxes[ $name ] ) ) {
74
-				$this->taxes[ $name ] = $tax;
73
+			if (!isset($this->taxes[$name])) {
74
+				$this->taxes[$name] = $tax;
75 75
 				continue;
76 76
 			}
77 77
 
78
-			$this->taxes[ $name ]['initial_tax']   += $tax['initial_tax'];
79
-			$this->taxes[ $name ]['recurring_tax'] += $tax['recurring_tax'];
78
+			$this->taxes[$name]['initial_tax']   += $tax['initial_tax'];
79
+			$this->taxes[$name]['recurring_tax'] += $tax['recurring_tax'];
80 80
 
81 81
 		}
82 82
 
@@ -89,11 +89,11 @@  discard block
 block discarded – undo
89 89
 	 * @since 1.0.19
90 90
 	 * @return bool
91 91
 	 */
92
-	public function has_digital_item( $submission ) {
92
+	public function has_digital_item($submission) {
93 93
 
94
-		foreach ( $submission->get_items() as $item ) {
94
+		foreach ($submission->get_items() as $item) {
95 95
 
96
-			if ( 'digital' == $item->get_vat_rule() ) {
96
+			if ('digital' == $item->get_vat_rule()) {
97 97
 				return true;
98 98
 			}
99 99
 }
@@ -108,7 +108,7 @@  discard block
 block discarded – undo
108 108
 	 * @return bool
109 109
 	 */
110 110
 	public static function is_eu_store() {
111
-		return self::is_eu_country( wpinv_get_default_country() );
111
+		return self::is_eu_country(wpinv_get_default_country());
112 112
 	}
113 113
 
114 114
 	/**
@@ -118,8 +118,8 @@  discard block
 block discarded – undo
118 118
 	 * @since 1.0.19
119 119
 	 * @return bool
120 120
 	 */
121
-	public static function is_eu_country( $country ) {
122
-		return getpaid_is_eu_state( $country );
121
+	public static function is_eu_country($country) {
122
+		return getpaid_is_eu_state($country);
123 123
 	}
124 124
 
125 125
 	/**
@@ -129,8 +129,8 @@  discard block
 block discarded – undo
129 129
 	 * @since 1.0.19
130 130
 	 * @return bool
131 131
 	 */
132
-	public static function is_eu_transaction( $customer_country ) {
133
-		return self::is_eu_country( $customer_country ) && self::is_eu_store();
132
+	public static function is_eu_transaction($customer_country) {
133
+		return self::is_eu_country($customer_country) && self::is_eu_store();
134 134
 	}
135 135
 
136 136
 	/**
@@ -140,12 +140,12 @@  discard block
 block discarded – undo
140 140
 	 * @since 1.0.19
141 141
 	 * @return string
142 142
 	 */
143
-	public function get_vat_number( $submission ) {
143
+	public function get_vat_number($submission) {
144 144
 
145 145
 		// Retrieve from the posted number.
146
-		$vat_number = $submission->get_field( 'wpinv_vat_number', 'billing' );
147
-		if ( ! is_null( $vat_number ) ) {
148
-			return wpinv_clean( $vat_number );
146
+		$vat_number = $submission->get_field('wpinv_vat_number', 'billing');
147
+		if (!is_null($vat_number)) {
148
+			return wpinv_clean($vat_number);
149 149
 		}
150 150
 
151 151
 		return $submission->has_invoice() ? $submission->get_invoice()->get_vat_number() : '';
@@ -158,12 +158,12 @@  discard block
 block discarded – undo
158 158
 	 * @since 1.0.19
159 159
 	 * @return string
160 160
 	 */
161
-	public function get_company( $submission ) {
161
+	public function get_company($submission) {
162 162
 
163 163
 		// Retrieve from the posted data.
164
-		$company = $submission->get_field( 'wpinv_company', 'billing' );
165
-		if ( ! empty( $company ) ) {
166
-			return wpinv_clean( $company );
164
+		$company = $submission->get_field('wpinv_company', 'billing');
165
+		if (!empty($company)) {
166
+			return wpinv_clean($company);
167 167
 		}
168 168
 
169 169
 		// Retrieve from the invoice.
@@ -178,10 +178,10 @@  discard block
 block discarded – undo
178 178
 	 * @since 1.0.19
179 179
 	 * @return string
180 180
 	 */
181
-	public function requires_vat( $ip_in_eu, $country_in_eu ) {
181
+	public function requires_vat($ip_in_eu, $country_in_eu) {
182 182
 
183
-		$prevent_b2c = wpinv_get_option( 'vat_prevent_b2c_purchase' );
184
-		$prevent_b2c = ! empty( $prevent_b2c );
183
+		$prevent_b2c = wpinv_get_option('vat_prevent_b2c_purchase');
184
+		$prevent_b2c = !empty($prevent_b2c);
185 185
 		$is_eu       = $ip_in_eu || $country_in_eu;
186 186
 
187 187
 		return $prevent_b2c && $is_eu;
@@ -193,43 +193,43 @@  discard block
 block discarded – undo
193 193
 	 * @param GetPaid_Payment_Form_Submission $submission
194 194
 	 * @since 1.0.19
195 195
 	 */
196
-	public function validate_vat( $submission ) {
196
+	public function validate_vat($submission) {
197 197
 
198
-		$in_eu = $this->is_eu_transaction( $submission->country );
198
+		$in_eu = $this->is_eu_transaction($submission->country);
199 199
 
200 200
 		// Abort if we are not validating vat numbers.
201
-		if ( ! $in_eu ) {
201
+		if (!$in_eu) {
202 202
             return;
203 203
 		}
204 204
 
205 205
 		// Prepare variables.
206
-		$vat_number  = $this->get_vat_number( $submission );
206
+		$vat_number  = $this->get_vat_number($submission);
207 207
 		$ip_country  = getpaid_get_ip_country();
208
-        $is_eu       = $this->is_eu_country( $submission->country );
209
-        $is_ip_eu    = $this->is_eu_country( $ip_country );
208
+        $is_eu       = $this->is_eu_country($submission->country);
209
+        $is_ip_eu    = $this->is_eu_country($ip_country);
210 210
 
211 211
 		// Maybe abort early for initial fetches.
212
-		if ( $submission->is_initial_fetch() && empty( $vat_number ) ) {
212
+		if ($submission->is_initial_fetch() && empty($vat_number)) {
213 213
 			return;
214 214
 		}
215 215
 
216 216
 		// If we're preventing business to consumer purchases,
217
-		if ( $this->requires_vat( $is_ip_eu, $is_eu ) && empty( $vat_number ) ) {
217
+		if ($this->requires_vat($is_ip_eu, $is_eu) && empty($vat_number)) {
218 218
 
219 219
 			// Ensure that a vat number has been specified.
220
-			throw new GetPaid_Payment_Exception( '.getpaid-error-billingwpinv_vat_number.getpaid-custom-payment-form-errors', __( 'Please enter your VAT number to verify your purchase is by an EU business.', 'invoicing' ) );
220
+			throw new GetPaid_Payment_Exception('.getpaid-error-billingwpinv_vat_number.getpaid-custom-payment-form-errors', __('Please enter your VAT number to verify your purchase is by an EU business.', 'invoicing'));
221 221
 
222 222
 		}
223 223
 
224
-		if ( empty( $vat_number ) ) {
224
+		if (empty($vat_number)) {
225 225
 			return;
226 226
 		}
227 227
 
228
-		if ( wpinv_should_validate_vat_number() && ! wpinv_validate_vat_number( $vat_number, $submission->country ) ) {
229
-			throw new GetPaid_Payment_Exception( '.getpaid-error-billingwpinv_vat_number.getpaid-custom-payment-form-errors', __( 'Your VAT number is invalid', 'invoicing' ) );
228
+		if (wpinv_should_validate_vat_number() && !wpinv_validate_vat_number($vat_number, $submission->country)) {
229
+			throw new GetPaid_Payment_Exception('.getpaid-error-billingwpinv_vat_number.getpaid-custom-payment-form-errors', __('Your VAT number is invalid', 'invoicing'));
230 230
 		}
231 231
 
232
-		if ( wpinv_default_billing_country() == $submission->country && 'vat_too' == wpinv_get_option( 'vat_same_country_rule', 'vat_too' ) ) {
232
+		if (wpinv_default_billing_country() == $submission->country && 'vat_too' == wpinv_get_option('vat_same_country_rule', 'vat_too')) {
233 233
 			return;
234 234
 		}
235 235
 
@@ -245,19 +245,19 @@  discard block
 block discarded – undo
245 245
 	 * @param GetPaid_Payment_Form_Submission $submission Payment form submission object.
246 246
 	 * @return object Invoice object.
247 247
 	 */
248
-	public function refresh_totals( $invoice, $submission ) {
249
-		if ( ! ( ! empty( $_POST['action'] ) && ( $_POST['action'] == 'wpinv_payment_form_refresh_prices' || $_POST['action'] == 'wpinv_payment_form' ) && isset( $_POST['billing']['wpinv_country'] ) ) ) {
248
+	public function refresh_totals($invoice, $submission) {
249
+		if (!(!empty($_POST['action']) && ($_POST['action'] == 'wpinv_payment_form_refresh_prices' || $_POST['action'] == 'wpinv_payment_form') && isset($_POST['billing']['wpinv_country']))) {
250 250
 			return $invoice;
251 251
 		}
252 252
 
253
-		if ( ! ( ! $invoice->is_paid() && ! $invoice->is_refunded() && ! $invoice->is_held() ) ) {
253
+		if (!(!$invoice->is_paid() && !$invoice->is_refunded() && !$invoice->is_held())) {
254 254
 			return $invoice;
255 255
 		}
256 256
 
257 257
 		// Maybe check the country, state.
258
-		if ( $submission->country != $invoice->get_country() || $submission->state != $invoice->get_state() ) {
259
-			$invoice->set_country( sanitize_text_field( $submission->country ) );
260
-			$invoice->set_state( sanitize_text_field( $submission->state ) );
258
+		if ($submission->country != $invoice->get_country() || $submission->state != $invoice->get_state()) {
259
+			$invoice->set_country(sanitize_text_field($submission->country));
260
+			$invoice->set_state(sanitize_text_field($submission->state));
261 261
 
262 262
 			// Recalculate totals.
263 263
 			$invoice->recalculate_total();
Please login to merge, or discard this patch.
includes/admin/class-getpaid-post-types-admin.php 2 patches
Indentation   +795 added lines, -795 removed lines patch added patch discarded remove patch
@@ -13,738 +13,738 @@  discard block
 block discarded – undo
13 13
 class GetPaid_Post_Types_Admin {
14 14
 
15 15
     /**
16
-	 * Hook in methods.
17
-	 */
18
-	public static function init() {
19
-
20
-		// Init metaboxes.
21
-		GetPaid_Metaboxes::init();
22
-
23
-		// Filter the post updated messages.
24
-		add_filter( 'post_updated_messages', 'GetPaid_Post_Types_Admin::post_updated_messages' );
25
-
26
-		// Filter post actions.
27
-		add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::post_row_actions', 10, 2 );
28
-		add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::filter_invoice_row_actions', 90, 2 );
29
-
30
-		// Invoice table columns.
31
-		add_filter( 'manage_wpi_invoice_posts_columns', array( __CLASS__, 'invoice_columns' ), 100 );
32
-		add_action( 'manage_wpi_invoice_posts_custom_column', array( __CLASS__, 'display_invoice_columns' ), 10, 2 );
33
-		add_filter( 'bulk_actions-edit-wpi_invoice', array( __CLASS__, 'invoice_bulk_actions' ) );
34
-		add_filter( 'handle_bulk_actions-edit-wpi_invoice', array( __CLASS__, 'handle_invoice_bulk_actions' ), 10, 3 );
35
-
36
-		// Items table columns.
37
-		add_filter( 'manage_wpi_item_posts_columns', array( __CLASS__, 'item_columns' ), 100 );
38
-		add_filter( 'manage_edit-wpi_item_sortable_columns', array( __CLASS__, 'sortable_item_columns' ), 20 );
39
-		add_action( 'manage_wpi_item_posts_custom_column', array( __CLASS__, 'display_item_columns' ), 10, 2 );
40
-		add_action( 'restrict_manage_posts', array( __CLASS__, 'add_item_filters' ), 100 );
41
-		add_action( 'parse_query', array( __CLASS__, 'filter_item_query' ), 100 );
42
-		add_action( 'request', array( __CLASS__, 'reorder_items' ), 100 );
43
-
44
-		// Payment forms columns.
45
-		add_filter( 'manage_wpi_payment_form_posts_columns', array( __CLASS__, 'payment_form_columns' ), 100 );
46
-		add_action( 'manage_wpi_payment_form_posts_custom_column', array( __CLASS__, 'display_payment_form_columns' ), 10, 2 );
47
-		add_filter( 'display_post_states', array( __CLASS__, 'filter_payment_form_state' ), 10, 2 );
48
-
49
-		// Discount table columns.
50
-		add_filter( 'manage_wpi_discount_posts_columns', array( __CLASS__, 'discount_columns' ), 100 );
51
-		add_filter( 'bulk_actions-edit-wpi_discount', '__return_empty_array', 100 );
52
-
53
-		// Deleting posts.
54
-		add_action( 'delete_post', array( __CLASS__, 'delete_post' ) );
55
-		add_filter( 'display_post_states', array( __CLASS__, 'filter_discount_state' ), 10, 2 );
56
-
57
-		add_filter( 'display_post_states', array( __CLASS__, 'add_display_post_states' ), 10, 2 );
58
-	}
59
-
60
-	/**
61
-	 * Post updated messages.
62
-	 */
63
-	public static function post_updated_messages( $messages ) {
64
-		global $post;
65
-
66
-		$messages['wpi_discount'] = array(
67
-			0  => '',
68
-			1  => __( 'Discount updated.', 'invoicing' ),
69
-			2  => __( 'Custom field updated.', 'invoicing' ),
70
-			3  => __( 'Custom field deleted.', 'invoicing' ),
71
-			4  => __( 'Discount updated.', 'invoicing' ),
72
-			5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Discount restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
73
-			6  => __( 'Discount updated.', 'invoicing' ),
74
-			7  => __( 'Discount saved.', 'invoicing' ),
75
-			8  => __( 'Discount submitted.', 'invoicing' ),
76
-			9  => wp_sprintf( __( 'Discount scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
77
-			10 => __( 'Discount draft updated.', 'invoicing' ),
78
-		);
79
-
80
-		$messages['wpi_payment_form'] = array(
81
-			0  => '',
82
-			1  => __( 'Payment Form updated.', 'invoicing' ),
83
-			2  => __( 'Custom field updated.', 'invoicing' ),
84
-			3  => __( 'Custom field deleted.', 'invoicing' ),
85
-			4  => __( 'Payment Form updated.', 'invoicing' ),
86
-			5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Payment Form restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
87
-			6  => __( 'Payment Form updated.', 'invoicing' ),
88
-			7  => __( 'Payment Form saved.', 'invoicing' ),
89
-			8  => __( 'Payment Form submitted.', 'invoicing' ),
90
-			9  => wp_sprintf( __( 'Payment Form scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
91
-			10 => __( 'Payment Form draft updated.', 'invoicing' ),
92
-		);
93
-
94
-		return $messages;
95
-
96
-	}
97
-
98
-	/**
99
-	 * Post row actions.
100
-	 */
101
-	public static function post_row_actions( $actions, $post ) {
102
-
103
-		$post = get_post( $post );
104
-
105
-		// We do not want to edit the default payment form.
106
-		if ( 'wpi_payment_form' == $post->post_type ) {
107
-
108
-			if ( wpinv_get_default_payment_form() === $post->ID ) {
109
-				unset( $actions['trash'] );
110
-				unset( $actions['inline hide-if-no-js'] );
111
-			}
112
-
113
-			$actions['duplicate'] = sprintf(
114
-				'<a href="%1$s">%2$s</a>',
115
-				esc_url(
116
-					wp_nonce_url(
117
-						add_query_arg(
118
-							array(
119
-								'getpaid-admin-action' => 'duplicate_form',
120
-								'form_id'              => $post->ID,
121
-							)
122
-						),
123
-						'getpaid-nonce',
124
-						'getpaid-nonce'
125
-					)
126
-				),
127
-				esc_html( __( 'Duplicate', 'invoicing' ) )
128
-			);
129
-
130
-			$actions['reset'] = sprintf(
131
-				'<a href="%1$s" style="color: #800">%2$s</a>',
132
-				esc_url(
133
-					wp_nonce_url(
134
-						add_query_arg(
135
-							array(
136
-								'getpaid-admin-action' => 'reset_form_stats',
137
-								'form_id'              => $post->ID,
138
-							)
139
-						),
140
-						'getpaid-nonce',
141
-						'getpaid-nonce'
142
-					)
143
-				),
144
-				esc_html( __( 'Reset Stats', 'invoicing' ) )
145
-			);
146
-		}
147
-
148
-		// Link to item payment form.
149
-		if ( 'wpi_item' == $post->post_type ) {
150
-			if ( getpaid_item_type_supports( get_post_meta( $post->ID, '_wpinv_type', true ), 'buy_now' ) ) {
151
-				$actions['buy'] = sprintf(
152
-					'<a href="%1$s">%2$s</a>',
153
-					esc_url( getpaid_embed_url( false, $post->ID . '|0' ) ),
154
-					esc_html( __( 'Buy', 'invoicing' ) )
155
-				);
156
-			}
157
-		}
158
-
159
-		return $actions;
160
-	}
161
-
162
-	/**
16
+     * Hook in methods.
17
+     */
18
+    public static function init() {
19
+
20
+        // Init metaboxes.
21
+        GetPaid_Metaboxes::init();
22
+
23
+        // Filter the post updated messages.
24
+        add_filter( 'post_updated_messages', 'GetPaid_Post_Types_Admin::post_updated_messages' );
25
+
26
+        // Filter post actions.
27
+        add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::post_row_actions', 10, 2 );
28
+        add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::filter_invoice_row_actions', 90, 2 );
29
+
30
+        // Invoice table columns.
31
+        add_filter( 'manage_wpi_invoice_posts_columns', array( __CLASS__, 'invoice_columns' ), 100 );
32
+        add_action( 'manage_wpi_invoice_posts_custom_column', array( __CLASS__, 'display_invoice_columns' ), 10, 2 );
33
+        add_filter( 'bulk_actions-edit-wpi_invoice', array( __CLASS__, 'invoice_bulk_actions' ) );
34
+        add_filter( 'handle_bulk_actions-edit-wpi_invoice', array( __CLASS__, 'handle_invoice_bulk_actions' ), 10, 3 );
35
+
36
+        // Items table columns.
37
+        add_filter( 'manage_wpi_item_posts_columns', array( __CLASS__, 'item_columns' ), 100 );
38
+        add_filter( 'manage_edit-wpi_item_sortable_columns', array( __CLASS__, 'sortable_item_columns' ), 20 );
39
+        add_action( 'manage_wpi_item_posts_custom_column', array( __CLASS__, 'display_item_columns' ), 10, 2 );
40
+        add_action( 'restrict_manage_posts', array( __CLASS__, 'add_item_filters' ), 100 );
41
+        add_action( 'parse_query', array( __CLASS__, 'filter_item_query' ), 100 );
42
+        add_action( 'request', array( __CLASS__, 'reorder_items' ), 100 );
43
+
44
+        // Payment forms columns.
45
+        add_filter( 'manage_wpi_payment_form_posts_columns', array( __CLASS__, 'payment_form_columns' ), 100 );
46
+        add_action( 'manage_wpi_payment_form_posts_custom_column', array( __CLASS__, 'display_payment_form_columns' ), 10, 2 );
47
+        add_filter( 'display_post_states', array( __CLASS__, 'filter_payment_form_state' ), 10, 2 );
48
+
49
+        // Discount table columns.
50
+        add_filter( 'manage_wpi_discount_posts_columns', array( __CLASS__, 'discount_columns' ), 100 );
51
+        add_filter( 'bulk_actions-edit-wpi_discount', '__return_empty_array', 100 );
52
+
53
+        // Deleting posts.
54
+        add_action( 'delete_post', array( __CLASS__, 'delete_post' ) );
55
+        add_filter( 'display_post_states', array( __CLASS__, 'filter_discount_state' ), 10, 2 );
56
+
57
+        add_filter( 'display_post_states', array( __CLASS__, 'add_display_post_states' ), 10, 2 );
58
+    }
59
+
60
+    /**
61
+     * Post updated messages.
62
+     */
63
+    public static function post_updated_messages( $messages ) {
64
+        global $post;
65
+
66
+        $messages['wpi_discount'] = array(
67
+            0  => '',
68
+            1  => __( 'Discount updated.', 'invoicing' ),
69
+            2  => __( 'Custom field updated.', 'invoicing' ),
70
+            3  => __( 'Custom field deleted.', 'invoicing' ),
71
+            4  => __( 'Discount updated.', 'invoicing' ),
72
+            5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Discount restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
73
+            6  => __( 'Discount updated.', 'invoicing' ),
74
+            7  => __( 'Discount saved.', 'invoicing' ),
75
+            8  => __( 'Discount submitted.', 'invoicing' ),
76
+            9  => wp_sprintf( __( 'Discount scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
77
+            10 => __( 'Discount draft updated.', 'invoicing' ),
78
+        );
79
+
80
+        $messages['wpi_payment_form'] = array(
81
+            0  => '',
82
+            1  => __( 'Payment Form updated.', 'invoicing' ),
83
+            2  => __( 'Custom field updated.', 'invoicing' ),
84
+            3  => __( 'Custom field deleted.', 'invoicing' ),
85
+            4  => __( 'Payment Form updated.', 'invoicing' ),
86
+            5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Payment Form restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
87
+            6  => __( 'Payment Form updated.', 'invoicing' ),
88
+            7  => __( 'Payment Form saved.', 'invoicing' ),
89
+            8  => __( 'Payment Form submitted.', 'invoicing' ),
90
+            9  => wp_sprintf( __( 'Payment Form scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
91
+            10 => __( 'Payment Form draft updated.', 'invoicing' ),
92
+        );
93
+
94
+        return $messages;
95
+
96
+    }
97
+
98
+    /**
99
+     * Post row actions.
100
+     */
101
+    public static function post_row_actions( $actions, $post ) {
102
+
103
+        $post = get_post( $post );
104
+
105
+        // We do not want to edit the default payment form.
106
+        if ( 'wpi_payment_form' == $post->post_type ) {
107
+
108
+            if ( wpinv_get_default_payment_form() === $post->ID ) {
109
+                unset( $actions['trash'] );
110
+                unset( $actions['inline hide-if-no-js'] );
111
+            }
112
+
113
+            $actions['duplicate'] = sprintf(
114
+                '<a href="%1$s">%2$s</a>',
115
+                esc_url(
116
+                    wp_nonce_url(
117
+                        add_query_arg(
118
+                            array(
119
+                                'getpaid-admin-action' => 'duplicate_form',
120
+                                'form_id'              => $post->ID,
121
+                            )
122
+                        ),
123
+                        'getpaid-nonce',
124
+                        'getpaid-nonce'
125
+                    )
126
+                ),
127
+                esc_html( __( 'Duplicate', 'invoicing' ) )
128
+            );
129
+
130
+            $actions['reset'] = sprintf(
131
+                '<a href="%1$s" style="color: #800">%2$s</a>',
132
+                esc_url(
133
+                    wp_nonce_url(
134
+                        add_query_arg(
135
+                            array(
136
+                                'getpaid-admin-action' => 'reset_form_stats',
137
+                                'form_id'              => $post->ID,
138
+                            )
139
+                        ),
140
+                        'getpaid-nonce',
141
+                        'getpaid-nonce'
142
+                    )
143
+                ),
144
+                esc_html( __( 'Reset Stats', 'invoicing' ) )
145
+            );
146
+        }
147
+
148
+        // Link to item payment form.
149
+        if ( 'wpi_item' == $post->post_type ) {
150
+            if ( getpaid_item_type_supports( get_post_meta( $post->ID, '_wpinv_type', true ), 'buy_now' ) ) {
151
+                $actions['buy'] = sprintf(
152
+                    '<a href="%1$s">%2$s</a>',
153
+                    esc_url( getpaid_embed_url( false, $post->ID . '|0' ) ),
154
+                    esc_html( __( 'Buy', 'invoicing' ) )
155
+                );
156
+            }
157
+        }
158
+
159
+        return $actions;
160
+    }
161
+
162
+    /**
163 163
      * Remove bulk edit option from admin side quote listing
164 164
      *
165 165
      * @since    1.0.0
166 166
      * @param array $actions post actions
167
-	 * @param WP_Post $post
167
+     * @param WP_Post $post
168 168
      * @return array $actions actions without edit option
169 169
      */
170 170
     public static function filter_invoice_row_actions( $actions, $post ) {
171 171
 
172 172
         if ( getpaid_is_invoice_post_type( $post->post_type ) ) {
173 173
 
174
-			$actions = array();
175
-			$invoice = new WPInv_Invoice( $post );
176
-
177
-			$actions['edit'] = sprintf(
178
-				'<a href="%1$s">%2$s</a>',
179
-				esc_url( get_edit_post_link( $invoice->get_id() ) ),
180
-				esc_html( __( 'Edit', 'invoicing' ) )
181
-			);
182
-
183
-			if ( ! $invoice->is_draft() ) {
184
-
185
-				$actions['view'] = sprintf(
186
-					'<a href="%1$s">%2$s</a>',
187
-					esc_url( $invoice->get_view_url() ),
188
-					sprintf(
189
-						// translators: %s is the invoice type
190
-						esc_html__( 'View %s', 'invoicing' ),
191
-						getpaid_get_post_type_label( $invoice->get_post_type(), false )
192
-					)
193
-				);
194
-
195
-				$actions['send'] = sprintf(
196
-					'<a href="%1$s">%2$s</a>',
197
-					esc_url(
198
-						wp_nonce_url(
199
-							add_query_arg(
200
-								array(
201
-									'getpaid-admin-action' => 'send_invoice',
202
-									'invoice_id'           => $invoice->get_id(),
203
-								)
204
-							),
205
-							'getpaid-nonce',
206
-							'getpaid-nonce'
207
-						)
208
-					),
209
-					esc_html( __( 'Send to Customer', 'invoicing' ) )
210
-				);
211
-
212
-			}
213
-
214
-			$actions['duplicate'] = sprintf(
215
-				'<a href="%1$s">%2$s</a>',
216
-				esc_url(
217
-					wp_nonce_url(
218
-						add_query_arg(
219
-							array(
220
-								'getpaid-admin-action' => 'duplicate_invoice',
221
-								'invoice_id'           => $post->ID,
222
-							)
223
-						),
224
-						'getpaid-nonce',
225
-						'getpaid-nonce'
226
-					)
227
-				),
228
-				esc_html( __( 'Duplicate', 'invoicing' ) )
229
-			);
174
+            $actions = array();
175
+            $invoice = new WPInv_Invoice( $post );
176
+
177
+            $actions['edit'] = sprintf(
178
+                '<a href="%1$s">%2$s</a>',
179
+                esc_url( get_edit_post_link( $invoice->get_id() ) ),
180
+                esc_html( __( 'Edit', 'invoicing' ) )
181
+            );
182
+
183
+            if ( ! $invoice->is_draft() ) {
184
+
185
+                $actions['view'] = sprintf(
186
+                    '<a href="%1$s">%2$s</a>',
187
+                    esc_url( $invoice->get_view_url() ),
188
+                    sprintf(
189
+                        // translators: %s is the invoice type
190
+                        esc_html__( 'View %s', 'invoicing' ),
191
+                        getpaid_get_post_type_label( $invoice->get_post_type(), false )
192
+                    )
193
+                );
194
+
195
+                $actions['send'] = sprintf(
196
+                    '<a href="%1$s">%2$s</a>',
197
+                    esc_url(
198
+                        wp_nonce_url(
199
+                            add_query_arg(
200
+                                array(
201
+                                    'getpaid-admin-action' => 'send_invoice',
202
+                                    'invoice_id'           => $invoice->get_id(),
203
+                                )
204
+                            ),
205
+                            'getpaid-nonce',
206
+                            'getpaid-nonce'
207
+                        )
208
+                    ),
209
+                    esc_html( __( 'Send to Customer', 'invoicing' ) )
210
+                );
211
+
212
+            }
213
+
214
+            $actions['duplicate'] = sprintf(
215
+                '<a href="%1$s">%2$s</a>',
216
+                esc_url(
217
+                    wp_nonce_url(
218
+                        add_query_arg(
219
+                            array(
220
+                                'getpaid-admin-action' => 'duplicate_invoice',
221
+                                'invoice_id'           => $post->ID,
222
+                            )
223
+                        ),
224
+                        'getpaid-nonce',
225
+                        'getpaid-nonce'
226
+                    )
227
+                ),
228
+                esc_html( __( 'Duplicate', 'invoicing' ) )
229
+            );
230 230
 
231 231
         }
232 232
 
233 233
         return $actions;
234
-	}
235
-
236
-	/**
237
-	 * Returns an array of invoice table columns.
238
-	 */
239
-	public static function invoice_columns( $columns ) {
240
-
241
-		$columns = array(
242
-			'cb'           => $columns['cb'],
243
-			'number'       => __( 'Invoice', 'invoicing' ),
244
-			'customer'     => __( 'Customer', 'invoicing' ),
245
-			'invoice_date' => __( 'Created', 'invoicing' ),
246
-			'payment_date' => __( 'Completed', 'invoicing' ),
247
-			'amount'       => __( 'Amount', 'invoicing' ),
248
-			'recurring'    => __( 'Recurring', 'invoicing' ),
249
-			'status'       => __( 'Status', 'invoicing' ),
250
-		);
251
-
252
-		return apply_filters( 'wpi_invoice_table_columns', $columns );
253
-	}
254
-
255
-	/**
256
-	 * Displays invoice table columns.
257
-	 */
258
-	public static function display_invoice_columns( $column_name, $post_id ) {
259
-
260
-		$invoice = new WPInv_Invoice( $post_id );
261
-
262
-		switch ( $column_name ) {
263
-
264
-			case 'invoice_date':
265
-				$date_time = esc_attr( $invoice->get_created_date() );
266
-				$date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
267
-				echo wp_kses_post( "<span title='$date_time'>$date</span>" );
268
-				break;
269
-
270
-			case 'payment_date':
271
-				if ( $invoice->is_paid() ) {
272
-					$date_time = esc_attr( $invoice->get_completed_date() );
273
-					$date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
274
-					echo wp_kses_post( "<span title='$date_time'>$date</span>" );
275
-				} else {
276
-					echo '&mdash;';
277
-				}
278
-
279
-				break;
280
-
281
-			case 'amount':
282
-				$amount = $invoice->get_total();
283
-				$formated_amount = wp_kses_post( wpinv_price( $amount, $invoice->get_currency() ) );
284
-
285
-				if ( $invoice->is_refunded() ) {
286
-					$refunded_amount = wpinv_price( 0, $invoice->get_currency() );
287
-					echo wp_kses_post( "<del>$formated_amount</del>&nbsp;<ins>$refunded_amount</ins>" );
288
-				} else {
289
-
290
-					$discount = $invoice->get_total_discount();
291
-
292
-					if ( ! empty( $discount ) ) {
293
-						$new_amount = wpinv_price( $amount + $discount, $invoice->get_currency() );
294
-						echo wp_kses_post( "<del>$new_amount</del>&nbsp;<ins>$formated_amount</ins>" );
295
-					} else {
296
-						echo wp_kses_post( $formated_amount );
297
-					}
298
-				}
299
-
300
-				break;
301
-
302
-			case 'status':
303
-				$status       = esc_html( $invoice->get_status() );
304
-				$status_label = esc_html( $invoice->get_status_nicename() );
305
-
306
-				// If it is paid, show the gateway title.
307
-				if ( $invoice->is_paid() ) {
308
-					$gateway = esc_html( $invoice->get_gateway_title() );
309
-					$gateway = wp_sprintf( esc_attr__( 'Paid via %s', 'invoicing' ), esc_html( $gateway ) );
310
-
311
-					echo wp_kses_post( "<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>" );
312
-				} else {
313
-					echo wp_kses_post( "<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>" );
314
-				}
315
-
316
-				// If it is not paid, display the overdue and view status.
317
-				if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
318
-
319
-					// Invoice view status.
320
-					if ( wpinv_is_invoice_viewed( $invoice->get_id() ) ) {
321
-						echo '&nbsp;&nbsp;<i class="fa fa-eye wpi-help-tip" title="' . esc_attr__( 'Viewed by Customer', 'invoicing' ) . '"></i>';
322
-					} else {
323
-						echo '&nbsp;&nbsp;<i class="fa fa-eye-slash wpi-help-tip" title="' . esc_attr__( 'Not Viewed by Customer', 'invoicing' ) . '"></i>';
324
-					}
325
-
326
-					// Display the overview status.
327
-					if ( wpinv_get_option( 'overdue_active' ) ) {
328
-						$due_date = $invoice->get_due_date();
329
-						$fomatted = getpaid_format_date( $due_date );
330
-
331
-						if ( ! empty( $fomatted ) ) {
332
-							$date = wp_sprintf(
333
-								// translators: %s is the due date.
334
-								__( 'Due %s', 'invoicing' ),
335
-								$fomatted
336
-							);
337
-							echo wp_kses_post( "<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>" );
338
-						}
339
-					}
340
-				}
341
-
342
-				break;
343
-
344
-			case 'recurring':
345
-				if ( $invoice->is_recurring() ) {
346
-					echo '<i class="fa fa-check" style="color:#43850a;"></i>';
347
-				} else {
348
-					echo '<i class="fa fa-times" style="color:#616161;"></i>';
349
-				}
350
-				break;
351
-
352
-			case 'number':
353
-				$edit_link       = esc_url( get_edit_post_link( $invoice->get_id() ) );
354
-				$invoice_number  = esc_html( $invoice->get_number() );
355
-				$invoice_details = esc_attr__( 'View Invoice Details', 'invoicing' );
356
-
357
-				echo wp_kses_post( "<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>" );
358
-
359
-				do_action( 'getpaid_admin_table_invoice_number_column', $invoice );
360
-				break;
361
-
362
-			case 'customer':
363
-				$customer_name = $invoice->get_user_full_name();
364
-
365
-				if ( empty( $customer_name ) ) {
366
-					$customer_name = $invoice->get_email();
367
-				}
368
-
369
-				if ( ! empty( $customer_name ) ) {
370
-					$customer_details = esc_attr__( 'View Customer Details', 'invoicing' );
371
-					$view_link        = esc_url( add_query_arg( 'user_id', $invoice->get_user_id(), admin_url( 'user-edit.php' ) ) );
372
-					echo wp_kses_post( "<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>" );
373
-				} else {
374
-					echo '<div>&mdash;</div>';
375
-				}
376
-
377
-				break;
378
-
379
-		}
380
-
381
-	}
382
-
383
-	/**
384
-	 * Displays invoice bulk actions.
385
-	 */
386
-	public static function invoice_bulk_actions( $actions ) {
387
-		$actions['resend-invoice'] = __( 'Send to Customer', 'invoicing' );
388
-		return $actions;
389
-	}
390
-
391
-	/**
392
-	 * Processes invoice bulk actions.
393
-	 */
394
-	public static function handle_invoice_bulk_actions( $redirect_url, $action, $post_ids ) {
395
-
396
-		if ( 'resend-invoice' === $action ) {
397
-			foreach ( $post_ids as $post_id ) {
398
-				getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $post_id ), true );
399
-			}
400
-		}
401
-
402
-		return $redirect_url;
403
-
404
-	}
405
-
406
-	/**
407
-	 * Returns an array of payment forms table columns.
408
-	 */
409
-	public static function payment_form_columns( $columns ) {
410
-
411
-		$columns = array(
412
-			'cb'        => $columns['cb'],
413
-			'title'     => __( 'Name', 'invoicing' ),
414
-			'shortcode' => __( 'Shortcode', 'invoicing' ),
415
-			'earnings'  => __( 'Revenue', 'invoicing' ),
416
-			'refunds'   => __( 'Refunded', 'invoicing' ),
417
-			'items'     => __( 'Items', 'invoicing' ),
418
-			'date'      => __( 'Date', 'invoicing' ),
419
-		);
420
-
421
-		return apply_filters( 'wpi_payment_form_table_columns', $columns );
422
-
423
-	}
424
-
425
-	/**
426
-	 * Displays payment form table columns.
427
-	 */
428
-	public static function display_payment_form_columns( $column_name, $post_id ) {
429
-
430
-		// Retrieve the payment form.
431
-		$form = new GetPaid_Payment_Form( $post_id );
432
-
433
-		switch ( $column_name ) {
434
-
435
-			case 'earnings':
436
-				echo wp_kses_post( wpinv_price( $form->get_earned() ) );
437
-				break;
438
-
439
-			case 'refunds':
440
-				echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
441
-				break;
442
-
443
-			case 'refunds':
444
-				echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
445
-				break;
446
-
447
-			case 'shortcode':
448
-				if ( $form->is_default() ) {
449
-					echo '&mdash;';
450
-				} else {
451
-					echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr( $form->get_id() ) . ']" style="width: 100%;" readonly/>';
452
-				}
453
-
454
-				break;
234
+    }
235
+
236
+    /**
237
+     * Returns an array of invoice table columns.
238
+     */
239
+    public static function invoice_columns( $columns ) {
240
+
241
+        $columns = array(
242
+            'cb'           => $columns['cb'],
243
+            'number'       => __( 'Invoice', 'invoicing' ),
244
+            'customer'     => __( 'Customer', 'invoicing' ),
245
+            'invoice_date' => __( 'Created', 'invoicing' ),
246
+            'payment_date' => __( 'Completed', 'invoicing' ),
247
+            'amount'       => __( 'Amount', 'invoicing' ),
248
+            'recurring'    => __( 'Recurring', 'invoicing' ),
249
+            'status'       => __( 'Status', 'invoicing' ),
250
+        );
251
+
252
+        return apply_filters( 'wpi_invoice_table_columns', $columns );
253
+    }
254
+
255
+    /**
256
+     * Displays invoice table columns.
257
+     */
258
+    public static function display_invoice_columns( $column_name, $post_id ) {
259
+
260
+        $invoice = new WPInv_Invoice( $post_id );
261
+
262
+        switch ( $column_name ) {
263
+
264
+            case 'invoice_date':
265
+                $date_time = esc_attr( $invoice->get_created_date() );
266
+                $date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
267
+                echo wp_kses_post( "<span title='$date_time'>$date</span>" );
268
+                break;
269
+
270
+            case 'payment_date':
271
+                if ( $invoice->is_paid() ) {
272
+                    $date_time = esc_attr( $invoice->get_completed_date() );
273
+                    $date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
274
+                    echo wp_kses_post( "<span title='$date_time'>$date</span>" );
275
+                } else {
276
+                    echo '&mdash;';
277
+                }
278
+
279
+                break;
280
+
281
+            case 'amount':
282
+                $amount = $invoice->get_total();
283
+                $formated_amount = wp_kses_post( wpinv_price( $amount, $invoice->get_currency() ) );
284
+
285
+                if ( $invoice->is_refunded() ) {
286
+                    $refunded_amount = wpinv_price( 0, $invoice->get_currency() );
287
+                    echo wp_kses_post( "<del>$formated_amount</del>&nbsp;<ins>$refunded_amount</ins>" );
288
+                } else {
289
+
290
+                    $discount = $invoice->get_total_discount();
291
+
292
+                    if ( ! empty( $discount ) ) {
293
+                        $new_amount = wpinv_price( $amount + $discount, $invoice->get_currency() );
294
+                        echo wp_kses_post( "<del>$new_amount</del>&nbsp;<ins>$formated_amount</ins>" );
295
+                    } else {
296
+                        echo wp_kses_post( $formated_amount );
297
+                    }
298
+                }
299
+
300
+                break;
301
+
302
+            case 'status':
303
+                $status       = esc_html( $invoice->get_status() );
304
+                $status_label = esc_html( $invoice->get_status_nicename() );
305
+
306
+                // If it is paid, show the gateway title.
307
+                if ( $invoice->is_paid() ) {
308
+                    $gateway = esc_html( $invoice->get_gateway_title() );
309
+                    $gateway = wp_sprintf( esc_attr__( 'Paid via %s', 'invoicing' ), esc_html( $gateway ) );
310
+
311
+                    echo wp_kses_post( "<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>" );
312
+                } else {
313
+                    echo wp_kses_post( "<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>" );
314
+                }
315
+
316
+                // If it is not paid, display the overdue and view status.
317
+                if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
318
+
319
+                    // Invoice view status.
320
+                    if ( wpinv_is_invoice_viewed( $invoice->get_id() ) ) {
321
+                        echo '&nbsp;&nbsp;<i class="fa fa-eye wpi-help-tip" title="' . esc_attr__( 'Viewed by Customer', 'invoicing' ) . '"></i>';
322
+                    } else {
323
+                        echo '&nbsp;&nbsp;<i class="fa fa-eye-slash wpi-help-tip" title="' . esc_attr__( 'Not Viewed by Customer', 'invoicing' ) . '"></i>';
324
+                    }
325
+
326
+                    // Display the overview status.
327
+                    if ( wpinv_get_option( 'overdue_active' ) ) {
328
+                        $due_date = $invoice->get_due_date();
329
+                        $fomatted = getpaid_format_date( $due_date );
330
+
331
+                        if ( ! empty( $fomatted ) ) {
332
+                            $date = wp_sprintf(
333
+                                // translators: %s is the due date.
334
+                                __( 'Due %s', 'invoicing' ),
335
+                                $fomatted
336
+                            );
337
+                            echo wp_kses_post( "<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>" );
338
+                        }
339
+                    }
340
+                }
341
+
342
+                break;
343
+
344
+            case 'recurring':
345
+                if ( $invoice->is_recurring() ) {
346
+                    echo '<i class="fa fa-check" style="color:#43850a;"></i>';
347
+                } else {
348
+                    echo '<i class="fa fa-times" style="color:#616161;"></i>';
349
+                }
350
+                break;
351
+
352
+            case 'number':
353
+                $edit_link       = esc_url( get_edit_post_link( $invoice->get_id() ) );
354
+                $invoice_number  = esc_html( $invoice->get_number() );
355
+                $invoice_details = esc_attr__( 'View Invoice Details', 'invoicing' );
356
+
357
+                echo wp_kses_post( "<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>" );
358
+
359
+                do_action( 'getpaid_admin_table_invoice_number_column', $invoice );
360
+                break;
361
+
362
+            case 'customer':
363
+                $customer_name = $invoice->get_user_full_name();
364
+
365
+                if ( empty( $customer_name ) ) {
366
+                    $customer_name = $invoice->get_email();
367
+                }
368
+
369
+                if ( ! empty( $customer_name ) ) {
370
+                    $customer_details = esc_attr__( 'View Customer Details', 'invoicing' );
371
+                    $view_link        = esc_url( add_query_arg( 'user_id', $invoice->get_user_id(), admin_url( 'user-edit.php' ) ) );
372
+                    echo wp_kses_post( "<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>" );
373
+                } else {
374
+                    echo '<div>&mdash;</div>';
375
+                }
376
+
377
+                break;
455 378
 
456
-			case 'items':
457
-				$items = $form->get_items();
458
-
459
-				if ( $form->is_default() || empty( $items ) ) {
460
-					echo '&mdash;';
461
-					return;
462
-				}
463
-
464
-				$_items = array();
465
-
466
-				foreach ( $items as $item ) {
467
-					$url = $item->get_edit_url();
468
-
469
-					if ( empty( $url ) ) {
470
-						$_items[] = esc_html( $item->get_name() );
471
-					} else {
472
-						$_items[] = sprintf(
473
-							'<a href="%s">%s</a>',
474
-							esc_url( $url ),
475
-							esc_html( $item->get_name() )
476
-						);
477
-					}
379
+        }
380
+
381
+    }
382
+
383
+    /**
384
+     * Displays invoice bulk actions.
385
+     */
386
+    public static function invoice_bulk_actions( $actions ) {
387
+        $actions['resend-invoice'] = __( 'Send to Customer', 'invoicing' );
388
+        return $actions;
389
+    }
390
+
391
+    /**
392
+     * Processes invoice bulk actions.
393
+     */
394
+    public static function handle_invoice_bulk_actions( $redirect_url, $action, $post_ids ) {
395
+
396
+        if ( 'resend-invoice' === $action ) {
397
+            foreach ( $post_ids as $post_id ) {
398
+                getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $post_id ), true );
399
+            }
400
+        }
401
+
402
+        return $redirect_url;
403
+
404
+    }
405
+
406
+    /**
407
+     * Returns an array of payment forms table columns.
408
+     */
409
+    public static function payment_form_columns( $columns ) {
410
+
411
+        $columns = array(
412
+            'cb'        => $columns['cb'],
413
+            'title'     => __( 'Name', 'invoicing' ),
414
+            'shortcode' => __( 'Shortcode', 'invoicing' ),
415
+            'earnings'  => __( 'Revenue', 'invoicing' ),
416
+            'refunds'   => __( 'Refunded', 'invoicing' ),
417
+            'items'     => __( 'Items', 'invoicing' ),
418
+            'date'      => __( 'Date', 'invoicing' ),
419
+        );
420
+
421
+        return apply_filters( 'wpi_payment_form_table_columns', $columns );
422
+
423
+    }
424
+
425
+    /**
426
+     * Displays payment form table columns.
427
+     */
428
+    public static function display_payment_form_columns( $column_name, $post_id ) {
429
+
430
+        // Retrieve the payment form.
431
+        $form = new GetPaid_Payment_Form( $post_id );
432
+
433
+        switch ( $column_name ) {
434
+
435
+            case 'earnings':
436
+                echo wp_kses_post( wpinv_price( $form->get_earned() ) );
437
+                break;
438
+
439
+            case 'refunds':
440
+                echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
441
+                break;
442
+
443
+            case 'refunds':
444
+                echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
445
+                break;
446
+
447
+            case 'shortcode':
448
+                if ( $form->is_default() ) {
449
+                    echo '&mdash;';
450
+                } else {
451
+                    echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr( $form->get_id() ) . ']" style="width: 100%;" readonly/>';
452
+                }
453
+
454
+                break;
455
+
456
+            case 'items':
457
+                $items = $form->get_items();
458
+
459
+                if ( $form->is_default() || empty( $items ) ) {
460
+                    echo '&mdash;';
461
+                    return;
462
+                }
463
+
464
+                $_items = array();
465
+
466
+                foreach ( $items as $item ) {
467
+                    $url = $item->get_edit_url();
468
+
469
+                    if ( empty( $url ) ) {
470
+                        $_items[] = esc_html( $item->get_name() );
471
+                    } else {
472
+                        $_items[] = sprintf(
473
+                            '<a href="%s">%s</a>',
474
+                            esc_url( $url ),
475
+                            esc_html( $item->get_name() )
476
+                        );
477
+                    }
478 478
 }
479 479
 
480
-				echo wp_kses_post( implode( '<br>', $_items ) );
480
+                echo wp_kses_post( implode( '<br>', $_items ) );
481
+
482
+                break;
483
+
484
+        }
485
+
486
+    }
487
+
488
+    /**
489
+     * Filters post states.
490
+     */
491
+    public static function filter_payment_form_state( $post_states, $post ) {
492
+
493
+        if ( 'wpi_payment_form' === $post->post_type && wpinv_get_default_payment_form() === $post->ID ) {
494
+            $post_states['default_form'] = __( 'Default Payment Form', 'invoicing' );
495
+        }
496
+
497
+        return $post_states;
498
+
499
+    }
500
+
501
+    /**
502
+     * Returns an array of coupon table columns.
503
+     */
504
+    public static function discount_columns( $columns ) {
505
+
506
+        $columns = array(
507
+            'cb'          => $columns['cb'],
508
+            'title'       => __( 'Name', 'invoicing' ),
509
+            'code'        => __( 'Code', 'invoicing' ),
510
+            'amount'      => __( 'Amount', 'invoicing' ),
511
+            'usage'       => __( 'Usage / Limit', 'invoicing' ),
512
+            'start_date'  => __( 'Start Date', 'invoicing' ),
513
+            'expiry_date' => __( 'Expiry Date', 'invoicing' ),
514
+        );
515
+
516
+        return apply_filters( 'wpi_discount_table_columns', $columns );
517
+    }
481 518
 
482
-				break;
519
+    /**
520
+     * Filters post states.
521
+     */
522
+    public static function filter_discount_state( $post_states, $post ) {
483 523
 
484
-		}
524
+        if ( 'wpi_discount' === $post->post_type ) {
485 525
 
486
-	}
526
+            $discount = new WPInv_Discount( $post );
487 527
 
488
-	/**
489
-	 * Filters post states.
490
-	 */
491
-	public static function filter_payment_form_state( $post_states, $post ) {
528
+            $status = $discount->is_expired() ? 'expired' : $discount->get_status();
492 529
 
493
-		if ( 'wpi_payment_form' === $post->post_type && wpinv_get_default_payment_form() === $post->ID ) {
494
-			$post_states['default_form'] = __( 'Default Payment Form', 'invoicing' );
495
-		}
530
+            if ( 'publish' !== $status ) {
531
+                return array(
532
+                    'discount_status' => wpinv_discount_status( $status ),
533
+                );
534
+            }
535
+
536
+            return array();
537
+
538
+        }
539
+
540
+        return $post_states;
496 541
 
497
-		return $post_states;
542
+    }
498 543
 
499
-	}
544
+    /**
545
+     * Returns an array of items table columns.
546
+     */
547
+    public static function item_columns( $columns ) {
548
+
549
+        $columns = array(
550
+            'cb'        => $columns['cb'],
551
+            'title'     => __( 'Name', 'invoicing' ),
552
+            'price'     => __( 'Price', 'invoicing' ),
553
+            'vat_rule'  => __( 'Tax Rule', 'invoicing' ),
554
+            'vat_class' => __( 'Tax Class', 'invoicing' ),
555
+            'type'      => __( 'Type', 'invoicing' ),
556
+            'shortcode' => __( 'Shortcode', 'invoicing' ),
557
+        );
558
+
559
+        if ( ! wpinv_use_taxes() ) {
560
+            unset( $columns['vat_rule'] );
561
+            unset( $columns['vat_class'] );
562
+        }
500 563
 
501
-	/**
502
-	 * Returns an array of coupon table columns.
503
-	 */
504
-	public static function discount_columns( $columns ) {
564
+        return apply_filters( 'wpi_item_table_columns', $columns );
565
+    }
505 566
 
506
-		$columns = array(
507
-			'cb'          => $columns['cb'],
508
-			'title'       => __( 'Name', 'invoicing' ),
509
-			'code'        => __( 'Code', 'invoicing' ),
510
-			'amount'      => __( 'Amount', 'invoicing' ),
511
-			'usage'       => __( 'Usage / Limit', 'invoicing' ),
512
-			'start_date'  => __( 'Start Date', 'invoicing' ),
513
-			'expiry_date' => __( 'Expiry Date', 'invoicing' ),
514
-		);
567
+    /**
568
+     * Returns an array of sortable items table columns.
569
+     */
570
+    public static function sortable_item_columns( $columns ) {
571
+
572
+        return array_merge(
573
+            $columns,
574
+            array(
575
+                'price'     => 'price',
576
+                'vat_rule'  => 'vat_rule',
577
+                'vat_class' => 'vat_class',
578
+                'type'      => 'type',
579
+            )
580
+        );
515 581
 
516
-		return apply_filters( 'wpi_discount_table_columns', $columns );
517
-	}
582
+    }
518 583
 
519
-	/**
520
-	 * Filters post states.
521
-	 */
522
-	public static function filter_discount_state( $post_states, $post ) {
584
+    /**
585
+     * Displays items table columns.
586
+     */
587
+    public static function display_item_columns( $column_name, $post_id ) {
523 588
 
524
-		if ( 'wpi_discount' === $post->post_type ) {
589
+        $item = new WPInv_Item( $post_id );
525 590
 
526
-			$discount = new WPInv_Discount( $post );
591
+        switch ( $column_name ) {
527 592
 
528
-			$status = $discount->is_expired() ? 'expired' : $discount->get_status();
593
+            case 'price':
594
+                if ( ! $item->is_recurring() ) {
595
+                    echo wp_kses_post( $item->get_the_price() );
596
+                    break;
597
+                }
529 598
 
530
-			if ( 'publish' !== $status ) {
531
-				return array(
532
-					'discount_status' => wpinv_discount_status( $status ),
533
-				);
534
-			}
599
+                $price = wp_sprintf(
600
+                    __( '%1$s / %2$s', 'invoicing' ),
601
+                    $item->get_the_price(),
602
+                    getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' )
603
+                );
535 604
 
536
-			return array();
605
+                if ( $item->get_the_price() == $item->get_the_initial_price() ) {
606
+                    echo wp_kses_post( $price );
607
+                    break;
608
+                }
537 609
 
538
-		}
610
+                echo wp_kses_post( $item->get_the_initial_price() );
539 611
 
540
-		return $post_states;
612
+                echo '<span class="meta">' . wp_sprintf( esc_html__( 'then %s', 'invoicing' ), wp_kses_post( $price ) ) . '</span>';
613
+                break;
541 614
 
542
-	}
615
+            case 'vat_rule':
616
+                echo wp_kses_post( getpaid_get_tax_rule_label( $item->get_vat_rule() ) );
617
+                break;
543 618
 
544
-	/**
545
-	 * Returns an array of items table columns.
546
-	 */
547
-	public static function item_columns( $columns ) {
619
+            case 'vat_class':
620
+                echo wp_kses_post( getpaid_get_tax_class_label( $item->get_vat_class() ) );
621
+                break;
548 622
 
549
-		$columns = array(
550
-			'cb'        => $columns['cb'],
551
-			'title'     => __( 'Name', 'invoicing' ),
552
-			'price'     => __( 'Price', 'invoicing' ),
553
-			'vat_rule'  => __( 'Tax Rule', 'invoicing' ),
554
-			'vat_class' => __( 'Tax Class', 'invoicing' ),
555
-			'type'      => __( 'Type', 'invoicing' ),
556
-			'shortcode' => __( 'Shortcode', 'invoicing' ),
557
-		);
623
+            case 'shortcode':
624
+                if ( $item->is_type( array( '', 'fee', 'custom' ) ) ) {
625
+                    echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr( $item->get_id() ) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>';
626
+                } else {
627
+                    echo '&mdash;';
628
+                }
558 629
 
559
-		if ( ! wpinv_use_taxes() ) {
560
-			unset( $columns['vat_rule'] );
561
-			unset( $columns['vat_class'] );
562
-		}
630
+                break;
563 631
 
564
-		return apply_filters( 'wpi_item_table_columns', $columns );
565
-	}
632
+            case 'type':
633
+                echo wp_kses_post( wpinv_item_type( $item->get_id() ) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>' );
634
+                break;
566 635
 
567
-	/**
568
-	 * Returns an array of sortable items table columns.
569
-	 */
570
-	public static function sortable_item_columns( $columns ) {
571
-
572
-		return array_merge(
573
-			$columns,
574
-			array(
575
-				'price'     => 'price',
576
-				'vat_rule'  => 'vat_rule',
577
-				'vat_class' => 'vat_class',
578
-				'type'      => 'type',
579
-			)
580
-		);
581
-
582
-	}
583
-
584
-	/**
585
-	 * Displays items table columns.
586
-	 */
587
-	public static function display_item_columns( $column_name, $post_id ) {
588
-
589
-		$item = new WPInv_Item( $post_id );
590
-
591
-		switch ( $column_name ) {
592
-
593
-			case 'price':
594
-				if ( ! $item->is_recurring() ) {
595
-					echo wp_kses_post( $item->get_the_price() );
596
-					break;
597
-				}
598
-
599
-				$price = wp_sprintf(
600
-					__( '%1$s / %2$s', 'invoicing' ),
601
-					$item->get_the_price(),
602
-					getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' )
603
-				);
604
-
605
-				if ( $item->get_the_price() == $item->get_the_initial_price() ) {
606
-					echo wp_kses_post( $price );
607
-					break;
608
-				}
609
-
610
-				echo wp_kses_post( $item->get_the_initial_price() );
611
-
612
-				echo '<span class="meta">' . wp_sprintf( esc_html__( 'then %s', 'invoicing' ), wp_kses_post( $price ) ) . '</span>';
613
-				break;
614
-
615
-			case 'vat_rule':
616
-				echo wp_kses_post( getpaid_get_tax_rule_label( $item->get_vat_rule() ) );
617
-				break;
618
-
619
-			case 'vat_class':
620
-				echo wp_kses_post( getpaid_get_tax_class_label( $item->get_vat_class() ) );
621
-				break;
622
-
623
-			case 'shortcode':
624
-				if ( $item->is_type( array( '', 'fee', 'custom' ) ) ) {
625
-					echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr( $item->get_id() ) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>';
626
-				} else {
627
-					echo '&mdash;';
628
-				}
629
-
630
-				break;
631
-
632
-			case 'type':
633
-				echo wp_kses_post( wpinv_item_type( $item->get_id() ) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>' );
634
-				break;
635
-
636
-		}
637
-
638
-	}
639
-
640
-	/**
641
-	 * Lets users filter items using taxes.
642
-	 */
643
-	public static function add_item_filters( $post_type ) {
644
-
645
-		// Abort if we're not dealing with items.
646
-		if ( 'wpi_item' !== $post_type ) {
647
-			return;
648
-		}
649
-
650
-		// Filter by vat rules.
651
-		if ( wpinv_use_taxes() ) {
652
-
653
-			// Sanitize selected vat rule.
654
-			$vat_rule   = '';
655
-			$vat_rules  = getpaid_get_tax_rules();
656
-			if ( isset( $_GET['vat_rule'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
657
-				$vat_rule   = sanitize_text_field( $_GET['vat_rule'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
658
-			}
659
-
660
-			// Filter by VAT rule.
661
-			wpinv_html_select(
662
-				array(
663
-					'options'          => array_merge(
664
-						array(
665
-							'' => __( 'All Tax Rules', 'invoicing' ),
666
-						),
667
-						$vat_rules
668
-					),
669
-					'name'             => 'vat_rule',
670
-					'id'               => 'vat_rule',
671
-					'selected'         => in_array( $vat_rule, array_keys( $vat_rules ), true ) ? $vat_rule : '',
672
-					'show_option_all'  => false,
673
-					'show_option_none' => false,
674
-				)
675
-			);
676
-
677
-			// Filter by VAT class.
678
-
679
-			// Sanitize selected vat rule.
680
-			$vat_class   = '';
681
-			$vat_classes = getpaid_get_tax_classes();
682
-			if ( isset( $_GET['vat_class'] ) ) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
683
-				$vat_class   = sanitize_text_field( $_GET['vat_class'] );  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
684
-			}
685
-
686
-			wpinv_html_select(
687
-				array(
688
-					'options'          => array_merge(
689
-						array(
690
-							'' => __( 'All Tax Classes', 'invoicing' ),
691
-						),
692
-						$vat_classes
693
-					),
694
-					'name'             => 'vat_class',
695
-					'id'               => 'vat_class',
696
-					'selected'         => in_array( $vat_class, array_keys( $vat_classes ), true ) ? $vat_class : '',
697
-					'show_option_all'  => false,
698
-					'show_option_none' => false,
699
-				)
700
-			);
701
-
702
-		}
703
-
704
-		// Filter by item type.
705
-		$type   = '';
706
-		if ( isset( $_GET['type'] ) ) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
707
-			$type   = sanitize_text_field( $_GET['type'] );  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
708
-		}
709
-
710
-		wpinv_html_select(
711
-			array(
712
-				'options'          => array_merge(
713
-					array(
714
-						'' => __( 'All item types', 'invoicing' ),
715
-					),
716
-					wpinv_get_item_types()
717
-				),
718
-				'name'             => 'type',
719
-				'id'               => 'type',
720
-				'selected'         => in_array( $type, wpinv_item_types(), true ) ? $type : '',
721
-				'show_option_all'  => false,
722
-				'show_option_none' => false,
723
-			)
724
-		);
725
-
726
-	}
727
-
728
-	/**
729
-	 * Filters the item query.
730
-	 */
731
-	public static function filter_item_query( $query ) {
732
-
733
-		// modify the query only if it admin and main query.
734
-		if ( ! ( is_admin() && $query->is_main_query() ) ) {
735
-			return $query;
736
-		}
737
-
738
-		// we want to modify the query for our items.
739
-		if ( empty( $query->query['post_type'] ) || 'wpi_item' !== $query->query['post_type'] ) {
740
-			return $query;
741
-		}
742
-
743
-		if ( empty( $query->query_vars['meta_query'] ) ) {
744
-			$query->query_vars['meta_query'] = array();
745
-		}
746
-
747
-		// Filter vat rule type
636
+        }
637
+
638
+    }
639
+
640
+    /**
641
+     * Lets users filter items using taxes.
642
+     */
643
+    public static function add_item_filters( $post_type ) {
644
+
645
+        // Abort if we're not dealing with items.
646
+        if ( 'wpi_item' !== $post_type ) {
647
+            return;
648
+        }
649
+
650
+        // Filter by vat rules.
651
+        if ( wpinv_use_taxes() ) {
652
+
653
+            // Sanitize selected vat rule.
654
+            $vat_rule   = '';
655
+            $vat_rules  = getpaid_get_tax_rules();
656
+            if ( isset( $_GET['vat_rule'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
657
+                $vat_rule   = sanitize_text_field( $_GET['vat_rule'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
658
+            }
659
+
660
+            // Filter by VAT rule.
661
+            wpinv_html_select(
662
+                array(
663
+                    'options'          => array_merge(
664
+                        array(
665
+                            '' => __( 'All Tax Rules', 'invoicing' ),
666
+                        ),
667
+                        $vat_rules
668
+                    ),
669
+                    'name'             => 'vat_rule',
670
+                    'id'               => 'vat_rule',
671
+                    'selected'         => in_array( $vat_rule, array_keys( $vat_rules ), true ) ? $vat_rule : '',
672
+                    'show_option_all'  => false,
673
+                    'show_option_none' => false,
674
+                )
675
+            );
676
+
677
+            // Filter by VAT class.
678
+
679
+            // Sanitize selected vat rule.
680
+            $vat_class   = '';
681
+            $vat_classes = getpaid_get_tax_classes();
682
+            if ( isset( $_GET['vat_class'] ) ) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
683
+                $vat_class   = sanitize_text_field( $_GET['vat_class'] );  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
684
+            }
685
+
686
+            wpinv_html_select(
687
+                array(
688
+                    'options'          => array_merge(
689
+                        array(
690
+                            '' => __( 'All Tax Classes', 'invoicing' ),
691
+                        ),
692
+                        $vat_classes
693
+                    ),
694
+                    'name'             => 'vat_class',
695
+                    'id'               => 'vat_class',
696
+                    'selected'         => in_array( $vat_class, array_keys( $vat_classes ), true ) ? $vat_class : '',
697
+                    'show_option_all'  => false,
698
+                    'show_option_none' => false,
699
+                )
700
+            );
701
+
702
+        }
703
+
704
+        // Filter by item type.
705
+        $type   = '';
706
+        if ( isset( $_GET['type'] ) ) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
707
+            $type   = sanitize_text_field( $_GET['type'] );  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
708
+        }
709
+
710
+        wpinv_html_select(
711
+            array(
712
+                'options'          => array_merge(
713
+                    array(
714
+                        '' => __( 'All item types', 'invoicing' ),
715
+                    ),
716
+                    wpinv_get_item_types()
717
+                ),
718
+                'name'             => 'type',
719
+                'id'               => 'type',
720
+                'selected'         => in_array( $type, wpinv_item_types(), true ) ? $type : '',
721
+                'show_option_all'  => false,
722
+                'show_option_none' => false,
723
+            )
724
+        );
725
+
726
+    }
727
+
728
+    /**
729
+     * Filters the item query.
730
+     */
731
+    public static function filter_item_query( $query ) {
732
+
733
+        // modify the query only if it admin and main query.
734
+        if ( ! ( is_admin() && $query->is_main_query() ) ) {
735
+            return $query;
736
+        }
737
+
738
+        // we want to modify the query for our items.
739
+        if ( empty( $query->query['post_type'] ) || 'wpi_item' !== $query->query['post_type'] ) {
740
+            return $query;
741
+        }
742
+
743
+        if ( empty( $query->query_vars['meta_query'] ) ) {
744
+            $query->query_vars['meta_query'] = array();
745
+        }
746
+
747
+        // Filter vat rule type
748 748
         if ( ! empty( $_GET['vat_rule'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
749 749
             $query->query_vars['meta_query'][] = array(
750 750
                 'key'     => '_wpinv_vat_rule',
@@ -769,101 +769,101 @@  discard block
 block discarded – undo
769 769
                 'value'   => sanitize_text_field( $_GET['type'] ), // phpcs:ignore WordPress.Security.NonceVerification.Recommended
770 770
                 'compare' => '=',
771 771
             );
772
-		}
773
-
774
-		$query->query_vars['meta_query'][] = array(
775
-			'key'     => '_wpinv_one_time',
776
-			'compare' => 'NOT EXISTS',
777
-		);
778
-	}
779
-
780
-	/**
781
-	 * Reorders items.
782
-	 */
783
-	public static function reorder_items( $vars ) {
784
-		global $typenow;
785
-
786
-		if ( 'wpi_item' !== $typenow || empty( $vars['orderby'] ) ) {
787
-			return $vars;
788
-		}
789
-
790
-		// By item type.
791
-		if ( 'type' === $vars['orderby'] ) {
792
-			return array_merge(
793
-				$vars,
794
-				array(
795
-					'meta_key' => '_wpinv_type',
796
-					'orderby'  => 'meta_value',
797
-				)
798
-			);
799
-		}
800
-
801
-		// By vat class.
802
-		if ( 'vat_class' === $vars['orderby'] ) {
803
-			return array_merge(
804
-				$vars,
805
-				array(
806
-					'meta_key' => '_wpinv_vat_class',
807
-					'orderby'  => 'meta_value',
808
-				)
809
-			);
810
-		}
811
-
812
-		// By vat rule.
813
-		if ( 'vat_rule' === $vars['orderby'] ) {
814
-			return array_merge(
815
-				$vars,
816
-				array(
817
-					'meta_key' => '_wpinv_vat_rule',
818
-					'orderby'  => 'meta_value',
819
-				)
820
-			);
821
-		}
822
-
823
-		// By price.
824
-		if ( 'price' === $vars['orderby'] ) {
825
-			return array_merge(
826
-				$vars,
827
-				array(
828
-					'meta_key' => '_wpinv_price',
829
-					'orderby'  => 'meta_value_num',
830
-				)
831
-			);
832
-		}
833
-
834
-		return $vars;
835
-
836
-	}
837
-
838
-	/**
839
-	 * Fired when deleting a post.
840
-	 */
841
-	public static function delete_post( $post_id ) {
842
-
843
-		switch ( get_post_type( $post_id ) ) {
844
-
845
-			case 'wpi_item':
846
-				do_action( 'getpaid_before_delete_item', new WPInv_Item( $post_id ) );
847
-				break;
848
-
849
-			case 'wpi_payment_form':
850
-				do_action( 'getpaid_before_delete_payment_form', new GetPaid_Payment_Form( $post_id ) );
851
-				break;
852
-
853
-			case 'wpi_discount':
854
-				do_action( 'getpaid_before_delete_discount', new WPInv_Discount( $post_id ) );
855
-				break;
856
-
857
-			case 'wpi_invoice':
858
-				$invoice = new WPInv_Invoice( $post_id );
859
-				do_action( 'getpaid_before_delete_invoice', $invoice );
860
-				$invoice->get_data_store()->delete_items( $invoice );
861
-				$invoice->get_data_store()->delete_special_fields( $invoice );
862
-				break;
863
-		}
864
-	}
865
-
866
-	/**
772
+        }
773
+
774
+        $query->query_vars['meta_query'][] = array(
775
+            'key'     => '_wpinv_one_time',
776
+            'compare' => 'NOT EXISTS',
777
+        );
778
+    }
779
+
780
+    /**
781
+     * Reorders items.
782
+     */
783
+    public static function reorder_items( $vars ) {
784
+        global $typenow;
785
+
786
+        if ( 'wpi_item' !== $typenow || empty( $vars['orderby'] ) ) {
787
+            return $vars;
788
+        }
789
+
790
+        // By item type.
791
+        if ( 'type' === $vars['orderby'] ) {
792
+            return array_merge(
793
+                $vars,
794
+                array(
795
+                    'meta_key' => '_wpinv_type',
796
+                    'orderby'  => 'meta_value',
797
+                )
798
+            );
799
+        }
800
+
801
+        // By vat class.
802
+        if ( 'vat_class' === $vars['orderby'] ) {
803
+            return array_merge(
804
+                $vars,
805
+                array(
806
+                    'meta_key' => '_wpinv_vat_class',
807
+                    'orderby'  => 'meta_value',
808
+                )
809
+            );
810
+        }
811
+
812
+        // By vat rule.
813
+        if ( 'vat_rule' === $vars['orderby'] ) {
814
+            return array_merge(
815
+                $vars,
816
+                array(
817
+                    'meta_key' => '_wpinv_vat_rule',
818
+                    'orderby'  => 'meta_value',
819
+                )
820
+            );
821
+        }
822
+
823
+        // By price.
824
+        if ( 'price' === $vars['orderby'] ) {
825
+            return array_merge(
826
+                $vars,
827
+                array(
828
+                    'meta_key' => '_wpinv_price',
829
+                    'orderby'  => 'meta_value_num',
830
+                )
831
+            );
832
+        }
833
+
834
+        return $vars;
835
+
836
+    }
837
+
838
+    /**
839
+     * Fired when deleting a post.
840
+     */
841
+    public static function delete_post( $post_id ) {
842
+
843
+        switch ( get_post_type( $post_id ) ) {
844
+
845
+            case 'wpi_item':
846
+                do_action( 'getpaid_before_delete_item', new WPInv_Item( $post_id ) );
847
+                break;
848
+
849
+            case 'wpi_payment_form':
850
+                do_action( 'getpaid_before_delete_payment_form', new GetPaid_Payment_Form( $post_id ) );
851
+                break;
852
+
853
+            case 'wpi_discount':
854
+                do_action( 'getpaid_before_delete_discount', new WPInv_Discount( $post_id ) );
855
+                break;
856
+
857
+            case 'wpi_invoice':
858
+                $invoice = new WPInv_Invoice( $post_id );
859
+                do_action( 'getpaid_before_delete_invoice', $invoice );
860
+                $invoice->get_data_store()->delete_items( $invoice );
861
+                $invoice->get_data_store()->delete_special_fields( $invoice );
862
+                break;
863
+        }
864
+    }
865
+
866
+    /**
867 867
      * Add a post display state for special GetPaid pages in the page list table.
868 868
      *
869 869
      * @param array   $post_states An array of post display states.
@@ -877,21 +877,21 @@  discard block
 block discarded – undo
877 877
             $post_states['getpaid_success_page'] = __( 'GetPaid Receipt Page', 'invoicing' );
878 878
         }
879 879
 
880
-		foreach ( getpaid_get_invoice_post_types() as $post_type => $label ) {
880
+        foreach ( getpaid_get_invoice_post_types() as $post_type => $label ) {
881 881
 
882
-			if ( wpinv_get_option( "{$post_type}_history_page", 0 ) == $post->ID ) {
883
-				$post_states[ "getpaid_{$post_type}_history_page" ] = sprintf(
884
-					__( 'GetPaid %s History Page', 'invoicing' ),
885
-					$label
886
-				);
887
-			}
882
+            if ( wpinv_get_option( "{$post_type}_history_page", 0 ) == $post->ID ) {
883
+                $post_states[ "getpaid_{$post_type}_history_page" ] = sprintf(
884
+                    __( 'GetPaid %s History Page', 'invoicing' ),
885
+                    $label
886
+                );
887
+            }
888 888
 }
889 889
 
890
-		if ( wpinv_get_option( 'invoice_subscription_page', 0 ) == $post->ID ) {
890
+        if ( wpinv_get_option( 'invoice_subscription_page', 0 ) == $post->ID ) {
891 891
             $post_states['getpaid_invoice_subscription_page'] = __( 'GetPaid Subscription Page', 'invoicing' );
892 892
         }
893 893
 
894
-		if ( wpinv_get_option( 'checkout_page', 0 ) == $post->ID ) {
894
+        if ( wpinv_get_option( 'checkout_page', 0 ) == $post->ID ) {
895 895
             $post_states['getpaid_checkout_page'] = __( 'GetPaid Checkout Page', 'invoicing' );
896 896
         }
897 897
 
Please login to merge, or discard this patch.
Spacing   +245 added lines, -245 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
  * Post types Admin Class
@@ -21,74 +21,74 @@  discard block
 block discarded – undo
21 21
 		GetPaid_Metaboxes::init();
22 22
 
23 23
 		// Filter the post updated messages.
24
-		add_filter( 'post_updated_messages', 'GetPaid_Post_Types_Admin::post_updated_messages' );
24
+		add_filter('post_updated_messages', 'GetPaid_Post_Types_Admin::post_updated_messages');
25 25
 
26 26
 		// Filter post actions.
27
-		add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::post_row_actions', 10, 2 );
28
-		add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::filter_invoice_row_actions', 90, 2 );
27
+		add_filter('post_row_actions', 'GetPaid_Post_Types_Admin::post_row_actions', 10, 2);
28
+		add_filter('post_row_actions', 'GetPaid_Post_Types_Admin::filter_invoice_row_actions', 90, 2);
29 29
 
30 30
 		// Invoice table columns.
31
-		add_filter( 'manage_wpi_invoice_posts_columns', array( __CLASS__, 'invoice_columns' ), 100 );
32
-		add_action( 'manage_wpi_invoice_posts_custom_column', array( __CLASS__, 'display_invoice_columns' ), 10, 2 );
33
-		add_filter( 'bulk_actions-edit-wpi_invoice', array( __CLASS__, 'invoice_bulk_actions' ) );
34
-		add_filter( 'handle_bulk_actions-edit-wpi_invoice', array( __CLASS__, 'handle_invoice_bulk_actions' ), 10, 3 );
31
+		add_filter('manage_wpi_invoice_posts_columns', array(__CLASS__, 'invoice_columns'), 100);
32
+		add_action('manage_wpi_invoice_posts_custom_column', array(__CLASS__, 'display_invoice_columns'), 10, 2);
33
+		add_filter('bulk_actions-edit-wpi_invoice', array(__CLASS__, 'invoice_bulk_actions'));
34
+		add_filter('handle_bulk_actions-edit-wpi_invoice', array(__CLASS__, 'handle_invoice_bulk_actions'), 10, 3);
35 35
 
36 36
 		// Items table columns.
37
-		add_filter( 'manage_wpi_item_posts_columns', array( __CLASS__, 'item_columns' ), 100 );
38
-		add_filter( 'manage_edit-wpi_item_sortable_columns', array( __CLASS__, 'sortable_item_columns' ), 20 );
39
-		add_action( 'manage_wpi_item_posts_custom_column', array( __CLASS__, 'display_item_columns' ), 10, 2 );
40
-		add_action( 'restrict_manage_posts', array( __CLASS__, 'add_item_filters' ), 100 );
41
-		add_action( 'parse_query', array( __CLASS__, 'filter_item_query' ), 100 );
42
-		add_action( 'request', array( __CLASS__, 'reorder_items' ), 100 );
37
+		add_filter('manage_wpi_item_posts_columns', array(__CLASS__, 'item_columns'), 100);
38
+		add_filter('manage_edit-wpi_item_sortable_columns', array(__CLASS__, 'sortable_item_columns'), 20);
39
+		add_action('manage_wpi_item_posts_custom_column', array(__CLASS__, 'display_item_columns'), 10, 2);
40
+		add_action('restrict_manage_posts', array(__CLASS__, 'add_item_filters'), 100);
41
+		add_action('parse_query', array(__CLASS__, 'filter_item_query'), 100);
42
+		add_action('request', array(__CLASS__, 'reorder_items'), 100);
43 43
 
44 44
 		// Payment forms columns.
45
-		add_filter( 'manage_wpi_payment_form_posts_columns', array( __CLASS__, 'payment_form_columns' ), 100 );
46
-		add_action( 'manage_wpi_payment_form_posts_custom_column', array( __CLASS__, 'display_payment_form_columns' ), 10, 2 );
47
-		add_filter( 'display_post_states', array( __CLASS__, 'filter_payment_form_state' ), 10, 2 );
45
+		add_filter('manage_wpi_payment_form_posts_columns', array(__CLASS__, 'payment_form_columns'), 100);
46
+		add_action('manage_wpi_payment_form_posts_custom_column', array(__CLASS__, 'display_payment_form_columns'), 10, 2);
47
+		add_filter('display_post_states', array(__CLASS__, 'filter_payment_form_state'), 10, 2);
48 48
 
49 49
 		// Discount table columns.
50
-		add_filter( 'manage_wpi_discount_posts_columns', array( __CLASS__, 'discount_columns' ), 100 );
51
-		add_filter( 'bulk_actions-edit-wpi_discount', '__return_empty_array', 100 );
50
+		add_filter('manage_wpi_discount_posts_columns', array(__CLASS__, 'discount_columns'), 100);
51
+		add_filter('bulk_actions-edit-wpi_discount', '__return_empty_array', 100);
52 52
 
53 53
 		// Deleting posts.
54
-		add_action( 'delete_post', array( __CLASS__, 'delete_post' ) );
55
-		add_filter( 'display_post_states', array( __CLASS__, 'filter_discount_state' ), 10, 2 );
54
+		add_action('delete_post', array(__CLASS__, 'delete_post'));
55
+		add_filter('display_post_states', array(__CLASS__, 'filter_discount_state'), 10, 2);
56 56
 
57
-		add_filter( 'display_post_states', array( __CLASS__, 'add_display_post_states' ), 10, 2 );
57
+		add_filter('display_post_states', array(__CLASS__, 'add_display_post_states'), 10, 2);
58 58
 	}
59 59
 
60 60
 	/**
61 61
 	 * Post updated messages.
62 62
 	 */
63
-	public static function post_updated_messages( $messages ) {
63
+	public static function post_updated_messages($messages) {
64 64
 		global $post;
65 65
 
66 66
 		$messages['wpi_discount'] = array(
67 67
 			0  => '',
68
-			1  => __( 'Discount updated.', 'invoicing' ),
69
-			2  => __( 'Custom field updated.', 'invoicing' ),
70
-			3  => __( 'Custom field deleted.', 'invoicing' ),
71
-			4  => __( 'Discount updated.', 'invoicing' ),
72
-			5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Discount restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
73
-			6  => __( 'Discount updated.', 'invoicing' ),
74
-			7  => __( 'Discount saved.', 'invoicing' ),
75
-			8  => __( 'Discount submitted.', 'invoicing' ),
76
-			9  => wp_sprintf( __( 'Discount scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
77
-			10 => __( 'Discount draft updated.', 'invoicing' ),
68
+			1  => __('Discount updated.', 'invoicing'),
69
+			2  => __('Custom field updated.', 'invoicing'),
70
+			3  => __('Custom field deleted.', 'invoicing'),
71
+			4  => __('Discount updated.', 'invoicing'),
72
+			5  => isset($_GET['revision']) ? wp_sprintf(__('Discount restored to revision from %s', 'invoicing'), wp_post_revision_title((int) $_GET['revision'], false)) : false,
73
+			6  => __('Discount updated.', 'invoicing'),
74
+			7  => __('Discount saved.', 'invoicing'),
75
+			8  => __('Discount submitted.', 'invoicing'),
76
+			9  => wp_sprintf(__('Discount scheduled for: <strong>%1$s</strong>.', 'invoicing'), date_i18n(__('M j, Y @ G:i', 'invoicing'), strtotime($post->post_date))),
77
+			10 => __('Discount draft updated.', 'invoicing'),
78 78
 		);
79 79
 
80 80
 		$messages['wpi_payment_form'] = array(
81 81
 			0  => '',
82
-			1  => __( 'Payment Form updated.', 'invoicing' ),
83
-			2  => __( 'Custom field updated.', 'invoicing' ),
84
-			3  => __( 'Custom field deleted.', 'invoicing' ),
85
-			4  => __( 'Payment Form updated.', 'invoicing' ),
86
-			5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Payment Form restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
87
-			6  => __( 'Payment Form updated.', 'invoicing' ),
88
-			7  => __( 'Payment Form saved.', 'invoicing' ),
89
-			8  => __( 'Payment Form submitted.', 'invoicing' ),
90
-			9  => wp_sprintf( __( 'Payment Form scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
91
-			10 => __( 'Payment Form draft updated.', 'invoicing' ),
82
+			1  => __('Payment Form updated.', 'invoicing'),
83
+			2  => __('Custom field updated.', 'invoicing'),
84
+			3  => __('Custom field deleted.', 'invoicing'),
85
+			4  => __('Payment Form updated.', 'invoicing'),
86
+			5  => isset($_GET['revision']) ? wp_sprintf(__('Payment Form restored to revision from %s', 'invoicing'), wp_post_revision_title((int) $_GET['revision'], false)) : false,
87
+			6  => __('Payment Form updated.', 'invoicing'),
88
+			7  => __('Payment Form saved.', 'invoicing'),
89
+			8  => __('Payment Form submitted.', 'invoicing'),
90
+			9  => wp_sprintf(__('Payment Form scheduled for: <strong>%1$s</strong>.', 'invoicing'), date_i18n(__('M j, Y @ G:i', 'invoicing'), strtotime($post->post_date))),
91
+			10 => __('Payment Form draft updated.', 'invoicing'),
92 92
 		);
93 93
 
94 94
 		return $messages;
@@ -98,16 +98,16 @@  discard block
 block discarded – undo
98 98
 	/**
99 99
 	 * Post row actions.
100 100
 	 */
101
-	public static function post_row_actions( $actions, $post ) {
101
+	public static function post_row_actions($actions, $post) {
102 102
 
103
-		$post = get_post( $post );
103
+		$post = get_post($post);
104 104
 
105 105
 		// We do not want to edit the default payment form.
106
-		if ( 'wpi_payment_form' == $post->post_type ) {
106
+		if ('wpi_payment_form' == $post->post_type) {
107 107
 
108
-			if ( wpinv_get_default_payment_form() === $post->ID ) {
109
-				unset( $actions['trash'] );
110
-				unset( $actions['inline hide-if-no-js'] );
108
+			if (wpinv_get_default_payment_form() === $post->ID) {
109
+				unset($actions['trash']);
110
+				unset($actions['inline hide-if-no-js']);
111 111
 			}
112 112
 
113 113
 			$actions['duplicate'] = sprintf(
@@ -124,7 +124,7 @@  discard block
 block discarded – undo
124 124
 						'getpaid-nonce'
125 125
 					)
126 126
 				),
127
-				esc_html( __( 'Duplicate', 'invoicing' ) )
127
+				esc_html(__('Duplicate', 'invoicing'))
128 128
 			);
129 129
 
130 130
 			$actions['reset'] = sprintf(
@@ -141,17 +141,17 @@  discard block
 block discarded – undo
141 141
 						'getpaid-nonce'
142 142
 					)
143 143
 				),
144
-				esc_html( __( 'Reset Stats', 'invoicing' ) )
144
+				esc_html(__('Reset Stats', 'invoicing'))
145 145
 			);
146 146
 		}
147 147
 
148 148
 		// Link to item payment form.
149
-		if ( 'wpi_item' == $post->post_type ) {
150
-			if ( getpaid_item_type_supports( get_post_meta( $post->ID, '_wpinv_type', true ), 'buy_now' ) ) {
149
+		if ('wpi_item' == $post->post_type) {
150
+			if (getpaid_item_type_supports(get_post_meta($post->ID, '_wpinv_type', true), 'buy_now')) {
151 151
 				$actions['buy'] = sprintf(
152 152
 					'<a href="%1$s">%2$s</a>',
153
-					esc_url( getpaid_embed_url( false, $post->ID . '|0' ) ),
154
-					esc_html( __( 'Buy', 'invoicing' ) )
153
+					esc_url(getpaid_embed_url(false, $post->ID . '|0')),
154
+					esc_html(__('Buy', 'invoicing'))
155 155
 				);
156 156
 			}
157 157
 		}
@@ -167,28 +167,28 @@  discard block
 block discarded – undo
167 167
 	 * @param WP_Post $post
168 168
      * @return array $actions actions without edit option
169 169
      */
170
-    public static function filter_invoice_row_actions( $actions, $post ) {
170
+    public static function filter_invoice_row_actions($actions, $post) {
171 171
 
172
-        if ( getpaid_is_invoice_post_type( $post->post_type ) ) {
172
+        if (getpaid_is_invoice_post_type($post->post_type)) {
173 173
 
174 174
 			$actions = array();
175
-			$invoice = new WPInv_Invoice( $post );
175
+			$invoice = new WPInv_Invoice($post);
176 176
 
177 177
 			$actions['edit'] = sprintf(
178 178
 				'<a href="%1$s">%2$s</a>',
179
-				esc_url( get_edit_post_link( $invoice->get_id() ) ),
180
-				esc_html( __( 'Edit', 'invoicing' ) )
179
+				esc_url(get_edit_post_link($invoice->get_id())),
180
+				esc_html(__('Edit', 'invoicing'))
181 181
 			);
182 182
 
183
-			if ( ! $invoice->is_draft() ) {
183
+			if (!$invoice->is_draft()) {
184 184
 
185 185
 				$actions['view'] = sprintf(
186 186
 					'<a href="%1$s">%2$s</a>',
187
-					esc_url( $invoice->get_view_url() ),
187
+					esc_url($invoice->get_view_url()),
188 188
 					sprintf(
189 189
 						// translators: %s is the invoice type
190
-						esc_html__( 'View %s', 'invoicing' ),
191
-						getpaid_get_post_type_label( $invoice->get_post_type(), false )
190
+						esc_html__('View %s', 'invoicing'),
191
+						getpaid_get_post_type_label($invoice->get_post_type(), false)
192 192
 					)
193 193
 				);
194 194
 
@@ -206,7 +206,7 @@  discard block
 block discarded – undo
206 206
 							'getpaid-nonce'
207 207
 						)
208 208
 					),
209
-					esc_html( __( 'Send to Customer', 'invoicing' ) )
209
+					esc_html(__('Send to Customer', 'invoicing'))
210 210
 				);
211 211
 
212 212
 			}
@@ -225,7 +225,7 @@  discard block
 block discarded – undo
225 225
 						'getpaid-nonce'
226 226
 					)
227 227
 				),
228
-				esc_html( __( 'Duplicate', 'invoicing' ) )
228
+				esc_html(__('Duplicate', 'invoicing'))
229 229
 			);
230 230
 
231 231
         }
@@ -236,42 +236,42 @@  discard block
 block discarded – undo
236 236
 	/**
237 237
 	 * Returns an array of invoice table columns.
238 238
 	 */
239
-	public static function invoice_columns( $columns ) {
239
+	public static function invoice_columns($columns) {
240 240
 
241 241
 		$columns = array(
242 242
 			'cb'           => $columns['cb'],
243
-			'number'       => __( 'Invoice', 'invoicing' ),
244
-			'customer'     => __( 'Customer', 'invoicing' ),
245
-			'invoice_date' => __( 'Created', 'invoicing' ),
246
-			'payment_date' => __( 'Completed', 'invoicing' ),
247
-			'amount'       => __( 'Amount', 'invoicing' ),
248
-			'recurring'    => __( 'Recurring', 'invoicing' ),
249
-			'status'       => __( 'Status', 'invoicing' ),
243
+			'number'       => __('Invoice', 'invoicing'),
244
+			'customer'     => __('Customer', 'invoicing'),
245
+			'invoice_date' => __('Created', 'invoicing'),
246
+			'payment_date' => __('Completed', 'invoicing'),
247
+			'amount'       => __('Amount', 'invoicing'),
248
+			'recurring'    => __('Recurring', 'invoicing'),
249
+			'status'       => __('Status', 'invoicing'),
250 250
 		);
251 251
 
252
-		return apply_filters( 'wpi_invoice_table_columns', $columns );
252
+		return apply_filters('wpi_invoice_table_columns', $columns);
253 253
 	}
254 254
 
255 255
 	/**
256 256
 	 * Displays invoice table columns.
257 257
 	 */
258
-	public static function display_invoice_columns( $column_name, $post_id ) {
258
+	public static function display_invoice_columns($column_name, $post_id) {
259 259
 
260
-		$invoice = new WPInv_Invoice( $post_id );
260
+		$invoice = new WPInv_Invoice($post_id);
261 261
 
262
-		switch ( $column_name ) {
262
+		switch ($column_name) {
263 263
 
264 264
 			case 'invoice_date':
265
-				$date_time = esc_attr( $invoice->get_created_date() );
266
-				$date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
267
-				echo wp_kses_post( "<span title='$date_time'>$date</span>" );
265
+				$date_time = esc_attr($invoice->get_created_date());
266
+				$date      = esc_html(getpaid_format_date_value($date_time, '&mdash;', true));
267
+				echo wp_kses_post("<span title='$date_time'>$date</span>");
268 268
 				break;
269 269
 
270 270
 			case 'payment_date':
271
-				if ( $invoice->is_paid() ) {
272
-					$date_time = esc_attr( $invoice->get_completed_date() );
273
-					$date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
274
-					echo wp_kses_post( "<span title='$date_time'>$date</span>" );
271
+				if ($invoice->is_paid()) {
272
+					$date_time = esc_attr($invoice->get_completed_date());
273
+					$date      = esc_html(getpaid_format_date_value($date_time, '&mdash;', true));
274
+					echo wp_kses_post("<span title='$date_time'>$date</span>");
275 275
 				} else {
276 276
 					echo '&mdash;';
277 277
 				}
@@ -280,61 +280,61 @@  discard block
 block discarded – undo
280 280
 
281 281
 			case 'amount':
282 282
 				$amount = $invoice->get_total();
283
-				$formated_amount = wp_kses_post( wpinv_price( $amount, $invoice->get_currency() ) );
283
+				$formated_amount = wp_kses_post(wpinv_price($amount, $invoice->get_currency()));
284 284
 
285
-				if ( $invoice->is_refunded() ) {
286
-					$refunded_amount = wpinv_price( 0, $invoice->get_currency() );
287
-					echo wp_kses_post( "<del>$formated_amount</del>&nbsp;<ins>$refunded_amount</ins>" );
285
+				if ($invoice->is_refunded()) {
286
+					$refunded_amount = wpinv_price(0, $invoice->get_currency());
287
+					echo wp_kses_post("<del>$formated_amount</del>&nbsp;<ins>$refunded_amount</ins>");
288 288
 				} else {
289 289
 
290 290
 					$discount = $invoice->get_total_discount();
291 291
 
292
-					if ( ! empty( $discount ) ) {
293
-						$new_amount = wpinv_price( $amount + $discount, $invoice->get_currency() );
294
-						echo wp_kses_post( "<del>$new_amount</del>&nbsp;<ins>$formated_amount</ins>" );
292
+					if (!empty($discount)) {
293
+						$new_amount = wpinv_price($amount + $discount, $invoice->get_currency());
294
+						echo wp_kses_post("<del>$new_amount</del>&nbsp;<ins>$formated_amount</ins>");
295 295
 					} else {
296
-						echo wp_kses_post( $formated_amount );
296
+						echo wp_kses_post($formated_amount);
297 297
 					}
298 298
 				}
299 299
 
300 300
 				break;
301 301
 
302 302
 			case 'status':
303
-				$status       = esc_html( $invoice->get_status() );
304
-				$status_label = esc_html( $invoice->get_status_nicename() );
303
+				$status       = esc_html($invoice->get_status());
304
+				$status_label = esc_html($invoice->get_status_nicename());
305 305
 
306 306
 				// If it is paid, show the gateway title.
307
-				if ( $invoice->is_paid() ) {
308
-					$gateway = esc_html( $invoice->get_gateway_title() );
309
-					$gateway = wp_sprintf( esc_attr__( 'Paid via %s', 'invoicing' ), esc_html( $gateway ) );
307
+				if ($invoice->is_paid()) {
308
+					$gateway = esc_html($invoice->get_gateway_title());
309
+					$gateway = wp_sprintf(esc_attr__('Paid via %s', 'invoicing'), esc_html($gateway));
310 310
 
311
-					echo wp_kses_post( "<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>" );
311
+					echo wp_kses_post("<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>");
312 312
 				} else {
313
-					echo wp_kses_post( "<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>" );
313
+					echo wp_kses_post("<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>");
314 314
 				}
315 315
 
316 316
 				// If it is not paid, display the overdue and view status.
317
-				if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
317
+				if (!$invoice->is_paid() && !$invoice->is_refunded()) {
318 318
 
319 319
 					// Invoice view status.
320
-					if ( wpinv_is_invoice_viewed( $invoice->get_id() ) ) {
321
-						echo '&nbsp;&nbsp;<i class="fa fa-eye wpi-help-tip" title="' . esc_attr__( 'Viewed by Customer', 'invoicing' ) . '"></i>';
320
+					if (wpinv_is_invoice_viewed($invoice->get_id())) {
321
+						echo '&nbsp;&nbsp;<i class="fa fa-eye wpi-help-tip" title="' . esc_attr__('Viewed by Customer', 'invoicing') . '"></i>';
322 322
 					} else {
323
-						echo '&nbsp;&nbsp;<i class="fa fa-eye-slash wpi-help-tip" title="' . esc_attr__( 'Not Viewed by Customer', 'invoicing' ) . '"></i>';
323
+						echo '&nbsp;&nbsp;<i class="fa fa-eye-slash wpi-help-tip" title="' . esc_attr__('Not Viewed by Customer', 'invoicing') . '"></i>';
324 324
 					}
325 325
 
326 326
 					// Display the overview status.
327
-					if ( wpinv_get_option( 'overdue_active' ) ) {
327
+					if (wpinv_get_option('overdue_active')) {
328 328
 						$due_date = $invoice->get_due_date();
329
-						$fomatted = getpaid_format_date( $due_date );
329
+						$fomatted = getpaid_format_date($due_date);
330 330
 
331
-						if ( ! empty( $fomatted ) ) {
331
+						if (!empty($fomatted)) {
332 332
 							$date = wp_sprintf(
333 333
 								// translators: %s is the due date.
334
-								__( 'Due %s', 'invoicing' ),
334
+								__('Due %s', 'invoicing'),
335 335
 								$fomatted
336 336
 							);
337
-							echo wp_kses_post( "<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>" );
337
+							echo wp_kses_post("<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>");
338 338
 						}
339 339
 					}
340 340
 				}
@@ -342,7 +342,7 @@  discard block
 block discarded – undo
342 342
 				break;
343 343
 
344 344
 			case 'recurring':
345
-				if ( $invoice->is_recurring() ) {
345
+				if ($invoice->is_recurring()) {
346 346
 					echo '<i class="fa fa-check" style="color:#43850a;"></i>';
347 347
 				} else {
348 348
 					echo '<i class="fa fa-times" style="color:#616161;"></i>';
@@ -350,26 +350,26 @@  discard block
 block discarded – undo
350 350
 				break;
351 351
 
352 352
 			case 'number':
353
-				$edit_link       = esc_url( get_edit_post_link( $invoice->get_id() ) );
354
-				$invoice_number  = esc_html( $invoice->get_number() );
355
-				$invoice_details = esc_attr__( 'View Invoice Details', 'invoicing' );
353
+				$edit_link       = esc_url(get_edit_post_link($invoice->get_id()));
354
+				$invoice_number  = esc_html($invoice->get_number());
355
+				$invoice_details = esc_attr__('View Invoice Details', 'invoicing');
356 356
 
357
-				echo wp_kses_post( "<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>" );
357
+				echo wp_kses_post("<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>");
358 358
 
359
-				do_action( 'getpaid_admin_table_invoice_number_column', $invoice );
359
+				do_action('getpaid_admin_table_invoice_number_column', $invoice);
360 360
 				break;
361 361
 
362 362
 			case 'customer':
363 363
 				$customer_name = $invoice->get_user_full_name();
364 364
 
365
-				if ( empty( $customer_name ) ) {
365
+				if (empty($customer_name)) {
366 366
 					$customer_name = $invoice->get_email();
367 367
 				}
368 368
 
369
-				if ( ! empty( $customer_name ) ) {
370
-					$customer_details = esc_attr__( 'View Customer Details', 'invoicing' );
371
-					$view_link        = esc_url( add_query_arg( 'user_id', $invoice->get_user_id(), admin_url( 'user-edit.php' ) ) );
372
-					echo wp_kses_post( "<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>" );
369
+				if (!empty($customer_name)) {
370
+					$customer_details = esc_attr__('View Customer Details', 'invoicing');
371
+					$view_link        = esc_url(add_query_arg('user_id', $invoice->get_user_id(), admin_url('user-edit.php')));
372
+					echo wp_kses_post("<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>");
373 373
 				} else {
374 374
 					echo '<div>&mdash;</div>';
375 375
 				}
@@ -383,19 +383,19 @@  discard block
 block discarded – undo
383 383
 	/**
384 384
 	 * Displays invoice bulk actions.
385 385
 	 */
386
-	public static function invoice_bulk_actions( $actions ) {
387
-		$actions['resend-invoice'] = __( 'Send to Customer', 'invoicing' );
386
+	public static function invoice_bulk_actions($actions) {
387
+		$actions['resend-invoice'] = __('Send to Customer', 'invoicing');
388 388
 		return $actions;
389 389
 	}
390 390
 
391 391
 	/**
392 392
 	 * Processes invoice bulk actions.
393 393
 	 */
394
-	public static function handle_invoice_bulk_actions( $redirect_url, $action, $post_ids ) {
394
+	public static function handle_invoice_bulk_actions($redirect_url, $action, $post_ids) {
395 395
 
396
-		if ( 'resend-invoice' === $action ) {
397
-			foreach ( $post_ids as $post_id ) {
398
-				getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $post_id ), true );
396
+		if ('resend-invoice' === $action) {
397
+			foreach ($post_ids as $post_id) {
398
+				getpaid()->get('invoice_emails')->user_invoice(new WPInv_Invoice($post_id), true);
399 399
 			}
400 400
 		}
401 401
 
@@ -406,49 +406,49 @@  discard block
 block discarded – undo
406 406
 	/**
407 407
 	 * Returns an array of payment forms table columns.
408 408
 	 */
409
-	public static function payment_form_columns( $columns ) {
409
+	public static function payment_form_columns($columns) {
410 410
 
411 411
 		$columns = array(
412 412
 			'cb'        => $columns['cb'],
413
-			'title'     => __( 'Name', 'invoicing' ),
414
-			'shortcode' => __( 'Shortcode', 'invoicing' ),
415
-			'earnings'  => __( 'Revenue', 'invoicing' ),
416
-			'refunds'   => __( 'Refunded', 'invoicing' ),
417
-			'items'     => __( 'Items', 'invoicing' ),
418
-			'date'      => __( 'Date', 'invoicing' ),
413
+			'title'     => __('Name', 'invoicing'),
414
+			'shortcode' => __('Shortcode', 'invoicing'),
415
+			'earnings'  => __('Revenue', 'invoicing'),
416
+			'refunds'   => __('Refunded', 'invoicing'),
417
+			'items'     => __('Items', 'invoicing'),
418
+			'date'      => __('Date', 'invoicing'),
419 419
 		);
420 420
 
421
-		return apply_filters( 'wpi_payment_form_table_columns', $columns );
421
+		return apply_filters('wpi_payment_form_table_columns', $columns);
422 422
 
423 423
 	}
424 424
 
425 425
 	/**
426 426
 	 * Displays payment form table columns.
427 427
 	 */
428
-	public static function display_payment_form_columns( $column_name, $post_id ) {
428
+	public static function display_payment_form_columns($column_name, $post_id) {
429 429
 
430 430
 		// Retrieve the payment form.
431
-		$form = new GetPaid_Payment_Form( $post_id );
431
+		$form = new GetPaid_Payment_Form($post_id);
432 432
 
433
-		switch ( $column_name ) {
433
+		switch ($column_name) {
434 434
 
435 435
 			case 'earnings':
436
-				echo wp_kses_post( wpinv_price( $form->get_earned() ) );
436
+				echo wp_kses_post(wpinv_price($form->get_earned()));
437 437
 				break;
438 438
 
439 439
 			case 'refunds':
440
-				echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
440
+				echo wp_kses_post(wpinv_price($form->get_refunded()));
441 441
 				break;
442 442
 
443 443
 			case 'refunds':
444
-				echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
444
+				echo wp_kses_post(wpinv_price($form->get_refunded()));
445 445
 				break;
446 446
 
447 447
 			case 'shortcode':
448
-				if ( $form->is_default() ) {
448
+				if ($form->is_default()) {
449 449
 					echo '&mdash;';
450 450
 				} else {
451
-					echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr( $form->get_id() ) . ']" style="width: 100%;" readonly/>';
451
+					echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr($form->get_id()) . ']" style="width: 100%;" readonly/>';
452 452
 				}
453 453
 
454 454
 				break;
@@ -456,28 +456,28 @@  discard block
 block discarded – undo
456 456
 			case 'items':
457 457
 				$items = $form->get_items();
458 458
 
459
-				if ( $form->is_default() || empty( $items ) ) {
459
+				if ($form->is_default() || empty($items)) {
460 460
 					echo '&mdash;';
461 461
 					return;
462 462
 				}
463 463
 
464 464
 				$_items = array();
465 465
 
466
-				foreach ( $items as $item ) {
466
+				foreach ($items as $item) {
467 467
 					$url = $item->get_edit_url();
468 468
 
469
-					if ( empty( $url ) ) {
470
-						$_items[] = esc_html( $item->get_name() );
469
+					if (empty($url)) {
470
+						$_items[] = esc_html($item->get_name());
471 471
 					} else {
472 472
 						$_items[] = sprintf(
473 473
 							'<a href="%s">%s</a>',
474
-							esc_url( $url ),
475
-							esc_html( $item->get_name() )
474
+							esc_url($url),
475
+							esc_html($item->get_name())
476 476
 						);
477 477
 					}
478 478
 }
479 479
 
480
-				echo wp_kses_post( implode( '<br>', $_items ) );
480
+				echo wp_kses_post(implode('<br>', $_items));
481 481
 
482 482
 				break;
483 483
 
@@ -488,10 +488,10 @@  discard block
 block discarded – undo
488 488
 	/**
489 489
 	 * Filters post states.
490 490
 	 */
491
-	public static function filter_payment_form_state( $post_states, $post ) {
491
+	public static function filter_payment_form_state($post_states, $post) {
492 492
 
493
-		if ( 'wpi_payment_form' === $post->post_type && wpinv_get_default_payment_form() === $post->ID ) {
494
-			$post_states['default_form'] = __( 'Default Payment Form', 'invoicing' );
493
+		if ('wpi_payment_form' === $post->post_type && wpinv_get_default_payment_form() === $post->ID) {
494
+			$post_states['default_form'] = __('Default Payment Form', 'invoicing');
495 495
 		}
496 496
 
497 497
 		return $post_states;
@@ -501,35 +501,35 @@  discard block
 block discarded – undo
501 501
 	/**
502 502
 	 * Returns an array of coupon table columns.
503 503
 	 */
504
-	public static function discount_columns( $columns ) {
504
+	public static function discount_columns($columns) {
505 505
 
506 506
 		$columns = array(
507 507
 			'cb'          => $columns['cb'],
508
-			'title'       => __( 'Name', 'invoicing' ),
509
-			'code'        => __( 'Code', 'invoicing' ),
510
-			'amount'      => __( 'Amount', 'invoicing' ),
511
-			'usage'       => __( 'Usage / Limit', 'invoicing' ),
512
-			'start_date'  => __( 'Start Date', 'invoicing' ),
513
-			'expiry_date' => __( 'Expiry Date', 'invoicing' ),
508
+			'title'       => __('Name', 'invoicing'),
509
+			'code'        => __('Code', 'invoicing'),
510
+			'amount'      => __('Amount', 'invoicing'),
511
+			'usage'       => __('Usage / Limit', 'invoicing'),
512
+			'start_date'  => __('Start Date', 'invoicing'),
513
+			'expiry_date' => __('Expiry Date', 'invoicing'),
514 514
 		);
515 515
 
516
-		return apply_filters( 'wpi_discount_table_columns', $columns );
516
+		return apply_filters('wpi_discount_table_columns', $columns);
517 517
 	}
518 518
 
519 519
 	/**
520 520
 	 * Filters post states.
521 521
 	 */
522
-	public static function filter_discount_state( $post_states, $post ) {
522
+	public static function filter_discount_state($post_states, $post) {
523 523
 
524
-		if ( 'wpi_discount' === $post->post_type ) {
524
+		if ('wpi_discount' === $post->post_type) {
525 525
 
526
-			$discount = new WPInv_Discount( $post );
526
+			$discount = new WPInv_Discount($post);
527 527
 
528 528
 			$status = $discount->is_expired() ? 'expired' : $discount->get_status();
529 529
 
530
-			if ( 'publish' !== $status ) {
530
+			if ('publish' !== $status) {
531 531
 				return array(
532
-					'discount_status' => wpinv_discount_status( $status ),
532
+					'discount_status' => wpinv_discount_status($status),
533 533
 				);
534 534
 			}
535 535
 
@@ -544,30 +544,30 @@  discard block
 block discarded – undo
544 544
 	/**
545 545
 	 * Returns an array of items table columns.
546 546
 	 */
547
-	public static function item_columns( $columns ) {
547
+	public static function item_columns($columns) {
548 548
 
549 549
 		$columns = array(
550 550
 			'cb'        => $columns['cb'],
551
-			'title'     => __( 'Name', 'invoicing' ),
552
-			'price'     => __( 'Price', 'invoicing' ),
553
-			'vat_rule'  => __( 'Tax Rule', 'invoicing' ),
554
-			'vat_class' => __( 'Tax Class', 'invoicing' ),
555
-			'type'      => __( 'Type', 'invoicing' ),
556
-			'shortcode' => __( 'Shortcode', 'invoicing' ),
551
+			'title'     => __('Name', 'invoicing'),
552
+			'price'     => __('Price', 'invoicing'),
553
+			'vat_rule'  => __('Tax Rule', 'invoicing'),
554
+			'vat_class' => __('Tax Class', 'invoicing'),
555
+			'type'      => __('Type', 'invoicing'),
556
+			'shortcode' => __('Shortcode', 'invoicing'),
557 557
 		);
558 558
 
559
-		if ( ! wpinv_use_taxes() ) {
560
-			unset( $columns['vat_rule'] );
561
-			unset( $columns['vat_class'] );
559
+		if (!wpinv_use_taxes()) {
560
+			unset($columns['vat_rule']);
561
+			unset($columns['vat_class']);
562 562
 		}
563 563
 
564
-		return apply_filters( 'wpi_item_table_columns', $columns );
564
+		return apply_filters('wpi_item_table_columns', $columns);
565 565
 	}
566 566
 
567 567
 	/**
568 568
 	 * Returns an array of sortable items table columns.
569 569
 	 */
570
-	public static function sortable_item_columns( $columns ) {
570
+	public static function sortable_item_columns($columns) {
571 571
 
572 572
 		return array_merge(
573 573
 			$columns,
@@ -584,45 +584,45 @@  discard block
 block discarded – undo
584 584
 	/**
585 585
 	 * Displays items table columns.
586 586
 	 */
587
-	public static function display_item_columns( $column_name, $post_id ) {
587
+	public static function display_item_columns($column_name, $post_id) {
588 588
 
589
-		$item = new WPInv_Item( $post_id );
589
+		$item = new WPInv_Item($post_id);
590 590
 
591
-		switch ( $column_name ) {
591
+		switch ($column_name) {
592 592
 
593 593
 			case 'price':
594
-				if ( ! $item->is_recurring() ) {
595
-					echo wp_kses_post( $item->get_the_price() );
594
+				if (!$item->is_recurring()) {
595
+					echo wp_kses_post($item->get_the_price());
596 596
 					break;
597 597
 				}
598 598
 
599 599
 				$price = wp_sprintf(
600
-					__( '%1$s / %2$s', 'invoicing' ),
600
+					__('%1$s / %2$s', 'invoicing'),
601 601
 					$item->get_the_price(),
602
-					getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' )
602
+					getpaid_get_subscription_period_label($item->get_recurring_period(), $item->get_recurring_interval(), '')
603 603
 				);
604 604
 
605
-				if ( $item->get_the_price() == $item->get_the_initial_price() ) {
606
-					echo wp_kses_post( $price );
605
+				if ($item->get_the_price() == $item->get_the_initial_price()) {
606
+					echo wp_kses_post($price);
607 607
 					break;
608 608
 				}
609 609
 
610
-				echo wp_kses_post( $item->get_the_initial_price() );
610
+				echo wp_kses_post($item->get_the_initial_price());
611 611
 
612
-				echo '<span class="meta">' . wp_sprintf( esc_html__( 'then %s', 'invoicing' ), wp_kses_post( $price ) ) . '</span>';
612
+				echo '<span class="meta">' . wp_sprintf(esc_html__('then %s', 'invoicing'), wp_kses_post($price)) . '</span>';
613 613
 				break;
614 614
 
615 615
 			case 'vat_rule':
616
-				echo wp_kses_post( getpaid_get_tax_rule_label( $item->get_vat_rule() ) );
616
+				echo wp_kses_post(getpaid_get_tax_rule_label($item->get_vat_rule()));
617 617
 				break;
618 618
 
619 619
 			case 'vat_class':
620
-				echo wp_kses_post( getpaid_get_tax_class_label( $item->get_vat_class() ) );
620
+				echo wp_kses_post(getpaid_get_tax_class_label($item->get_vat_class()));
621 621
 				break;
622 622
 
623 623
 			case 'shortcode':
624
-				if ( $item->is_type( array( '', 'fee', 'custom' ) ) ) {
625
-					echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr( $item->get_id() ) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>';
624
+				if ($item->is_type(array('', 'fee', 'custom'))) {
625
+					echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr($item->get_id()) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>';
626 626
 				} else {
627 627
 					echo '&mdash;';
628 628
 				}
@@ -630,7 +630,7 @@  discard block
 block discarded – undo
630 630
 				break;
631 631
 
632 632
 			case 'type':
633
-				echo wp_kses_post( wpinv_item_type( $item->get_id() ) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>' );
633
+				echo wp_kses_post(wpinv_item_type($item->get_id()) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>');
634 634
 				break;
635 635
 
636 636
 		}
@@ -640,21 +640,21 @@  discard block
 block discarded – undo
640 640
 	/**
641 641
 	 * Lets users filter items using taxes.
642 642
 	 */
643
-	public static function add_item_filters( $post_type ) {
643
+	public static function add_item_filters($post_type) {
644 644
 
645 645
 		// Abort if we're not dealing with items.
646
-		if ( 'wpi_item' !== $post_type ) {
646
+		if ('wpi_item' !== $post_type) {
647 647
 			return;
648 648
 		}
649 649
 
650 650
 		// Filter by vat rules.
651
-		if ( wpinv_use_taxes() ) {
651
+		if (wpinv_use_taxes()) {
652 652
 
653 653
 			// Sanitize selected vat rule.
654 654
 			$vat_rule   = '';
655 655
 			$vat_rules  = getpaid_get_tax_rules();
656
-			if ( isset( $_GET['vat_rule'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
657
-				$vat_rule   = sanitize_text_field( $_GET['vat_rule'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
656
+			if (isset($_GET['vat_rule'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
657
+				$vat_rule = sanitize_text_field($_GET['vat_rule']); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
658 658
 			}
659 659
 
660 660
 			// Filter by VAT rule.
@@ -662,13 +662,13 @@  discard block
 block discarded – undo
662 662
 				array(
663 663
 					'options'          => array_merge(
664 664
 						array(
665
-							'' => __( 'All Tax Rules', 'invoicing' ),
665
+							'' => __('All Tax Rules', 'invoicing'),
666 666
 						),
667 667
 						$vat_rules
668 668
 					),
669 669
 					'name'             => 'vat_rule',
670 670
 					'id'               => 'vat_rule',
671
-					'selected'         => in_array( $vat_rule, array_keys( $vat_rules ), true ) ? $vat_rule : '',
671
+					'selected'         => in_array($vat_rule, array_keys($vat_rules), true) ? $vat_rule : '',
672 672
 					'show_option_all'  => false,
673 673
 					'show_option_none' => false,
674 674
 				)
@@ -679,21 +679,21 @@  discard block
 block discarded – undo
679 679
 			// Sanitize selected vat rule.
680 680
 			$vat_class   = '';
681 681
 			$vat_classes = getpaid_get_tax_classes();
682
-			if ( isset( $_GET['vat_class'] ) ) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
683
-				$vat_class   = sanitize_text_field( $_GET['vat_class'] );  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
682
+			if (isset($_GET['vat_class'])) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
683
+				$vat_class = sanitize_text_field($_GET['vat_class']); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
684 684
 			}
685 685
 
686 686
 			wpinv_html_select(
687 687
 				array(
688 688
 					'options'          => array_merge(
689 689
 						array(
690
-							'' => __( 'All Tax Classes', 'invoicing' ),
690
+							'' => __('All Tax Classes', 'invoicing'),
691 691
 						),
692 692
 						$vat_classes
693 693
 					),
694 694
 					'name'             => 'vat_class',
695 695
 					'id'               => 'vat_class',
696
-					'selected'         => in_array( $vat_class, array_keys( $vat_classes ), true ) ? $vat_class : '',
696
+					'selected'         => in_array($vat_class, array_keys($vat_classes), true) ? $vat_class : '',
697 697
 					'show_option_all'  => false,
698 698
 					'show_option_none' => false,
699 699
 				)
@@ -702,22 +702,22 @@  discard block
 block discarded – undo
702 702
 		}
703 703
 
704 704
 		// Filter by item type.
705
-		$type   = '';
706
-		if ( isset( $_GET['type'] ) ) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
707
-			$type   = sanitize_text_field( $_GET['type'] );  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
705
+		$type = '';
706
+		if (isset($_GET['type'])) {  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
707
+			$type = sanitize_text_field($_GET['type']); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
708 708
 		}
709 709
 
710 710
 		wpinv_html_select(
711 711
 			array(
712 712
 				'options'          => array_merge(
713 713
 					array(
714
-						'' => __( 'All item types', 'invoicing' ),
714
+						'' => __('All item types', 'invoicing'),
715 715
 					),
716 716
 					wpinv_get_item_types()
717 717
 				),
718 718
 				'name'             => 'type',
719 719
 				'id'               => 'type',
720
-				'selected'         => in_array( $type, wpinv_item_types(), true ) ? $type : '',
720
+				'selected'         => in_array($type, wpinv_item_types(), true) ? $type : '',
721 721
 				'show_option_all'  => false,
722 722
 				'show_option_none' => false,
723 723
 			)
@@ -728,45 +728,45 @@  discard block
 block discarded – undo
728 728
 	/**
729 729
 	 * Filters the item query.
730 730
 	 */
731
-	public static function filter_item_query( $query ) {
731
+	public static function filter_item_query($query) {
732 732
 
733 733
 		// modify the query only if it admin and main query.
734
-		if ( ! ( is_admin() && $query->is_main_query() ) ) {
734
+		if (!(is_admin() && $query->is_main_query())) {
735 735
 			return $query;
736 736
 		}
737 737
 
738 738
 		// we want to modify the query for our items.
739
-		if ( empty( $query->query['post_type'] ) || 'wpi_item' !== $query->query['post_type'] ) {
739
+		if (empty($query->query['post_type']) || 'wpi_item' !== $query->query['post_type']) {
740 740
 			return $query;
741 741
 		}
742 742
 
743
-		if ( empty( $query->query_vars['meta_query'] ) ) {
743
+		if (empty($query->query_vars['meta_query'])) {
744 744
 			$query->query_vars['meta_query'] = array();
745 745
 		}
746 746
 
747 747
 		// Filter vat rule type
748
-        if ( ! empty( $_GET['vat_rule'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
748
+        if (!empty($_GET['vat_rule'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
749 749
             $query->query_vars['meta_query'][] = array(
750 750
                 'key'     => '_wpinv_vat_rule',
751
-                'value'   => sanitize_text_field( $_GET['vat_rule'] ), // phpcs:ignore WordPress.Security.NonceVerification.Recommended
751
+                'value'   => sanitize_text_field($_GET['vat_rule']), // phpcs:ignore WordPress.Security.NonceVerification.Recommended
752 752
                 'compare' => '=',
753 753
             );
754 754
         }
755 755
 
756 756
         // Filter vat class
757
-        if ( ! empty( $_GET['vat_class'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
757
+        if (!empty($_GET['vat_class'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
758 758
             $query->query_vars['meta_query'][] = array(
759 759
                 'key'     => '_wpinv_vat_class',
760
-                'value'   => sanitize_text_field( $_GET['vat_class'] ), // phpcs:ignore WordPress.Security.NonceVerification.Recommended
760
+                'value'   => sanitize_text_field($_GET['vat_class']), // phpcs:ignore WordPress.Security.NonceVerification.Recommended
761 761
                 'compare' => '=',
762 762
             );
763 763
         }
764 764
 
765 765
         // Filter item type
766
-        if ( ! empty( $_GET['type'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
766
+        if (!empty($_GET['type'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
767 767
             $query->query_vars['meta_query'][] = array(
768 768
                 'key'     => '_wpinv_type',
769
-                'value'   => sanitize_text_field( $_GET['type'] ), // phpcs:ignore WordPress.Security.NonceVerification.Recommended
769
+                'value'   => sanitize_text_field($_GET['type']), // phpcs:ignore WordPress.Security.NonceVerification.Recommended
770 770
                 'compare' => '=',
771 771
             );
772 772
 		}
@@ -780,15 +780,15 @@  discard block
 block discarded – undo
780 780
 	/**
781 781
 	 * Reorders items.
782 782
 	 */
783
-	public static function reorder_items( $vars ) {
783
+	public static function reorder_items($vars) {
784 784
 		global $typenow;
785 785
 
786
-		if ( 'wpi_item' !== $typenow || empty( $vars['orderby'] ) ) {
786
+		if ('wpi_item' !== $typenow || empty($vars['orderby'])) {
787 787
 			return $vars;
788 788
 		}
789 789
 
790 790
 		// By item type.
791
-		if ( 'type' === $vars['orderby'] ) {
791
+		if ('type' === $vars['orderby']) {
792 792
 			return array_merge(
793 793
 				$vars,
794 794
 				array(
@@ -799,7 +799,7 @@  discard block
 block discarded – undo
799 799
 		}
800 800
 
801 801
 		// By vat class.
802
-		if ( 'vat_class' === $vars['orderby'] ) {
802
+		if ('vat_class' === $vars['orderby']) {
803 803
 			return array_merge(
804 804
 				$vars,
805 805
 				array(
@@ -810,7 +810,7 @@  discard block
 block discarded – undo
810 810
 		}
811 811
 
812 812
 		// By vat rule.
813
-		if ( 'vat_rule' === $vars['orderby'] ) {
813
+		if ('vat_rule' === $vars['orderby']) {
814 814
 			return array_merge(
815 815
 				$vars,
816 816
 				array(
@@ -821,7 +821,7 @@  discard block
 block discarded – undo
821 821
 		}
822 822
 
823 823
 		// By price.
824
-		if ( 'price' === $vars['orderby'] ) {
824
+		if ('price' === $vars['orderby']) {
825 825
 			return array_merge(
826 826
 				$vars,
827 827
 				array(
@@ -838,27 +838,27 @@  discard block
 block discarded – undo
838 838
 	/**
839 839
 	 * Fired when deleting a post.
840 840
 	 */
841
-	public static function delete_post( $post_id ) {
841
+	public static function delete_post($post_id) {
842 842
 
843
-		switch ( get_post_type( $post_id ) ) {
843
+		switch (get_post_type($post_id)) {
844 844
 
845 845
 			case 'wpi_item':
846
-				do_action( 'getpaid_before_delete_item', new WPInv_Item( $post_id ) );
846
+				do_action('getpaid_before_delete_item', new WPInv_Item($post_id));
847 847
 				break;
848 848
 
849 849
 			case 'wpi_payment_form':
850
-				do_action( 'getpaid_before_delete_payment_form', new GetPaid_Payment_Form( $post_id ) );
850
+				do_action('getpaid_before_delete_payment_form', new GetPaid_Payment_Form($post_id));
851 851
 				break;
852 852
 
853 853
 			case 'wpi_discount':
854
-				do_action( 'getpaid_before_delete_discount', new WPInv_Discount( $post_id ) );
854
+				do_action('getpaid_before_delete_discount', new WPInv_Discount($post_id));
855 855
 				break;
856 856
 
857 857
 			case 'wpi_invoice':
858
-				$invoice = new WPInv_Invoice( $post_id );
859
-				do_action( 'getpaid_before_delete_invoice', $invoice );
860
-				$invoice->get_data_store()->delete_items( $invoice );
861
-				$invoice->get_data_store()->delete_special_fields( $invoice );
858
+				$invoice = new WPInv_Invoice($post_id);
859
+				do_action('getpaid_before_delete_invoice', $invoice);
860
+				$invoice->get_data_store()->delete_items($invoice);
861
+				$invoice->get_data_store()->delete_special_fields($invoice);
862 862
 				break;
863 863
 		}
864 864
 	}
@@ -871,28 +871,28 @@  discard block
 block discarded – undo
871 871
      *
872 872
      * @return mixed
873 873
      */
874
-    public static function add_display_post_states( $post_states, $post ) {
874
+    public static function add_display_post_states($post_states, $post) {
875 875
 
876
-        if ( wpinv_get_option( 'success_page', 0 ) == $post->ID ) {
877
-            $post_states['getpaid_success_page'] = __( 'GetPaid Receipt Page', 'invoicing' );
876
+        if (wpinv_get_option('success_page', 0) == $post->ID) {
877
+            $post_states['getpaid_success_page'] = __('GetPaid Receipt Page', 'invoicing');
878 878
         }
879 879
 
880
-		foreach ( getpaid_get_invoice_post_types() as $post_type => $label ) {
880
+		foreach (getpaid_get_invoice_post_types() as $post_type => $label) {
881 881
 
882
-			if ( wpinv_get_option( "{$post_type}_history_page", 0 ) == $post->ID ) {
883
-				$post_states[ "getpaid_{$post_type}_history_page" ] = sprintf(
884
-					__( 'GetPaid %s History Page', 'invoicing' ),
882
+			if (wpinv_get_option("{$post_type}_history_page", 0) == $post->ID) {
883
+				$post_states["getpaid_{$post_type}_history_page"] = sprintf(
884
+					__('GetPaid %s History Page', 'invoicing'),
885 885
 					$label
886 886
 				);
887 887
 			}
888 888
 }
889 889
 
890
-		if ( wpinv_get_option( 'invoice_subscription_page', 0 ) == $post->ID ) {
891
-            $post_states['getpaid_invoice_subscription_page'] = __( 'GetPaid Subscription Page', 'invoicing' );
890
+		if (wpinv_get_option('invoice_subscription_page', 0) == $post->ID) {
891
+            $post_states['getpaid_invoice_subscription_page'] = __('GetPaid Subscription Page', 'invoicing');
892 892
         }
893 893
 
894
-		if ( wpinv_get_option( 'checkout_page', 0 ) == $post->ID ) {
895
-            $post_states['getpaid_checkout_page'] = __( 'GetPaid Checkout Page', 'invoicing' );
894
+		if (wpinv_get_option('checkout_page', 0) == $post->ID) {
895
+            $post_states['getpaid_checkout_page'] = __('GetPaid Checkout Page', 'invoicing');
896 896
         }
897 897
 
898 898
         return $post_states;
Please login to merge, or discard this patch.