@@ -13,464 +13,464 @@ discard block |
||
13 | 13 | */ |
14 | 14 | abstract class GetPaid_Payment_Gateway { |
15 | 15 | |
16 | - /** |
|
17 | - * Set if the place checkout button should be renamed on selection. |
|
18 | - * |
|
19 | - * @var string |
|
20 | - */ |
|
21 | - public $checkout_button_text; |
|
22 | - |
|
23 | - /** |
|
24 | - * Boolean whether the method is enabled. |
|
25 | - * |
|
26 | - * @var bool |
|
27 | - */ |
|
28 | - public $enabled = true; |
|
29 | - |
|
30 | - /** |
|
31 | - * Payment method id. |
|
32 | - * |
|
33 | - * @var string |
|
34 | - */ |
|
35 | - public $id; |
|
36 | - |
|
37 | - /** |
|
38 | - * Payment method order. |
|
39 | - * |
|
40 | - * @var int |
|
41 | - */ |
|
42 | - public $order = 10; |
|
43 | - |
|
44 | - /** |
|
45 | - * Payment method title for the frontend. |
|
46 | - * |
|
47 | - * @var string |
|
48 | - */ |
|
49 | - public $title; |
|
50 | - |
|
51 | - /** |
|
52 | - * Payment method description for the frontend. |
|
53 | - * |
|
54 | - * @var string |
|
55 | - */ |
|
56 | - public $description; |
|
57 | - |
|
58 | - /** |
|
59 | - * Gateway title. |
|
60 | - * |
|
61 | - * @var string |
|
62 | - */ |
|
63 | - public $method_title = ''; |
|
64 | - |
|
65 | - /** |
|
66 | - * Gateway description. |
|
67 | - * |
|
68 | - * @var string |
|
69 | - */ |
|
70 | - public $method_description = ''; |
|
71 | - |
|
72 | - /** |
|
73 | - * Countries this gateway is allowed for. |
|
74 | - * |
|
75 | - * @var array |
|
76 | - */ |
|
77 | - public $countries; |
|
78 | - |
|
79 | - /** |
|
80 | - * Currencies this gateway is allowed for. |
|
81 | - * |
|
82 | - * @var array |
|
83 | - */ |
|
84 | - public $currencies; |
|
85 | - |
|
86 | - /** |
|
87 | - * Currencies this gateway is not allowed for. |
|
88 | - * |
|
89 | - * @var array |
|
90 | - */ |
|
91 | - public $exclude_currencies; |
|
92 | - |
|
93 | - /** |
|
94 | - * Maximum transaction amount, zero does not define a maximum. |
|
95 | - * |
|
96 | - * @var int |
|
97 | - */ |
|
98 | - public $max_amount = 0; |
|
99 | - |
|
100 | - /** |
|
101 | - * Optional URL to view a transaction. |
|
102 | - * |
|
103 | - * @var string |
|
104 | - */ |
|
105 | - public $view_transaction_url = ''; |
|
106 | - |
|
107 | - /** |
|
108 | - * Optional URL to view a subscription. |
|
109 | - * |
|
110 | - * @var string |
|
111 | - */ |
|
112 | - public $view_subscription_url = ''; |
|
113 | - |
|
114 | - /** |
|
115 | - * Optional label to show for "new payment method" in the payment |
|
116 | - * method/token selection radio selection. |
|
117 | - * |
|
118 | - * @var string |
|
119 | - */ |
|
120 | - public $new_method_label = ''; |
|
121 | - |
|
122 | - /** |
|
123 | - * Contains a user's saved tokens for this gateway. |
|
124 | - * |
|
125 | - * @var array |
|
126 | - */ |
|
127 | - protected $tokens = array(); |
|
128 | - |
|
129 | - /** |
|
130 | - * An array of features that this gateway supports. |
|
131 | - * |
|
132 | - * @var array |
|
133 | - */ |
|
134 | - protected $supports = array(); |
|
135 | - |
|
136 | - /** |
|
137 | - * Class constructor. |
|
138 | - */ |
|
139 | - public function __construct() { |
|
140 | - |
|
141 | - // Register gateway. |
|
142 | - add_filter( 'wpinv_payment_gateways', array( $this, 'register_gateway' ) ); |
|
143 | - |
|
144 | - $this->enabled = wpinv_is_gateway_active( $this->id ); |
|
145 | - |
|
146 | - // Add support for various features. |
|
147 | - foreach ( $this->supports as $feature ) { |
|
148 | - add_filter( "wpinv_{$this->id}_support_{$feature}", '__return_true' ); |
|
149 | - add_filter( "getpaid_{$this->id}_support_{$feature}", '__return_true' ); |
|
150 | - add_filter( "getpaid_{$this->id}_supports_{$feature}", '__return_true' ); |
|
151 | - } |
|
152 | - |
|
153 | - // Invoice addons. |
|
154 | - if ( $this->supports( 'addons' ) ) { |
|
155 | - add_action( "getpaid_process_{$this->id}_invoice_addons", array( $this, 'process_addons' ), 10, 2 ); |
|
156 | - } |
|
157 | - |
|
158 | - // Gateway settings. |
|
159 | - add_filter( "wpinv_gateway_settings_{$this->id}", array( $this, 'admin_settings' ) ); |
|
16 | + /** |
|
17 | + * Set if the place checkout button should be renamed on selection. |
|
18 | + * |
|
19 | + * @var string |
|
20 | + */ |
|
21 | + public $checkout_button_text; |
|
22 | + |
|
23 | + /** |
|
24 | + * Boolean whether the method is enabled. |
|
25 | + * |
|
26 | + * @var bool |
|
27 | + */ |
|
28 | + public $enabled = true; |
|
29 | + |
|
30 | + /** |
|
31 | + * Payment method id. |
|
32 | + * |
|
33 | + * @var string |
|
34 | + */ |
|
35 | + public $id; |
|
36 | + |
|
37 | + /** |
|
38 | + * Payment method order. |
|
39 | + * |
|
40 | + * @var int |
|
41 | + */ |
|
42 | + public $order = 10; |
|
43 | + |
|
44 | + /** |
|
45 | + * Payment method title for the frontend. |
|
46 | + * |
|
47 | + * @var string |
|
48 | + */ |
|
49 | + public $title; |
|
50 | + |
|
51 | + /** |
|
52 | + * Payment method description for the frontend. |
|
53 | + * |
|
54 | + * @var string |
|
55 | + */ |
|
56 | + public $description; |
|
57 | + |
|
58 | + /** |
|
59 | + * Gateway title. |
|
60 | + * |
|
61 | + * @var string |
|
62 | + */ |
|
63 | + public $method_title = ''; |
|
64 | + |
|
65 | + /** |
|
66 | + * Gateway description. |
|
67 | + * |
|
68 | + * @var string |
|
69 | + */ |
|
70 | + public $method_description = ''; |
|
71 | + |
|
72 | + /** |
|
73 | + * Countries this gateway is allowed for. |
|
74 | + * |
|
75 | + * @var array |
|
76 | + */ |
|
77 | + public $countries; |
|
78 | + |
|
79 | + /** |
|
80 | + * Currencies this gateway is allowed for. |
|
81 | + * |
|
82 | + * @var array |
|
83 | + */ |
|
84 | + public $currencies; |
|
85 | + |
|
86 | + /** |
|
87 | + * Currencies this gateway is not allowed for. |
|
88 | + * |
|
89 | + * @var array |
|
90 | + */ |
|
91 | + public $exclude_currencies; |
|
92 | + |
|
93 | + /** |
|
94 | + * Maximum transaction amount, zero does not define a maximum. |
|
95 | + * |
|
96 | + * @var int |
|
97 | + */ |
|
98 | + public $max_amount = 0; |
|
99 | + |
|
100 | + /** |
|
101 | + * Optional URL to view a transaction. |
|
102 | + * |
|
103 | + * @var string |
|
104 | + */ |
|
105 | + public $view_transaction_url = ''; |
|
106 | + |
|
107 | + /** |
|
108 | + * Optional URL to view a subscription. |
|
109 | + * |
|
110 | + * @var string |
|
111 | + */ |
|
112 | + public $view_subscription_url = ''; |
|
113 | + |
|
114 | + /** |
|
115 | + * Optional label to show for "new payment method" in the payment |
|
116 | + * method/token selection radio selection. |
|
117 | + * |
|
118 | + * @var string |
|
119 | + */ |
|
120 | + public $new_method_label = ''; |
|
121 | + |
|
122 | + /** |
|
123 | + * Contains a user's saved tokens for this gateway. |
|
124 | + * |
|
125 | + * @var array |
|
126 | + */ |
|
127 | + protected $tokens = array(); |
|
128 | + |
|
129 | + /** |
|
130 | + * An array of features that this gateway supports. |
|
131 | + * |
|
132 | + * @var array |
|
133 | + */ |
|
134 | + protected $supports = array(); |
|
135 | + |
|
136 | + /** |
|
137 | + * Class constructor. |
|
138 | + */ |
|
139 | + public function __construct() { |
|
140 | + |
|
141 | + // Register gateway. |
|
142 | + add_filter( 'wpinv_payment_gateways', array( $this, 'register_gateway' ) ); |
|
143 | + |
|
144 | + $this->enabled = wpinv_is_gateway_active( $this->id ); |
|
145 | + |
|
146 | + // Add support for various features. |
|
147 | + foreach ( $this->supports as $feature ) { |
|
148 | + add_filter( "wpinv_{$this->id}_support_{$feature}", '__return_true' ); |
|
149 | + add_filter( "getpaid_{$this->id}_support_{$feature}", '__return_true' ); |
|
150 | + add_filter( "getpaid_{$this->id}_supports_{$feature}", '__return_true' ); |
|
151 | + } |
|
152 | + |
|
153 | + // Invoice addons. |
|
154 | + if ( $this->supports( 'addons' ) ) { |
|
155 | + add_action( "getpaid_process_{$this->id}_invoice_addons", array( $this, 'process_addons' ), 10, 2 ); |
|
156 | + } |
|
157 | + |
|
158 | + // Gateway settings. |
|
159 | + add_filter( "wpinv_gateway_settings_{$this->id}", array( $this, 'admin_settings' ) ); |
|
160 | 160 | |
161 | 161 | |
162 | - // Gateway checkout fiellds. |
|
163 | - add_action( "wpinv_{$this->id}_cc_form", array( $this, 'payment_fields' ), 10, 2 ); |
|
164 | - |
|
165 | - // Process payment. |
|
166 | - add_action( "getpaid_gateway_{$this->id}", array( $this, 'process_payment' ), 10, 3 ); |
|
167 | - |
|
168 | - // Change the checkout button text. |
|
169 | - if ( ! empty( $this->checkout_button_text ) ) { |
|
170 | - add_filter( "getpaid_gateway_{$this->id}_checkout_button_label", array( $this, 'rename_checkout_button' ) ); |
|
171 | - } |
|
172 | - |
|
173 | - // Check if a gateway is valid for a given currency. |
|
174 | - add_filter( "getpaid_gateway_{$this->id}_is_valid_for_currency", array( $this, 'validate_currency' ), 10, 2 ); |
|
175 | - |
|
176 | - // Generate the transaction url. |
|
177 | - add_filter( "getpaid_gateway_{$this->id}_transaction_url", array( $this, 'filter_transaction_url' ), 10, 2 ); |
|
178 | - |
|
179 | - // Generate the subscription url. |
|
180 | - add_filter( 'getpaid_remote_subscription_profile_url', array( $this, 'generate_subscription_url' ), 10, 2 ); |
|
181 | - |
|
182 | - // Confirm payments. |
|
183 | - add_filter( "wpinv_payment_confirm_{$this->id}", array( $this, 'confirm_payment' ), 10, 2 ); |
|
184 | - |
|
185 | - // Verify IPNs. |
|
186 | - add_action( "wpinv_verify_{$this->id}_ipn", array( $this, 'verify_ipn' ) ); |
|
187 | - |
|
188 | - } |
|
189 | - |
|
190 | - /** |
|
191 | - * Checks if this gateway is a given gateway. |
|
192 | - * |
|
193 | - * @since 1.0.19 |
|
194 | - * @return bool |
|
195 | - */ |
|
196 | - public function is( $gateway ) { |
|
197 | - return $gateway == $this->id; |
|
198 | - } |
|
199 | - |
|
200 | - /** |
|
201 | - * Returns a users saved tokens for this gateway. |
|
202 | - * |
|
203 | - * @since 1.0.19 |
|
204 | - * @return array |
|
205 | - */ |
|
206 | - public function get_tokens( $sandbox = null ) { |
|
207 | - |
|
208 | - if ( is_user_logged_in() && $this->supports( 'tokens' ) && 0 == count( $this->tokens ) ) { |
|
209 | - $tokens = get_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", true ); |
|
210 | - |
|
211 | - if ( is_array( $tokens ) ) { |
|
212 | - $this->tokens = $tokens; |
|
213 | - } |
|
214 | - |
|
215 | - } |
|
216 | - |
|
217 | - if ( ! is_bool( $sandbox ) ) { |
|
218 | - return $this->tokens; |
|
219 | - } |
|
220 | - |
|
221 | - // Filter tokens. |
|
222 | - $args = array( 'type' => $sandbox ? 'sandbox' : 'live' ); |
|
223 | - return wp_list_filter( $this->tokens, $args ); |
|
224 | - |
|
225 | - } |
|
226 | - |
|
227 | - /** |
|
228 | - * Saves a token for this gateway. |
|
229 | - * |
|
230 | - * @since 1.0.19 |
|
231 | - */ |
|
232 | - public function save_token( $token ) { |
|
233 | - |
|
234 | - $tokens = $this->get_tokens(); |
|
235 | - $tokens[] = $token; |
|
236 | - |
|
237 | - update_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", $tokens ); |
|
238 | - |
|
239 | - $this->tokens = $tokens; |
|
240 | - |
|
241 | - } |
|
242 | - |
|
243 | - /** |
|
244 | - * Return the title for admin screens. |
|
245 | - * |
|
246 | - * @return string |
|
247 | - */ |
|
248 | - public function get_method_title() { |
|
249 | - return apply_filters( 'getpaid_gateway_method_title', $this->method_title, $this ); |
|
250 | - } |
|
251 | - |
|
252 | - /** |
|
253 | - * Return the description for admin screens. |
|
254 | - * |
|
255 | - * @return string |
|
256 | - */ |
|
257 | - public function get_method_description() { |
|
258 | - return apply_filters( 'getpaid_gateway_method_description', $this->method_description, $this ); |
|
259 | - } |
|
260 | - |
|
261 | - /** |
|
262 | - * Get the success url. |
|
263 | - * |
|
264 | - * @param WPInv_Invoice $invoice Invoice object. |
|
265 | - * @return string |
|
266 | - */ |
|
267 | - public function get_return_url( $invoice ) { |
|
268 | - |
|
269 | - // Payment success url |
|
270 | - $return_url = add_query_arg( |
|
271 | - array( |
|
272 | - 'payment-confirm' => $this->id, |
|
273 | - 'invoice_key' => $invoice->get_key(), |
|
274 | - 'utm_nooverride' => 1 |
|
275 | - ), |
|
276 | - wpinv_get_success_page_uri() |
|
277 | - ); |
|
278 | - |
|
279 | - return apply_filters( 'getpaid_gateway_success_url', $return_url, $invoice, $this ); |
|
280 | - } |
|
281 | - |
|
282 | - /** |
|
283 | - * Confirms payments when rendering the success page. |
|
284 | - * |
|
285 | - * @param string $content Success page content. |
|
286 | - * @return string |
|
287 | - */ |
|
288 | - public function confirm_payment( $content ) { |
|
289 | - |
|
290 | - // Retrieve the invoice. |
|
291 | - $invoice_id = getpaid_get_current_invoice_id(); |
|
292 | - $invoice = wpinv_get_invoice( $invoice_id ); |
|
293 | - |
|
294 | - // Ensure that it exists and that it is pending payment. |
|
295 | - if ( empty( $invoice_id ) || ! $invoice->needs_payment() ) { |
|
296 | - return $content; |
|
297 | - } |
|
298 | - |
|
299 | - // Can the user view this invoice?? |
|
300 | - if ( ! wpinv_user_can_view_invoice( $invoice ) ) { |
|
301 | - return $content; |
|
302 | - } |
|
303 | - |
|
304 | - // Show payment processing indicator. |
|
305 | - return wpinv_get_template_html( 'wpinv-payment-processing.php', compact( 'invoice' ) ); |
|
306 | - } |
|
307 | - |
|
308 | - /** |
|
309 | - * Processes ipns and marks payments as complete. |
|
310 | - * |
|
311 | - * @return void |
|
312 | - */ |
|
313 | - public function verify_ipn() {} |
|
314 | - |
|
315 | - /** |
|
316 | - * Processes invoice addons. |
|
317 | - * |
|
318 | - * @param WPInv_Invoice $invoice |
|
319 | - * @param GetPaid_Form_Item[] $items |
|
320 | - * @return WPInv_Invoice |
|
321 | - */ |
|
322 | - public function process_addons( $invoice, $items ) { |
|
323 | - |
|
324 | - } |
|
325 | - |
|
326 | - /** |
|
327 | - * Get a link to the transaction on the 3rd party gateway site (if applicable). |
|
328 | - * |
|
329 | - * @param string $transaction_url transaction url. |
|
330 | - * @param WPInv_Invoice $invoice Invoice object. |
|
331 | - * @return string transaction URL, or empty string. |
|
332 | - */ |
|
333 | - public function filter_transaction_url( $transaction_url, $invoice ) { |
|
334 | - |
|
335 | - $transaction_id = $invoice->get_transaction_id(); |
|
336 | - |
|
337 | - if ( ! empty( $this->view_transaction_url ) && ! empty( $transaction_id ) ) { |
|
338 | - $transaction_url = sprintf( $this->view_transaction_url, $transaction_id ); |
|
339 | - $replace = $this->is_sandbox( $invoice ) ? 'sandbox' : ''; |
|
340 | - $transaction_url = str_replace( '{sandbox}', $replace, $transaction_url ); |
|
341 | - } |
|
342 | - |
|
343 | - return $transaction_url; |
|
344 | - } |
|
345 | - |
|
346 | - /** |
|
347 | - * Get a link to the subscription on the 3rd party gateway site (if applicable). |
|
348 | - * |
|
349 | - * @param string $subscription_url transaction url. |
|
350 | - * @param WPInv_Subscription $subscription Subscription objectt. |
|
351 | - * @return string subscription URL, or empty string. |
|
352 | - */ |
|
353 | - public function generate_subscription_url( $subscription_url, $subscription ) { |
|
354 | - |
|
355 | - $profile_id = $subscription->get_profile_id(); |
|
356 | - |
|
357 | - if ( $this->id == $subscription->get_gateway() && ! empty( $this->view_subscription_url ) && ! empty( $profile_id ) ) { |
|
358 | - |
|
359 | - $subscription_url = sprintf( $this->view_subscription_url, $profile_id ); |
|
360 | - $replace = $this->is_sandbox( $subscription->get_parent_invoice() ) ? 'sandbox' : ''; |
|
361 | - $subscription_url = str_replace( '{sandbox}', $replace, $subscription_url ); |
|
362 | - |
|
363 | - } |
|
364 | - |
|
365 | - return $subscription_url; |
|
366 | - } |
|
367 | - |
|
368 | - /** |
|
369 | - * Check if the gateway is available for use. |
|
370 | - * |
|
371 | - * @return bool |
|
372 | - */ |
|
373 | - public function is_available() { |
|
374 | - return ! empty( $this->enabled ); |
|
375 | - } |
|
376 | - |
|
377 | - /** |
|
378 | - * Return the gateway's title. |
|
379 | - * |
|
380 | - * @return string |
|
381 | - */ |
|
382 | - public function get_title() { |
|
383 | - return apply_filters( 'getpaid_gateway_title', $this->title, $this ); |
|
384 | - } |
|
385 | - |
|
386 | - /** |
|
387 | - * Return the gateway's description. |
|
388 | - * |
|
389 | - * @return string |
|
390 | - */ |
|
391 | - public function get_description() { |
|
392 | - return apply_filters( 'getpaid_gateway_description', $this->description, $this ); |
|
393 | - } |
|
394 | - |
|
395 | - /** |
|
396 | - * Process Payment. |
|
397 | - * |
|
398 | - * |
|
399 | - * @param WPInv_Invoice $invoice Invoice. |
|
400 | - * @param array $submission_data Posted checkout fields. |
|
401 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
402 | - * @return void |
|
403 | - */ |
|
404 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
405 | - // Process the payment then either redirect to the success page or the gateway. |
|
406 | - do_action( 'getpaid_process_invoice_payment_' . $this->id, $invoice, $submission_data, $submission ); |
|
407 | - } |
|
408 | - |
|
409 | - /** |
|
410 | - * Process refund. |
|
411 | - * |
|
412 | - * If the gateway declares 'refunds' support, this will allow it to refund. |
|
413 | - * a passed in amount. |
|
414 | - * |
|
415 | - * @param WPInv_Invoice $invoice Invoice. |
|
416 | - * @param float $amount Refund amount. |
|
417 | - * @param string $reason Refund reason. |
|
418 | - * @return WP_Error|bool True or false based on success, or a WP_Error object. |
|
419 | - */ |
|
420 | - public function process_refund( $invoice, $amount = null, $reason = '' ) { |
|
421 | - return apply_filters( 'getpaid_process_invoice_refund_' . $this->id, false, $invoice, $amount, $reason ); |
|
422 | - } |
|
423 | - |
|
424 | - /** |
|
425 | - * Displays the payment fields, credit cards etc. |
|
426 | - * |
|
427 | - * @param int $invoice_id 0 or invoice id. |
|
428 | - * @param GetPaid_Payment_Form $form Current payment form. |
|
429 | - */ |
|
430 | - public function payment_fields( $invoice_id, $form ) { |
|
431 | - do_action( 'getpaid_getpaid_gateway_payment_fields_' . $this->id, $invoice_id, $form ); |
|
432 | - } |
|
433 | - |
|
434 | - /** |
|
435 | - * Filters the gateway settings. |
|
436 | - * |
|
437 | - * @param array $admin_settings |
|
438 | - */ |
|
439 | - public function admin_settings( $admin_settings ) { |
|
440 | - return $admin_settings; |
|
441 | - } |
|
442 | - |
|
443 | - /** |
|
444 | - * Retrieves the value of a gateway setting. |
|
445 | - * |
|
446 | - * @param string $option |
|
447 | - */ |
|
448 | - public function get_option( $option, $default = false ) { |
|
449 | - return wpinv_get_option( $this->id . '_' . $option, $default ); |
|
450 | - } |
|
451 | - |
|
452 | - /** |
|
453 | - * Check if a gateway supports a given feature. |
|
454 | - * |
|
455 | - * Gateways should override this to declare support (or lack of support) for a feature. |
|
456 | - * For backward compatibility, gateways support 'products' by default, but nothing else. |
|
457 | - * |
|
458 | - * @param string $feature string The name of a feature to test support for. |
|
459 | - * @return bool True if the gateway supports the feature, false otherwise. |
|
460 | - * @since 1.0.19 |
|
461 | - */ |
|
462 | - public function supports( $feature ) { |
|
463 | - return getpaid_payment_gateway_supports( $this->id, $feature ); |
|
464 | - } |
|
465 | - |
|
466 | - /** |
|
467 | - * Returns the credit card form html. |
|
468 | - * |
|
469 | - * @param bool $save whether or not to display the save button. |
|
470 | - */ |
|
162 | + // Gateway checkout fiellds. |
|
163 | + add_action( "wpinv_{$this->id}_cc_form", array( $this, 'payment_fields' ), 10, 2 ); |
|
164 | + |
|
165 | + // Process payment. |
|
166 | + add_action( "getpaid_gateway_{$this->id}", array( $this, 'process_payment' ), 10, 3 ); |
|
167 | + |
|
168 | + // Change the checkout button text. |
|
169 | + if ( ! empty( $this->checkout_button_text ) ) { |
|
170 | + add_filter( "getpaid_gateway_{$this->id}_checkout_button_label", array( $this, 'rename_checkout_button' ) ); |
|
171 | + } |
|
172 | + |
|
173 | + // Check if a gateway is valid for a given currency. |
|
174 | + add_filter( "getpaid_gateway_{$this->id}_is_valid_for_currency", array( $this, 'validate_currency' ), 10, 2 ); |
|
175 | + |
|
176 | + // Generate the transaction url. |
|
177 | + add_filter( "getpaid_gateway_{$this->id}_transaction_url", array( $this, 'filter_transaction_url' ), 10, 2 ); |
|
178 | + |
|
179 | + // Generate the subscription url. |
|
180 | + add_filter( 'getpaid_remote_subscription_profile_url', array( $this, 'generate_subscription_url' ), 10, 2 ); |
|
181 | + |
|
182 | + // Confirm payments. |
|
183 | + add_filter( "wpinv_payment_confirm_{$this->id}", array( $this, 'confirm_payment' ), 10, 2 ); |
|
184 | + |
|
185 | + // Verify IPNs. |
|
186 | + add_action( "wpinv_verify_{$this->id}_ipn", array( $this, 'verify_ipn' ) ); |
|
187 | + |
|
188 | + } |
|
189 | + |
|
190 | + /** |
|
191 | + * Checks if this gateway is a given gateway. |
|
192 | + * |
|
193 | + * @since 1.0.19 |
|
194 | + * @return bool |
|
195 | + */ |
|
196 | + public function is( $gateway ) { |
|
197 | + return $gateway == $this->id; |
|
198 | + } |
|
199 | + |
|
200 | + /** |
|
201 | + * Returns a users saved tokens for this gateway. |
|
202 | + * |
|
203 | + * @since 1.0.19 |
|
204 | + * @return array |
|
205 | + */ |
|
206 | + public function get_tokens( $sandbox = null ) { |
|
207 | + |
|
208 | + if ( is_user_logged_in() && $this->supports( 'tokens' ) && 0 == count( $this->tokens ) ) { |
|
209 | + $tokens = get_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", true ); |
|
210 | + |
|
211 | + if ( is_array( $tokens ) ) { |
|
212 | + $this->tokens = $tokens; |
|
213 | + } |
|
214 | + |
|
215 | + } |
|
216 | + |
|
217 | + if ( ! is_bool( $sandbox ) ) { |
|
218 | + return $this->tokens; |
|
219 | + } |
|
220 | + |
|
221 | + // Filter tokens. |
|
222 | + $args = array( 'type' => $sandbox ? 'sandbox' : 'live' ); |
|
223 | + return wp_list_filter( $this->tokens, $args ); |
|
224 | + |
|
225 | + } |
|
226 | + |
|
227 | + /** |
|
228 | + * Saves a token for this gateway. |
|
229 | + * |
|
230 | + * @since 1.0.19 |
|
231 | + */ |
|
232 | + public function save_token( $token ) { |
|
233 | + |
|
234 | + $tokens = $this->get_tokens(); |
|
235 | + $tokens[] = $token; |
|
236 | + |
|
237 | + update_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", $tokens ); |
|
238 | + |
|
239 | + $this->tokens = $tokens; |
|
240 | + |
|
241 | + } |
|
242 | + |
|
243 | + /** |
|
244 | + * Return the title for admin screens. |
|
245 | + * |
|
246 | + * @return string |
|
247 | + */ |
|
248 | + public function get_method_title() { |
|
249 | + return apply_filters( 'getpaid_gateway_method_title', $this->method_title, $this ); |
|
250 | + } |
|
251 | + |
|
252 | + /** |
|
253 | + * Return the description for admin screens. |
|
254 | + * |
|
255 | + * @return string |
|
256 | + */ |
|
257 | + public function get_method_description() { |
|
258 | + return apply_filters( 'getpaid_gateway_method_description', $this->method_description, $this ); |
|
259 | + } |
|
260 | + |
|
261 | + /** |
|
262 | + * Get the success url. |
|
263 | + * |
|
264 | + * @param WPInv_Invoice $invoice Invoice object. |
|
265 | + * @return string |
|
266 | + */ |
|
267 | + public function get_return_url( $invoice ) { |
|
268 | + |
|
269 | + // Payment success url |
|
270 | + $return_url = add_query_arg( |
|
271 | + array( |
|
272 | + 'payment-confirm' => $this->id, |
|
273 | + 'invoice_key' => $invoice->get_key(), |
|
274 | + 'utm_nooverride' => 1 |
|
275 | + ), |
|
276 | + wpinv_get_success_page_uri() |
|
277 | + ); |
|
278 | + |
|
279 | + return apply_filters( 'getpaid_gateway_success_url', $return_url, $invoice, $this ); |
|
280 | + } |
|
281 | + |
|
282 | + /** |
|
283 | + * Confirms payments when rendering the success page. |
|
284 | + * |
|
285 | + * @param string $content Success page content. |
|
286 | + * @return string |
|
287 | + */ |
|
288 | + public function confirm_payment( $content ) { |
|
289 | + |
|
290 | + // Retrieve the invoice. |
|
291 | + $invoice_id = getpaid_get_current_invoice_id(); |
|
292 | + $invoice = wpinv_get_invoice( $invoice_id ); |
|
293 | + |
|
294 | + // Ensure that it exists and that it is pending payment. |
|
295 | + if ( empty( $invoice_id ) || ! $invoice->needs_payment() ) { |
|
296 | + return $content; |
|
297 | + } |
|
298 | + |
|
299 | + // Can the user view this invoice?? |
|
300 | + if ( ! wpinv_user_can_view_invoice( $invoice ) ) { |
|
301 | + return $content; |
|
302 | + } |
|
303 | + |
|
304 | + // Show payment processing indicator. |
|
305 | + return wpinv_get_template_html( 'wpinv-payment-processing.php', compact( 'invoice' ) ); |
|
306 | + } |
|
307 | + |
|
308 | + /** |
|
309 | + * Processes ipns and marks payments as complete. |
|
310 | + * |
|
311 | + * @return void |
|
312 | + */ |
|
313 | + public function verify_ipn() {} |
|
314 | + |
|
315 | + /** |
|
316 | + * Processes invoice addons. |
|
317 | + * |
|
318 | + * @param WPInv_Invoice $invoice |
|
319 | + * @param GetPaid_Form_Item[] $items |
|
320 | + * @return WPInv_Invoice |
|
321 | + */ |
|
322 | + public function process_addons( $invoice, $items ) { |
|
323 | + |
|
324 | + } |
|
325 | + |
|
326 | + /** |
|
327 | + * Get a link to the transaction on the 3rd party gateway site (if applicable). |
|
328 | + * |
|
329 | + * @param string $transaction_url transaction url. |
|
330 | + * @param WPInv_Invoice $invoice Invoice object. |
|
331 | + * @return string transaction URL, or empty string. |
|
332 | + */ |
|
333 | + public function filter_transaction_url( $transaction_url, $invoice ) { |
|
334 | + |
|
335 | + $transaction_id = $invoice->get_transaction_id(); |
|
336 | + |
|
337 | + if ( ! empty( $this->view_transaction_url ) && ! empty( $transaction_id ) ) { |
|
338 | + $transaction_url = sprintf( $this->view_transaction_url, $transaction_id ); |
|
339 | + $replace = $this->is_sandbox( $invoice ) ? 'sandbox' : ''; |
|
340 | + $transaction_url = str_replace( '{sandbox}', $replace, $transaction_url ); |
|
341 | + } |
|
342 | + |
|
343 | + return $transaction_url; |
|
344 | + } |
|
345 | + |
|
346 | + /** |
|
347 | + * Get a link to the subscription on the 3rd party gateway site (if applicable). |
|
348 | + * |
|
349 | + * @param string $subscription_url transaction url. |
|
350 | + * @param WPInv_Subscription $subscription Subscription objectt. |
|
351 | + * @return string subscription URL, or empty string. |
|
352 | + */ |
|
353 | + public function generate_subscription_url( $subscription_url, $subscription ) { |
|
354 | + |
|
355 | + $profile_id = $subscription->get_profile_id(); |
|
356 | + |
|
357 | + if ( $this->id == $subscription->get_gateway() && ! empty( $this->view_subscription_url ) && ! empty( $profile_id ) ) { |
|
358 | + |
|
359 | + $subscription_url = sprintf( $this->view_subscription_url, $profile_id ); |
|
360 | + $replace = $this->is_sandbox( $subscription->get_parent_invoice() ) ? 'sandbox' : ''; |
|
361 | + $subscription_url = str_replace( '{sandbox}', $replace, $subscription_url ); |
|
362 | + |
|
363 | + } |
|
364 | + |
|
365 | + return $subscription_url; |
|
366 | + } |
|
367 | + |
|
368 | + /** |
|
369 | + * Check if the gateway is available for use. |
|
370 | + * |
|
371 | + * @return bool |
|
372 | + */ |
|
373 | + public function is_available() { |
|
374 | + return ! empty( $this->enabled ); |
|
375 | + } |
|
376 | + |
|
377 | + /** |
|
378 | + * Return the gateway's title. |
|
379 | + * |
|
380 | + * @return string |
|
381 | + */ |
|
382 | + public function get_title() { |
|
383 | + return apply_filters( 'getpaid_gateway_title', $this->title, $this ); |
|
384 | + } |
|
385 | + |
|
386 | + /** |
|
387 | + * Return the gateway's description. |
|
388 | + * |
|
389 | + * @return string |
|
390 | + */ |
|
391 | + public function get_description() { |
|
392 | + return apply_filters( 'getpaid_gateway_description', $this->description, $this ); |
|
393 | + } |
|
394 | + |
|
395 | + /** |
|
396 | + * Process Payment. |
|
397 | + * |
|
398 | + * |
|
399 | + * @param WPInv_Invoice $invoice Invoice. |
|
400 | + * @param array $submission_data Posted checkout fields. |
|
401 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
402 | + * @return void |
|
403 | + */ |
|
404 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
405 | + // Process the payment then either redirect to the success page or the gateway. |
|
406 | + do_action( 'getpaid_process_invoice_payment_' . $this->id, $invoice, $submission_data, $submission ); |
|
407 | + } |
|
408 | + |
|
409 | + /** |
|
410 | + * Process refund. |
|
411 | + * |
|
412 | + * If the gateway declares 'refunds' support, this will allow it to refund. |
|
413 | + * a passed in amount. |
|
414 | + * |
|
415 | + * @param WPInv_Invoice $invoice Invoice. |
|
416 | + * @param float $amount Refund amount. |
|
417 | + * @param string $reason Refund reason. |
|
418 | + * @return WP_Error|bool True or false based on success, or a WP_Error object. |
|
419 | + */ |
|
420 | + public function process_refund( $invoice, $amount = null, $reason = '' ) { |
|
421 | + return apply_filters( 'getpaid_process_invoice_refund_' . $this->id, false, $invoice, $amount, $reason ); |
|
422 | + } |
|
423 | + |
|
424 | + /** |
|
425 | + * Displays the payment fields, credit cards etc. |
|
426 | + * |
|
427 | + * @param int $invoice_id 0 or invoice id. |
|
428 | + * @param GetPaid_Payment_Form $form Current payment form. |
|
429 | + */ |
|
430 | + public function payment_fields( $invoice_id, $form ) { |
|
431 | + do_action( 'getpaid_getpaid_gateway_payment_fields_' . $this->id, $invoice_id, $form ); |
|
432 | + } |
|
433 | + |
|
434 | + /** |
|
435 | + * Filters the gateway settings. |
|
436 | + * |
|
437 | + * @param array $admin_settings |
|
438 | + */ |
|
439 | + public function admin_settings( $admin_settings ) { |
|
440 | + return $admin_settings; |
|
441 | + } |
|
442 | + |
|
443 | + /** |
|
444 | + * Retrieves the value of a gateway setting. |
|
445 | + * |
|
446 | + * @param string $option |
|
447 | + */ |
|
448 | + public function get_option( $option, $default = false ) { |
|
449 | + return wpinv_get_option( $this->id . '_' . $option, $default ); |
|
450 | + } |
|
451 | + |
|
452 | + /** |
|
453 | + * Check if a gateway supports a given feature. |
|
454 | + * |
|
455 | + * Gateways should override this to declare support (or lack of support) for a feature. |
|
456 | + * For backward compatibility, gateways support 'products' by default, but nothing else. |
|
457 | + * |
|
458 | + * @param string $feature string The name of a feature to test support for. |
|
459 | + * @return bool True if the gateway supports the feature, false otherwise. |
|
460 | + * @since 1.0.19 |
|
461 | + */ |
|
462 | + public function supports( $feature ) { |
|
463 | + return getpaid_payment_gateway_supports( $this->id, $feature ); |
|
464 | + } |
|
465 | + |
|
466 | + /** |
|
467 | + * Returns the credit card form html. |
|
468 | + * |
|
469 | + * @param bool $save whether or not to display the save button. |
|
470 | + */ |
|
471 | 471 | public function get_cc_form( $save = false ) { |
472 | 472 | |
473 | - ob_start(); |
|
473 | + ob_start(); |
|
474 | 474 | |
475 | 475 | $id_prefix = esc_attr( uniqid( $this->id ) ); |
476 | 476 | |
@@ -565,11 +565,11 @@ discard block |
||
565 | 565 | 'name' => $this->id . '[cc_cvv2]', |
566 | 566 | 'id' => "$id_prefix-cc-cvv2", |
567 | 567 | 'label' => __( 'CCV', 'invoicing' ), |
568 | - 'label_type' => 'vertical', |
|
569 | - 'class' => 'form-control-sm', |
|
570 | - 'extra_attributes' => array( |
|
571 | - 'autocomplete' => "cc-csc", |
|
572 | - ), |
|
568 | + 'label_type' => 'vertical', |
|
569 | + 'class' => 'form-control-sm', |
|
570 | + 'extra_attributes' => array( |
|
571 | + 'autocomplete' => "cc-csc", |
|
572 | + ), |
|
573 | 573 | ) |
574 | 574 | ); |
575 | 575 | ?> |
@@ -579,192 +579,192 @@ discard block |
||
579 | 579 | |
580 | 580 | <?php |
581 | 581 | |
582 | - if ( $save ) { |
|
583 | - echo $this->save_payment_method_checkbox(); |
|
584 | - } |
|
582 | + if ( $save ) { |
|
583 | + echo $this->save_payment_method_checkbox(); |
|
584 | + } |
|
585 | 585 | |
586 | - ?> |
|
586 | + ?> |
|
587 | 587 | </div> |
588 | 588 | |
589 | 589 | </div> |
590 | 590 | <?php |
591 | 591 | |
592 | - return ob_get_clean(); |
|
592 | + return ob_get_clean(); |
|
593 | + |
|
594 | + } |
|
593 | 595 | |
596 | + /** |
|
597 | + * Displays a new payment method entry form. |
|
598 | + * |
|
599 | + * @since 1.0.19 |
|
600 | + */ |
|
601 | + public function new_payment_method_entry( $form ) { |
|
602 | + echo "<div class='getpaid-new-payment-method-form' style='display:none;'>$form</div>"; |
|
594 | 603 | } |
595 | 604 | |
596 | - /** |
|
597 | - * Displays a new payment method entry form. |
|
598 | - * |
|
599 | - * @since 1.0.19 |
|
600 | - */ |
|
601 | - public function new_payment_method_entry( $form ) { |
|
602 | - echo "<div class='getpaid-new-payment-method-form' style='display:none;'>$form</div>"; |
|
603 | - } |
|
604 | - |
|
605 | - /** |
|
606 | - * Grab and display our saved payment methods. |
|
607 | - * |
|
608 | - * @since 1.0.19 |
|
609 | - */ |
|
610 | - public function saved_payment_methods() { |
|
611 | - $html = '<ul class="getpaid-saved-payment-methods list-unstyled m-0 mt-2" data-count="' . esc_attr( count( $this->get_tokens( $this->is_sandbox() ) ) ) . '">'; |
|
612 | - |
|
613 | - foreach ( $this->get_tokens( $this->is_sandbox() ) as $token ) { |
|
614 | - $html .= $this->get_saved_payment_method_option_html( $token ); |
|
615 | - } |
|
616 | - |
|
617 | - $html .= $this->get_new_payment_method_option_html(); |
|
618 | - $html .= '</ul>'; |
|
619 | - |
|
620 | - echo apply_filters( 'getpaid_payment_gateway_form_saved_payment_methods_html', $html, $this ); |
|
621 | - } |
|
622 | - |
|
623 | - /** |
|
624 | - * Gets saved payment method HTML from a token. |
|
625 | - * |
|
626 | - * @since 1.0.19 |
|
627 | - * @param array $token Payment Token. |
|
628 | - * @return string Generated payment method HTML |
|
629 | - */ |
|
630 | - public function get_saved_payment_method_option_html( $token ) { |
|
631 | - |
|
632 | - return sprintf( |
|
633 | - '<li class="getpaid-payment-method form-group"> |
|
605 | + /** |
|
606 | + * Grab and display our saved payment methods. |
|
607 | + * |
|
608 | + * @since 1.0.19 |
|
609 | + */ |
|
610 | + public function saved_payment_methods() { |
|
611 | + $html = '<ul class="getpaid-saved-payment-methods list-unstyled m-0 mt-2" data-count="' . esc_attr( count( $this->get_tokens( $this->is_sandbox() ) ) ) . '">'; |
|
612 | + |
|
613 | + foreach ( $this->get_tokens( $this->is_sandbox() ) as $token ) { |
|
614 | + $html .= $this->get_saved_payment_method_option_html( $token ); |
|
615 | + } |
|
616 | + |
|
617 | + $html .= $this->get_new_payment_method_option_html(); |
|
618 | + $html .= '</ul>'; |
|
619 | + |
|
620 | + echo apply_filters( 'getpaid_payment_gateway_form_saved_payment_methods_html', $html, $this ); |
|
621 | + } |
|
622 | + |
|
623 | + /** |
|
624 | + * Gets saved payment method HTML from a token. |
|
625 | + * |
|
626 | + * @since 1.0.19 |
|
627 | + * @param array $token Payment Token. |
|
628 | + * @return string Generated payment method HTML |
|
629 | + */ |
|
630 | + public function get_saved_payment_method_option_html( $token ) { |
|
631 | + |
|
632 | + return sprintf( |
|
633 | + '<li class="getpaid-payment-method form-group"> |
|
634 | 634 | <label> |
635 | 635 | <input name="getpaid-%1$s-payment-method" type="radio" value="%2$s" data-currency="%5$s" style="width:auto;" class="getpaid-saved-payment-method-token-input" %4$s /> |
636 | 636 | <span>%3$s</span> |
637 | 637 | </label> |
638 | 638 | </li>', |
639 | - esc_attr( $this->id ), |
|
640 | - esc_attr( $token['id'] ), |
|
641 | - esc_html( $token['name'] ), |
|
642 | - checked( empty( $token['default'] ), false, false ), |
|
643 | - empty( $token['currency'] ) ? 'none' : esc_attr( $token['currency'] ) |
|
644 | - ); |
|
645 | - |
|
646 | - } |
|
647 | - |
|
648 | - /** |
|
649 | - * Displays a radio button for entering a new payment method (new CC details) instead of using a saved method. |
|
650 | - * |
|
651 | - * @since 1.0.19 |
|
652 | - */ |
|
653 | - public function get_new_payment_method_option_html() { |
|
654 | - |
|
655 | - $label = apply_filters( 'getpaid_new_payment_method_label', $this->new_method_label ? $this->new_method_label : __( 'Use a new payment method', 'invoicing' ), $this ); |
|
656 | - |
|
657 | - return sprintf( |
|
658 | - '<li class="getpaid-new-payment-method"> |
|
639 | + esc_attr( $this->id ), |
|
640 | + esc_attr( $token['id'] ), |
|
641 | + esc_html( $token['name'] ), |
|
642 | + checked( empty( $token['default'] ), false, false ), |
|
643 | + empty( $token['currency'] ) ? 'none' : esc_attr( $token['currency'] ) |
|
644 | + ); |
|
645 | + |
|
646 | + } |
|
647 | + |
|
648 | + /** |
|
649 | + * Displays a radio button for entering a new payment method (new CC details) instead of using a saved method. |
|
650 | + * |
|
651 | + * @since 1.0.19 |
|
652 | + */ |
|
653 | + public function get_new_payment_method_option_html() { |
|
654 | + |
|
655 | + $label = apply_filters( 'getpaid_new_payment_method_label', $this->new_method_label ? $this->new_method_label : __( 'Use a new payment method', 'invoicing' ), $this ); |
|
656 | + |
|
657 | + return sprintf( |
|
658 | + '<li class="getpaid-new-payment-method"> |
|
659 | 659 | <label> |
660 | 660 | <input name="getpaid-%1$s-payment-method" type="radio" data-currency="none" value="new" style="width:auto;" /> |
661 | 661 | <span>%2$s</span> |
662 | 662 | </label> |
663 | 663 | </li>', |
664 | - esc_attr( $this->id ), |
|
665 | - esc_html( $label ) |
|
666 | - ); |
|
667 | - |
|
668 | - } |
|
669 | - |
|
670 | - /** |
|
671 | - * Outputs a checkbox for saving a new payment method to the database. |
|
672 | - * |
|
673 | - * @since 1.0.19 |
|
674 | - */ |
|
675 | - public function save_payment_method_checkbox() { |
|
676 | - |
|
677 | - return aui()->input( |
|
678 | - array( |
|
679 | - 'type' => 'checkbox', |
|
680 | - 'name' => esc_attr( "getpaid-$this->id-new-payment-method" ), |
|
681 | - 'id' => esc_attr( uniqid( $this->id ) ), |
|
682 | - 'required' => false, |
|
683 | - 'label' => esc_html__( 'Save payment method', 'invoicing' ), |
|
684 | - 'value' => 'true', |
|
685 | - 'checked' => true, |
|
686 | - 'wrap_class' => 'getpaid-save-payment-method pt-1 pb-1', |
|
687 | - ) |
|
688 | - ); |
|
689 | - |
|
690 | - } |
|
691 | - |
|
692 | - /** |
|
693 | - * Registers the gateway. |
|
694 | - * |
|
695 | - * @return array |
|
696 | - */ |
|
697 | - public function register_gateway( $gateways ) { |
|
698 | - |
|
699 | - $gateways[ $this->id ] = array( |
|
700 | - |
|
701 | - 'admin_label' => $this->method_title, |
|
664 | + esc_attr( $this->id ), |
|
665 | + esc_html( $label ) |
|
666 | + ); |
|
667 | + |
|
668 | + } |
|
669 | + |
|
670 | + /** |
|
671 | + * Outputs a checkbox for saving a new payment method to the database. |
|
672 | + * |
|
673 | + * @since 1.0.19 |
|
674 | + */ |
|
675 | + public function save_payment_method_checkbox() { |
|
676 | + |
|
677 | + return aui()->input( |
|
678 | + array( |
|
679 | + 'type' => 'checkbox', |
|
680 | + 'name' => esc_attr( "getpaid-$this->id-new-payment-method" ), |
|
681 | + 'id' => esc_attr( uniqid( $this->id ) ), |
|
682 | + 'required' => false, |
|
683 | + 'label' => esc_html__( 'Save payment method', 'invoicing' ), |
|
684 | + 'value' => 'true', |
|
685 | + 'checked' => true, |
|
686 | + 'wrap_class' => 'getpaid-save-payment-method pt-1 pb-1', |
|
687 | + ) |
|
688 | + ); |
|
689 | + |
|
690 | + } |
|
691 | + |
|
692 | + /** |
|
693 | + * Registers the gateway. |
|
694 | + * |
|
695 | + * @return array |
|
696 | + */ |
|
697 | + public function register_gateway( $gateways ) { |
|
698 | + |
|
699 | + $gateways[ $this->id ] = array( |
|
700 | + |
|
701 | + 'admin_label' => $this->method_title, |
|
702 | 702 | 'checkout_label' => $this->title, |
703 | - 'ordering' => $this->order, |
|
703 | + 'ordering' => $this->order, |
|
704 | 704 | |
705 | - ); |
|
705 | + ); |
|
706 | 706 | |
707 | - return $gateways; |
|
707 | + return $gateways; |
|
708 | 708 | |
709 | - } |
|
709 | + } |
|
710 | 710 | |
711 | - /** |
|
712 | - * Checks whether or not this is a sandbox request. |
|
713 | - * |
|
714 | - * @param WPInv_Invoice|null $invoice Invoice object or null. |
|
715 | - * @return bool |
|
716 | - */ |
|
717 | - public function is_sandbox( $invoice = null ) { |
|
711 | + /** |
|
712 | + * Checks whether or not this is a sandbox request. |
|
713 | + * |
|
714 | + * @param WPInv_Invoice|null $invoice Invoice object or null. |
|
715 | + * @return bool |
|
716 | + */ |
|
717 | + public function is_sandbox( $invoice = null ) { |
|
718 | 718 | |
719 | - if ( ! empty( $invoice ) && ! $invoice->needs_payment() ) { |
|
720 | - return $invoice->get_mode() == 'test'; |
|
721 | - } |
|
719 | + if ( ! empty( $invoice ) && ! $invoice->needs_payment() ) { |
|
720 | + return $invoice->get_mode() == 'test'; |
|
721 | + } |
|
722 | 722 | |
723 | - return wpinv_is_test_mode( $this->id ); |
|
723 | + return wpinv_is_test_mode( $this->id ); |
|
724 | 724 | |
725 | - } |
|
725 | + } |
|
726 | 726 | |
727 | - /** |
|
728 | - * Renames the checkout button |
|
729 | - * |
|
730 | - * @return string |
|
731 | - */ |
|
732 | - public function rename_checkout_button() { |
|
733 | - return $this->checkout_button_text; |
|
734 | - } |
|
727 | + /** |
|
728 | + * Renames the checkout button |
|
729 | + * |
|
730 | + * @return string |
|
731 | + */ |
|
732 | + public function rename_checkout_button() { |
|
733 | + return $this->checkout_button_text; |
|
734 | + } |
|
735 | 735 | |
736 | - /** |
|
737 | - * Validate gateway currency |
|
738 | - * |
|
739 | - * @return bool |
|
740 | - */ |
|
741 | - public function validate_currency( $validation, $currency ) { |
|
736 | + /** |
|
737 | + * Validate gateway currency |
|
738 | + * |
|
739 | + * @return bool |
|
740 | + */ |
|
741 | + public function validate_currency( $validation, $currency ) { |
|
742 | 742 | |
743 | - // Required currencies. |
|
744 | - if ( ! empty( $this->currencies ) && ! in_array( $currency, $this->currencies ) ) { |
|
745 | - return false; |
|
746 | - } |
|
743 | + // Required currencies. |
|
744 | + if ( ! empty( $this->currencies ) && ! in_array( $currency, $this->currencies ) ) { |
|
745 | + return false; |
|
746 | + } |
|
747 | 747 | |
748 | - // Excluded currencies. |
|
749 | - if ( ! empty( $this->exclude_currencies ) && in_array( $currency, $this->exclude_currencies ) ) { |
|
750 | - return false; |
|
751 | - } |
|
748 | + // Excluded currencies. |
|
749 | + if ( ! empty( $this->exclude_currencies ) && in_array( $currency, $this->exclude_currencies ) ) { |
|
750 | + return false; |
|
751 | + } |
|
752 | 752 | |
753 | - return $validation; |
|
754 | - } |
|
753 | + return $validation; |
|
754 | + } |
|
755 | 755 | |
756 | - /** |
|
757 | - * Displays an error |
|
758 | - * |
|
759 | - */ |
|
760 | - public function show_error( $code, $message, $type ) { |
|
756 | + /** |
|
757 | + * Displays an error |
|
758 | + * |
|
759 | + */ |
|
760 | + public function show_error( $code, $message, $type ) { |
|
761 | 761 | |
762 | - if ( is_admin() ) { |
|
763 | - getpaid_admin()->{"show_$type"}( $message ); |
|
764 | - } |
|
762 | + if ( is_admin() ) { |
|
763 | + getpaid_admin()->{"show_$type"}( $message ); |
|
764 | + } |
|
765 | 765 | |
766 | - wpinv_set_error( $code, $message, $type ); |
|
766 | + wpinv_set_error( $code, $message, $type ); |
|
767 | 767 | |
768 | - } |
|
768 | + } |
|
769 | 769 | |
770 | 770 | } |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | |
7 | -defined( 'ABSPATH' ) || exit; |
|
7 | +defined('ABSPATH') || exit; |
|
8 | 8 | |
9 | 9 | /** |
10 | 10 | * Abstaract Payment Gateway class. |
@@ -139,51 +139,51 @@ discard block |
||
139 | 139 | public function __construct() { |
140 | 140 | |
141 | 141 | // Register gateway. |
142 | - add_filter( 'wpinv_payment_gateways', array( $this, 'register_gateway' ) ); |
|
142 | + add_filter('wpinv_payment_gateways', array($this, 'register_gateway')); |
|
143 | 143 | |
144 | - $this->enabled = wpinv_is_gateway_active( $this->id ); |
|
144 | + $this->enabled = wpinv_is_gateway_active($this->id); |
|
145 | 145 | |
146 | 146 | // Add support for various features. |
147 | - foreach ( $this->supports as $feature ) { |
|
148 | - add_filter( "wpinv_{$this->id}_support_{$feature}", '__return_true' ); |
|
149 | - add_filter( "getpaid_{$this->id}_support_{$feature}", '__return_true' ); |
|
150 | - add_filter( "getpaid_{$this->id}_supports_{$feature}", '__return_true' ); |
|
147 | + foreach ($this->supports as $feature) { |
|
148 | + add_filter("wpinv_{$this->id}_support_{$feature}", '__return_true'); |
|
149 | + add_filter("getpaid_{$this->id}_support_{$feature}", '__return_true'); |
|
150 | + add_filter("getpaid_{$this->id}_supports_{$feature}", '__return_true'); |
|
151 | 151 | } |
152 | 152 | |
153 | 153 | // Invoice addons. |
154 | - if ( $this->supports( 'addons' ) ) { |
|
155 | - add_action( "getpaid_process_{$this->id}_invoice_addons", array( $this, 'process_addons' ), 10, 2 ); |
|
154 | + if ($this->supports('addons')) { |
|
155 | + add_action("getpaid_process_{$this->id}_invoice_addons", array($this, 'process_addons'), 10, 2); |
|
156 | 156 | } |
157 | 157 | |
158 | 158 | // Gateway settings. |
159 | - add_filter( "wpinv_gateway_settings_{$this->id}", array( $this, 'admin_settings' ) ); |
|
159 | + add_filter("wpinv_gateway_settings_{$this->id}", array($this, 'admin_settings')); |
|
160 | 160 | |
161 | 161 | |
162 | 162 | // Gateway checkout fiellds. |
163 | - add_action( "wpinv_{$this->id}_cc_form", array( $this, 'payment_fields' ), 10, 2 ); |
|
163 | + add_action("wpinv_{$this->id}_cc_form", array($this, 'payment_fields'), 10, 2); |
|
164 | 164 | |
165 | 165 | // Process payment. |
166 | - add_action( "getpaid_gateway_{$this->id}", array( $this, 'process_payment' ), 10, 3 ); |
|
166 | + add_action("getpaid_gateway_{$this->id}", array($this, 'process_payment'), 10, 3); |
|
167 | 167 | |
168 | 168 | // Change the checkout button text. |
169 | - if ( ! empty( $this->checkout_button_text ) ) { |
|
170 | - add_filter( "getpaid_gateway_{$this->id}_checkout_button_label", array( $this, 'rename_checkout_button' ) ); |
|
169 | + if (!empty($this->checkout_button_text)) { |
|
170 | + add_filter("getpaid_gateway_{$this->id}_checkout_button_label", array($this, 'rename_checkout_button')); |
|
171 | 171 | } |
172 | 172 | |
173 | 173 | // Check if a gateway is valid for a given currency. |
174 | - add_filter( "getpaid_gateway_{$this->id}_is_valid_for_currency", array( $this, 'validate_currency' ), 10, 2 ); |
|
174 | + add_filter("getpaid_gateway_{$this->id}_is_valid_for_currency", array($this, 'validate_currency'), 10, 2); |
|
175 | 175 | |
176 | 176 | // Generate the transaction url. |
177 | - add_filter( "getpaid_gateway_{$this->id}_transaction_url", array( $this, 'filter_transaction_url' ), 10, 2 ); |
|
177 | + add_filter("getpaid_gateway_{$this->id}_transaction_url", array($this, 'filter_transaction_url'), 10, 2); |
|
178 | 178 | |
179 | 179 | // Generate the subscription url. |
180 | - add_filter( 'getpaid_remote_subscription_profile_url', array( $this, 'generate_subscription_url' ), 10, 2 ); |
|
180 | + add_filter('getpaid_remote_subscription_profile_url', array($this, 'generate_subscription_url'), 10, 2); |
|
181 | 181 | |
182 | 182 | // Confirm payments. |
183 | - add_filter( "wpinv_payment_confirm_{$this->id}", array( $this, 'confirm_payment' ), 10, 2 ); |
|
183 | + add_filter("wpinv_payment_confirm_{$this->id}", array($this, 'confirm_payment'), 10, 2); |
|
184 | 184 | |
185 | 185 | // Verify IPNs. |
186 | - add_action( "wpinv_verify_{$this->id}_ipn", array( $this, 'verify_ipn' ) ); |
|
186 | + add_action("wpinv_verify_{$this->id}_ipn", array($this, 'verify_ipn')); |
|
187 | 187 | |
188 | 188 | } |
189 | 189 | |
@@ -193,7 +193,7 @@ discard block |
||
193 | 193 | * @since 1.0.19 |
194 | 194 | * @return bool |
195 | 195 | */ |
196 | - public function is( $gateway ) { |
|
196 | + public function is($gateway) { |
|
197 | 197 | return $gateway == $this->id; |
198 | 198 | } |
199 | 199 | |
@@ -203,24 +203,24 @@ discard block |
||
203 | 203 | * @since 1.0.19 |
204 | 204 | * @return array |
205 | 205 | */ |
206 | - public function get_tokens( $sandbox = null ) { |
|
206 | + public function get_tokens($sandbox = null) { |
|
207 | 207 | |
208 | - if ( is_user_logged_in() && $this->supports( 'tokens' ) && 0 == count( $this->tokens ) ) { |
|
209 | - $tokens = get_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", true ); |
|
208 | + if (is_user_logged_in() && $this->supports('tokens') && 0 == count($this->tokens)) { |
|
209 | + $tokens = get_user_meta(get_current_user_id(), "getpaid_{$this->id}_tokens", true); |
|
210 | 210 | |
211 | - if ( is_array( $tokens ) ) { |
|
211 | + if (is_array($tokens)) { |
|
212 | 212 | $this->tokens = $tokens; |
213 | 213 | } |
214 | 214 | |
215 | 215 | } |
216 | 216 | |
217 | - if ( ! is_bool( $sandbox ) ) { |
|
217 | + if (!is_bool($sandbox)) { |
|
218 | 218 | return $this->tokens; |
219 | 219 | } |
220 | 220 | |
221 | 221 | // Filter tokens. |
222 | - $args = array( 'type' => $sandbox ? 'sandbox' : 'live' ); |
|
223 | - return wp_list_filter( $this->tokens, $args ); |
|
222 | + $args = array('type' => $sandbox ? 'sandbox' : 'live'); |
|
223 | + return wp_list_filter($this->tokens, $args); |
|
224 | 224 | |
225 | 225 | } |
226 | 226 | |
@@ -229,12 +229,12 @@ discard block |
||
229 | 229 | * |
230 | 230 | * @since 1.0.19 |
231 | 231 | */ |
232 | - public function save_token( $token ) { |
|
232 | + public function save_token($token) { |
|
233 | 233 | |
234 | 234 | $tokens = $this->get_tokens(); |
235 | 235 | $tokens[] = $token; |
236 | 236 | |
237 | - update_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", $tokens ); |
|
237 | + update_user_meta(get_current_user_id(), "getpaid_{$this->id}_tokens", $tokens); |
|
238 | 238 | |
239 | 239 | $this->tokens = $tokens; |
240 | 240 | |
@@ -246,7 +246,7 @@ discard block |
||
246 | 246 | * @return string |
247 | 247 | */ |
248 | 248 | public function get_method_title() { |
249 | - return apply_filters( 'getpaid_gateway_method_title', $this->method_title, $this ); |
|
249 | + return apply_filters('getpaid_gateway_method_title', $this->method_title, $this); |
|
250 | 250 | } |
251 | 251 | |
252 | 252 | /** |
@@ -255,7 +255,7 @@ discard block |
||
255 | 255 | * @return string |
256 | 256 | */ |
257 | 257 | public function get_method_description() { |
258 | - return apply_filters( 'getpaid_gateway_method_description', $this->method_description, $this ); |
|
258 | + return apply_filters('getpaid_gateway_method_description', $this->method_description, $this); |
|
259 | 259 | } |
260 | 260 | |
261 | 261 | /** |
@@ -264,7 +264,7 @@ discard block |
||
264 | 264 | * @param WPInv_Invoice $invoice Invoice object. |
265 | 265 | * @return string |
266 | 266 | */ |
267 | - public function get_return_url( $invoice ) { |
|
267 | + public function get_return_url($invoice) { |
|
268 | 268 | |
269 | 269 | // Payment success url |
270 | 270 | $return_url = add_query_arg( |
@@ -276,7 +276,7 @@ discard block |
||
276 | 276 | wpinv_get_success_page_uri() |
277 | 277 | ); |
278 | 278 | |
279 | - return apply_filters( 'getpaid_gateway_success_url', $return_url, $invoice, $this ); |
|
279 | + return apply_filters('getpaid_gateway_success_url', $return_url, $invoice, $this); |
|
280 | 280 | } |
281 | 281 | |
282 | 282 | /** |
@@ -285,24 +285,24 @@ discard block |
||
285 | 285 | * @param string $content Success page content. |
286 | 286 | * @return string |
287 | 287 | */ |
288 | - public function confirm_payment( $content ) { |
|
288 | + public function confirm_payment($content) { |
|
289 | 289 | |
290 | 290 | // Retrieve the invoice. |
291 | 291 | $invoice_id = getpaid_get_current_invoice_id(); |
292 | - $invoice = wpinv_get_invoice( $invoice_id ); |
|
292 | + $invoice = wpinv_get_invoice($invoice_id); |
|
293 | 293 | |
294 | 294 | // Ensure that it exists and that it is pending payment. |
295 | - if ( empty( $invoice_id ) || ! $invoice->needs_payment() ) { |
|
295 | + if (empty($invoice_id) || !$invoice->needs_payment()) { |
|
296 | 296 | return $content; |
297 | 297 | } |
298 | 298 | |
299 | 299 | // Can the user view this invoice?? |
300 | - if ( ! wpinv_user_can_view_invoice( $invoice ) ) { |
|
300 | + if (!wpinv_user_can_view_invoice($invoice)) { |
|
301 | 301 | return $content; |
302 | 302 | } |
303 | 303 | |
304 | 304 | // Show payment processing indicator. |
305 | - return wpinv_get_template_html( 'wpinv-payment-processing.php', compact( 'invoice' ) ); |
|
305 | + return wpinv_get_template_html('wpinv-payment-processing.php', compact('invoice')); |
|
306 | 306 | } |
307 | 307 | |
308 | 308 | /** |
@@ -319,7 +319,7 @@ discard block |
||
319 | 319 | * @param GetPaid_Form_Item[] $items |
320 | 320 | * @return WPInv_Invoice |
321 | 321 | */ |
322 | - public function process_addons( $invoice, $items ) { |
|
322 | + public function process_addons($invoice, $items) { |
|
323 | 323 | |
324 | 324 | } |
325 | 325 | |
@@ -330,14 +330,14 @@ discard block |
||
330 | 330 | * @param WPInv_Invoice $invoice Invoice object. |
331 | 331 | * @return string transaction URL, or empty string. |
332 | 332 | */ |
333 | - public function filter_transaction_url( $transaction_url, $invoice ) { |
|
333 | + public function filter_transaction_url($transaction_url, $invoice) { |
|
334 | 334 | |
335 | - $transaction_id = $invoice->get_transaction_id(); |
|
335 | + $transaction_id = $invoice->get_transaction_id(); |
|
336 | 336 | |
337 | - if ( ! empty( $this->view_transaction_url ) && ! empty( $transaction_id ) ) { |
|
338 | - $transaction_url = sprintf( $this->view_transaction_url, $transaction_id ); |
|
339 | - $replace = $this->is_sandbox( $invoice ) ? 'sandbox' : ''; |
|
340 | - $transaction_url = str_replace( '{sandbox}', $replace, $transaction_url ); |
|
337 | + if (!empty($this->view_transaction_url) && !empty($transaction_id)) { |
|
338 | + $transaction_url = sprintf($this->view_transaction_url, $transaction_id); |
|
339 | + $replace = $this->is_sandbox($invoice) ? 'sandbox' : ''; |
|
340 | + $transaction_url = str_replace('{sandbox}', $replace, $transaction_url); |
|
341 | 341 | } |
342 | 342 | |
343 | 343 | return $transaction_url; |
@@ -350,15 +350,15 @@ discard block |
||
350 | 350 | * @param WPInv_Subscription $subscription Subscription objectt. |
351 | 351 | * @return string subscription URL, or empty string. |
352 | 352 | */ |
353 | - public function generate_subscription_url( $subscription_url, $subscription ) { |
|
353 | + public function generate_subscription_url($subscription_url, $subscription) { |
|
354 | 354 | |
355 | - $profile_id = $subscription->get_profile_id(); |
|
355 | + $profile_id = $subscription->get_profile_id(); |
|
356 | 356 | |
357 | - if ( $this->id == $subscription->get_gateway() && ! empty( $this->view_subscription_url ) && ! empty( $profile_id ) ) { |
|
357 | + if ($this->id == $subscription->get_gateway() && !empty($this->view_subscription_url) && !empty($profile_id)) { |
|
358 | 358 | |
359 | - $subscription_url = sprintf( $this->view_subscription_url, $profile_id ); |
|
360 | - $replace = $this->is_sandbox( $subscription->get_parent_invoice() ) ? 'sandbox' : ''; |
|
361 | - $subscription_url = str_replace( '{sandbox}', $replace, $subscription_url ); |
|
359 | + $subscription_url = sprintf($this->view_subscription_url, $profile_id); |
|
360 | + $replace = $this->is_sandbox($subscription->get_parent_invoice()) ? 'sandbox' : ''; |
|
361 | + $subscription_url = str_replace('{sandbox}', $replace, $subscription_url); |
|
362 | 362 | |
363 | 363 | } |
364 | 364 | |
@@ -371,7 +371,7 @@ discard block |
||
371 | 371 | * @return bool |
372 | 372 | */ |
373 | 373 | public function is_available() { |
374 | - return ! empty( $this->enabled ); |
|
374 | + return !empty($this->enabled); |
|
375 | 375 | } |
376 | 376 | |
377 | 377 | /** |
@@ -380,7 +380,7 @@ discard block |
||
380 | 380 | * @return string |
381 | 381 | */ |
382 | 382 | public function get_title() { |
383 | - return apply_filters( 'getpaid_gateway_title', $this->title, $this ); |
|
383 | + return apply_filters('getpaid_gateway_title', $this->title, $this); |
|
384 | 384 | } |
385 | 385 | |
386 | 386 | /** |
@@ -389,7 +389,7 @@ discard block |
||
389 | 389 | * @return string |
390 | 390 | */ |
391 | 391 | public function get_description() { |
392 | - return apply_filters( 'getpaid_gateway_description', $this->description, $this ); |
|
392 | + return apply_filters('getpaid_gateway_description', $this->description, $this); |
|
393 | 393 | } |
394 | 394 | |
395 | 395 | /** |
@@ -401,9 +401,9 @@ discard block |
||
401 | 401 | * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
402 | 402 | * @return void |
403 | 403 | */ |
404 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
404 | + public function process_payment($invoice, $submission_data, $submission) { |
|
405 | 405 | // Process the payment then either redirect to the success page or the gateway. |
406 | - do_action( 'getpaid_process_invoice_payment_' . $this->id, $invoice, $submission_data, $submission ); |
|
406 | + do_action('getpaid_process_invoice_payment_' . $this->id, $invoice, $submission_data, $submission); |
|
407 | 407 | } |
408 | 408 | |
409 | 409 | /** |
@@ -417,8 +417,8 @@ discard block |
||
417 | 417 | * @param string $reason Refund reason. |
418 | 418 | * @return WP_Error|bool True or false based on success, or a WP_Error object. |
419 | 419 | */ |
420 | - public function process_refund( $invoice, $amount = null, $reason = '' ) { |
|
421 | - return apply_filters( 'getpaid_process_invoice_refund_' . $this->id, false, $invoice, $amount, $reason ); |
|
420 | + public function process_refund($invoice, $amount = null, $reason = '') { |
|
421 | + return apply_filters('getpaid_process_invoice_refund_' . $this->id, false, $invoice, $amount, $reason); |
|
422 | 422 | } |
423 | 423 | |
424 | 424 | /** |
@@ -427,8 +427,8 @@ discard block |
||
427 | 427 | * @param int $invoice_id 0 or invoice id. |
428 | 428 | * @param GetPaid_Payment_Form $form Current payment form. |
429 | 429 | */ |
430 | - public function payment_fields( $invoice_id, $form ) { |
|
431 | - do_action( 'getpaid_getpaid_gateway_payment_fields_' . $this->id, $invoice_id, $form ); |
|
430 | + public function payment_fields($invoice_id, $form) { |
|
431 | + do_action('getpaid_getpaid_gateway_payment_fields_' . $this->id, $invoice_id, $form); |
|
432 | 432 | } |
433 | 433 | |
434 | 434 | /** |
@@ -436,7 +436,7 @@ discard block |
||
436 | 436 | * |
437 | 437 | * @param array $admin_settings |
438 | 438 | */ |
439 | - public function admin_settings( $admin_settings ) { |
|
439 | + public function admin_settings($admin_settings) { |
|
440 | 440 | return $admin_settings; |
441 | 441 | } |
442 | 442 | |
@@ -445,8 +445,8 @@ discard block |
||
445 | 445 | * |
446 | 446 | * @param string $option |
447 | 447 | */ |
448 | - public function get_option( $option, $default = false ) { |
|
449 | - return wpinv_get_option( $this->id . '_' . $option, $default ); |
|
448 | + public function get_option($option, $default = false) { |
|
449 | + return wpinv_get_option($this->id . '_' . $option, $default); |
|
450 | 450 | } |
451 | 451 | |
452 | 452 | /** |
@@ -459,8 +459,8 @@ discard block |
||
459 | 459 | * @return bool True if the gateway supports the feature, false otherwise. |
460 | 460 | * @since 1.0.19 |
461 | 461 | */ |
462 | - public function supports( $feature ) { |
|
463 | - return getpaid_payment_gateway_supports( $this->id, $feature ); |
|
462 | + public function supports($feature) { |
|
463 | + return getpaid_payment_gateway_supports($this->id, $feature); |
|
464 | 464 | } |
465 | 465 | |
466 | 466 | /** |
@@ -468,36 +468,36 @@ discard block |
||
468 | 468 | * |
469 | 469 | * @param bool $save whether or not to display the save button. |
470 | 470 | */ |
471 | - public function get_cc_form( $save = false ) { |
|
471 | + public function get_cc_form($save = false) { |
|
472 | 472 | |
473 | 473 | ob_start(); |
474 | 474 | |
475 | - $id_prefix = esc_attr( uniqid( $this->id ) ); |
|
475 | + $id_prefix = esc_attr(uniqid($this->id)); |
|
476 | 476 | |
477 | 477 | $months = array( |
478 | - '01' => __( 'January', 'invoicing' ), |
|
479 | - '02' => __( 'February', 'invoicing' ), |
|
480 | - '03' => __( 'March', 'invoicing' ), |
|
481 | - '04' => __( 'April', 'invoicing' ), |
|
482 | - '05' => __( 'May', 'invoicing' ), |
|
483 | - '06' => __( 'June', 'invoicing' ), |
|
484 | - '07' => __( 'July', 'invoicing' ), |
|
485 | - '08' => __( 'August', 'invoicing' ), |
|
486 | - '09' => __( 'September', 'invoicing' ), |
|
487 | - '10' => __( 'October', 'invoicing' ), |
|
488 | - '11' => __( 'November', 'invoicing' ), |
|
489 | - '12' => __( 'December', 'invoicing' ), |
|
478 | + '01' => __('January', 'invoicing'), |
|
479 | + '02' => __('February', 'invoicing'), |
|
480 | + '03' => __('March', 'invoicing'), |
|
481 | + '04' => __('April', 'invoicing'), |
|
482 | + '05' => __('May', 'invoicing'), |
|
483 | + '06' => __('June', 'invoicing'), |
|
484 | + '07' => __('July', 'invoicing'), |
|
485 | + '08' => __('August', 'invoicing'), |
|
486 | + '09' => __('September', 'invoicing'), |
|
487 | + '10' => __('October', 'invoicing'), |
|
488 | + '11' => __('November', 'invoicing'), |
|
489 | + '12' => __('December', 'invoicing'), |
|
490 | 490 | ); |
491 | 491 | |
492 | - $year = (int) date( 'Y', current_time( 'timestamp' ) ); |
|
492 | + $year = (int) date('Y', current_time('timestamp')); |
|
493 | 493 | $years = array(); |
494 | 494 | |
495 | - for ( $i = 0; $i <= 10; $i++ ) { |
|
496 | - $years[ $year + $i ] = $year + $i; |
|
495 | + for ($i = 0; $i <= 10; $i++) { |
|
496 | + $years[$year + $i] = $year + $i; |
|
497 | 497 | } |
498 | 498 | |
499 | 499 | ?> |
500 | - <div class="<?php echo esc_attr( $this->id );?>-cc-form getpaid-cc-form mt-1"> |
|
500 | + <div class="<?php echo esc_attr($this->id); ?>-cc-form getpaid-cc-form mt-1"> |
|
501 | 501 | |
502 | 502 | |
503 | 503 | <div class="getpaid-cc-card-inner"> |
@@ -506,14 +506,14 @@ discard block |
||
506 | 506 | <div class="col-12"> |
507 | 507 | |
508 | 508 | <div class="form-group"> |
509 | - <label for="<?php echo esc_attr( "$id_prefix-cc-number" ) ?>"><?php _e( 'Card number', 'invoicing' ); ?></label> |
|
509 | + <label for="<?php echo esc_attr("$id_prefix-cc-number") ?>"><?php _e('Card number', 'invoicing'); ?></label> |
|
510 | 510 | <div class="input-group input-group-sm"> |
511 | 511 | <div class="input-group-prepend "> |
512 | 512 | <span class="input-group-text"> |
513 | 513 | <i class="fa fa-credit-card"></i> |
514 | 514 | </span> |
515 | 515 | </div> |
516 | - <input type="text" name="<?php echo esc_attr( $this->id . '[cc_number]' ) ?>" id="<?php echo esc_attr( "$id_prefix-cc-number" ) ?>" class="form-control form-control-sm" autocomplete="cc-number"> |
|
516 | + <input type="text" name="<?php echo esc_attr($this->id . '[cc_number]') ?>" id="<?php echo esc_attr("$id_prefix-cc-number") ?>" class="form-control form-control-sm" autocomplete="cc-number"> |
|
517 | 517 | </div> |
518 | 518 | </div> |
519 | 519 | |
@@ -521,17 +521,17 @@ discard block |
||
521 | 521 | |
522 | 522 | <div class="col-12"> |
523 | 523 | <div class="form-group"> |
524 | - <label><?php _e( 'Expiration', 'invoicing' ); ?></label> |
|
524 | + <label><?php _e('Expiration', 'invoicing'); ?></label> |
|
525 | 525 | <div class="form-row"> |
526 | 526 | |
527 | 527 | <div class="col"> |
528 | - <select class="form-control form-control-sm" autocomplete="cc-exp-month" name="<?php echo esc_attr( $this->id );?>[cc_expire_month]"> |
|
529 | - <option disabled selected="selected"><?php _e( 'MM', 'invoicing' ); ?></option> |
|
528 | + <select class="form-control form-control-sm" autocomplete="cc-exp-month" name="<?php echo esc_attr($this->id); ?>[cc_expire_month]"> |
|
529 | + <option disabled selected="selected"><?php _e('MM', 'invoicing'); ?></option> |
|
530 | 530 | |
531 | 531 | <?php |
532 | - foreach ( $months as $key => $month ) { |
|
533 | - $key = esc_attr( $key ); |
|
534 | - $month = esc_html( $month ); |
|
532 | + foreach ($months as $key => $month) { |
|
533 | + $key = esc_attr($key); |
|
534 | + $month = esc_html($month); |
|
535 | 535 | echo "<option value='$key'>$month</option>" . PHP_EOL; |
536 | 536 | } |
537 | 537 | ?> |
@@ -540,13 +540,13 @@ discard block |
||
540 | 540 | </div> |
541 | 541 | |
542 | 542 | <div class="col"> |
543 | - <select class="form-control form-control-sm" autocomplete="cc-exp-year" name="<?php echo esc_attr( $this->id );?>[cc_expire_year]"> |
|
544 | - <option disabled selected="selected"><?php _e( 'YY', 'invoicing' ); ?></option> |
|
543 | + <select class="form-control form-control-sm" autocomplete="cc-exp-year" name="<?php echo esc_attr($this->id); ?>[cc_expire_year]"> |
|
544 | + <option disabled selected="selected"><?php _e('YY', 'invoicing'); ?></option> |
|
545 | 545 | |
546 | 546 | <?php |
547 | - foreach ( $years as $key => $year ) { |
|
548 | - $key = esc_attr( $key ); |
|
549 | - $year = esc_html( $year ); |
|
547 | + foreach ($years as $key => $year) { |
|
548 | + $key = esc_attr($key); |
|
549 | + $year = esc_html($year); |
|
550 | 550 | echo "<option value='$key'>$year</option>" . PHP_EOL; |
551 | 551 | } |
552 | 552 | ?> |
@@ -564,7 +564,7 @@ discard block |
||
564 | 564 | array( |
565 | 565 | 'name' => $this->id . '[cc_cvv2]', |
566 | 566 | 'id' => "$id_prefix-cc-cvv2", |
567 | - 'label' => __( 'CCV', 'invoicing' ), |
|
567 | + 'label' => __('CCV', 'invoicing'), |
|
568 | 568 | 'label_type' => 'vertical', |
569 | 569 | 'class' => 'form-control-sm', |
570 | 570 | 'extra_attributes' => array( |
@@ -579,7 +579,7 @@ discard block |
||
579 | 579 | |
580 | 580 | <?php |
581 | 581 | |
582 | - if ( $save ) { |
|
582 | + if ($save) { |
|
583 | 583 | echo $this->save_payment_method_checkbox(); |
584 | 584 | } |
585 | 585 | |
@@ -598,7 +598,7 @@ discard block |
||
598 | 598 | * |
599 | 599 | * @since 1.0.19 |
600 | 600 | */ |
601 | - public function new_payment_method_entry( $form ) { |
|
601 | + public function new_payment_method_entry($form) { |
|
602 | 602 | echo "<div class='getpaid-new-payment-method-form' style='display:none;'>$form</div>"; |
603 | 603 | } |
604 | 604 | |
@@ -608,16 +608,16 @@ discard block |
||
608 | 608 | * @since 1.0.19 |
609 | 609 | */ |
610 | 610 | public function saved_payment_methods() { |
611 | - $html = '<ul class="getpaid-saved-payment-methods list-unstyled m-0 mt-2" data-count="' . esc_attr( count( $this->get_tokens( $this->is_sandbox() ) ) ) . '">'; |
|
611 | + $html = '<ul class="getpaid-saved-payment-methods list-unstyled m-0 mt-2" data-count="' . esc_attr(count($this->get_tokens($this->is_sandbox()))) . '">'; |
|
612 | 612 | |
613 | - foreach ( $this->get_tokens( $this->is_sandbox() ) as $token ) { |
|
614 | - $html .= $this->get_saved_payment_method_option_html( $token ); |
|
613 | + foreach ($this->get_tokens($this->is_sandbox()) as $token) { |
|
614 | + $html .= $this->get_saved_payment_method_option_html($token); |
|
615 | 615 | } |
616 | 616 | |
617 | 617 | $html .= $this->get_new_payment_method_option_html(); |
618 | 618 | $html .= '</ul>'; |
619 | 619 | |
620 | - echo apply_filters( 'getpaid_payment_gateway_form_saved_payment_methods_html', $html, $this ); |
|
620 | + echo apply_filters('getpaid_payment_gateway_form_saved_payment_methods_html', $html, $this); |
|
621 | 621 | } |
622 | 622 | |
623 | 623 | /** |
@@ -627,7 +627,7 @@ discard block |
||
627 | 627 | * @param array $token Payment Token. |
628 | 628 | * @return string Generated payment method HTML |
629 | 629 | */ |
630 | - public function get_saved_payment_method_option_html( $token ) { |
|
630 | + public function get_saved_payment_method_option_html($token) { |
|
631 | 631 | |
632 | 632 | return sprintf( |
633 | 633 | '<li class="getpaid-payment-method form-group"> |
@@ -636,11 +636,11 @@ discard block |
||
636 | 636 | <span>%3$s</span> |
637 | 637 | </label> |
638 | 638 | </li>', |
639 | - esc_attr( $this->id ), |
|
640 | - esc_attr( $token['id'] ), |
|
641 | - esc_html( $token['name'] ), |
|
642 | - checked( empty( $token['default'] ), false, false ), |
|
643 | - empty( $token['currency'] ) ? 'none' : esc_attr( $token['currency'] ) |
|
639 | + esc_attr($this->id), |
|
640 | + esc_attr($token['id']), |
|
641 | + esc_html($token['name']), |
|
642 | + checked(empty($token['default']), false, false), |
|
643 | + empty($token['currency']) ? 'none' : esc_attr($token['currency']) |
|
644 | 644 | ); |
645 | 645 | |
646 | 646 | } |
@@ -652,7 +652,7 @@ discard block |
||
652 | 652 | */ |
653 | 653 | public function get_new_payment_method_option_html() { |
654 | 654 | |
655 | - $label = apply_filters( 'getpaid_new_payment_method_label', $this->new_method_label ? $this->new_method_label : __( 'Use a new payment method', 'invoicing' ), $this ); |
|
655 | + $label = apply_filters('getpaid_new_payment_method_label', $this->new_method_label ? $this->new_method_label : __('Use a new payment method', 'invoicing'), $this); |
|
656 | 656 | |
657 | 657 | return sprintf( |
658 | 658 | '<li class="getpaid-new-payment-method"> |
@@ -661,8 +661,8 @@ discard block |
||
661 | 661 | <span>%2$s</span> |
662 | 662 | </label> |
663 | 663 | </li>', |
664 | - esc_attr( $this->id ), |
|
665 | - esc_html( $label ) |
|
664 | + esc_attr($this->id), |
|
665 | + esc_html($label) |
|
666 | 666 | ); |
667 | 667 | |
668 | 668 | } |
@@ -677,10 +677,10 @@ discard block |
||
677 | 677 | return aui()->input( |
678 | 678 | array( |
679 | 679 | 'type' => 'checkbox', |
680 | - 'name' => esc_attr( "getpaid-$this->id-new-payment-method" ), |
|
681 | - 'id' => esc_attr( uniqid( $this->id ) ), |
|
680 | + 'name' => esc_attr("getpaid-$this->id-new-payment-method"), |
|
681 | + 'id' => esc_attr(uniqid($this->id)), |
|
682 | 682 | 'required' => false, |
683 | - 'label' => esc_html__( 'Save payment method', 'invoicing' ), |
|
683 | + 'label' => esc_html__('Save payment method', 'invoicing'), |
|
684 | 684 | 'value' => 'true', |
685 | 685 | 'checked' => true, |
686 | 686 | 'wrap_class' => 'getpaid-save-payment-method pt-1 pb-1', |
@@ -694,9 +694,9 @@ discard block |
||
694 | 694 | * |
695 | 695 | * @return array |
696 | 696 | */ |
697 | - public function register_gateway( $gateways ) { |
|
697 | + public function register_gateway($gateways) { |
|
698 | 698 | |
699 | - $gateways[ $this->id ] = array( |
|
699 | + $gateways[$this->id] = array( |
|
700 | 700 | |
701 | 701 | 'admin_label' => $this->method_title, |
702 | 702 | 'checkout_label' => $this->title, |
@@ -714,13 +714,13 @@ discard block |
||
714 | 714 | * @param WPInv_Invoice|null $invoice Invoice object or null. |
715 | 715 | * @return bool |
716 | 716 | */ |
717 | - public function is_sandbox( $invoice = null ) { |
|
717 | + public function is_sandbox($invoice = null) { |
|
718 | 718 | |
719 | - if ( ! empty( $invoice ) && ! $invoice->needs_payment() ) { |
|
719 | + if (!empty($invoice) && !$invoice->needs_payment()) { |
|
720 | 720 | return $invoice->get_mode() == 'test'; |
721 | 721 | } |
722 | 722 | |
723 | - return wpinv_is_test_mode( $this->id ); |
|
723 | + return wpinv_is_test_mode($this->id); |
|
724 | 724 | |
725 | 725 | } |
726 | 726 | |
@@ -738,15 +738,15 @@ discard block |
||
738 | 738 | * |
739 | 739 | * @return bool |
740 | 740 | */ |
741 | - public function validate_currency( $validation, $currency ) { |
|
741 | + public function validate_currency($validation, $currency) { |
|
742 | 742 | |
743 | 743 | // Required currencies. |
744 | - if ( ! empty( $this->currencies ) && ! in_array( $currency, $this->currencies ) ) { |
|
744 | + if (!empty($this->currencies) && !in_array($currency, $this->currencies)) { |
|
745 | 745 | return false; |
746 | 746 | } |
747 | 747 | |
748 | 748 | // Excluded currencies. |
749 | - if ( ! empty( $this->exclude_currencies ) && in_array( $currency, $this->exclude_currencies ) ) { |
|
749 | + if (!empty($this->exclude_currencies) && in_array($currency, $this->exclude_currencies)) { |
|
750 | 750 | return false; |
751 | 751 | } |
752 | 752 | |
@@ -757,13 +757,13 @@ discard block |
||
757 | 757 | * Displays an error |
758 | 758 | * |
759 | 759 | */ |
760 | - public function show_error( $code, $message, $type ) { |
|
760 | + public function show_error($code, $message, $type) { |
|
761 | 761 | |
762 | - if ( is_admin() ) { |
|
763 | - getpaid_admin()->{"show_$type"}( $message ); |
|
762 | + if (is_admin()) { |
|
763 | + getpaid_admin()->{"show_$type"}($message); |
|
764 | 764 | } |
765 | 765 | |
766 | - wpinv_set_error( $code, $message, $type ); |
|
766 | + wpinv_set_error($code, $message, $type); |
|
767 | 767 | |
768 | 768 | } |
769 | 769 |
@@ -13,58 +13,58 @@ discard block |
||
13 | 13 | class GetPaid_Authorize_Net_Gateway extends GetPaid_Authorize_Net_Legacy_Gateway { |
14 | 14 | |
15 | 15 | /** |
16 | - * Payment method id. |
|
17 | - * |
|
18 | - * @var string |
|
19 | - */ |
|
16 | + * Payment method id. |
|
17 | + * |
|
18 | + * @var string |
|
19 | + */ |
|
20 | 20 | public $id = 'authorizenet'; |
21 | 21 | |
22 | 22 | /** |
23 | - * An array of features that this gateway supports. |
|
24 | - * |
|
25 | - * @var array |
|
26 | - */ |
|
23 | + * An array of features that this gateway supports. |
|
24 | + * |
|
25 | + * @var array |
|
26 | + */ |
|
27 | 27 | protected $supports = array( 'subscription', 'sandbox', 'tokens', 'addons', 'single_subscription_group', 'multiple_subscription_groups' ); |
28 | 28 | |
29 | 29 | /** |
30 | - * Payment method order. |
|
31 | - * |
|
32 | - * @var int |
|
33 | - */ |
|
30 | + * Payment method order. |
|
31 | + * |
|
32 | + * @var int |
|
33 | + */ |
|
34 | 34 | public $order = 4; |
35 | 35 | |
36 | 36 | /** |
37 | - * Endpoint for requests from Authorize.net. |
|
38 | - * |
|
39 | - * @var string |
|
40 | - */ |
|
41 | - protected $notify_url; |
|
42 | - |
|
43 | - /** |
|
44 | - * Endpoint for requests to Authorize.net. |
|
45 | - * |
|
46 | - * @var string |
|
47 | - */ |
|
37 | + * Endpoint for requests from Authorize.net. |
|
38 | + * |
|
39 | + * @var string |
|
40 | + */ |
|
41 | + protected $notify_url; |
|
42 | + |
|
43 | + /** |
|
44 | + * Endpoint for requests to Authorize.net. |
|
45 | + * |
|
46 | + * @var string |
|
47 | + */ |
|
48 | 48 | protected $endpoint; |
49 | 49 | |
50 | 50 | /** |
51 | - * Currencies this gateway is allowed for. |
|
52 | - * |
|
53 | - * @var array |
|
54 | - */ |
|
55 | - public $currencies = array( 'USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD' ); |
|
51 | + * Currencies this gateway is allowed for. |
|
52 | + * |
|
53 | + * @var array |
|
54 | + */ |
|
55 | + public $currencies = array( 'USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD' ); |
|
56 | 56 | |
57 | 57 | /** |
58 | - * URL to view a transaction. |
|
59 | - * |
|
60 | - * @var string |
|
61 | - */ |
|
58 | + * URL to view a transaction. |
|
59 | + * |
|
60 | + * @var string |
|
61 | + */ |
|
62 | 62 | public $view_transaction_url = 'https://{sandbox}authorize.net/ui/themes/sandbox/Transaction/TransactionReceipt.aspx?transid=%s'; |
63 | 63 | |
64 | 64 | /** |
65 | - * Class constructor. |
|
66 | - */ |
|
67 | - public function __construct() { |
|
65 | + * Class constructor. |
|
66 | + */ |
|
67 | + public function __construct() { |
|
68 | 68 | |
69 | 69 | $this->title = __( 'Credit Card / Debit Card', 'invoicing' ); |
70 | 70 | $this->method_title = __( 'Authorize.Net', 'invoicing' ); |
@@ -76,11 +76,11 @@ discard block |
||
76 | 76 | } |
77 | 77 | |
78 | 78 | /** |
79 | - * Displays the payment method select field. |
|
80 | - * |
|
81 | - * @param int $invoice_id 0 or invoice id. |
|
82 | - * @param GetPaid_Payment_Form $form Current payment form. |
|
83 | - */ |
|
79 | + * Displays the payment method select field. |
|
80 | + * |
|
81 | + * @param int $invoice_id 0 or invoice id. |
|
82 | + * @param GetPaid_Payment_Form $form Current payment form. |
|
83 | + */ |
|
84 | 84 | public function payment_fields( $invoice_id, $form ) { |
85 | 85 | |
86 | 86 | // Let the user select a payment method. |
@@ -91,16 +91,16 @@ discard block |
||
91 | 91 | } |
92 | 92 | |
93 | 93 | /** |
94 | - * Creates a customer profile. |
|
95 | - * |
|
96 | - * |
|
97 | - * @param WPInv_Invoice $invoice Invoice. |
|
94 | + * Creates a customer profile. |
|
95 | + * |
|
96 | + * |
|
97 | + * @param WPInv_Invoice $invoice Invoice. |
|
98 | 98 | * @param array $submission_data Posted checkout fields. |
99 | 99 | * @param bool $save Whether or not to save the payment as a token. |
100 | 100 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile |
101 | - * @return string|WP_Error Payment profile id. |
|
102 | - */ |
|
103 | - public function create_customer_profile( $invoice, $submission_data, $save = true ) { |
|
101 | + * @return string|WP_Error Payment profile id. |
|
102 | + */ |
|
103 | + public function create_customer_profile( $invoice, $submission_data, $save = true ) { |
|
104 | 104 | |
105 | 105 | // Remove non-digits from the number |
106 | 106 | $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number'] ); |
@@ -175,14 +175,14 @@ discard block |
||
175 | 175 | } |
176 | 176 | |
177 | 177 | /** |
178 | - * Retrieves a customer profile. |
|
179 | - * |
|
180 | - * |
|
181 | - * @param string $profile_id profile id. |
|
182 | - * @return string|WP_Error Profile id. |
|
178 | + * Retrieves a customer profile. |
|
179 | + * |
|
180 | + * |
|
181 | + * @param string $profile_id profile id. |
|
182 | + * @return string|WP_Error Profile id. |
|
183 | 183 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-profile |
184 | - */ |
|
185 | - public function get_customer_profile( $profile_id ) { |
|
184 | + */ |
|
185 | + public function get_customer_profile( $profile_id ) { |
|
186 | 186 | |
187 | 187 | // Generate args. |
188 | 188 | $args = array( |
@@ -197,17 +197,17 @@ discard block |
||
197 | 197 | } |
198 | 198 | |
199 | 199 | /** |
200 | - * Creates a customer profile. |
|
201 | - * |
|
202 | - * |
|
200 | + * Creates a customer profile. |
|
201 | + * |
|
202 | + * |
|
203 | 203 | * @param string $profile_id profile id. |
204 | - * @param WPInv_Invoice $invoice Invoice. |
|
204 | + * @param WPInv_Invoice $invoice Invoice. |
|
205 | 205 | * @param array $submission_data Posted checkout fields. |
206 | 206 | * @param bool $save Whether or not to save the payment as a token. |
207 | 207 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile |
208 | - * @return string|WP_Error Profile id. |
|
209 | - */ |
|
210 | - public function create_customer_payment_profile( $customer_profile, $invoice, $submission_data, $save ) { |
|
208 | + * @return string|WP_Error Profile id. |
|
209 | + */ |
|
210 | + public function create_customer_payment_profile( $customer_profile, $invoice, $submission_data, $save ) { |
|
211 | 211 | |
212 | 212 | // Remove non-digits from the number |
213 | 213 | $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number'] ); |
@@ -282,13 +282,13 @@ discard block |
||
282 | 282 | } |
283 | 283 | |
284 | 284 | /** |
285 | - * Retrieves payment details from cache. |
|
286 | - * |
|
287 | - * |
|
285 | + * Retrieves payment details from cache. |
|
286 | + * |
|
287 | + * |
|
288 | 288 | * @param array $payment_details. |
289 | - * @return array|false Profile id. |
|
290 | - */ |
|
291 | - public function retrieve_payment_profile_from_cache( $payment_details, $customer_profile, $invoice ) { |
|
289 | + * @return array|false Profile id. |
|
290 | + */ |
|
291 | + public function retrieve_payment_profile_from_cache( $payment_details, $customer_profile, $invoice ) { |
|
292 | 292 | |
293 | 293 | $cached_information = get_option( 'getpaid_authorize_net_cached_profiles', array() ); |
294 | 294 | $payment_details = hash_hmac( 'sha256', json_encode( $payment_details ), SECURE_AUTH_KEY ); |
@@ -313,13 +313,13 @@ discard block |
||
313 | 313 | } |
314 | 314 | |
315 | 315 | /** |
316 | - * Securely adds payment details to cache. |
|
317 | - * |
|
318 | - * |
|
316 | + * Securely adds payment details to cache. |
|
317 | + * |
|
318 | + * |
|
319 | 319 | * @param array $payment_details. |
320 | 320 | * @param string $payment_profile_id. |
321 | - */ |
|
322 | - public function add_payment_profile_to_cache( $payment_details, $payment_profile_id ) { |
|
321 | + */ |
|
322 | + public function add_payment_profile_to_cache( $payment_details, $payment_profile_id ) { |
|
323 | 323 | |
324 | 324 | $cached_information = get_option( 'getpaid_authorize_net_cached_profiles', array() ); |
325 | 325 | $cached_information = is_array( $cached_information ) ? $cached_information : array(); |
@@ -331,15 +331,15 @@ discard block |
||
331 | 331 | } |
332 | 332 | |
333 | 333 | /** |
334 | - * Retrieves a customer payment profile. |
|
335 | - * |
|
336 | - * |
|
337 | - * @param string $customer_profile_id customer profile id. |
|
334 | + * Retrieves a customer payment profile. |
|
335 | + * |
|
336 | + * |
|
337 | + * @param string $customer_profile_id customer profile id. |
|
338 | 338 | * @param string $payment_profile_id payment profile id. |
339 | - * @return string|WP_Error Profile id. |
|
339 | + * @return string|WP_Error Profile id. |
|
340 | 340 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-payment-profile |
341 | - */ |
|
342 | - public function get_customer_payment_profile( $customer_profile_id, $payment_profile_id ) { |
|
341 | + */ |
|
342 | + public function get_customer_payment_profile( $customer_profile_id, $payment_profile_id ) { |
|
343 | 343 | |
344 | 344 | // Generate args. |
345 | 345 | $args = array( |
@@ -355,15 +355,15 @@ discard block |
||
355 | 355 | } |
356 | 356 | |
357 | 357 | /** |
358 | - * Charges a customer payment profile. |
|
359 | - * |
|
358 | + * Charges a customer payment profile. |
|
359 | + * |
|
360 | 360 | * @param string $customer_profile_id customer profile id. |
361 | 361 | * @param string $payment_profile_id payment profile id. |
362 | - * @param WPInv_Invoice $invoice Invoice. |
|
362 | + * @param WPInv_Invoice $invoice Invoice. |
|
363 | 363 | * @link https://developer.authorize.net/api/reference/index.html#payment-transactions-charge-a-customer-profile |
364 | - * @return WP_Error|object |
|
365 | - */ |
|
366 | - public function charge_customer_payment_profile( $customer_profile_id, $payment_profile_id, $invoice ) { |
|
364 | + * @return WP_Error|object |
|
365 | + */ |
|
366 | + public function charge_customer_payment_profile( $customer_profile_id, $payment_profile_id, $invoice ) { |
|
367 | 367 | |
368 | 368 | // Generate args. |
369 | 369 | $args = array( |
@@ -409,41 +409,41 @@ discard block |
||
409 | 409 | } |
410 | 410 | |
411 | 411 | /** |
412 | - * Processes a customer charge. |
|
413 | - * |
|
412 | + * Processes a customer charge. |
|
413 | + * |
|
414 | 414 | * @param stdClass $result Api response. |
415 | - * @param WPInv_Invoice $invoice Invoice. |
|
416 | - */ |
|
417 | - public function process_charge_response( $result, $invoice ) { |
|
415 | + * @param WPInv_Invoice $invoice Invoice. |
|
416 | + */ |
|
417 | + public function process_charge_response( $result, $invoice ) { |
|
418 | 418 | |
419 | 419 | wpinv_clear_errors(); |
420 | - $response_code = (int) $result->transactionResponse->responseCode; |
|
420 | + $response_code = (int) $result->transactionResponse->responseCode; |
|
421 | 421 | |
422 | - // Succeeded. |
|
423 | - if ( 1 == $response_code || 4 == $response_code ) { |
|
422 | + // Succeeded. |
|
423 | + if ( 1 == $response_code || 4 == $response_code ) { |
|
424 | 424 | |
425 | - // Maybe set a transaction id. |
|
426 | - if ( ! empty( $result->transactionResponse->transId ) ) { |
|
427 | - $invoice->set_transaction_id( $result->transactionResponse->transId ); |
|
428 | - } |
|
425 | + // Maybe set a transaction id. |
|
426 | + if ( ! empty( $result->transactionResponse->transId ) ) { |
|
427 | + $invoice->set_transaction_id( $result->transactionResponse->transId ); |
|
428 | + } |
|
429 | 429 | |
430 | - $invoice->add_note( sprintf( __( 'Authentication code: %s (%s).', 'invoicing' ), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber ), false, false, true ); |
|
430 | + $invoice->add_note( sprintf( __( 'Authentication code: %s (%s).', 'invoicing' ), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber ), false, false, true ); |
|
431 | 431 | |
432 | - if ( 1 == $response_code ) { |
|
433 | - return $invoice->mark_paid(); |
|
434 | - } |
|
432 | + if ( 1 == $response_code ) { |
|
433 | + return $invoice->mark_paid(); |
|
434 | + } |
|
435 | 435 | |
436 | - $invoice->set_status( 'wpi-onhold' ); |
|
437 | - $invoice->add_note( |
|
436 | + $invoice->set_status( 'wpi-onhold' ); |
|
437 | + $invoice->add_note( |
|
438 | 438 | sprintf( |
439 | 439 | __( 'Held for review: %s', 'invoicing' ), |
440 | 440 | $result->transactionResponse->messages->message[0]->description |
441 | 441 | ) |
442 | - ); |
|
442 | + ); |
|
443 | 443 | |
444 | - return $invoice->save(); |
|
444 | + return $invoice->save(); |
|
445 | 445 | |
446 | - } |
|
446 | + } |
|
447 | 447 | |
448 | 448 | wpinv_set_error( 'card_declined', __( 'Credit card declined.', 'invoicing' ) ); |
449 | 449 | |
@@ -455,13 +455,13 @@ discard block |
||
455 | 455 | } |
456 | 456 | |
457 | 457 | /** |
458 | - * Returns payment information. |
|
459 | - * |
|
460 | - * |
|
461 | - * @param array $card Card details. |
|
462 | - * @return array |
|
463 | - */ |
|
464 | - public function get_payment_information( $card ) { |
|
458 | + * Returns payment information. |
|
459 | + * |
|
460 | + * |
|
461 | + * @param array $card Card details. |
|
462 | + * @return array |
|
463 | + */ |
|
464 | + public function get_payment_information( $card ) { |
|
465 | 465 | return array( |
466 | 466 | |
467 | 467 | 'creditCard' => array ( |
@@ -474,25 +474,25 @@ discard block |
||
474 | 474 | } |
475 | 475 | |
476 | 476 | /** |
477 | - * Returns the customer profile meta name. |
|
478 | - * |
|
479 | - * |
|
480 | - * @param WPInv_Invoice $invoice Invoice. |
|
481 | - * @return string |
|
482 | - */ |
|
483 | - public function get_customer_profile_meta_name( $invoice ) { |
|
477 | + * Returns the customer profile meta name. |
|
478 | + * |
|
479 | + * |
|
480 | + * @param WPInv_Invoice $invoice Invoice. |
|
481 | + * @return string |
|
482 | + */ |
|
483 | + public function get_customer_profile_meta_name( $invoice ) { |
|
484 | 484 | return $this->is_sandbox( $invoice ) ? 'getpaid_authorizenet_sandbox_customer_profile_id' : 'getpaid_authorizenet_customer_profile_id'; |
485 | 485 | } |
486 | 486 | |
487 | 487 | /** |
488 | - * Validates the submitted data. |
|
489 | - * |
|
490 | - * |
|
491 | - * @param array $submission_data Posted checkout fields. |
|
488 | + * Validates the submitted data. |
|
489 | + * |
|
490 | + * |
|
491 | + * @param array $submission_data Posted checkout fields. |
|
492 | 492 | * @param WPInv_Invoice $invoice |
493 | - * @return WP_Error|string The payment profile id |
|
494 | - */ |
|
495 | - public function validate_submission_data( $submission_data, $invoice ) { |
|
493 | + * @return WP_Error|string The payment profile id |
|
494 | + */ |
|
495 | + public function validate_submission_data( $submission_data, $invoice ) { |
|
496 | 496 | |
497 | 497 | // Validate authentication details. |
498 | 498 | $auth = $this->get_auth_params(); |
@@ -524,13 +524,13 @@ discard block |
||
524 | 524 | } |
525 | 525 | |
526 | 526 | /** |
527 | - * Returns invoice line items. |
|
528 | - * |
|
529 | - * |
|
530 | - * @param WPInv_Invoice $invoice Invoice. |
|
531 | - * @return array |
|
532 | - */ |
|
533 | - public function get_line_items( $invoice ) { |
|
527 | + * Returns invoice line items. |
|
528 | + * |
|
529 | + * |
|
530 | + * @param WPInv_Invoice $invoice Invoice. |
|
531 | + * @return array |
|
532 | + */ |
|
533 | + public function get_line_items( $invoice ) { |
|
534 | 534 | $items = array(); |
535 | 535 | |
536 | 536 | foreach ( $invoice->get_items() as $item ) { |
@@ -568,15 +568,15 @@ discard block |
||
568 | 568 | } |
569 | 569 | |
570 | 570 | /** |
571 | - * Process Payment. |
|
572 | - * |
|
573 | - * |
|
574 | - * @param WPInv_Invoice $invoice Invoice. |
|
575 | - * @param array $submission_data Posted checkout fields. |
|
576 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
577 | - * @return array |
|
578 | - */ |
|
579 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
571 | + * Process Payment. |
|
572 | + * |
|
573 | + * |
|
574 | + * @param WPInv_Invoice $invoice Invoice. |
|
575 | + * @param array $submission_data Posted checkout fields. |
|
576 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
577 | + * @return array |
|
578 | + */ |
|
579 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
580 | 580 | |
581 | 581 | // Validate the submitted data. |
582 | 582 | $payment_profile_id = $this->validate_submission_data( $submission_data, $invoice ); |
@@ -609,45 +609,45 @@ discard block |
||
609 | 609 | |
610 | 610 | exit; |
611 | 611 | |
612 | - } |
|
612 | + } |
|
613 | 613 | |
614 | - /** |
|
615 | - * Processes the initial payment. |
|
616 | - * |
|
614 | + /** |
|
615 | + * Processes the initial payment. |
|
616 | + * |
|
617 | 617 | * @param WPInv_Invoice $invoice Invoice. |
618 | - */ |
|
619 | - protected function process_initial_payment( $invoice ) { |
|
618 | + */ |
|
619 | + protected function process_initial_payment( $invoice ) { |
|
620 | 620 | |
621 | - $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
621 | + $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
622 | 622 | $customer_profile = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true ); |
623 | - $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice ); |
|
623 | + $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice ); |
|
624 | 624 | |
625 | - // Do we have an error? |
|
626 | - if ( is_wp_error( $result ) ) { |
|
627 | - wpinv_set_error( $result->get_error_code(), $result->get_error_message() ); |
|
628 | - wpinv_send_back_to_checkout( $invoice ); |
|
629 | - } |
|
625 | + // Do we have an error? |
|
626 | + if ( is_wp_error( $result ) ) { |
|
627 | + wpinv_set_error( $result->get_error_code(), $result->get_error_message() ); |
|
628 | + wpinv_send_back_to_checkout( $invoice ); |
|
629 | + } |
|
630 | 630 | |
631 | - // Process the response. |
|
632 | - $this->process_charge_response( $result, $invoice ); |
|
631 | + // Process the response. |
|
632 | + $this->process_charge_response( $result, $invoice ); |
|
633 | 633 | |
634 | - if ( wpinv_get_errors() ) { |
|
635 | - wpinv_send_back_to_checkout( $invoice ); |
|
636 | - } |
|
634 | + if ( wpinv_get_errors() ) { |
|
635 | + wpinv_send_back_to_checkout( $invoice ); |
|
636 | + } |
|
637 | 637 | |
638 | - } |
|
638 | + } |
|
639 | 639 | |
640 | 640 | /** |
641 | - * Processes recurring payments. |
|
642 | - * |
|
641 | + * Processes recurring payments. |
|
642 | + * |
|
643 | 643 | * @param WPInv_Invoice $invoice Invoice. |
644 | 644 | * @param WPInv_Subscription[]|WPInv_Subscription $subscriptions Subscriptions. |
645 | - */ |
|
646 | - public function process_subscription( $invoice, $subscriptions ) { |
|
645 | + */ |
|
646 | + public function process_subscription( $invoice, $subscriptions ) { |
|
647 | 647 | |
648 | 648 | // Check if there is an initial amount to charge. |
649 | 649 | if ( (float) $invoice->get_total() > 0 ) { |
650 | - $this->process_initial_payment( $invoice ); |
|
650 | + $this->process_initial_payment( $invoice ); |
|
651 | 651 | } |
652 | 652 | |
653 | 653 | // Activate the subscriptions. |
@@ -665,36 +665,36 @@ discard block |
||
665 | 665 | } |
666 | 666 | } |
667 | 667 | |
668 | - // Redirect to the success page. |
|
668 | + // Redirect to the success page. |
|
669 | 669 | wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
670 | 670 | |
671 | 671 | } |
672 | 672 | |
673 | - /** |
|
674 | - * (Maybe) renews an authorize.net subscription profile. |
|
675 | - * |
|
676 | - * |
|
673 | + /** |
|
674 | + * (Maybe) renews an authorize.net subscription profile. |
|
675 | + * |
|
676 | + * |
|
677 | 677 | * @param WPInv_Subscription $subscription |
678 | - */ |
|
679 | - public function maybe_renew_subscription( $subscription ) { |
|
678 | + */ |
|
679 | + public function maybe_renew_subscription( $subscription ) { |
|
680 | 680 | |
681 | 681 | // Ensure its our subscription && it's active. |
682 | 682 | if ( $this->id == $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
683 | 683 | $this->renew_subscription( $subscription ); |
684 | 684 | } |
685 | 685 | |
686 | - } |
|
686 | + } |
|
687 | 687 | |
688 | 688 | /** |
689 | - * Renews a subscription. |
|
690 | - * |
|
689 | + * Renews a subscription. |
|
690 | + * |
|
691 | 691 | * @param WPInv_Subscription $subscription |
692 | - */ |
|
693 | - public function renew_subscription( $subscription ) { |
|
692 | + */ |
|
693 | + public function renew_subscription( $subscription ) { |
|
694 | 694 | |
695 | - // Generate the renewal invoice. |
|
696 | - $new_invoice = $subscription->create_payment(); |
|
697 | - $old_invoice = $subscription->get_parent_payment(); |
|
695 | + // Generate the renewal invoice. |
|
696 | + $new_invoice = $subscription->create_payment(); |
|
697 | + $old_invoice = $subscription->get_parent_payment(); |
|
698 | 698 | |
699 | 699 | if ( empty( $new_invoice ) ) { |
700 | 700 | $old_invoice->add_note( __( 'Error generating a renewal invoice.', 'invoicing' ), false, false, false ); |
@@ -703,37 +703,37 @@ discard block |
||
703 | 703 | } |
704 | 704 | |
705 | 705 | // Charge the payment method. |
706 | - $payment_profile_id = get_post_meta( $old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
707 | - $customer_profile = get_user_meta( $old_invoice->get_user_id(), $this->get_customer_profile_meta_name( $old_invoice ), true ); |
|
708 | - $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $new_invoice ); |
|
709 | - |
|
710 | - // Do we have an error? |
|
711 | - if ( is_wp_error( $result ) ) { |
|
712 | - |
|
713 | - $old_invoice->add_note( |
|
714 | - sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), $result->get_error_message() ), |
|
715 | - true, |
|
716 | - false, |
|
717 | - true |
|
718 | - ); |
|
719 | - $subscription->failing(); |
|
720 | - return; |
|
721 | - |
|
722 | - } |
|
723 | - |
|
724 | - // Process the response. |
|
725 | - $this->process_charge_response( $result, $new_invoice ); |
|
726 | - |
|
727 | - if ( wpinv_get_errors() ) { |
|
728 | - |
|
729 | - $old_invoice->add_note( |
|
730 | - sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), getpaid_get_errors_html() ), |
|
731 | - true, |
|
732 | - false, |
|
733 | - true |
|
734 | - ); |
|
735 | - $subscription->failing(); |
|
736 | - return; |
|
706 | + $payment_profile_id = get_post_meta( $old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
707 | + $customer_profile = get_user_meta( $old_invoice->get_user_id(), $this->get_customer_profile_meta_name( $old_invoice ), true ); |
|
708 | + $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $new_invoice ); |
|
709 | + |
|
710 | + // Do we have an error? |
|
711 | + if ( is_wp_error( $result ) ) { |
|
712 | + |
|
713 | + $old_invoice->add_note( |
|
714 | + sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), $result->get_error_message() ), |
|
715 | + true, |
|
716 | + false, |
|
717 | + true |
|
718 | + ); |
|
719 | + $subscription->failing(); |
|
720 | + return; |
|
721 | + |
|
722 | + } |
|
723 | + |
|
724 | + // Process the response. |
|
725 | + $this->process_charge_response( $result, $new_invoice ); |
|
726 | + |
|
727 | + if ( wpinv_get_errors() ) { |
|
728 | + |
|
729 | + $old_invoice->add_note( |
|
730 | + sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), getpaid_get_errors_html() ), |
|
731 | + true, |
|
732 | + false, |
|
733 | + true |
|
734 | + ); |
|
735 | + $subscription->failing(); |
|
736 | + return; |
|
737 | 737 | |
738 | 738 | } |
739 | 739 | |
@@ -742,13 +742,13 @@ discard block |
||
742 | 742 | } |
743 | 743 | |
744 | 744 | /** |
745 | - * Processes invoice addons. |
|
746 | - * |
|
747 | - * @param WPInv_Invoice $invoice |
|
748 | - * @param GetPaid_Form_Item[] $items |
|
749 | - * @return WPInv_Invoice |
|
750 | - */ |
|
751 | - public function process_addons( $invoice, $items ) { |
|
745 | + * Processes invoice addons. |
|
746 | + * |
|
747 | + * @param WPInv_Invoice $invoice |
|
748 | + * @param GetPaid_Form_Item[] $items |
|
749 | + * @return WPInv_Invoice |
|
750 | + */ |
|
751 | + public function process_addons( $invoice, $items ) { |
|
752 | 752 | |
753 | 753 | global $getpaid_authorize_addons; |
754 | 754 | |
@@ -768,7 +768,7 @@ discard block |
||
768 | 768 | $invoice->recalculate_total(); |
769 | 769 | |
770 | 770 | $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
771 | - $customer_profile = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true ); |
|
771 | + $customer_profile = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true ); |
|
772 | 772 | |
773 | 773 | add_filter( 'getpaid_authorizenet_charge_customer_payment_profile_args', array( $this, 'filter_addons_request' ), 10, 2 ); |
774 | 774 | $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice ); |
@@ -783,11 +783,11 @@ discard block |
||
783 | 783 | } |
784 | 784 | |
785 | 785 | /** |
786 | - * Processes invoice addons. |
|
787 | - * |
|
786 | + * Processes invoice addons. |
|
787 | + * |
|
788 | 788 | * @param array $args |
789 | - * @return array |
|
790 | - */ |
|
789 | + * @return array |
|
790 | + */ |
|
791 | 791 | public function filter_addons_request( $args ) { |
792 | 792 | |
793 | 793 | global $getpaid_authorize_addons; |
@@ -821,11 +821,11 @@ discard block |
||
821 | 821 | } |
822 | 822 | |
823 | 823 | /** |
824 | - * Filters the gateway settings. |
|
825 | - * |
|
826 | - * @param array $admin_settings |
|
827 | - */ |
|
828 | - public function admin_settings( $admin_settings ) { |
|
824 | + * Filters the gateway settings. |
|
825 | + * |
|
826 | + * @param array $admin_settings |
|
827 | + */ |
|
828 | + public function admin_settings( $admin_settings ) { |
|
829 | 829 | |
830 | 830 | $currencies = sprintf( |
831 | 831 | __( 'Supported Currencies: %s', 'invoicing' ), |
@@ -865,7 +865,7 @@ discard block |
||
865 | 865 | 'readonly' => true, |
866 | 866 | ); |
867 | 867 | |
868 | - return $admin_settings; |
|
869 | - } |
|
868 | + return $admin_settings; |
|
869 | + } |
|
870 | 870 | |
871 | 871 | } |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | |
7 | -defined( 'ABSPATH' ) || exit; |
|
7 | +defined('ABSPATH') || exit; |
|
8 | 8 | |
9 | 9 | /** |
10 | 10 | * Authorize.net Payment Gateway class. |
@@ -24,7 +24,7 @@ discard block |
||
24 | 24 | * |
25 | 25 | * @var array |
26 | 26 | */ |
27 | - protected $supports = array( 'subscription', 'sandbox', 'tokens', 'addons', 'single_subscription_group', 'multiple_subscription_groups' ); |
|
27 | + protected $supports = array('subscription', 'sandbox', 'tokens', 'addons', 'single_subscription_group', 'multiple_subscription_groups'); |
|
28 | 28 | |
29 | 29 | /** |
30 | 30 | * Payment method order. |
@@ -52,7 +52,7 @@ discard block |
||
52 | 52 | * |
53 | 53 | * @var array |
54 | 54 | */ |
55 | - public $currencies = array( 'USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD' ); |
|
55 | + public $currencies = array('USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD'); |
|
56 | 56 | |
57 | 57 | /** |
58 | 58 | * URL to view a transaction. |
@@ -66,12 +66,12 @@ discard block |
||
66 | 66 | */ |
67 | 67 | public function __construct() { |
68 | 68 | |
69 | - $this->title = __( 'Credit Card / Debit Card', 'invoicing' ); |
|
70 | - $this->method_title = __( 'Authorize.Net', 'invoicing' ); |
|
71 | - $this->notify_url = getpaid_get_non_query_string_ipn_url( $this->id ); |
|
69 | + $this->title = __('Credit Card / Debit Card', 'invoicing'); |
|
70 | + $this->method_title = __('Authorize.Net', 'invoicing'); |
|
71 | + $this->notify_url = getpaid_get_non_query_string_ipn_url($this->id); |
|
72 | 72 | |
73 | - add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) ); |
|
74 | - add_filter( 'getpaid_authorizenet_sandbox_notice', array( $this, 'sandbox_notice' ) ); |
|
73 | + add_action('getpaid_should_renew_subscription', array($this, 'maybe_renew_subscription')); |
|
74 | + add_filter('getpaid_authorizenet_sandbox_notice', array($this, 'sandbox_notice')); |
|
75 | 75 | parent::__construct(); |
76 | 76 | } |
77 | 77 | |
@@ -81,13 +81,13 @@ discard block |
||
81 | 81 | * @param int $invoice_id 0 or invoice id. |
82 | 82 | * @param GetPaid_Payment_Form $form Current payment form. |
83 | 83 | */ |
84 | - public function payment_fields( $invoice_id, $form ) { |
|
84 | + public function payment_fields($invoice_id, $form) { |
|
85 | 85 | |
86 | 86 | // Let the user select a payment method. |
87 | 87 | echo $this->saved_payment_methods(); |
88 | 88 | |
89 | 89 | // Show the credit card entry form. |
90 | - echo $this->new_payment_method_entry( $this->get_cc_form( true ) ); |
|
90 | + echo $this->new_payment_method_entry($this->get_cc_form(true)); |
|
91 | 91 | } |
92 | 92 | |
93 | 93 | /** |
@@ -100,79 +100,79 @@ discard block |
||
100 | 100 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile |
101 | 101 | * @return string|WP_Error Payment profile id. |
102 | 102 | */ |
103 | - public function create_customer_profile( $invoice, $submission_data, $save = true ) { |
|
103 | + public function create_customer_profile($invoice, $submission_data, $save = true) { |
|
104 | 104 | |
105 | 105 | // Remove non-digits from the number |
106 | - $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number'] ); |
|
106 | + $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number']); |
|
107 | 107 | |
108 | 108 | // Generate args. |
109 | 109 | $args = array( |
110 | 110 | 'createCustomerProfileRequest' => array( |
111 | 111 | 'merchantAuthentication' => $this->get_auth_params(), |
112 | 112 | 'profile' => array( |
113 | - 'merchantCustomerId' => getpaid_limit_length( $invoice->get_user_id(), 20 ), |
|
114 | - 'description' => getpaid_limit_length( $invoice->get_full_name(), 255 ), |
|
115 | - 'email' => getpaid_limit_length( $invoice->get_email(), 255 ), |
|
113 | + 'merchantCustomerId' => getpaid_limit_length($invoice->get_user_id(), 20), |
|
114 | + 'description' => getpaid_limit_length($invoice->get_full_name(), 255), |
|
115 | + 'email' => getpaid_limit_length($invoice->get_email(), 255), |
|
116 | 116 | 'paymentProfiles' => array( |
117 | 117 | 'customerType' => 'individual', |
118 | 118 | |
119 | 119 | // Billing information. |
120 | 120 | 'billTo' => array( |
121 | - 'firstName' => getpaid_limit_length( $invoice->get_first_name(), 50 ), |
|
122 | - 'lastName' => getpaid_limit_length( $invoice->get_last_name(), 50 ), |
|
123 | - 'address' => getpaid_limit_length( $invoice->get_address(), 60 ), |
|
124 | - 'city' => getpaid_limit_length( $invoice->get_city(), 40 ), |
|
125 | - 'state' => getpaid_limit_length( $invoice->get_state(), 40 ), |
|
126 | - 'zip' => getpaid_limit_length( $invoice->get_zip(), 20 ), |
|
127 | - 'country' => getpaid_limit_length( $invoice->get_country(), 60 ), |
|
121 | + 'firstName' => getpaid_limit_length($invoice->get_first_name(), 50), |
|
122 | + 'lastName' => getpaid_limit_length($invoice->get_last_name(), 50), |
|
123 | + 'address' => getpaid_limit_length($invoice->get_address(), 60), |
|
124 | + 'city' => getpaid_limit_length($invoice->get_city(), 40), |
|
125 | + 'state' => getpaid_limit_length($invoice->get_state(), 40), |
|
126 | + 'zip' => getpaid_limit_length($invoice->get_zip(), 20), |
|
127 | + 'country' => getpaid_limit_length($invoice->get_country(), 60), |
|
128 | 128 | ), |
129 | 129 | |
130 | 130 | // Payment information. |
131 | - 'payment' => $this->get_payment_information( $submission_data['authorizenet'] ), |
|
131 | + 'payment' => $this->get_payment_information($submission_data['authorizenet']), |
|
132 | 132 | ) |
133 | 133 | ), |
134 | - 'validationMode' => $this->is_sandbox( $invoice ) ? 'testMode' : 'liveMode', |
|
134 | + 'validationMode' => $this->is_sandbox($invoice) ? 'testMode' : 'liveMode', |
|
135 | 135 | ) |
136 | 136 | ); |
137 | 137 | |
138 | - $response = $this->post( apply_filters( 'getpaid_authorizenet_customer_profile_args', $args, $invoice ), $invoice ); |
|
138 | + $response = $this->post(apply_filters('getpaid_authorizenet_customer_profile_args', $args, $invoice), $invoice); |
|
139 | 139 | |
140 | - if ( is_wp_error( $response ) ) { |
|
140 | + if (is_wp_error($response)) { |
|
141 | 141 | |
142 | 142 | // In case the payment profile already exists remotely. |
143 | - if ( 'dup_payment_profile' == $response->get_error_code() ) { |
|
144 | - $customer_profile_id = strtok( $response->get_error_message(), '.' ); |
|
145 | - update_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), $customer_profile_id ); |
|
146 | - return strtok( '.' ); |
|
143 | + if ('dup_payment_profile' == $response->get_error_code()) { |
|
144 | + $customer_profile_id = strtok($response->get_error_message(), '.'); |
|
145 | + update_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), $customer_profile_id); |
|
146 | + return strtok('.'); |
|
147 | 147 | } |
148 | 148 | |
149 | 149 | // In case the customer profile already exists remotely. |
150 | - if ( 'E00039' == $response->get_error_code() ) { |
|
151 | - $customer_profile_id = str_replace( 'A duplicate record with ID ', '', $response->get_error_message() ); |
|
152 | - $customer_profile_id = str_replace( ' already exists.', '', $customer_profile_id ); |
|
153 | - return $this->create_customer_payment_profile( trim( $customer_profile_id ), $invoice, $submission_data, $save ); |
|
150 | + if ('E00039' == $response->get_error_code()) { |
|
151 | + $customer_profile_id = str_replace('A duplicate record with ID ', '', $response->get_error_message()); |
|
152 | + $customer_profile_id = str_replace(' already exists.', '', $customer_profile_id); |
|
153 | + return $this->create_customer_payment_profile(trim($customer_profile_id), $invoice, $submission_data, $save); |
|
154 | 154 | } |
155 | 155 | |
156 | 156 | return $response; |
157 | 157 | } |
158 | 158 | |
159 | - update_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), $response->customerProfileId ); |
|
159 | + update_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), $response->customerProfileId); |
|
160 | 160 | |
161 | 161 | // Save the payment token. |
162 | - if ( $save ) { |
|
162 | + if ($save) { |
|
163 | 163 | $this->save_token( |
164 | 164 | array( |
165 | 165 | 'id' => $response->customerPaymentProfileIdList[0], |
166 | - 'name' => getpaid_get_card_name( $submission_data['authorizenet']['cc_number'] ) . '····' . substr( $submission_data['authorizenet']['cc_number'], -4 ), |
|
166 | + 'name' => getpaid_get_card_name($submission_data['authorizenet']['cc_number']) . '····' . substr($submission_data['authorizenet']['cc_number'], -4), |
|
167 | 167 | 'default' => true, |
168 | - 'type' => $this->is_sandbox( $invoice ) ? 'sandbox' : 'live', |
|
168 | + 'type' => $this->is_sandbox($invoice) ? 'sandbox' : 'live', |
|
169 | 169 | ) |
170 | 170 | ); |
171 | 171 | } |
172 | 172 | |
173 | 173 | // Add a note about the validation response. |
174 | 174 | $invoice->add_note( |
175 | - sprintf( __( 'Created Authorize.NET customer profile: %s', 'invoicing' ), $response->validationDirectResponseList[0] ), |
|
175 | + sprintf(__('Created Authorize.NET customer profile: %s', 'invoicing'), $response->validationDirectResponseList[0]), |
|
176 | 176 | false, |
177 | 177 | false, |
178 | 178 | true |
@@ -189,7 +189,7 @@ discard block |
||
189 | 189 | * @return string|WP_Error Profile id. |
190 | 190 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-profile |
191 | 191 | */ |
192 | - public function get_customer_profile( $profile_id ) { |
|
192 | + public function get_customer_profile($profile_id) { |
|
193 | 193 | |
194 | 194 | // Generate args. |
195 | 195 | $args = array( |
@@ -199,7 +199,7 @@ discard block |
||
199 | 199 | ) |
200 | 200 | ); |
201 | 201 | |
202 | - return $this->post( $args, false ); |
|
202 | + return $this->post($args, false); |
|
203 | 203 | |
204 | 204 | } |
205 | 205 | |
@@ -214,18 +214,18 @@ discard block |
||
214 | 214 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile |
215 | 215 | * @return string|WP_Error Profile id. |
216 | 216 | */ |
217 | - public function create_customer_payment_profile( $customer_profile, $invoice, $submission_data, $save ) { |
|
217 | + public function create_customer_payment_profile($customer_profile, $invoice, $submission_data, $save) { |
|
218 | 218 | |
219 | 219 | // Remove non-digits from the number |
220 | - $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number'] ); |
|
220 | + $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number']); |
|
221 | 221 | |
222 | 222 | // Prepare card details. |
223 | - $payment_information = $this->get_payment_information( $submission_data['authorizenet'] ); |
|
223 | + $payment_information = $this->get_payment_information($submission_data['authorizenet']); |
|
224 | 224 | |
225 | 225 | // Authorize.NET does not support saving the same card twice. |
226 | - $cached_information = $this->retrieve_payment_profile_from_cache( $payment_information, $customer_profile, $invoice ); |
|
226 | + $cached_information = $this->retrieve_payment_profile_from_cache($payment_information, $customer_profile, $invoice); |
|
227 | 227 | |
228 | - if ( $cached_information ) { |
|
228 | + if ($cached_information) { |
|
229 | 229 | return $cached_information; |
230 | 230 | } |
231 | 231 | |
@@ -238,34 +238,34 @@ discard block |
||
238 | 238 | |
239 | 239 | // Billing information. |
240 | 240 | 'billTo' => array( |
241 | - 'firstName' => getpaid_limit_length( $invoice->get_first_name(), 50 ), |
|
242 | - 'lastName' => getpaid_limit_length( $invoice->get_last_name(), 50 ), |
|
243 | - 'address' => getpaid_limit_length( $invoice->get_address(), 60 ), |
|
244 | - 'city' => getpaid_limit_length( $invoice->get_city(), 40 ), |
|
245 | - 'state' => getpaid_limit_length( $invoice->get_state(), 40 ), |
|
246 | - 'zip' => getpaid_limit_length( $invoice->get_zip(), 20 ), |
|
247 | - 'country' => getpaid_limit_length( $invoice->get_country(), 60 ), |
|
241 | + 'firstName' => getpaid_limit_length($invoice->get_first_name(), 50), |
|
242 | + 'lastName' => getpaid_limit_length($invoice->get_last_name(), 50), |
|
243 | + 'address' => getpaid_limit_length($invoice->get_address(), 60), |
|
244 | + 'city' => getpaid_limit_length($invoice->get_city(), 40), |
|
245 | + 'state' => getpaid_limit_length($invoice->get_state(), 40), |
|
246 | + 'zip' => getpaid_limit_length($invoice->get_zip(), 20), |
|
247 | + 'country' => getpaid_limit_length($invoice->get_country(), 60), |
|
248 | 248 | ), |
249 | 249 | |
250 | 250 | // Payment information. |
251 | 251 | 'payment' => $payment_information |
252 | 252 | ), |
253 | - 'validationMode' => $this->is_sandbox( $invoice ) ? 'testMode' : 'liveMode', |
|
253 | + 'validationMode' => $this->is_sandbox($invoice) ? 'testMode' : 'liveMode', |
|
254 | 254 | ) |
255 | 255 | ); |
256 | 256 | |
257 | - $response = $this->post( apply_filters( 'getpaid_authorizenet_create_customer_payment_profile_args', $args, $invoice ), $invoice ); |
|
257 | + $response = $this->post(apply_filters('getpaid_authorizenet_create_customer_payment_profile_args', $args, $invoice), $invoice); |
|
258 | 258 | |
259 | - if ( is_wp_error( $response ) ) { |
|
259 | + if (is_wp_error($response)) { |
|
260 | 260 | |
261 | 261 | // In case the payment profile already exists remotely. |
262 | - if ( 'dup_payment_profile' == $response->get_error_code() ) { |
|
263 | - $customer_profile_id = strtok( $response->get_error_message(), '.' ); |
|
264 | - $payment_profile_id = strtok( '.' ); |
|
265 | - update_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), $customer_profile_id ); |
|
262 | + if ('dup_payment_profile' == $response->get_error_code()) { |
|
263 | + $customer_profile_id = strtok($response->get_error_message(), '.'); |
|
264 | + $payment_profile_id = strtok('.'); |
|
265 | + update_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), $customer_profile_id); |
|
266 | 266 | |
267 | 267 | // Cache payment profile id. |
268 | - $this->add_payment_profile_to_cache( $payment_information, $payment_profile_id ); |
|
268 | + $this->add_payment_profile_to_cache($payment_information, $payment_profile_id); |
|
269 | 269 | |
270 | 270 | return $payment_profile_id; |
271 | 271 | } |
@@ -274,29 +274,29 @@ discard block |
||
274 | 274 | } |
275 | 275 | |
276 | 276 | // Save the payment token. |
277 | - if ( $save ) { |
|
277 | + if ($save) { |
|
278 | 278 | $this->save_token( |
279 | 279 | array( |
280 | 280 | 'id' => $response->customerPaymentProfileId, |
281 | - 'name' => getpaid_get_card_name( $submission_data['authorizenet']['cc_number'] ) . ' ···· ' . substr( $submission_data['authorizenet']['cc_number'], -4 ), |
|
281 | + 'name' => getpaid_get_card_name($submission_data['authorizenet']['cc_number']) . ' ···· ' . substr($submission_data['authorizenet']['cc_number'], -4), |
|
282 | 282 | 'default' => true, |
283 | - 'type' => $this->is_sandbox( $invoice ) ? 'sandbox' : 'live', |
|
283 | + 'type' => $this->is_sandbox($invoice) ? 'sandbox' : 'live', |
|
284 | 284 | ) |
285 | 285 | ); |
286 | 286 | } |
287 | 287 | |
288 | 288 | // Cache payment profile id. |
289 | - $this->add_payment_profile_to_cache( $payment_information, $response->customerPaymentProfileId ); |
|
289 | + $this->add_payment_profile_to_cache($payment_information, $response->customerPaymentProfileId); |
|
290 | 290 | |
291 | 291 | // Add a note about the validation response. |
292 | 292 | $invoice->add_note( |
293 | - sprintf( __( 'Saved Authorize.NET payment profile: %s', 'invoicing' ), $response->validationDirectResponse ), |
|
293 | + sprintf(__('Saved Authorize.NET payment profile: %s', 'invoicing'), $response->validationDirectResponse), |
|
294 | 294 | false, |
295 | 295 | false, |
296 | 296 | true |
297 | 297 | ); |
298 | 298 | |
299 | - update_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), $customer_profile ); |
|
299 | + update_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), $customer_profile); |
|
300 | 300 | |
301 | 301 | return $response->customerPaymentProfileId; |
302 | 302 | } |
@@ -308,12 +308,12 @@ discard block |
||
308 | 308 | * @param array $payment_details. |
309 | 309 | * @return array|false Profile id. |
310 | 310 | */ |
311 | - public function retrieve_payment_profile_from_cache( $payment_details, $customer_profile, $invoice ) { |
|
311 | + public function retrieve_payment_profile_from_cache($payment_details, $customer_profile, $invoice) { |
|
312 | 312 | |
313 | - $cached_information = get_option( 'getpaid_authorize_net_cached_profiles', array() ); |
|
314 | - $payment_details = hash_hmac( 'sha256', json_encode( $payment_details ), SECURE_AUTH_KEY ); |
|
313 | + $cached_information = get_option('getpaid_authorize_net_cached_profiles', array()); |
|
314 | + $payment_details = hash_hmac('sha256', json_encode($payment_details), SECURE_AUTH_KEY); |
|
315 | 315 | |
316 | - if ( ! is_array( $cached_information ) || ! array_key_exists( $payment_details, $cached_information ) ) { |
|
316 | + if (!is_array($cached_information) || !array_key_exists($payment_details, $cached_information)) { |
|
317 | 317 | return false; |
318 | 318 | } |
319 | 319 | |
@@ -322,13 +322,13 @@ discard block |
||
322 | 322 | 'getCustomerPaymentProfileRequest' => array( |
323 | 323 | 'merchantAuthentication' => $this->get_auth_params(), |
324 | 324 | 'customerProfileId' => $customer_profile, |
325 | - 'customerPaymentProfileId' => $cached_information[ $payment_details ], |
|
325 | + 'customerPaymentProfileId' => $cached_information[$payment_details], |
|
326 | 326 | ) |
327 | 327 | ); |
328 | 328 | |
329 | - $response = $this->post( $args, $invoice ); |
|
329 | + $response = $this->post($args, $invoice); |
|
330 | 330 | |
331 | - return is_wp_error( $response ) ? false : $cached_information[ $payment_details ]; |
|
331 | + return is_wp_error($response) ? false : $cached_information[$payment_details]; |
|
332 | 332 | |
333 | 333 | } |
334 | 334 | |
@@ -339,14 +339,14 @@ discard block |
||
339 | 339 | * @param array $payment_details. |
340 | 340 | * @param string $payment_profile_id. |
341 | 341 | */ |
342 | - public function add_payment_profile_to_cache( $payment_details, $payment_profile_id ) { |
|
342 | + public function add_payment_profile_to_cache($payment_details, $payment_profile_id) { |
|
343 | 343 | |
344 | - $cached_information = get_option( 'getpaid_authorize_net_cached_profiles', array() ); |
|
345 | - $cached_information = is_array( $cached_information ) ? $cached_information : array(); |
|
346 | - $payment_details = hash_hmac( 'sha256', json_encode( $payment_details ), SECURE_AUTH_KEY ); |
|
344 | + $cached_information = get_option('getpaid_authorize_net_cached_profiles', array()); |
|
345 | + $cached_information = is_array($cached_information) ? $cached_information : array(); |
|
346 | + $payment_details = hash_hmac('sha256', json_encode($payment_details), SECURE_AUTH_KEY); |
|
347 | 347 | |
348 | - $cached_information[ $payment_details ] = $payment_profile_id; |
|
349 | - update_option( 'getpaid_authorize_net_cached_profiles', $cached_information ); |
|
348 | + $cached_information[$payment_details] = $payment_profile_id; |
|
349 | + update_option('getpaid_authorize_net_cached_profiles', $cached_information); |
|
350 | 350 | |
351 | 351 | } |
352 | 352 | |
@@ -359,7 +359,7 @@ discard block |
||
359 | 359 | * @return string|WP_Error Profile id. |
360 | 360 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-payment-profile |
361 | 361 | */ |
362 | - public function get_customer_payment_profile( $customer_profile_id, $payment_profile_id ) { |
|
362 | + public function get_customer_payment_profile($customer_profile_id, $payment_profile_id) { |
|
363 | 363 | |
364 | 364 | // Generate args. |
365 | 365 | $args = array( |
@@ -370,7 +370,7 @@ discard block |
||
370 | 370 | ) |
371 | 371 | ); |
372 | 372 | |
373 | - return $this->post( $args, false ); |
|
373 | + return $this->post($args, false); |
|
374 | 374 | |
375 | 375 | } |
376 | 376 | |
@@ -383,7 +383,7 @@ discard block |
||
383 | 383 | * @link https://developer.authorize.net/api/reference/index.html#payment-transactions-charge-a-customer-profile |
384 | 384 | * @return WP_Error|object |
385 | 385 | */ |
386 | - public function charge_customer_payment_profile( $customer_profile_id, $payment_profile_id, $invoice ) { |
|
386 | + public function charge_customer_payment_profile($customer_profile_id, $payment_profile_id, $invoice) { |
|
387 | 387 | |
388 | 388 | // Generate args. |
389 | 389 | $args = array( |
@@ -403,28 +403,28 @@ discard block |
||
403 | 403 | ) |
404 | 404 | ), |
405 | 405 | 'order' => array( |
406 | - 'invoiceNumber' => getpaid_limit_length( $invoice->get_number(), 20 ), |
|
406 | + 'invoiceNumber' => getpaid_limit_length($invoice->get_number(), 20), |
|
407 | 407 | ), |
408 | - 'lineItems' => array( 'lineItem' => $this->get_line_items( $invoice ) ), |
|
408 | + 'lineItems' => array('lineItem' => $this->get_line_items($invoice)), |
|
409 | 409 | 'tax' => array( |
410 | 410 | 'amount' => $invoice->get_total_tax(), |
411 | - 'name' => __( 'TAX', 'invoicing' ), |
|
411 | + 'name' => __('TAX', 'invoicing'), |
|
412 | 412 | ), |
413 | - 'poNumber' => getpaid_limit_length( $invoice->get_number(), 25 ), |
|
413 | + 'poNumber' => getpaid_limit_length($invoice->get_number(), 25), |
|
414 | 414 | 'customer' => array( |
415 | - 'id' => getpaid_limit_length( $invoice->get_user_id(), 25 ), |
|
416 | - 'email' => getpaid_limit_length( $invoice->get_email(), 25 ), |
|
415 | + 'id' => getpaid_limit_length($invoice->get_user_id(), 25), |
|
416 | + 'email' => getpaid_limit_length($invoice->get_email(), 25), |
|
417 | 417 | ), |
418 | 418 | 'customerIP' => $invoice->get_ip(), |
419 | 419 | ) |
420 | 420 | ) |
421 | 421 | ); |
422 | 422 | |
423 | - if ( 0 == $invoice->get_total_tax() ) { |
|
424 | - unset( $args['createTransactionRequest']['transactionRequest']['tax'] ); |
|
423 | + if (0 == $invoice->get_total_tax()) { |
|
424 | + unset($args['createTransactionRequest']['transactionRequest']['tax']); |
|
425 | 425 | } |
426 | 426 | |
427 | - return $this->post( apply_filters( 'getpaid_authorizenet_charge_customer_payment_profile_args', $args, $invoice ), $invoice ); |
|
427 | + return $this->post(apply_filters('getpaid_authorizenet_charge_customer_payment_profile_args', $args, $invoice), $invoice); |
|
428 | 428 | |
429 | 429 | } |
430 | 430 | |
@@ -434,29 +434,29 @@ discard block |
||
434 | 434 | * @param stdClass $result Api response. |
435 | 435 | * @param WPInv_Invoice $invoice Invoice. |
436 | 436 | */ |
437 | - public function process_charge_response( $result, $invoice ) { |
|
437 | + public function process_charge_response($result, $invoice) { |
|
438 | 438 | |
439 | 439 | wpinv_clear_errors(); |
440 | 440 | $response_code = (int) $result->transactionResponse->responseCode; |
441 | 441 | |
442 | 442 | // Succeeded. |
443 | - if ( 1 == $response_code || 4 == $response_code ) { |
|
443 | + if (1 == $response_code || 4 == $response_code) { |
|
444 | 444 | |
445 | 445 | // Maybe set a transaction id. |
446 | - if ( ! empty( $result->transactionResponse->transId ) ) { |
|
447 | - $invoice->set_transaction_id( $result->transactionResponse->transId ); |
|
446 | + if (!empty($result->transactionResponse->transId)) { |
|
447 | + $invoice->set_transaction_id($result->transactionResponse->transId); |
|
448 | 448 | } |
449 | 449 | |
450 | - $invoice->add_note( sprintf( __( 'Authentication code: %s (%s).', 'invoicing' ), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber ), false, false, true ); |
|
450 | + $invoice->add_note(sprintf(__('Authentication code: %s (%s).', 'invoicing'), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber), false, false, true); |
|
451 | 451 | |
452 | - if ( 1 == $response_code ) { |
|
452 | + if (1 == $response_code) { |
|
453 | 453 | return $invoice->mark_paid(); |
454 | 454 | } |
455 | 455 | |
456 | - $invoice->set_status( 'wpi-onhold' ); |
|
456 | + $invoice->set_status('wpi-onhold'); |
|
457 | 457 | $invoice->add_note( |
458 | 458 | sprintf( |
459 | - __( 'Held for review: %s', 'invoicing' ), |
|
459 | + __('Held for review: %s', 'invoicing'), |
|
460 | 460 | $result->transactionResponse->messages->message[0]->description |
461 | 461 | ) |
462 | 462 | ); |
@@ -465,11 +465,11 @@ discard block |
||
465 | 465 | |
466 | 466 | } |
467 | 467 | |
468 | - wpinv_set_error( 'card_declined', __( 'Credit card declined.', 'invoicing' ) ); |
|
468 | + wpinv_set_error('card_declined', __('Credit card declined.', 'invoicing')); |
|
469 | 469 | |
470 | - if ( ! empty( $result->transactionResponse->errors ) ) { |
|
470 | + if (!empty($result->transactionResponse->errors)) { |
|
471 | 471 | $errors = (object) $result->transactionResponse->errors; |
472 | - wpinv_set_error( $errors->error[0]->errorCode, esc_html( $errors->error[0]->errorText ) ); |
|
472 | + wpinv_set_error($errors->error[0]->errorCode, esc_html($errors->error[0]->errorText)); |
|
473 | 473 | } |
474 | 474 | |
475 | 475 | } |
@@ -481,10 +481,10 @@ discard block |
||
481 | 481 | * @param array $card Card details. |
482 | 482 | * @return array |
483 | 483 | */ |
484 | - public function get_payment_information( $card ) { |
|
484 | + public function get_payment_information($card) { |
|
485 | 485 | return array( |
486 | 486 | |
487 | - 'creditCard' => array ( |
|
487 | + 'creditCard' => array( |
|
488 | 488 | 'cardNumber' => $card['cc_number'], |
489 | 489 | 'expirationDate' => $card['cc_expire_year'] . '-' . $card['cc_expire_month'], |
490 | 490 | 'cardCode' => $card['cc_cvv2'], |
@@ -500,8 +500,8 @@ discard block |
||
500 | 500 | * @param WPInv_Invoice $invoice Invoice. |
501 | 501 | * @return string |
502 | 502 | */ |
503 | - public function get_customer_profile_meta_name( $invoice ) { |
|
504 | - return $this->is_sandbox( $invoice ) ? 'getpaid_authorizenet_sandbox_customer_profile_id' : 'getpaid_authorizenet_customer_profile_id'; |
|
503 | + public function get_customer_profile_meta_name($invoice) { |
|
504 | + return $this->is_sandbox($invoice) ? 'getpaid_authorizenet_sandbox_customer_profile_id' : 'getpaid_authorizenet_customer_profile_id'; |
|
505 | 505 | } |
506 | 506 | |
507 | 507 | /** |
@@ -512,34 +512,34 @@ discard block |
||
512 | 512 | * @param WPInv_Invoice $invoice |
513 | 513 | * @return WP_Error|string The payment profile id |
514 | 514 | */ |
515 | - public function validate_submission_data( $submission_data, $invoice ) { |
|
515 | + public function validate_submission_data($submission_data, $invoice) { |
|
516 | 516 | |
517 | 517 | // Validate authentication details. |
518 | 518 | $auth = $this->get_auth_params(); |
519 | 519 | |
520 | - if ( empty( $auth['name'] ) || empty( $auth['transactionKey'] ) ) { |
|
521 | - return new WP_Error( 'invalid_settings', __( 'Please set-up your login id and transaction key before using this gateway.', 'invoicing') ); |
|
520 | + if (empty($auth['name']) || empty($auth['transactionKey'])) { |
|
521 | + return new WP_Error('invalid_settings', __('Please set-up your login id and transaction key before using this gateway.', 'invoicing')); |
|
522 | 522 | } |
523 | 523 | |
524 | 524 | // Validate the payment method. |
525 | - if ( empty( $submission_data['getpaid-authorizenet-payment-method'] ) ) { |
|
526 | - return new WP_Error( 'invalid_payment_method', __( 'Please select a different payment method or add a new card.', 'invoicing') ); |
|
525 | + if (empty($submission_data['getpaid-authorizenet-payment-method'])) { |
|
526 | + return new WP_Error('invalid_payment_method', __('Please select a different payment method or add a new card.', 'invoicing')); |
|
527 | 527 | } |
528 | 528 | |
529 | 529 | // Are we adding a new payment method? |
530 | - if ( 'new' != $submission_data['getpaid-authorizenet-payment-method'] ) { |
|
530 | + if ('new' != $submission_data['getpaid-authorizenet-payment-method']) { |
|
531 | 531 | return $submission_data['getpaid-authorizenet-payment-method']; |
532 | 532 | } |
533 | 533 | |
534 | 534 | // Retrieve the customer profile id. |
535 | - $profile_id = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true ); |
|
535 | + $profile_id = get_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), true); |
|
536 | 536 | |
537 | 537 | // Create payment method. |
538 | - if ( empty( $profile_id ) ) { |
|
539 | - return $this->create_customer_profile( $invoice, $submission_data, ! empty( $submission_data['getpaid-authorizenet-new-payment-method'] ) ); |
|
538 | + if (empty($profile_id)) { |
|
539 | + return $this->create_customer_profile($invoice, $submission_data, !empty($submission_data['getpaid-authorizenet-new-payment-method'])); |
|
540 | 540 | } |
541 | 541 | |
542 | - return $this->create_customer_payment_profile( $profile_id, $invoice, $submission_data, ! empty( $submission_data['getpaid-authorizenet-new-payment-method'] ) ); |
|
542 | + return $this->create_customer_payment_profile($profile_id, $invoice, $submission_data, !empty($submission_data['getpaid-authorizenet-new-payment-method'])); |
|
543 | 543 | |
544 | 544 | } |
545 | 545 | |
@@ -550,32 +550,32 @@ discard block |
||
550 | 550 | * @param WPInv_Invoice $invoice Invoice. |
551 | 551 | * @return array |
552 | 552 | */ |
553 | - public function get_line_items( $invoice ) { |
|
553 | + public function get_line_items($invoice) { |
|
554 | 554 | $items = array(); |
555 | 555 | |
556 | - foreach ( $invoice->get_items() as $item ) { |
|
556 | + foreach ($invoice->get_items() as $item) { |
|
557 | 557 | |
558 | 558 | $amount = $invoice->is_renewal() ? $item->get_price() : $item->get_initial_price(); |
559 | 559 | $items[] = array( |
560 | - 'itemId' => getpaid_limit_length( $item->get_id(), 31 ), |
|
561 | - 'name' => getpaid_limit_length( $item->get_raw_name(), 31 ), |
|
562 | - 'description' => getpaid_limit_length( $item->get_description(), 255 ), |
|
563 | - 'quantity' => (string) ( $invoice->get_template() == 'amount' ? 1 : $item->get_quantity() ), |
|
560 | + 'itemId' => getpaid_limit_length($item->get_id(), 31), |
|
561 | + 'name' => getpaid_limit_length($item->get_raw_name(), 31), |
|
562 | + 'description' => getpaid_limit_length($item->get_description(), 255), |
|
563 | + 'quantity' => (string) ($invoice->get_template() == 'amount' ? 1 : $item->get_quantity()), |
|
564 | 564 | 'unitPrice' => (float) $amount, |
565 | 565 | 'taxable' => wpinv_use_taxes() && $invoice->is_taxable() && 'tax-exempt' != $item->get_vat_rule(), |
566 | 566 | ); |
567 | 567 | |
568 | 568 | } |
569 | 569 | |
570 | - foreach ( $invoice->get_fees() as $fee_name => $fee ) { |
|
570 | + foreach ($invoice->get_fees() as $fee_name => $fee) { |
|
571 | 571 | |
572 | - $amount = $invoice->is_renewal() ? $fee['recurring_fee'] : $fee['initial_fee']; |
|
572 | + $amount = $invoice->is_renewal() ? $fee['recurring_fee'] : $fee['initial_fee']; |
|
573 | 573 | |
574 | - if ( $amount > 0 ) { |
|
574 | + if ($amount > 0) { |
|
575 | 575 | $items[] = array( |
576 | - 'itemId' => getpaid_limit_length( $fee_name, 31 ), |
|
577 | - 'name' => getpaid_limit_length( $fee_name, 31 ), |
|
578 | - 'description' => getpaid_limit_length( $fee_name, 255 ), |
|
576 | + 'itemId' => getpaid_limit_length($fee_name, 31), |
|
577 | + 'name' => getpaid_limit_length($fee_name, 31), |
|
578 | + 'description' => getpaid_limit_length($fee_name, 255), |
|
579 | 579 | 'quantity' => '1', |
580 | 580 | 'unitPrice' => (float) $amount, |
581 | 581 | 'taxable' => false, |
@@ -596,36 +596,36 @@ discard block |
||
596 | 596 | * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
597 | 597 | * @return array |
598 | 598 | */ |
599 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
599 | + public function process_payment($invoice, $submission_data, $submission) { |
|
600 | 600 | |
601 | 601 | // Validate the submitted data. |
602 | - $payment_profile_id = $this->validate_submission_data( $submission_data, $invoice ); |
|
602 | + $payment_profile_id = $this->validate_submission_data($submission_data, $invoice); |
|
603 | 603 | |
604 | 604 | // Do we have an error? |
605 | - if ( is_wp_error( $payment_profile_id ) ) { |
|
606 | - wpinv_set_error( $payment_profile_id->get_error_code(), $payment_profile_id->get_error_message() ); |
|
607 | - wpinv_send_back_to_checkout( $invoice ); |
|
605 | + if (is_wp_error($payment_profile_id)) { |
|
606 | + wpinv_set_error($payment_profile_id->get_error_code(), $payment_profile_id->get_error_message()); |
|
607 | + wpinv_send_back_to_checkout($invoice); |
|
608 | 608 | } |
609 | 609 | |
610 | 610 | // Save the payment method to the order. |
611 | - update_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', $payment_profile_id ); |
|
611 | + update_post_meta($invoice->get_id(), 'getpaid_authorizenet_profile_id', $payment_profile_id); |
|
612 | 612 | |
613 | 613 | // Check if this is a subscription or not. |
614 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
615 | - if ( ! empty( $subscriptions ) ) { |
|
616 | - $this->process_subscription( $invoice, $subscriptions ); |
|
614 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
615 | + if (!empty($subscriptions)) { |
|
616 | + $this->process_subscription($invoice, $subscriptions); |
|
617 | 617 | } |
618 | 618 | |
619 | 619 | // If it is free, send to the success page. |
620 | - if ( ! $invoice->needs_payment() ) { |
|
620 | + if (!$invoice->needs_payment()) { |
|
621 | 621 | $invoice->mark_paid(); |
622 | - wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
|
622 | + wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key())); |
|
623 | 623 | } |
624 | 624 | |
625 | 625 | // Charge the payment profile. |
626 | - $this->process_initial_payment( $invoice ); |
|
626 | + $this->process_initial_payment($invoice); |
|
627 | 627 | |
628 | - wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
|
628 | + wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key())); |
|
629 | 629 | |
630 | 630 | exit; |
631 | 631 | |
@@ -636,23 +636,23 @@ discard block |
||
636 | 636 | * |
637 | 637 | * @param WPInv_Invoice $invoice Invoice. |
638 | 638 | */ |
639 | - protected function process_initial_payment( $invoice ) { |
|
639 | + protected function process_initial_payment($invoice) { |
|
640 | 640 | |
641 | - $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
642 | - $customer_profile = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true ); |
|
643 | - $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice ); |
|
641 | + $payment_profile_id = get_post_meta($invoice->get_id(), 'getpaid_authorizenet_profile_id', true); |
|
642 | + $customer_profile = get_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), true); |
|
643 | + $result = $this->charge_customer_payment_profile($customer_profile, $payment_profile_id, $invoice); |
|
644 | 644 | |
645 | 645 | // Do we have an error? |
646 | - if ( is_wp_error( $result ) ) { |
|
647 | - wpinv_set_error( $result->get_error_code(), $result->get_error_message() ); |
|
648 | - wpinv_send_back_to_checkout( $invoice ); |
|
646 | + if (is_wp_error($result)) { |
|
647 | + wpinv_set_error($result->get_error_code(), $result->get_error_message()); |
|
648 | + wpinv_send_back_to_checkout($invoice); |
|
649 | 649 | } |
650 | 650 | |
651 | 651 | // Process the response. |
652 | - $this->process_charge_response( $result, $invoice ); |
|
652 | + $this->process_charge_response($result, $invoice); |
|
653 | 653 | |
654 | - if ( wpinv_get_errors() ) { |
|
655 | - wpinv_send_back_to_checkout( $invoice ); |
|
654 | + if (wpinv_get_errors()) { |
|
655 | + wpinv_send_back_to_checkout($invoice); |
|
656 | 656 | } |
657 | 657 | |
658 | 658 | } |
@@ -663,30 +663,30 @@ discard block |
||
663 | 663 | * @param WPInv_Invoice $invoice Invoice. |
664 | 664 | * @param WPInv_Subscription[]|WPInv_Subscription $subscriptions Subscriptions. |
665 | 665 | */ |
666 | - public function process_subscription( $invoice, $subscriptions ) { |
|
666 | + public function process_subscription($invoice, $subscriptions) { |
|
667 | 667 | |
668 | 668 | // Check if there is an initial amount to charge. |
669 | - if ( (float) $invoice->get_total() > 0 ) { |
|
670 | - $this->process_initial_payment( $invoice ); |
|
669 | + if ((float) $invoice->get_total() > 0) { |
|
670 | + $this->process_initial_payment($invoice); |
|
671 | 671 | } |
672 | 672 | |
673 | 673 | // Activate the subscriptions. |
674 | - $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
674 | + $subscriptions = is_array($subscriptions) ? $subscriptions : array($subscriptions); |
|
675 | 675 | |
676 | - foreach ( $subscriptions as $subscription ) { |
|
677 | - if ( $subscription->exists() ) { |
|
678 | - $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
679 | - $expiry = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
676 | + foreach ($subscriptions as $subscription) { |
|
677 | + if ($subscription->exists()) { |
|
678 | + $duration = strtotime($subscription->get_expiration()) - strtotime($subscription->get_date_created()); |
|
679 | + $expiry = date('Y-m-d H:i:s', (current_time('timestamp') + $duration)); |
|
680 | 680 | |
681 | - $subscription->set_next_renewal_date( $expiry ); |
|
682 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
683 | - $subscription->set_profile_id( $invoice->generate_key( 'authnet_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ) ); |
|
681 | + $subscription->set_next_renewal_date($expiry); |
|
682 | + $subscription->set_date_created(current_time('mysql')); |
|
683 | + $subscription->set_profile_id($invoice->generate_key('authnet_sub_' . $invoice->get_id() . '_' . $subscription->get_id())); |
|
684 | 684 | $subscription->activate(); |
685 | 685 | } |
686 | 686 | } |
687 | 687 | |
688 | 688 | // Redirect to the success page. |
689 | - wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
|
689 | + wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key())); |
|
690 | 690 | |
691 | 691 | } |
692 | 692 | |
@@ -696,11 +696,11 @@ discard block |
||
696 | 696 | * |
697 | 697 | * @param WPInv_Subscription $subscription |
698 | 698 | */ |
699 | - public function maybe_renew_subscription( $subscription ) { |
|
699 | + public function maybe_renew_subscription($subscription) { |
|
700 | 700 | |
701 | 701 | // Ensure its our subscription && it's active. |
702 | - if ( $this->id == $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
|
703 | - $this->renew_subscription( $subscription ); |
|
702 | + if ($this->id == $subscription->get_gateway() && $subscription->has_status('active trialling')) { |
|
703 | + $this->renew_subscription($subscription); |
|
704 | 704 | } |
705 | 705 | |
706 | 706 | } |
@@ -710,28 +710,28 @@ discard block |
||
710 | 710 | * |
711 | 711 | * @param WPInv_Subscription $subscription |
712 | 712 | */ |
713 | - public function renew_subscription( $subscription ) { |
|
713 | + public function renew_subscription($subscription) { |
|
714 | 714 | |
715 | 715 | // Generate the renewal invoice. |
716 | 716 | $new_invoice = $subscription->create_payment(); |
717 | 717 | $old_invoice = $subscription->get_parent_payment(); |
718 | 718 | |
719 | - if ( empty( $new_invoice ) ) { |
|
720 | - $old_invoice->add_note( __( 'Error generating a renewal invoice.', 'invoicing' ), false, false, false ); |
|
719 | + if (empty($new_invoice)) { |
|
720 | + $old_invoice->add_note(__('Error generating a renewal invoice.', 'invoicing'), false, false, false); |
|
721 | 721 | $subscription->failing(); |
722 | 722 | return; |
723 | 723 | } |
724 | 724 | |
725 | 725 | // Charge the payment method. |
726 | - $payment_profile_id = get_post_meta( $old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
727 | - $customer_profile = get_user_meta( $old_invoice->get_user_id(), $this->get_customer_profile_meta_name( $old_invoice ), true ); |
|
728 | - $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $new_invoice ); |
|
726 | + $payment_profile_id = get_post_meta($old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true); |
|
727 | + $customer_profile = get_user_meta($old_invoice->get_user_id(), $this->get_customer_profile_meta_name($old_invoice), true); |
|
728 | + $result = $this->charge_customer_payment_profile($customer_profile, $payment_profile_id, $new_invoice); |
|
729 | 729 | |
730 | 730 | // Do we have an error? |
731 | - if ( is_wp_error( $result ) ) { |
|
731 | + if (is_wp_error($result)) { |
|
732 | 732 | |
733 | 733 | $old_invoice->add_note( |
734 | - sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), $result->get_error_message() ), |
|
734 | + sprintf(__('Error renewing subscription : ( %s ).', 'invoicing'), $result->get_error_message()), |
|
735 | 735 | true, |
736 | 736 | false, |
737 | 737 | true |
@@ -742,12 +742,12 @@ discard block |
||
742 | 742 | } |
743 | 743 | |
744 | 744 | // Process the response. |
745 | - $this->process_charge_response( $result, $new_invoice ); |
|
745 | + $this->process_charge_response($result, $new_invoice); |
|
746 | 746 | |
747 | - if ( wpinv_get_errors() ) { |
|
747 | + if (wpinv_get_errors()) { |
|
748 | 748 | |
749 | 749 | $old_invoice->add_note( |
750 | - sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), getpaid_get_errors_html() ), |
|
750 | + sprintf(__('Error renewing subscription : ( %s ).', 'invoicing'), getpaid_get_errors_html()), |
|
751 | 751 | true, |
752 | 752 | false, |
753 | 753 | true |
@@ -757,7 +757,7 @@ discard block |
||
757 | 757 | |
758 | 758 | } |
759 | 759 | |
760 | - $subscription->add_payment( array(), $new_invoice ); |
|
760 | + $subscription->add_payment(array(), $new_invoice); |
|
761 | 761 | $subscription->renew(); |
762 | 762 | } |
763 | 763 | |
@@ -768,34 +768,34 @@ discard block |
||
768 | 768 | * @param GetPaid_Form_Item[] $items |
769 | 769 | * @return WPInv_Invoice |
770 | 770 | */ |
771 | - public function process_addons( $invoice, $items ) { |
|
771 | + public function process_addons($invoice, $items) { |
|
772 | 772 | |
773 | 773 | global $getpaid_authorize_addons; |
774 | 774 | |
775 | 775 | $getpaid_authorize_addons = array(); |
776 | - foreach ( $items as $item ) { |
|
776 | + foreach ($items as $item) { |
|
777 | 777 | |
778 | - if ( is_null( $invoice->get_item( $item->get_id() ) ) && ! is_wp_error( $invoice->add_item( $item ) ) ) { |
|
778 | + if (is_null($invoice->get_item($item->get_id())) && !is_wp_error($invoice->add_item($item))) { |
|
779 | 779 | $getpaid_authorize_addons[] = $item; |
780 | 780 | } |
781 | 781 | |
782 | 782 | } |
783 | 783 | |
784 | - if ( empty( $getpaid_authorize_addons ) ) { |
|
784 | + if (empty($getpaid_authorize_addons)) { |
|
785 | 785 | return; |
786 | 786 | } |
787 | 787 | |
788 | 788 | $invoice->recalculate_total(); |
789 | 789 | |
790 | - $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
791 | - $customer_profile = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true ); |
|
790 | + $payment_profile_id = get_post_meta($invoice->get_id(), 'getpaid_authorizenet_profile_id', true); |
|
791 | + $customer_profile = get_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), true); |
|
792 | 792 | |
793 | - add_filter( 'getpaid_authorizenet_charge_customer_payment_profile_args', array( $this, 'filter_addons_request' ), 10, 2 ); |
|
794 | - $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice ); |
|
795 | - remove_filter( 'getpaid_authorizenet_charge_customer_payment_profile_args', array( $this, 'filter_addons_request' ) ); |
|
793 | + add_filter('getpaid_authorizenet_charge_customer_payment_profile_args', array($this, 'filter_addons_request'), 10, 2); |
|
794 | + $result = $this->charge_customer_payment_profile($customer_profile, $payment_profile_id, $invoice); |
|
795 | + remove_filter('getpaid_authorizenet_charge_customer_payment_profile_args', array($this, 'filter_addons_request')); |
|
796 | 796 | |
797 | - if ( is_wp_error( $result ) ) { |
|
798 | - wpinv_set_error( $result->get_error_code(), $result->get_error_message() ); |
|
797 | + if (is_wp_error($result)) { |
|
798 | + wpinv_set_error($result->get_error_code(), $result->get_error_message()); |
|
799 | 799 | return; |
800 | 800 | } |
801 | 801 | |
@@ -808,19 +808,19 @@ discard block |
||
808 | 808 | * @param array $args |
809 | 809 | * @return array |
810 | 810 | */ |
811 | - public function filter_addons_request( $args ) { |
|
811 | + public function filter_addons_request($args) { |
|
812 | 812 | |
813 | 813 | global $getpaid_authorize_addons; |
814 | 814 | $total = 0; |
815 | 815 | |
816 | - foreach ( $getpaid_authorize_addons as $addon ) { |
|
816 | + foreach ($getpaid_authorize_addons as $addon) { |
|
817 | 817 | $total += $addon->get_sub_total(); |
818 | 818 | } |
819 | 819 | |
820 | 820 | $args['createTransactionRequest']['transactionRequest']['amount'] = $total; |
821 | 821 | |
822 | - if ( isset( $args['createTransactionRequest']['transactionRequest']['tax'] ) ) { |
|
823 | - unset( $args['createTransactionRequest']['transactionRequest']['tax'] ); |
|
822 | + if (isset($args['createTransactionRequest']['transactionRequest']['tax'])) { |
|
823 | + unset($args['createTransactionRequest']['transactionRequest']['tax']); |
|
824 | 824 | } |
825 | 825 | |
826 | 826 | return $args; |
@@ -833,7 +833,7 @@ discard block |
||
833 | 833 | public function sandbox_notice() { |
834 | 834 | |
835 | 835 | return sprintf( |
836 | - __( 'SANDBOX ENABLED. You can use sandbox testing details only. See the %sAuthorize.NET Sandbox Testing Guide%s for more details.', 'invoicing' ), |
|
836 | + __('SANDBOX ENABLED. You can use sandbox testing details only. See the %sAuthorize.NET Sandbox Testing Guide%s for more details.', 'invoicing'), |
|
837 | 837 | '<a href="https://developer.authorize.net/hello_world/testing_guide.html">', |
838 | 838 | '</a>' |
839 | 839 | ); |
@@ -845,42 +845,42 @@ discard block |
||
845 | 845 | * |
846 | 846 | * @param array $admin_settings |
847 | 847 | */ |
848 | - public function admin_settings( $admin_settings ) { |
|
848 | + public function admin_settings($admin_settings) { |
|
849 | 849 | |
850 | 850 | $currencies = sprintf( |
851 | - __( 'Supported Currencies: %s', 'invoicing' ), |
|
852 | - implode( ', ', $this->currencies ) |
|
851 | + __('Supported Currencies: %s', 'invoicing'), |
|
852 | + implode(', ', $this->currencies) |
|
853 | 853 | ); |
854 | 854 | |
855 | 855 | $admin_settings['authorizenet_active']['desc'] .= " ($currencies)"; |
856 | - $admin_settings['authorizenet_desc']['std'] = __( 'Pay securely using your credit or debit card.', 'invoicing' ); |
|
856 | + $admin_settings['authorizenet_desc']['std'] = __('Pay securely using your credit or debit card.', 'invoicing'); |
|
857 | 857 | |
858 | 858 | $admin_settings['authorizenet_login_id'] = array( |
859 | 859 | 'type' => 'text', |
860 | 860 | 'id' => 'authorizenet_login_id', |
861 | - 'name' => __( 'API Login ID', 'invoicing' ), |
|
862 | - 'desc' => '<a href="https://support.authorize.net/s/article/How-do-I-obtain-my-API-Login-ID-and-Transaction-Key"><em>' . __( 'How do I obtain my API Login ID and Transaction Key?', 'invoicing' ) . '</em></a>', |
|
861 | + 'name' => __('API Login ID', 'invoicing'), |
|
862 | + 'desc' => '<a href="https://support.authorize.net/s/article/How-do-I-obtain-my-API-Login-ID-and-Transaction-Key"><em>' . __('How do I obtain my API Login ID and Transaction Key?', 'invoicing') . '</em></a>', |
|
863 | 863 | ); |
864 | 864 | |
865 | 865 | $admin_settings['authorizenet_transaction_key'] = array( |
866 | 866 | 'type' => 'text', |
867 | 867 | 'id' => 'authorizenet_transaction_key', |
868 | - 'name' => __( 'Transaction Key', 'invoicing' ), |
|
868 | + 'name' => __('Transaction Key', 'invoicing'), |
|
869 | 869 | ); |
870 | 870 | |
871 | 871 | $admin_settings['authorizenet_signature_key'] = array( |
872 | 872 | 'type' => 'text', |
873 | 873 | 'id' => 'authorizenet_signature_key', |
874 | - 'name' => __( 'Signature Key', 'invoicing' ), |
|
875 | - 'desc' => '<a href="https://support.authorize.net/s/article/What-is-a-Signature-Key"><em>' . __( 'Learn more.', 'invoicing' ) . '</em></a>', |
|
874 | + 'name' => __('Signature Key', 'invoicing'), |
|
875 | + 'desc' => '<a href="https://support.authorize.net/s/article/What-is-a-Signature-Key"><em>' . __('Learn more.', 'invoicing') . '</em></a>', |
|
876 | 876 | ); |
877 | 877 | |
878 | 878 | $admin_settings['authorizenet_ipn_url'] = array( |
879 | 879 | 'type' => 'ipn_url', |
880 | 880 | 'id' => 'authorizenet_ipn_url', |
881 | - 'name' => __( 'Webhook URL', 'invoicing' ), |
|
881 | + 'name' => __('Webhook URL', 'invoicing'), |
|
882 | 882 | 'std' => $this->notify_url, |
883 | - 'desc' => __( 'Create a new webhook using this URL as the endpoint URL and set it to receive all payment events.', 'invoicing' ) . ' <a href="https://support.authorize.net/s/article/How-do-I-add-edit-Webhook-notification-end-points"><em>' . __( 'Learn more.', 'invoicing' ) . '</em></a>', |
|
883 | + 'desc' => __('Create a new webhook using this URL as the endpoint URL and set it to receive all payment events.', 'invoicing') . ' <a href="https://support.authorize.net/s/article/How-do-I-add-edit-Webhook-notification-end-points"><em>' . __('Learn more.', 'invoicing') . '</em></a>', |
|
884 | 884 | 'custom' => 'authorizenet', |
885 | 885 | 'readonly' => true, |
886 | 886 | ); |
@@ -16,165 +16,165 @@ |
||
16 | 16 | */ |
17 | 17 | class GetPaid_MaxMind_Geolocation { |
18 | 18 | |
19 | - /** |
|
20 | - * The service responsible for interacting with the MaxMind database. |
|
21 | - * |
|
22 | - * @var GetPaid_MaxMind_Database_Service |
|
23 | - */ |
|
24 | - private $database_service; |
|
25 | - |
|
26 | - /** |
|
27 | - * Initialize the integration. |
|
28 | - */ |
|
29 | - public function __construct() { |
|
30 | - |
|
31 | - /** |
|
32 | - * Supports overriding the database service to be used. |
|
33 | - * |
|
34 | - * @since 1.0.19 |
|
35 | - * @return mixed|null The geolocation database service. |
|
36 | - */ |
|
37 | - $this->database_service = apply_filters( 'getpaid_maxmind_geolocation_database_service', null ); |
|
38 | - if ( null === $this->database_service ) { |
|
39 | - $this->database_service = new GetPaid_MaxMind_Database_Service( $this->get_database_prefix() ); |
|
40 | - } |
|
41 | - |
|
42 | - // Bind to the scheduled updater action. |
|
43 | - add_action( 'getpaid_update_geoip_databases', array( $this, 'update_database' ) ); |
|
44 | - |
|
45 | - // Bind to the geolocation filter for MaxMind database lookups. |
|
46 | - add_filter( 'getpaid_get_geolocation', array( $this, 'get_geolocation' ), 10, 2 ); |
|
47 | - |
|
48 | - // Handle maxmind key updates. |
|
49 | - add_filter( 'wpinv_settings_sanitize_maxmind_license_key', array( $this, 'handle_key_updates' ) ); |
|
50 | - |
|
51 | - } |
|
52 | - |
|
53 | - /** |
|
54 | - * Get database service. |
|
55 | - * |
|
56 | - * @return GetPaid_MaxMind_Database_Service|null |
|
57 | - */ |
|
58 | - public function get_database_service() { |
|
59 | - return $this->database_service; |
|
60 | - } |
|
61 | - |
|
62 | - /** |
|
63 | - * Checks to make sure that the license key is valid. |
|
64 | - * |
|
65 | - * @param string $license_key The new license key. |
|
66 | - * @return string |
|
67 | - */ |
|
68 | - public function handle_key_updates( $license_key ) { |
|
69 | - |
|
70 | - // Trim whitespaces and strip slashes. |
|
71 | - $license_key = trim( $license_key ); |
|
72 | - |
|
73 | - // Abort if the license key is empty or unchanged. |
|
74 | - if ( empty( $license_key ) ) { |
|
75 | - return $license_key; |
|
76 | - } |
|
77 | - |
|
78 | - // Abort if a database exists and the license key is unchaged. |
|
79 | - if ( file_exists( $this->database_service->get_database_path() && $license_key == wpinv_get_option( 'maxmind_license_key' ) ) ) { |
|
80 | - return $license_key; |
|
81 | - } |
|
82 | - |
|
83 | - // Check the license key by attempting to download the Geolocation database. |
|
84 | - $tmp_database_path = $this->database_service->download_database( $license_key ); |
|
85 | - if ( is_wp_error( $tmp_database_path ) ) { |
|
86 | - getpaid_admin()->show_error( $tmp_database_path->get_error_message() ); |
|
87 | - return $license_key; |
|
88 | - } |
|
89 | - |
|
90 | - $this->update_database( /** @scrutinizer ignore-type */ $tmp_database_path ); |
|
91 | - |
|
92 | - return $license_key; |
|
93 | - } |
|
94 | - |
|
95 | - /** |
|
96 | - * Updates the database used for geolocation queries. |
|
97 | - * |
|
98 | - * @param string $tmp_database_path Temporary database path. |
|
99 | - */ |
|
100 | - public function update_database( $tmp_database_path = null ) { |
|
101 | - |
|
102 | - // Allow us to easily interact with the filesystem. |
|
103 | - require_once ABSPATH . 'wp-admin/includes/file.php'; |
|
104 | - WP_Filesystem(); |
|
105 | - global $wp_filesystem; |
|
106 | - |
|
107 | - // Remove any existing archives to comply with the MaxMind TOS. |
|
108 | - $target_database_path = $this->database_service->get_database_path(); |
|
109 | - |
|
110 | - // If there's no database path, we can't store the database. |
|
111 | - if ( empty( $target_database_path ) ) { |
|
112 | - return; |
|
113 | - } |
|
114 | - |
|
115 | - if ( $wp_filesystem->exists( $target_database_path ) ) { |
|
116 | - $wp_filesystem->delete( $target_database_path ); |
|
117 | - } |
|
118 | - |
|
119 | - // We can't download a database if there's no license key configured. |
|
120 | - $license_key = wpinv_get_option( 'maxmind_license_key' ); |
|
121 | - if ( empty( $license_key ) ) { |
|
122 | - return; |
|
123 | - } |
|
124 | - |
|
125 | - if ( empty( $tmp_database_path ) ) { |
|
126 | - $tmp_database_path = $this->database_service->download_database( $license_key ); |
|
127 | - } |
|
128 | - |
|
129 | - if ( is_wp_error( $tmp_database_path ) ) { |
|
130 | - wpinv_error_log( $tmp_database_path->get_error_message() ); |
|
131 | - return; |
|
132 | - } |
|
133 | - |
|
134 | - // Move the new database into position. |
|
135 | - $wp_filesystem->move( $tmp_database_path, $target_database_path, true ); |
|
136 | - $wp_filesystem->delete( dirname( $tmp_database_path ) ); |
|
137 | - } |
|
138 | - |
|
139 | - /** |
|
140 | - * Performs a geolocation lookup against the MaxMind database for the given IP address. |
|
141 | - * |
|
142 | - * @param array $data Geolocation data. |
|
143 | - * @param string $ip_address The IP address to geolocate. |
|
144 | - * @return array Geolocation including country code, state, city and postcode based on an IP address. |
|
145 | - */ |
|
146 | - public function get_geolocation( $data, $ip_address ) { |
|
147 | - |
|
148 | - if ( ! empty( $data['country'] ) || empty( $ip_address ) ) { |
|
149 | - return $data; |
|
150 | - } |
|
151 | - |
|
152 | - $country_code = $this->database_service->get_iso_country_code_for_ip( $ip_address ); |
|
153 | - |
|
154 | - return array( |
|
155 | - 'country' => $country_code, |
|
156 | - 'state' => '', |
|
157 | - 'city' => '', |
|
158 | - 'postcode' => '', |
|
159 | - ); |
|
160 | - |
|
161 | - } |
|
162 | - |
|
163 | - /** |
|
164 | - * Fetches the prefix for the MaxMind database file. |
|
165 | - * |
|
166 | - * @return string |
|
167 | - */ |
|
168 | - private function get_database_prefix() { |
|
169 | - |
|
170 | - $prefix = get_option( 'wpinv_maxmind_database_prefix' ); |
|
171 | - |
|
172 | - if ( empty( $prefix ) ) { |
|
173 | - $prefix = md5( uniqid( 'wpinv' ) ); |
|
174 | - update_option( 'wpinv_maxmind_database_prefix', $prefix ); |
|
175 | - } |
|
176 | - |
|
177 | - return $prefix; |
|
178 | - } |
|
19 | + /** |
|
20 | + * The service responsible for interacting with the MaxMind database. |
|
21 | + * |
|
22 | + * @var GetPaid_MaxMind_Database_Service |
|
23 | + */ |
|
24 | + private $database_service; |
|
25 | + |
|
26 | + /** |
|
27 | + * Initialize the integration. |
|
28 | + */ |
|
29 | + public function __construct() { |
|
30 | + |
|
31 | + /** |
|
32 | + * Supports overriding the database service to be used. |
|
33 | + * |
|
34 | + * @since 1.0.19 |
|
35 | + * @return mixed|null The geolocation database service. |
|
36 | + */ |
|
37 | + $this->database_service = apply_filters( 'getpaid_maxmind_geolocation_database_service', null ); |
|
38 | + if ( null === $this->database_service ) { |
|
39 | + $this->database_service = new GetPaid_MaxMind_Database_Service( $this->get_database_prefix() ); |
|
40 | + } |
|
41 | + |
|
42 | + // Bind to the scheduled updater action. |
|
43 | + add_action( 'getpaid_update_geoip_databases', array( $this, 'update_database' ) ); |
|
44 | + |
|
45 | + // Bind to the geolocation filter for MaxMind database lookups. |
|
46 | + add_filter( 'getpaid_get_geolocation', array( $this, 'get_geolocation' ), 10, 2 ); |
|
47 | + |
|
48 | + // Handle maxmind key updates. |
|
49 | + add_filter( 'wpinv_settings_sanitize_maxmind_license_key', array( $this, 'handle_key_updates' ) ); |
|
50 | + |
|
51 | + } |
|
52 | + |
|
53 | + /** |
|
54 | + * Get database service. |
|
55 | + * |
|
56 | + * @return GetPaid_MaxMind_Database_Service|null |
|
57 | + */ |
|
58 | + public function get_database_service() { |
|
59 | + return $this->database_service; |
|
60 | + } |
|
61 | + |
|
62 | + /** |
|
63 | + * Checks to make sure that the license key is valid. |
|
64 | + * |
|
65 | + * @param string $license_key The new license key. |
|
66 | + * @return string |
|
67 | + */ |
|
68 | + public function handle_key_updates( $license_key ) { |
|
69 | + |
|
70 | + // Trim whitespaces and strip slashes. |
|
71 | + $license_key = trim( $license_key ); |
|
72 | + |
|
73 | + // Abort if the license key is empty or unchanged. |
|
74 | + if ( empty( $license_key ) ) { |
|
75 | + return $license_key; |
|
76 | + } |
|
77 | + |
|
78 | + // Abort if a database exists and the license key is unchaged. |
|
79 | + if ( file_exists( $this->database_service->get_database_path() && $license_key == wpinv_get_option( 'maxmind_license_key' ) ) ) { |
|
80 | + return $license_key; |
|
81 | + } |
|
82 | + |
|
83 | + // Check the license key by attempting to download the Geolocation database. |
|
84 | + $tmp_database_path = $this->database_service->download_database( $license_key ); |
|
85 | + if ( is_wp_error( $tmp_database_path ) ) { |
|
86 | + getpaid_admin()->show_error( $tmp_database_path->get_error_message() ); |
|
87 | + return $license_key; |
|
88 | + } |
|
89 | + |
|
90 | + $this->update_database( /** @scrutinizer ignore-type */ $tmp_database_path ); |
|
91 | + |
|
92 | + return $license_key; |
|
93 | + } |
|
94 | + |
|
95 | + /** |
|
96 | + * Updates the database used for geolocation queries. |
|
97 | + * |
|
98 | + * @param string $tmp_database_path Temporary database path. |
|
99 | + */ |
|
100 | + public function update_database( $tmp_database_path = null ) { |
|
101 | + |
|
102 | + // Allow us to easily interact with the filesystem. |
|
103 | + require_once ABSPATH . 'wp-admin/includes/file.php'; |
|
104 | + WP_Filesystem(); |
|
105 | + global $wp_filesystem; |
|
106 | + |
|
107 | + // Remove any existing archives to comply with the MaxMind TOS. |
|
108 | + $target_database_path = $this->database_service->get_database_path(); |
|
109 | + |
|
110 | + // If there's no database path, we can't store the database. |
|
111 | + if ( empty( $target_database_path ) ) { |
|
112 | + return; |
|
113 | + } |
|
114 | + |
|
115 | + if ( $wp_filesystem->exists( $target_database_path ) ) { |
|
116 | + $wp_filesystem->delete( $target_database_path ); |
|
117 | + } |
|
118 | + |
|
119 | + // We can't download a database if there's no license key configured. |
|
120 | + $license_key = wpinv_get_option( 'maxmind_license_key' ); |
|
121 | + if ( empty( $license_key ) ) { |
|
122 | + return; |
|
123 | + } |
|
124 | + |
|
125 | + if ( empty( $tmp_database_path ) ) { |
|
126 | + $tmp_database_path = $this->database_service->download_database( $license_key ); |
|
127 | + } |
|
128 | + |
|
129 | + if ( is_wp_error( $tmp_database_path ) ) { |
|
130 | + wpinv_error_log( $tmp_database_path->get_error_message() ); |
|
131 | + return; |
|
132 | + } |
|
133 | + |
|
134 | + // Move the new database into position. |
|
135 | + $wp_filesystem->move( $tmp_database_path, $target_database_path, true ); |
|
136 | + $wp_filesystem->delete( dirname( $tmp_database_path ) ); |
|
137 | + } |
|
138 | + |
|
139 | + /** |
|
140 | + * Performs a geolocation lookup against the MaxMind database for the given IP address. |
|
141 | + * |
|
142 | + * @param array $data Geolocation data. |
|
143 | + * @param string $ip_address The IP address to geolocate. |
|
144 | + * @return array Geolocation including country code, state, city and postcode based on an IP address. |
|
145 | + */ |
|
146 | + public function get_geolocation( $data, $ip_address ) { |
|
147 | + |
|
148 | + if ( ! empty( $data['country'] ) || empty( $ip_address ) ) { |
|
149 | + return $data; |
|
150 | + } |
|
151 | + |
|
152 | + $country_code = $this->database_service->get_iso_country_code_for_ip( $ip_address ); |
|
153 | + |
|
154 | + return array( |
|
155 | + 'country' => $country_code, |
|
156 | + 'state' => '', |
|
157 | + 'city' => '', |
|
158 | + 'postcode' => '', |
|
159 | + ); |
|
160 | + |
|
161 | + } |
|
162 | + |
|
163 | + /** |
|
164 | + * Fetches the prefix for the MaxMind database file. |
|
165 | + * |
|
166 | + * @return string |
|
167 | + */ |
|
168 | + private function get_database_prefix() { |
|
169 | + |
|
170 | + $prefix = get_option( 'wpinv_maxmind_database_prefix' ); |
|
171 | + |
|
172 | + if ( empty( $prefix ) ) { |
|
173 | + $prefix = md5( uniqid( 'wpinv' ) ); |
|
174 | + update_option( 'wpinv_maxmind_database_prefix', $prefix ); |
|
175 | + } |
|
176 | + |
|
177 | + return $prefix; |
|
178 | + } |
|
179 | 179 | |
180 | 180 | } |
@@ -7,7 +7,7 @@ discard block |
||
7 | 7 | * |
8 | 8 | */ |
9 | 9 | |
10 | -defined( 'ABSPATH' ) || exit; |
|
10 | +defined('ABSPATH') || exit; |
|
11 | 11 | |
12 | 12 | /** |
13 | 13 | * Uses MaxMind for Geolocation |
@@ -34,19 +34,19 @@ discard block |
||
34 | 34 | * @since 1.0.19 |
35 | 35 | * @return mixed|null The geolocation database service. |
36 | 36 | */ |
37 | - $this->database_service = apply_filters( 'getpaid_maxmind_geolocation_database_service', null ); |
|
38 | - if ( null === $this->database_service ) { |
|
39 | - $this->database_service = new GetPaid_MaxMind_Database_Service( $this->get_database_prefix() ); |
|
37 | + $this->database_service = apply_filters('getpaid_maxmind_geolocation_database_service', null); |
|
38 | + if (null === $this->database_service) { |
|
39 | + $this->database_service = new GetPaid_MaxMind_Database_Service($this->get_database_prefix()); |
|
40 | 40 | } |
41 | 41 | |
42 | 42 | // Bind to the scheduled updater action. |
43 | - add_action( 'getpaid_update_geoip_databases', array( $this, 'update_database' ) ); |
|
43 | + add_action('getpaid_update_geoip_databases', array($this, 'update_database')); |
|
44 | 44 | |
45 | 45 | // Bind to the geolocation filter for MaxMind database lookups. |
46 | - add_filter( 'getpaid_get_geolocation', array( $this, 'get_geolocation' ), 10, 2 ); |
|
46 | + add_filter('getpaid_get_geolocation', array($this, 'get_geolocation'), 10, 2); |
|
47 | 47 | |
48 | 48 | // Handle maxmind key updates. |
49 | - add_filter( 'wpinv_settings_sanitize_maxmind_license_key', array( $this, 'handle_key_updates' ) ); |
|
49 | + add_filter('wpinv_settings_sanitize_maxmind_license_key', array($this, 'handle_key_updates')); |
|
50 | 50 | |
51 | 51 | } |
52 | 52 | |
@@ -65,29 +65,29 @@ discard block |
||
65 | 65 | * @param string $license_key The new license key. |
66 | 66 | * @return string |
67 | 67 | */ |
68 | - public function handle_key_updates( $license_key ) { |
|
68 | + public function handle_key_updates($license_key) { |
|
69 | 69 | |
70 | 70 | // Trim whitespaces and strip slashes. |
71 | - $license_key = trim( $license_key ); |
|
71 | + $license_key = trim($license_key); |
|
72 | 72 | |
73 | 73 | // Abort if the license key is empty or unchanged. |
74 | - if ( empty( $license_key ) ) { |
|
74 | + if (empty($license_key)) { |
|
75 | 75 | return $license_key; |
76 | 76 | } |
77 | 77 | |
78 | 78 | // Abort if a database exists and the license key is unchaged. |
79 | - if ( file_exists( $this->database_service->get_database_path() && $license_key == wpinv_get_option( 'maxmind_license_key' ) ) ) { |
|
79 | + if (file_exists($this->database_service->get_database_path() && $license_key == wpinv_get_option('maxmind_license_key'))) { |
|
80 | 80 | return $license_key; |
81 | 81 | } |
82 | 82 | |
83 | 83 | // Check the license key by attempting to download the Geolocation database. |
84 | - $tmp_database_path = $this->database_service->download_database( $license_key ); |
|
85 | - if ( is_wp_error( $tmp_database_path ) ) { |
|
86 | - getpaid_admin()->show_error( $tmp_database_path->get_error_message() ); |
|
84 | + $tmp_database_path = $this->database_service->download_database($license_key); |
|
85 | + if (is_wp_error($tmp_database_path)) { |
|
86 | + getpaid_admin()->show_error($tmp_database_path->get_error_message()); |
|
87 | 87 | return $license_key; |
88 | 88 | } |
89 | 89 | |
90 | - $this->update_database( /** @scrutinizer ignore-type */ $tmp_database_path ); |
|
90 | + $this->update_database(/** @scrutinizer ignore-type */ $tmp_database_path); |
|
91 | 91 | |
92 | 92 | return $license_key; |
93 | 93 | } |
@@ -97,7 +97,7 @@ discard block |
||
97 | 97 | * |
98 | 98 | * @param string $tmp_database_path Temporary database path. |
99 | 99 | */ |
100 | - public function update_database( $tmp_database_path = null ) { |
|
100 | + public function update_database($tmp_database_path = null) { |
|
101 | 101 | |
102 | 102 | // Allow us to easily interact with the filesystem. |
103 | 103 | require_once ABSPATH . 'wp-admin/includes/file.php'; |
@@ -108,32 +108,32 @@ discard block |
||
108 | 108 | $target_database_path = $this->database_service->get_database_path(); |
109 | 109 | |
110 | 110 | // If there's no database path, we can't store the database. |
111 | - if ( empty( $target_database_path ) ) { |
|
111 | + if (empty($target_database_path)) { |
|
112 | 112 | return; |
113 | 113 | } |
114 | 114 | |
115 | - if ( $wp_filesystem->exists( $target_database_path ) ) { |
|
116 | - $wp_filesystem->delete( $target_database_path ); |
|
115 | + if ($wp_filesystem->exists($target_database_path)) { |
|
116 | + $wp_filesystem->delete($target_database_path); |
|
117 | 117 | } |
118 | 118 | |
119 | 119 | // We can't download a database if there's no license key configured. |
120 | - $license_key = wpinv_get_option( 'maxmind_license_key' ); |
|
121 | - if ( empty( $license_key ) ) { |
|
120 | + $license_key = wpinv_get_option('maxmind_license_key'); |
|
121 | + if (empty($license_key)) { |
|
122 | 122 | return; |
123 | 123 | } |
124 | 124 | |
125 | - if ( empty( $tmp_database_path ) ) { |
|
126 | - $tmp_database_path = $this->database_service->download_database( $license_key ); |
|
125 | + if (empty($tmp_database_path)) { |
|
126 | + $tmp_database_path = $this->database_service->download_database($license_key); |
|
127 | 127 | } |
128 | 128 | |
129 | - if ( is_wp_error( $tmp_database_path ) ) { |
|
130 | - wpinv_error_log( $tmp_database_path->get_error_message() ); |
|
129 | + if (is_wp_error($tmp_database_path)) { |
|
130 | + wpinv_error_log($tmp_database_path->get_error_message()); |
|
131 | 131 | return; |
132 | 132 | } |
133 | 133 | |
134 | 134 | // Move the new database into position. |
135 | - $wp_filesystem->move( $tmp_database_path, $target_database_path, true ); |
|
136 | - $wp_filesystem->delete( dirname( $tmp_database_path ) ); |
|
135 | + $wp_filesystem->move($tmp_database_path, $target_database_path, true); |
|
136 | + $wp_filesystem->delete(dirname($tmp_database_path)); |
|
137 | 137 | } |
138 | 138 | |
139 | 139 | /** |
@@ -143,13 +143,13 @@ discard block |
||
143 | 143 | * @param string $ip_address The IP address to geolocate. |
144 | 144 | * @return array Geolocation including country code, state, city and postcode based on an IP address. |
145 | 145 | */ |
146 | - public function get_geolocation( $data, $ip_address ) { |
|
146 | + public function get_geolocation($data, $ip_address) { |
|
147 | 147 | |
148 | - if ( ! empty( $data['country'] ) || empty( $ip_address ) ) { |
|
148 | + if (!empty($data['country']) || empty($ip_address)) { |
|
149 | 149 | return $data; |
150 | 150 | } |
151 | 151 | |
152 | - $country_code = $this->database_service->get_iso_country_code_for_ip( $ip_address ); |
|
152 | + $country_code = $this->database_service->get_iso_country_code_for_ip($ip_address); |
|
153 | 153 | |
154 | 154 | return array( |
155 | 155 | 'country' => $country_code, |
@@ -167,11 +167,11 @@ discard block |
||
167 | 167 | */ |
168 | 168 | private function get_database_prefix() { |
169 | 169 | |
170 | - $prefix = get_option( 'wpinv_maxmind_database_prefix' ); |
|
170 | + $prefix = get_option('wpinv_maxmind_database_prefix'); |
|
171 | 171 | |
172 | - if ( empty( $prefix ) ) { |
|
173 | - $prefix = md5( uniqid( 'wpinv' ) ); |
|
174 | - update_option( 'wpinv_maxmind_database_prefix', $prefix ); |
|
172 | + if (empty($prefix)) { |
|
173 | + $prefix = md5(uniqid('wpinv')); |
|
174 | + update_option('wpinv_maxmind_database_prefix', $prefix); |
|
175 | 175 | } |
176 | 176 | |
177 | 177 | return $prefix; |
@@ -13,30 +13,30 @@ discard block |
||
13 | 13 | class GetPaid_Manual_Gateway extends GetPaid_Payment_Gateway { |
14 | 14 | |
15 | 15 | /** |
16 | - * Payment method id. |
|
17 | - * |
|
18 | - * @var string |
|
19 | - */ |
|
16 | + * Payment method id. |
|
17 | + * |
|
18 | + * @var string |
|
19 | + */ |
|
20 | 20 | public $id = 'manual'; |
21 | 21 | |
22 | 22 | /** |
23 | - * An array of features that this gateway supports. |
|
24 | - * |
|
25 | - * @var array |
|
26 | - */ |
|
23 | + * An array of features that this gateway supports. |
|
24 | + * |
|
25 | + * @var array |
|
26 | + */ |
|
27 | 27 | protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups' ); |
28 | 28 | |
29 | 29 | /** |
30 | - * Payment method order. |
|
31 | - * |
|
32 | - * @var int |
|
33 | - */ |
|
34 | - public $order = 11; |
|
30 | + * Payment method order. |
|
31 | + * |
|
32 | + * @var int |
|
33 | + */ |
|
34 | + public $order = 11; |
|
35 | 35 | |
36 | 36 | /** |
37 | - * Class constructor. |
|
38 | - */ |
|
39 | - public function __construct() { |
|
37 | + * Class constructor. |
|
38 | + */ |
|
39 | + public function __construct() { |
|
40 | 40 | parent::__construct(); |
41 | 41 | |
42 | 42 | $this->title = __( 'Test Gateway', 'invoicing' ); |
@@ -46,15 +46,15 @@ discard block |
||
46 | 46 | } |
47 | 47 | |
48 | 48 | /** |
49 | - * Process Payment. |
|
50 | - * |
|
51 | - * |
|
52 | - * @param WPInv_Invoice $invoice Invoice. |
|
53 | - * @param array $submission_data Posted checkout fields. |
|
54 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
55 | - * @return array |
|
56 | - */ |
|
57 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
49 | + * Process Payment. |
|
50 | + * |
|
51 | + * |
|
52 | + * @param WPInv_Invoice $invoice Invoice. |
|
53 | + * @param array $submission_data Posted checkout fields. |
|
54 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
55 | + * @return array |
|
56 | + */ |
|
57 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
58 | 58 | |
59 | 59 | // Mark it as paid. |
60 | 60 | $invoice->mark_paid(); |
@@ -85,12 +85,12 @@ discard block |
||
85 | 85 | } |
86 | 86 | |
87 | 87 | /** |
88 | - * (Maybe) renews a manual subscription profile. |
|
89 | - * |
|
90 | - * |
|
88 | + * (Maybe) renews a manual subscription profile. |
|
89 | + * |
|
90 | + * |
|
91 | 91 | * @param WPInv_Subscription $subscription |
92 | - */ |
|
93 | - public function maybe_renew_subscription( $subscription ) { |
|
92 | + */ |
|
93 | + public function maybe_renew_subscription( $subscription ) { |
|
94 | 94 | |
95 | 95 | // Ensure its our subscription && it's active. |
96 | 96 | if ( $this->id == $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
@@ -110,13 +110,13 @@ discard block |
||
110 | 110 | } |
111 | 111 | |
112 | 112 | /** |
113 | - * Processes invoice addons. |
|
114 | - * |
|
115 | - * @param WPInv_Invoice $invoice |
|
116 | - * @param GetPaid_Form_Item[] $items |
|
117 | - * @return WPInv_Invoice |
|
118 | - */ |
|
119 | - public function process_addons( $invoice, $items ) { |
|
113 | + * Processes invoice addons. |
|
114 | + * |
|
115 | + * @param WPInv_Invoice $invoice |
|
116 | + * @param GetPaid_Form_Item[] $items |
|
117 | + * @return WPInv_Invoice |
|
118 | + */ |
|
119 | + public function process_addons( $invoice, $items ) { |
|
120 | 120 | |
121 | 121 | foreach ( $items as $item ) { |
122 | 122 | $invoice->add_item( $item ); |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | |
7 | -defined( 'ABSPATH' ) || exit; |
|
7 | +defined('ABSPATH') || exit; |
|
8 | 8 | |
9 | 9 | /** |
10 | 10 | * Manual Payment Gateway class. |
@@ -24,7 +24,7 @@ discard block |
||
24 | 24 | * |
25 | 25 | * @var array |
26 | 26 | */ |
27 | - protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups' ); |
|
27 | + protected $supports = array('subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups'); |
|
28 | 28 | |
29 | 29 | /** |
30 | 30 | * Payment method order. |
@@ -39,10 +39,10 @@ discard block |
||
39 | 39 | public function __construct() { |
40 | 40 | parent::__construct(); |
41 | 41 | |
42 | - $this->title = __( 'Test Gateway', 'invoicing' ); |
|
43 | - $this->method_title = __( 'Test Gateway', 'invoicing' ); |
|
42 | + $this->title = __('Test Gateway', 'invoicing'); |
|
43 | + $this->method_title = __('Test Gateway', 'invoicing'); |
|
44 | 44 | |
45 | - add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) ); |
|
45 | + add_action('getpaid_should_renew_subscription', array($this, 'maybe_renew_subscription')); |
|
46 | 46 | } |
47 | 47 | |
48 | 48 | /** |
@@ -54,25 +54,25 @@ discard block |
||
54 | 54 | * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
55 | 55 | * @return array |
56 | 56 | */ |
57 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
57 | + public function process_payment($invoice, $submission_data, $submission) { |
|
58 | 58 | |
59 | 59 | // Mark it as paid. |
60 | 60 | $invoice->mark_paid(); |
61 | 61 | |
62 | 62 | // (Maybe) activate subscriptions. |
63 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
63 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
64 | 64 | |
65 | - if ( ! empty( $subscriptions ) ) { |
|
66 | - $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
65 | + if (!empty($subscriptions)) { |
|
66 | + $subscriptions = is_array($subscriptions) ? $subscriptions : array($subscriptions); |
|
67 | 67 | |
68 | - foreach ( $subscriptions as $subscription ) { |
|
69 | - if ( $subscription->exists() ) { |
|
70 | - $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
71 | - $expiry = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
68 | + foreach ($subscriptions as $subscription) { |
|
69 | + if ($subscription->exists()) { |
|
70 | + $duration = strtotime($subscription->get_expiration()) - strtotime($subscription->get_date_created()); |
|
71 | + $expiry = date('Y-m-d H:i:s', (current_time('timestamp') + $duration)); |
|
72 | 72 | |
73 | - $subscription->set_next_renewal_date( $expiry ); |
|
74 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
75 | - $subscription->set_profile_id( $invoice->generate_key( 'manual_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ) ); |
|
73 | + $subscription->set_next_renewal_date($expiry); |
|
74 | + $subscription->set_date_created(current_time('mysql')); |
|
75 | + $subscription->set_profile_id($invoice->generate_key('manual_sub_' . $invoice->get_id() . '_' . $subscription->get_id())); |
|
76 | 76 | $subscription->activate(); |
77 | 77 | } |
78 | 78 | } |
@@ -80,7 +80,7 @@ discard block |
||
80 | 80 | } |
81 | 81 | |
82 | 82 | // Send to the success page. |
83 | - wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
|
83 | + wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key())); |
|
84 | 84 | |
85 | 85 | } |
86 | 86 | |
@@ -90,10 +90,10 @@ discard block |
||
90 | 90 | * |
91 | 91 | * @param WPInv_Subscription $subscription |
92 | 92 | */ |
93 | - public function maybe_renew_subscription( $subscription ) { |
|
93 | + public function maybe_renew_subscription($subscription) { |
|
94 | 94 | |
95 | 95 | // Ensure its our subscription && it's active. |
96 | - if ( $this->id == $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
|
96 | + if ($this->id == $subscription->get_gateway() && $subscription->has_status('active trialling')) { |
|
97 | 97 | |
98 | 98 | // Renew the subscription. |
99 | 99 | $subscription->add_payment( |
@@ -116,10 +116,10 @@ discard block |
||
116 | 116 | * @param GetPaid_Form_Item[] $items |
117 | 117 | * @return WPInv_Invoice |
118 | 118 | */ |
119 | - public function process_addons( $invoice, $items ) { |
|
119 | + public function process_addons($invoice, $items) { |
|
120 | 120 | |
121 | - foreach ( $items as $item ) { |
|
122 | - $invoice->add_item( $item ); |
|
121 | + foreach ($items as $item) { |
|
122 | + $invoice->add_item($item); |
|
123 | 123 | } |
124 | 124 | |
125 | 125 | $invoice->recalculate_total(); |
@@ -45,8 +45,7 @@ discard block |
||
45 | 45 | |
46 | 46 | if($section_id=='recommended_plugins'){ |
47 | 47 | $section_data->products = self::get_recommend_wp_plugins_edd_formatted(); |
48 | - } |
|
49 | - elseif ( ! empty( $section ) ) { |
|
48 | + } elseif ( ! empty( $section ) ) { |
|
50 | 49 | if ( false === ( $section_data = get_transient( 'wpi_addons_section_' . $section_id ) ) ) { //@todo restore after testing |
51 | 50 | //if ( 1==1) { |
52 | 51 | |
@@ -119,14 +118,14 @@ discard block |
||
119 | 118 | $status = install_plugin_install_status(array("slug"=>$button_args['slug'],"version"=>"")); |
120 | 119 | $button_args['install_status'] = isset($status['status']) ? $status['status'] : 'install'; |
121 | 120 | $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
122 | - }elseif( ($current_tab == 'addons' || $current_tab =='gateways') && isset($addon->info->id) && $addon->info->id){ |
|
121 | + } elseif( ($current_tab == 'addons' || $current_tab =='gateways') && isset($addon->info->id) && $addon->info->id){ |
|
123 | 122 | include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api.. |
124 | 123 | if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
125 | 124 | $status = self::install_plugin_install_status($addon); |
126 | 125 | $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
127 | 126 | if(isset($status['status'])){$button_args['install_status'] = $status['status'];} |
128 | 127 | $button_args['update_url'] = "https://wpinvoicing.com"; |
129 | - }elseif($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) { |
|
128 | + } elseif($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) { |
|
130 | 129 | if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
131 | 130 | $button_args['installed'] = self::is_theme_installed($addon); |
132 | 131 | if(!in_array($button_args['slug'],$wp_org_themes)){ |
@@ -139,7 +138,7 @@ discard block |
||
139 | 138 | if(is_object($addon->pricing)){ |
140 | 139 | $prices = (Array)$addon->pricing; |
141 | 140 | $button_args['price'] = reset($prices); |
142 | - }elseif(isset($addon->pricing)){ |
|
141 | + } elseif(isset($addon->pricing)){ |
|
143 | 142 | $button_args['price'] = $addon->pricing; |
144 | 143 | } |
145 | 144 | } |
@@ -160,7 +159,7 @@ discard block |
||
160 | 159 | if($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')){ |
161 | 160 | if($button_args['type'] != 'themes'){ |
162 | 161 | $button_args['active'] = is_plugin_active($button_args['file']); |
163 | - }else{ |
|
162 | + } else{ |
|
164 | 163 | $button_args['active'] = self::is_theme_active($addon); |
165 | 164 | } |
166 | 165 | } |
@@ -169,27 +168,27 @@ discard block |
||
169 | 168 | if($button_args['active']){ |
170 | 169 | $button_args['button_text'] = __('Active','invoicing'); |
171 | 170 | $button_args['class'] = ' button-secondary disabled '; |
172 | - }elseif($button_args['installed']){ |
|
171 | + } elseif($button_args['installed']){ |
|
173 | 172 | $button_args['button_text'] = __('Activate','invoicing'); |
174 | 173 | |
175 | 174 | if($button_args['type'] != 'themes'){ |
176 | 175 | if ( current_user_can( 'manage_options' ) ) { |
177 | 176 | $button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin='.$button_args['file']), 'activate-plugin_' . $button_args['file']); |
178 | - }else{ |
|
177 | + } else{ |
|
179 | 178 | $button_args['url'] = '#'; |
180 | 179 | } |
181 | - }else{ |
|
180 | + } else{ |
|
182 | 181 | if ( current_user_can( 'switch_themes' ) ) { |
183 | 182 | $button_args['url'] = self::get_theme_activation_url($addon); |
184 | - }else{ |
|
183 | + } else{ |
|
185 | 184 | $button_args['url'] = '#'; |
186 | 185 | } |
187 | 186 | } |
188 | 187 | |
189 | - }else{ |
|
188 | + } else{ |
|
190 | 189 | if($button_args['type'] == 'recommended_plugins'){ |
191 | 190 | $button_args['button_text'] = __('Install','invoicing'); |
192 | - }else{ |
|
191 | + } else{ |
|
193 | 192 | $button_args['button_text'] = __('Get it','invoicing'); |
194 | 193 | |
195 | 194 | /*if($button_args['type'] == 'themes' && in_array($button_args['slug'],$wp_org_themes) ){ |
@@ -6,7 +6,7 @@ discard block |
||
6 | 6 | * |
7 | 7 | */ |
8 | 8 | if ( ! defined( 'ABSPATH' ) ) { |
9 | - exit; |
|
9 | + exit; |
|
10 | 10 | } |
11 | 11 | |
12 | 12 | /** |
@@ -15,85 +15,85 @@ discard block |
||
15 | 15 | class WPInv_Admin_Addons extends Ayecode_Addons { |
16 | 16 | |
17 | 17 | |
18 | - /** |
|
19 | - * Get the extensions page tabs. |
|
20 | - * |
|
21 | - * @return array of tabs. |
|
22 | - */ |
|
23 | - public function get_tabs(){ |
|
24 | - $tabs = array( |
|
25 | - 'addons' => __("Addons", "invoicing"), |
|
18 | + /** |
|
19 | + * Get the extensions page tabs. |
|
20 | + * |
|
21 | + * @return array of tabs. |
|
22 | + */ |
|
23 | + public function get_tabs(){ |
|
24 | + $tabs = array( |
|
25 | + 'addons' => __("Addons", "invoicing"), |
|
26 | 26 | 'gateways' => __("Payment Gateways", "invoicing"), |
27 | 27 | 'recommended_plugins' => __("Recommended plugins", "invoicing"), |
28 | 28 | 'membership' => __("Membership", "invoicing"), |
29 | - ); |
|
30 | - |
|
31 | - return $tabs; |
|
32 | - } |
|
33 | - |
|
34 | - /** |
|
35 | - * Get section content for the addons screen. |
|
36 | - * |
|
37 | - * @param string $section_id |
|
38 | - * |
|
39 | - * @return array |
|
40 | - */ |
|
41 | - public function get_section_data( $section_id ) { |
|
42 | - $section = self::get_tab( $section_id ); |
|
43 | - $api_url = "https://wpinvoicing.com/edd-api/v2/products/"; |
|
44 | - $section_data = new stdClass(); |
|
45 | - |
|
46 | - if($section_id=='recommended_plugins'){ |
|
47 | - $section_data->products = self::get_recommend_wp_plugins_edd_formatted(); |
|
48 | - } |
|
49 | - elseif ( ! empty( $section ) ) { |
|
50 | - if ( false === ( $section_data = get_transient( 'wpi_addons_section_' . $section_id ) ) ) { //@todo restore after testing |
|
51 | - //if ( 1==1) { |
|
52 | - |
|
53 | - $query_args = array( 'category' => $section_id, 'number' => 100); |
|
54 | - $query_args = apply_filters('wpeu_edd_api_query_args',$query_args,$api_url,$section_id); |
|
55 | - |
|
56 | - $raw_section = wp_safe_remote_get( esc_url_raw( add_query_arg($query_args ,$api_url) ), array( 'user-agent' => 'Invoicing Addons Page','timeout' => 15, ) ); |
|
57 | - |
|
58 | - if ( ! is_wp_error( $raw_section ) ) { |
|
59 | - $section_data = json_decode( wp_remote_retrieve_body( $raw_section ) ); |
|
60 | - |
|
61 | - if ( ! empty( $section_data->products ) ) { |
|
62 | - set_transient( 'wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS ); |
|
63 | - } |
|
64 | - } |
|
65 | - } |
|
66 | - |
|
67 | - } |
|
68 | - |
|
69 | - $products = isset($section_data->products) ? $section_data->products : array(); |
|
70 | - if ( 'addons' == $section_id ) { |
|
71 | - |
|
72 | - $quotes = new stdClass(); |
|
73 | - $quotes->info = new stdClass(); |
|
74 | - $quotes->info->id = ''; |
|
75 | - $quotes->info->slug = 'invoicing-quotes'; |
|
76 | - $quotes->info->title = __( 'Quotes', 'invoicing' ); |
|
77 | - $quotes->info->excerpt = __( 'Create quotes and estimates', 'invoicing' ); |
|
78 | - $quotes->info->link = 'https://wordpress.org/plugins/invoicing-quotes/'; |
|
79 | - $quotes->info->thumbnail = WPINV_PLUGIN_URL . 'assets/images/Quotes-1-768x384.png'; |
|
80 | - |
|
81 | - $products[] = $quotes; |
|
82 | - } |
|
29 | + ); |
|
30 | + |
|
31 | + return $tabs; |
|
32 | + } |
|
33 | + |
|
34 | + /** |
|
35 | + * Get section content for the addons screen. |
|
36 | + * |
|
37 | + * @param string $section_id |
|
38 | + * |
|
39 | + * @return array |
|
40 | + */ |
|
41 | + public function get_section_data( $section_id ) { |
|
42 | + $section = self::get_tab( $section_id ); |
|
43 | + $api_url = "https://wpinvoicing.com/edd-api/v2/products/"; |
|
44 | + $section_data = new stdClass(); |
|
45 | + |
|
46 | + if($section_id=='recommended_plugins'){ |
|
47 | + $section_data->products = self::get_recommend_wp_plugins_edd_formatted(); |
|
48 | + } |
|
49 | + elseif ( ! empty( $section ) ) { |
|
50 | + if ( false === ( $section_data = get_transient( 'wpi_addons_section_' . $section_id ) ) ) { //@todo restore after testing |
|
51 | + //if ( 1==1) { |
|
52 | + |
|
53 | + $query_args = array( 'category' => $section_id, 'number' => 100); |
|
54 | + $query_args = apply_filters('wpeu_edd_api_query_args',$query_args,$api_url,$section_id); |
|
55 | + |
|
56 | + $raw_section = wp_safe_remote_get( esc_url_raw( add_query_arg($query_args ,$api_url) ), array( 'user-agent' => 'Invoicing Addons Page','timeout' => 15, ) ); |
|
57 | + |
|
58 | + if ( ! is_wp_error( $raw_section ) ) { |
|
59 | + $section_data = json_decode( wp_remote_retrieve_body( $raw_section ) ); |
|
60 | + |
|
61 | + if ( ! empty( $section_data->products ) ) { |
|
62 | + set_transient( 'wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS ); |
|
63 | + } |
|
64 | + } |
|
65 | + } |
|
66 | + |
|
67 | + } |
|
68 | + |
|
69 | + $products = isset($section_data->products) ? $section_data->products : array(); |
|
70 | + if ( 'addons' == $section_id ) { |
|
71 | + |
|
72 | + $quotes = new stdClass(); |
|
73 | + $quotes->info = new stdClass(); |
|
74 | + $quotes->info->id = ''; |
|
75 | + $quotes->info->slug = 'invoicing-quotes'; |
|
76 | + $quotes->info->title = __( 'Quotes', 'invoicing' ); |
|
77 | + $quotes->info->excerpt = __( 'Create quotes and estimates', 'invoicing' ); |
|
78 | + $quotes->info->link = 'https://wordpress.org/plugins/invoicing-quotes/'; |
|
79 | + $quotes->info->thumbnail = WPINV_PLUGIN_URL . 'assets/images/Quotes-1-768x384.png'; |
|
80 | + |
|
81 | + $products[] = $quotes; |
|
82 | + } |
|
83 | 83 | |
84 | - return apply_filters( 'wpi_addons_section_data', $products, $section_id ); |
|
85 | - } |
|
86 | - |
|
87 | - /** |
|
88 | - * Outputs a button. |
|
89 | - *ccc |
|
90 | - * @param string $url |
|
91 | - * @param string $text |
|
92 | - * @param string $theme |
|
93 | - * @param string $plugin |
|
94 | - */ |
|
95 | - public function output_button( $addon ) { |
|
96 | - $current_tab = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] ); |
|
84 | + return apply_filters( 'wpi_addons_section_data', $products, $section_id ); |
|
85 | + } |
|
86 | + |
|
87 | + /** |
|
88 | + * Outputs a button. |
|
89 | + *ccc |
|
90 | + * @param string $url |
|
91 | + * @param string $text |
|
92 | + * @param string $theme |
|
93 | + * @param string $plugin |
|
94 | + */ |
|
95 | + public function output_button( $addon ) { |
|
96 | + $current_tab = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] ); |
|
97 | 97 | // $button_text = __('Free','invoicing'); |
98 | 98 | // $licensing = false; |
99 | 99 | // $installed = false; |
@@ -105,123 +105,123 @@ discard block |
||
105 | 105 | // $install_status = 'get'; |
106 | 106 | // $onclick = ''; |
107 | 107 | |
108 | - $wp_org_themes = array('supreme-directory','directory-starter'); |
|
109 | - |
|
110 | - $button_args = array( |
|
111 | - 'type' => ($current_tab == 'addons' || $current_tab =='gateways') ? 'addons' : $current_tab, |
|
112 | - 'id' => isset($addon->info->id) ? absint($addon->info->id) : '', |
|
113 | - 'title' => isset($addon->info->title) ? $addon->info->title : '', |
|
114 | - 'button_text' => __('Free','invoicing'), |
|
115 | - 'price_text' => __('Free','invoicing'), |
|
116 | - 'link' => isset($addon->info->link) ? $addon->info->link : '', // link to product |
|
117 | - 'url' => isset($addon->info->link) ? $addon->info->link : '', // button url |
|
118 | - 'class' => 'button-primary', |
|
119 | - 'install_status' => 'get', |
|
120 | - 'installed' => false, |
|
121 | - 'price' => '', |
|
122 | - 'licensing' => isset($addon->licensing->enabled) && $addon->licensing->enabled ? true : false, |
|
123 | - 'license' => isset($addon->licensing->license) && $addon->licensing->license ? $addon->licensing->license : '', |
|
124 | - 'onclick' => '', |
|
125 | - 'slug' => isset($addon->info->slug) ? $addon->info->slug : '', |
|
126 | - 'active' => false, |
|
127 | - 'file' => '', |
|
128 | - 'update_url' => '', |
|
129 | - ); |
|
130 | - |
|
131 | - if( 'invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ( $current_tab == 'recommended_plugins' && isset($addon->info->slug) && $addon->info->slug )){ |
|
132 | - include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api.. |
|
133 | - $status = install_plugin_install_status(array("slug"=>$button_args['slug'],"version"=>"")); |
|
134 | - $button_args['install_status'] = isset($status['status']) ? $status['status'] : 'install'; |
|
135 | - $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
|
136 | - }elseif( ($current_tab == 'addons' || $current_tab =='gateways') && isset($addon->info->id) && $addon->info->id){ |
|
137 | - include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api.. |
|
138 | - if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
|
139 | - $status = self::install_plugin_install_status($addon); |
|
140 | - $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
|
141 | - if(isset($status['status'])){$button_args['install_status'] = $status['status'];} |
|
142 | - $button_args['update_url'] = "https://wpinvoicing.com"; |
|
143 | - }elseif($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) { |
|
144 | - if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
|
145 | - $button_args['installed'] = self::is_theme_installed($addon); |
|
146 | - if(!in_array($button_args['slug'],$wp_org_themes)){ |
|
147 | - $button_args['update_url'] = "https://wpinvoicing.com"; |
|
148 | - } |
|
149 | - } |
|
150 | - |
|
151 | - // set price |
|
152 | - if(isset($addon->pricing) && !empty($addon->pricing)){ |
|
153 | - if(is_object($addon->pricing)){ |
|
154 | - $prices = (Array)$addon->pricing; |
|
155 | - $button_args['price'] = reset($prices); |
|
156 | - }elseif(isset($addon->pricing)){ |
|
157 | - $button_args['price'] = $addon->pricing; |
|
158 | - } |
|
159 | - } |
|
160 | - |
|
161 | - // set price text |
|
162 | - if( $button_args['price'] && $button_args['price'] != '0.00' ){ |
|
163 | - $button_args['price_text'] = sprintf( __('From: $%d', 'invoicing'), $button_args['price']); |
|
164 | - } |
|
165 | - |
|
166 | - |
|
167 | - // set if installed |
|
168 | - if(in_array($button_args['install_status'], array('installed','latest_installed','update_available','newer_installed'))){ |
|
169 | - $button_args['installed'] = true; |
|
170 | - } |
|
108 | + $wp_org_themes = array('supreme-directory','directory-starter'); |
|
109 | + |
|
110 | + $button_args = array( |
|
111 | + 'type' => ($current_tab == 'addons' || $current_tab =='gateways') ? 'addons' : $current_tab, |
|
112 | + 'id' => isset($addon->info->id) ? absint($addon->info->id) : '', |
|
113 | + 'title' => isset($addon->info->title) ? $addon->info->title : '', |
|
114 | + 'button_text' => __('Free','invoicing'), |
|
115 | + 'price_text' => __('Free','invoicing'), |
|
116 | + 'link' => isset($addon->info->link) ? $addon->info->link : '', // link to product |
|
117 | + 'url' => isset($addon->info->link) ? $addon->info->link : '', // button url |
|
118 | + 'class' => 'button-primary', |
|
119 | + 'install_status' => 'get', |
|
120 | + 'installed' => false, |
|
121 | + 'price' => '', |
|
122 | + 'licensing' => isset($addon->licensing->enabled) && $addon->licensing->enabled ? true : false, |
|
123 | + 'license' => isset($addon->licensing->license) && $addon->licensing->license ? $addon->licensing->license : '', |
|
124 | + 'onclick' => '', |
|
125 | + 'slug' => isset($addon->info->slug) ? $addon->info->slug : '', |
|
126 | + 'active' => false, |
|
127 | + 'file' => '', |
|
128 | + 'update_url' => '', |
|
129 | + ); |
|
130 | + |
|
131 | + if( 'invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ( $current_tab == 'recommended_plugins' && isset($addon->info->slug) && $addon->info->slug )){ |
|
132 | + include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api.. |
|
133 | + $status = install_plugin_install_status(array("slug"=>$button_args['slug'],"version"=>"")); |
|
134 | + $button_args['install_status'] = isset($status['status']) ? $status['status'] : 'install'; |
|
135 | + $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
|
136 | + }elseif( ($current_tab == 'addons' || $current_tab =='gateways') && isset($addon->info->id) && $addon->info->id){ |
|
137 | + include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api.. |
|
138 | + if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
|
139 | + $status = self::install_plugin_install_status($addon); |
|
140 | + $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
|
141 | + if(isset($status['status'])){$button_args['install_status'] = $status['status'];} |
|
142 | + $button_args['update_url'] = "https://wpinvoicing.com"; |
|
143 | + }elseif($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) { |
|
144 | + if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
|
145 | + $button_args['installed'] = self::is_theme_installed($addon); |
|
146 | + if(!in_array($button_args['slug'],$wp_org_themes)){ |
|
147 | + $button_args['update_url'] = "https://wpinvoicing.com"; |
|
148 | + } |
|
149 | + } |
|
150 | + |
|
151 | + // set price |
|
152 | + if(isset($addon->pricing) && !empty($addon->pricing)){ |
|
153 | + if(is_object($addon->pricing)){ |
|
154 | + $prices = (Array)$addon->pricing; |
|
155 | + $button_args['price'] = reset($prices); |
|
156 | + }elseif(isset($addon->pricing)){ |
|
157 | + $button_args['price'] = $addon->pricing; |
|
158 | + } |
|
159 | + } |
|
160 | + |
|
161 | + // set price text |
|
162 | + if( $button_args['price'] && $button_args['price'] != '0.00' ){ |
|
163 | + $button_args['price_text'] = sprintf( __('From: $%d', 'invoicing'), $button_args['price']); |
|
164 | + } |
|
165 | + |
|
166 | + |
|
167 | + // set if installed |
|
168 | + if(in_array($button_args['install_status'], array('installed','latest_installed','update_available','newer_installed'))){ |
|
169 | + $button_args['installed'] = true; |
|
170 | + } |
|
171 | 171 | |
172 | 172 | // print_r($button_args); |
173 | - // set if active |
|
174 | - if($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')){ |
|
175 | - if($button_args['type'] != 'themes'){ |
|
176 | - $button_args['active'] = is_plugin_active($button_args['file']); |
|
177 | - }else{ |
|
178 | - $button_args['active'] = self::is_theme_active($addon); |
|
179 | - } |
|
180 | - } |
|
181 | - |
|
182 | - // set button text and class |
|
183 | - if($button_args['active']){ |
|
184 | - $button_args['button_text'] = __('Active','invoicing'); |
|
185 | - $button_args['class'] = ' button-secondary disabled '; |
|
186 | - }elseif($button_args['installed']){ |
|
187 | - $button_args['button_text'] = __('Activate','invoicing'); |
|
188 | - |
|
189 | - if($button_args['type'] != 'themes'){ |
|
190 | - if ( current_user_can( 'manage_options' ) ) { |
|
191 | - $button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin='.$button_args['file']), 'activate-plugin_' . $button_args['file']); |
|
192 | - }else{ |
|
193 | - $button_args['url'] = '#'; |
|
194 | - } |
|
195 | - }else{ |
|
196 | - if ( current_user_can( 'switch_themes' ) ) { |
|
197 | - $button_args['url'] = self::get_theme_activation_url($addon); |
|
198 | - }else{ |
|
199 | - $button_args['url'] = '#'; |
|
200 | - } |
|
201 | - } |
|
202 | - |
|
203 | - }else{ |
|
204 | - if($button_args['type'] == 'recommended_plugins'){ |
|
205 | - $button_args['button_text'] = __('Install','invoicing'); |
|
206 | - }else{ |
|
207 | - $button_args['button_text'] = __('Get it','invoicing'); |
|
208 | - |
|
209 | - /*if($button_args['type'] == 'themes' && in_array($button_args['slug'],$wp_org_themes) ){ |
|
173 | + // set if active |
|
174 | + if($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')){ |
|
175 | + if($button_args['type'] != 'themes'){ |
|
176 | + $button_args['active'] = is_plugin_active($button_args['file']); |
|
177 | + }else{ |
|
178 | + $button_args['active'] = self::is_theme_active($addon); |
|
179 | + } |
|
180 | + } |
|
181 | + |
|
182 | + // set button text and class |
|
183 | + if($button_args['active']){ |
|
184 | + $button_args['button_text'] = __('Active','invoicing'); |
|
185 | + $button_args['class'] = ' button-secondary disabled '; |
|
186 | + }elseif($button_args['installed']){ |
|
187 | + $button_args['button_text'] = __('Activate','invoicing'); |
|
188 | + |
|
189 | + if($button_args['type'] != 'themes'){ |
|
190 | + if ( current_user_can( 'manage_options' ) ) { |
|
191 | + $button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin='.$button_args['file']), 'activate-plugin_' . $button_args['file']); |
|
192 | + }else{ |
|
193 | + $button_args['url'] = '#'; |
|
194 | + } |
|
195 | + }else{ |
|
196 | + if ( current_user_can( 'switch_themes' ) ) { |
|
197 | + $button_args['url'] = self::get_theme_activation_url($addon); |
|
198 | + }else{ |
|
199 | + $button_args['url'] = '#'; |
|
200 | + } |
|
201 | + } |
|
202 | + |
|
203 | + }else{ |
|
204 | + if($button_args['type'] == 'recommended_plugins'){ |
|
205 | + $button_args['button_text'] = __('Install','invoicing'); |
|
206 | + }else{ |
|
207 | + $button_args['button_text'] = __('Get it','invoicing'); |
|
208 | + |
|
209 | + /*if($button_args['type'] == 'themes' && in_array($button_args['slug'],$wp_org_themes) ){ |
|
210 | 210 | $button_args['button_text'] = __('Install','invoicing'); |
211 | 211 | $button_args['url'] = self::get_theme_install_url($button_args['slug']); |
212 | 212 | $button_args['onclick'] = 'gd_set_button_installing(this);'; |
213 | 213 | }*/ |
214 | 214 | |
215 | - } |
|
216 | - } |
|
215 | + } |
|
216 | + } |
|
217 | 217 | |
218 | 218 | |
219 | - // filter the button arguments |
|
220 | - $button_args = apply_filters('edd_api_button_args',$button_args); |
|
219 | + // filter the button arguments |
|
220 | + $button_args = apply_filters('edd_api_button_args',$button_args); |
|
221 | 221 | // print_r($button_args); |
222 | - // set price text |
|
223 | - if(isset($button_args['price_text'])){ |
|
224 | - ?> |
|
222 | + // set price text |
|
223 | + if(isset($button_args['price_text'])){ |
|
224 | + ?> |
|
225 | 225 | <a |
226 | 226 | target="_blank" |
227 | 227 | class="addons-price-text" |
@@ -229,9 +229,9 @@ discard block |
||
229 | 229 | <?php echo esc_html( $button_args['price_text'] ); ?> |
230 | 230 | </a> |
231 | 231 | <?php |
232 | - } |
|
232 | + } |
|
233 | 233 | |
234 | - ?> |
|
234 | + ?> |
|
235 | 235 | <a |
236 | 236 | data-licence="<?php echo esc_attr($button_args['license']);?>" |
237 | 237 | data-licensing="<?php echo $button_args['licensing'] ? 1 : 0;?>" |
@@ -253,33 +253,33 @@ discard block |
||
253 | 253 | <?php |
254 | 254 | |
255 | 255 | |
256 | - } |
|
257 | - |
|
258 | - |
|
259 | - /** |
|
260 | - * Handles output of the addons page in admin. |
|
261 | - */ |
|
262 | - public function output() { |
|
263 | - $tabs = self::get_tabs(); |
|
264 | - $sections = self::get_sections(); |
|
265 | - $theme = wp_get_theme(); |
|
266 | - $section_keys = array_keys( $sections ); |
|
267 | - $current_section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : current( $section_keys ); |
|
268 | - $current_tab = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] ); |
|
269 | - include_once( WPINV_PLUGIN_DIR . '/includes/admin/html-admin-page-addons.php' ); |
|
270 | - } |
|
271 | - |
|
272 | - /** |
|
273 | - * A list of recommended wp.org plugins. |
|
274 | - * @return array |
|
275 | - */ |
|
276 | - public function get_recommend_wp_plugins(){ |
|
277 | - $plugins = array( |
|
256 | + } |
|
257 | + |
|
258 | + |
|
259 | + /** |
|
260 | + * Handles output of the addons page in admin. |
|
261 | + */ |
|
262 | + public function output() { |
|
263 | + $tabs = self::get_tabs(); |
|
264 | + $sections = self::get_sections(); |
|
265 | + $theme = wp_get_theme(); |
|
266 | + $section_keys = array_keys( $sections ); |
|
267 | + $current_section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : current( $section_keys ); |
|
268 | + $current_tab = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] ); |
|
269 | + include_once( WPINV_PLUGIN_DIR . '/includes/admin/html-admin-page-addons.php' ); |
|
270 | + } |
|
271 | + |
|
272 | + /** |
|
273 | + * A list of recommended wp.org plugins. |
|
274 | + * @return array |
|
275 | + */ |
|
276 | + public function get_recommend_wp_plugins(){ |
|
277 | + $plugins = array( |
|
278 | 278 | 'invoicing-quotes' => array( |
279 | 279 | 'url' => 'https://wordpress.org/plugins/invoicing-quotes/', |
280 | 280 | 'slug' => 'invoicing-quotes', |
281 | - 'name' => 'Quotes', |
|
282 | - 'thumbnail' => 'https://ps.w.org/invoicing-quotes/assets/banner-772x250.png', |
|
281 | + 'name' => 'Quotes', |
|
282 | + 'thumbnail' => 'https://ps.w.org/invoicing-quotes/assets/banner-772x250.png', |
|
283 | 283 | 'desc' => __('Allows you to create quotes, send them to clients and convert them to Invoices when accepted by the customer.','invoicing'), |
284 | 284 | ), |
285 | 285 | 'geodirectory' => array( |
@@ -294,8 +294,8 @@ discard block |
||
294 | 294 | 'name' => 'UsersWP', |
295 | 295 | 'desc' => __('Allow frontend user login and registration as well as have slick profile pages.','invoicing'), |
296 | 296 | ), |
297 | - ); |
|
297 | + ); |
|
298 | 298 | |
299 | - return $plugins; |
|
300 | - } |
|
299 | + return $plugins; |
|
300 | + } |
|
301 | 301 | } |
@@ -5,7 +5,7 @@ discard block |
||
5 | 5 | * All Invoicing extensions screen related functions can be found here. |
6 | 6 | * |
7 | 7 | */ |
8 | -if ( ! defined( 'ABSPATH' ) ) { |
|
8 | +if (!defined('ABSPATH')) { |
|
9 | 9 | exit; |
10 | 10 | } |
11 | 11 | |
@@ -20,7 +20,7 @@ discard block |
||
20 | 20 | * |
21 | 21 | * @return array of tabs. |
22 | 22 | */ |
23 | - public function get_tabs(){ |
|
23 | + public function get_tabs() { |
|
24 | 24 | $tabs = array( |
25 | 25 | 'addons' => __("Addons", "invoicing"), |
26 | 26 | 'gateways' => __("Payment Gateways", "invoicing"), |
@@ -38,28 +38,28 @@ discard block |
||
38 | 38 | * |
39 | 39 | * @return array |
40 | 40 | */ |
41 | - public function get_section_data( $section_id ) { |
|
42 | - $section = self::get_tab( $section_id ); |
|
41 | + public function get_section_data($section_id) { |
|
42 | + $section = self::get_tab($section_id); |
|
43 | 43 | $api_url = "https://wpinvoicing.com/edd-api/v2/products/"; |
44 | 44 | $section_data = new stdClass(); |
45 | 45 | |
46 | - if($section_id=='recommended_plugins'){ |
|
46 | + if ($section_id == 'recommended_plugins') { |
|
47 | 47 | $section_data->products = self::get_recommend_wp_plugins_edd_formatted(); |
48 | 48 | } |
49 | - elseif ( ! empty( $section ) ) { |
|
50 | - if ( false === ( $section_data = get_transient( 'wpi_addons_section_' . $section_id ) ) ) { //@todo restore after testing |
|
49 | + elseif (!empty($section)) { |
|
50 | + if (false === ($section_data = get_transient('wpi_addons_section_' . $section_id))) { //@todo restore after testing |
|
51 | 51 | //if ( 1==1) { |
52 | 52 | |
53 | - $query_args = array( 'category' => $section_id, 'number' => 100); |
|
54 | - $query_args = apply_filters('wpeu_edd_api_query_args',$query_args,$api_url,$section_id); |
|
53 | + $query_args = array('category' => $section_id, 'number' => 100); |
|
54 | + $query_args = apply_filters('wpeu_edd_api_query_args', $query_args, $api_url, $section_id); |
|
55 | 55 | |
56 | - $raw_section = wp_safe_remote_get( esc_url_raw( add_query_arg($query_args ,$api_url) ), array( 'user-agent' => 'Invoicing Addons Page','timeout' => 15, ) ); |
|
56 | + $raw_section = wp_safe_remote_get(esc_url_raw(add_query_arg($query_args, $api_url)), array('user-agent' => 'Invoicing Addons Page', 'timeout' => 15,)); |
|
57 | 57 | |
58 | - if ( ! is_wp_error( $raw_section ) ) { |
|
59 | - $section_data = json_decode( wp_remote_retrieve_body( $raw_section ) ); |
|
58 | + if (!is_wp_error($raw_section)) { |
|
59 | + $section_data = json_decode(wp_remote_retrieve_body($raw_section)); |
|
60 | 60 | |
61 | - if ( ! empty( $section_data->products ) ) { |
|
62 | - set_transient( 'wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS ); |
|
61 | + if (!empty($section_data->products)) { |
|
62 | + set_transient('wpi_addons_section_' . $section_id, $section_data, DAY_IN_SECONDS); |
|
63 | 63 | } |
64 | 64 | } |
65 | 65 | } |
@@ -67,21 +67,21 @@ discard block |
||
67 | 67 | } |
68 | 68 | |
69 | 69 | $products = isset($section_data->products) ? $section_data->products : array(); |
70 | - if ( 'addons' == $section_id ) { |
|
70 | + if ('addons' == $section_id) { |
|
71 | 71 | |
72 | 72 | $quotes = new stdClass(); |
73 | 73 | $quotes->info = new stdClass(); |
74 | 74 | $quotes->info->id = ''; |
75 | 75 | $quotes->info->slug = 'invoicing-quotes'; |
76 | - $quotes->info->title = __( 'Quotes', 'invoicing' ); |
|
77 | - $quotes->info->excerpt = __( 'Create quotes and estimates', 'invoicing' ); |
|
76 | + $quotes->info->title = __('Quotes', 'invoicing'); |
|
77 | + $quotes->info->excerpt = __('Create quotes and estimates', 'invoicing'); |
|
78 | 78 | $quotes->info->link = 'https://wordpress.org/plugins/invoicing-quotes/'; |
79 | 79 | $quotes->info->thumbnail = WPINV_PLUGIN_URL . 'assets/images/Quotes-1-768x384.png'; |
80 | 80 | |
81 | 81 | $products[] = $quotes; |
82 | 82 | } |
83 | 83 | |
84 | - return apply_filters( 'wpi_addons_section_data', $products, $section_id ); |
|
84 | + return apply_filters('wpi_addons_section_data', $products, $section_id); |
|
85 | 85 | } |
86 | 86 | |
87 | 87 | /** |
@@ -92,8 +92,8 @@ discard block |
||
92 | 92 | * @param string $theme |
93 | 93 | * @param string $plugin |
94 | 94 | */ |
95 | - public function output_button( $addon ) { |
|
96 | - $current_tab = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] ); |
|
95 | + public function output_button($addon) { |
|
96 | + $current_tab = empty($_GET['tab']) ? 'addons' : sanitize_title($_GET['tab']); |
|
97 | 97 | // $button_text = __('Free','invoicing'); |
98 | 98 | // $licensing = false; |
99 | 99 | // $installed = false; |
@@ -105,14 +105,14 @@ discard block |
||
105 | 105 | // $install_status = 'get'; |
106 | 106 | // $onclick = ''; |
107 | 107 | |
108 | - $wp_org_themes = array('supreme-directory','directory-starter'); |
|
108 | + $wp_org_themes = array('supreme-directory', 'directory-starter'); |
|
109 | 109 | |
110 | 110 | $button_args = array( |
111 | - 'type' => ($current_tab == 'addons' || $current_tab =='gateways') ? 'addons' : $current_tab, |
|
111 | + 'type' => ($current_tab == 'addons' || $current_tab == 'gateways') ? 'addons' : $current_tab, |
|
112 | 112 | 'id' => isset($addon->info->id) ? absint($addon->info->id) : '', |
113 | 113 | 'title' => isset($addon->info->title) ? $addon->info->title : '', |
114 | - 'button_text' => __('Free','invoicing'), |
|
115 | - 'price_text' => __('Free','invoicing'), |
|
114 | + 'button_text' => __('Free', 'invoicing'), |
|
115 | + 'price_text' => __('Free', 'invoicing'), |
|
116 | 116 | 'link' => isset($addon->info->link) ? $addon->info->link : '', // link to product |
117 | 117 | 'url' => isset($addon->info->link) ? $addon->info->link : '', // button url |
118 | 118 | 'class' => 'button-primary', |
@@ -128,83 +128,83 @@ discard block |
||
128 | 128 | 'update_url' => '', |
129 | 129 | ); |
130 | 130 | |
131 | - if( 'invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ( $current_tab == 'recommended_plugins' && isset($addon->info->slug) && $addon->info->slug )){ |
|
132 | - include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api.. |
|
133 | - $status = install_plugin_install_status(array("slug"=>$button_args['slug'],"version"=>"")); |
|
131 | + if ('invoicing-quotes' == $addon->info->slug || 'getpaid-stripe-payments' == $addon->info->slug || ($current_tab == 'recommended_plugins' && isset($addon->info->slug) && $addon->info->slug)) { |
|
132 | + include_once(ABSPATH . 'wp-admin/includes/plugin-install.php'); //for plugins_api.. |
|
133 | + $status = install_plugin_install_status(array("slug"=>$button_args['slug'], "version"=>"")); |
|
134 | 134 | $button_args['install_status'] = isset($status['status']) ? $status['status'] : 'install'; |
135 | 135 | $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
136 | - }elseif( ($current_tab == 'addons' || $current_tab =='gateways') && isset($addon->info->id) && $addon->info->id){ |
|
137 | - include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api.. |
|
138 | - if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
|
136 | + }elseif (($current_tab == 'addons' || $current_tab == 'gateways') && isset($addon->info->id) && $addon->info->id) { |
|
137 | + include_once(ABSPATH . 'wp-admin/includes/plugin-install.php'); //for plugins_api.. |
|
138 | + if (!empty($addon->licensing->edd_slug)) {$button_args['slug'] = $addon->licensing->edd_slug; } |
|
139 | 139 | $status = self::install_plugin_install_status($addon); |
140 | 140 | $button_args['file'] = isset($status['file']) ? $status['file'] : ''; |
141 | - if(isset($status['status'])){$button_args['install_status'] = $status['status'];} |
|
141 | + if (isset($status['status'])) {$button_args['install_status'] = $status['status']; } |
|
142 | 142 | $button_args['update_url'] = "https://wpinvoicing.com"; |
143 | - }elseif($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) { |
|
144 | - if(!empty($addon->licensing->edd_slug)){$button_args['slug'] = $addon->licensing->edd_slug;} |
|
143 | + }elseif ($current_tab == 'themes' && isset($addon->info->id) && $addon->info->id) { |
|
144 | + if (!empty($addon->licensing->edd_slug)) {$button_args['slug'] = $addon->licensing->edd_slug; } |
|
145 | 145 | $button_args['installed'] = self::is_theme_installed($addon); |
146 | - if(!in_array($button_args['slug'],$wp_org_themes)){ |
|
146 | + if (!in_array($button_args['slug'], $wp_org_themes)) { |
|
147 | 147 | $button_args['update_url'] = "https://wpinvoicing.com"; |
148 | 148 | } |
149 | 149 | } |
150 | 150 | |
151 | 151 | // set price |
152 | - if(isset($addon->pricing) && !empty($addon->pricing)){ |
|
153 | - if(is_object($addon->pricing)){ |
|
154 | - $prices = (Array)$addon->pricing; |
|
152 | + if (isset($addon->pricing) && !empty($addon->pricing)) { |
|
153 | + if (is_object($addon->pricing)) { |
|
154 | + $prices = (Array) $addon->pricing; |
|
155 | 155 | $button_args['price'] = reset($prices); |
156 | - }elseif(isset($addon->pricing)){ |
|
156 | + }elseif (isset($addon->pricing)) { |
|
157 | 157 | $button_args['price'] = $addon->pricing; |
158 | 158 | } |
159 | 159 | } |
160 | 160 | |
161 | 161 | // set price text |
162 | - if( $button_args['price'] && $button_args['price'] != '0.00' ){ |
|
163 | - $button_args['price_text'] = sprintf( __('From: $%d', 'invoicing'), $button_args['price']); |
|
162 | + if ($button_args['price'] && $button_args['price'] != '0.00') { |
|
163 | + $button_args['price_text'] = sprintf(__('From: $%d', 'invoicing'), $button_args['price']); |
|
164 | 164 | } |
165 | 165 | |
166 | 166 | |
167 | 167 | // set if installed |
168 | - if(in_array($button_args['install_status'], array('installed','latest_installed','update_available','newer_installed'))){ |
|
168 | + if (in_array($button_args['install_status'], array('installed', 'latest_installed', 'update_available', 'newer_installed'))) { |
|
169 | 169 | $button_args['installed'] = true; |
170 | 170 | } |
171 | 171 | |
172 | 172 | // print_r($button_args); |
173 | 173 | // set if active |
174 | - if($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')){ |
|
175 | - if($button_args['type'] != 'themes'){ |
|
174 | + if ($button_args['installed'] && ($button_args['file'] || $button_args['type'] == 'themes')) { |
|
175 | + if ($button_args['type'] != 'themes') { |
|
176 | 176 | $button_args['active'] = is_plugin_active($button_args['file']); |
177 | - }else{ |
|
177 | + } else { |
|
178 | 178 | $button_args['active'] = self::is_theme_active($addon); |
179 | 179 | } |
180 | 180 | } |
181 | 181 | |
182 | 182 | // set button text and class |
183 | - if($button_args['active']){ |
|
184 | - $button_args['button_text'] = __('Active','invoicing'); |
|
183 | + if ($button_args['active']) { |
|
184 | + $button_args['button_text'] = __('Active', 'invoicing'); |
|
185 | 185 | $button_args['class'] = ' button-secondary disabled '; |
186 | - }elseif($button_args['installed']){ |
|
187 | - $button_args['button_text'] = __('Activate','invoicing'); |
|
186 | + }elseif ($button_args['installed']) { |
|
187 | + $button_args['button_text'] = __('Activate', 'invoicing'); |
|
188 | 188 | |
189 | - if($button_args['type'] != 'themes'){ |
|
190 | - if ( current_user_can( 'manage_options' ) ) { |
|
191 | - $button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin='.$button_args['file']), 'activate-plugin_' . $button_args['file']); |
|
192 | - }else{ |
|
189 | + if ($button_args['type'] != 'themes') { |
|
190 | + if (current_user_can('manage_options')) { |
|
191 | + $button_args['url'] = wp_nonce_url(admin_url('plugins.php?action=activate&plugin=' . $button_args['file']), 'activate-plugin_' . $button_args['file']); |
|
192 | + } else { |
|
193 | 193 | $button_args['url'] = '#'; |
194 | 194 | } |
195 | - }else{ |
|
196 | - if ( current_user_can( 'switch_themes' ) ) { |
|
195 | + } else { |
|
196 | + if (current_user_can('switch_themes')) { |
|
197 | 197 | $button_args['url'] = self::get_theme_activation_url($addon); |
198 | - }else{ |
|
198 | + } else { |
|
199 | 199 | $button_args['url'] = '#'; |
200 | 200 | } |
201 | 201 | } |
202 | 202 | |
203 | - }else{ |
|
204 | - if($button_args['type'] == 'recommended_plugins'){ |
|
205 | - $button_args['button_text'] = __('Install','invoicing'); |
|
206 | - }else{ |
|
207 | - $button_args['button_text'] = __('Get it','invoicing'); |
|
203 | + } else { |
|
204 | + if ($button_args['type'] == 'recommended_plugins') { |
|
205 | + $button_args['button_text'] = __('Install', 'invoicing'); |
|
206 | + } else { |
|
207 | + $button_args['button_text'] = __('Get it', 'invoicing'); |
|
208 | 208 | |
209 | 209 | /*if($button_args['type'] == 'themes' && in_array($button_args['slug'],$wp_org_themes) ){ |
210 | 210 | $button_args['button_text'] = __('Install','invoicing'); |
@@ -217,38 +217,38 @@ discard block |
||
217 | 217 | |
218 | 218 | |
219 | 219 | // filter the button arguments |
220 | - $button_args = apply_filters('edd_api_button_args',$button_args); |
|
220 | + $button_args = apply_filters('edd_api_button_args', $button_args); |
|
221 | 221 | // print_r($button_args); |
222 | 222 | // set price text |
223 | - if(isset($button_args['price_text'])){ |
|
223 | + if (isset($button_args['price_text'])) { |
|
224 | 224 | ?> |
225 | 225 | <a |
226 | 226 | target="_blank" |
227 | 227 | class="addons-price-text" |
228 | - href="<?php echo esc_url( $button_args['link'] ); ?>"> |
|
229 | - <?php echo esc_html( $button_args['price_text'] ); ?> |
|
228 | + href="<?php echo esc_url($button_args['link']); ?>"> |
|
229 | + <?php echo esc_html($button_args['price_text']); ?> |
|
230 | 230 | </a> |
231 | 231 | <?php |
232 | 232 | } |
233 | 233 | |
234 | 234 | ?> |
235 | 235 | <a |
236 | - data-licence="<?php echo esc_attr($button_args['license']);?>" |
|
237 | - data-licensing="<?php echo $button_args['licensing'] ? 1 : 0;?>" |
|
238 | - data-title="<?php echo esc_attr($button_args['title']);?>" |
|
239 | - data-type="<?php echo esc_attr($button_args['type']);?>" |
|
240 | - data-text-error-message="<?php _e('Something went wrong!','invoicing');?>" |
|
241 | - data-text-activate="<?php _e('Activate','invoicing');?>" |
|
242 | - data-text-activating="<?php _e('Activating','invoicing');?>" |
|
243 | - data-text-deactivate="<?php _e('Deactivate','invoicing');?>" |
|
244 | - data-text-installed="<?php _e('Installed','invoicing');?>" |
|
245 | - data-text-install="<?php _e('Install','invoicing');?>" |
|
246 | - data-text-installing="<?php _e('Installing','invoicing');?>" |
|
247 | - data-text-error="<?php _e('Error','invoicing');?>" |
|
248 | - <?php if(!empty($button_args['onclick'])){echo " onclick='".esc_attr( $button_args['onclick'] )."' ";}?> |
|
249 | - class="addons-button <?php echo esc_attr( $button_args['class'] ); ?>" |
|
250 | - href="<?php echo esc_url( $button_args['url'] ); ?>"> |
|
251 | - <?php echo esc_html( $button_args['button_text'] ); ?> |
|
236 | + data-licence="<?php echo esc_attr($button_args['license']); ?>" |
|
237 | + data-licensing="<?php echo $button_args['licensing'] ? 1 : 0; ?>" |
|
238 | + data-title="<?php echo esc_attr($button_args['title']); ?>" |
|
239 | + data-type="<?php echo esc_attr($button_args['type']); ?>" |
|
240 | + data-text-error-message="<?php _e('Something went wrong!', 'invoicing'); ?>" |
|
241 | + data-text-activate="<?php _e('Activate', 'invoicing'); ?>" |
|
242 | + data-text-activating="<?php _e('Activating', 'invoicing'); ?>" |
|
243 | + data-text-deactivate="<?php _e('Deactivate', 'invoicing'); ?>" |
|
244 | + data-text-installed="<?php _e('Installed', 'invoicing'); ?>" |
|
245 | + data-text-install="<?php _e('Install', 'invoicing'); ?>" |
|
246 | + data-text-installing="<?php _e('Installing', 'invoicing'); ?>" |
|
247 | + data-text-error="<?php _e('Error', 'invoicing'); ?>" |
|
248 | + <?php if (!empty($button_args['onclick'])) {echo " onclick='" . esc_attr($button_args['onclick']) . "' "; }?> |
|
249 | + class="addons-button <?php echo esc_attr($button_args['class']); ?>" |
|
250 | + href="<?php echo esc_url($button_args['url']); ?>"> |
|
251 | + <?php echo esc_html($button_args['button_text']); ?> |
|
252 | 252 | </a> |
253 | 253 | <?php |
254 | 254 | |
@@ -263,36 +263,36 @@ discard block |
||
263 | 263 | $tabs = self::get_tabs(); |
264 | 264 | $sections = self::get_sections(); |
265 | 265 | $theme = wp_get_theme(); |
266 | - $section_keys = array_keys( $sections ); |
|
267 | - $current_section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : current( $section_keys ); |
|
268 | - $current_tab = empty( $_GET['tab'] ) ? 'addons' : sanitize_title( $_GET['tab'] ); |
|
269 | - include_once( WPINV_PLUGIN_DIR . '/includes/admin/html-admin-page-addons.php' ); |
|
266 | + $section_keys = array_keys($sections); |
|
267 | + $current_section = isset($_GET['section']) ? sanitize_text_field($_GET['section']) : current($section_keys); |
|
268 | + $current_tab = empty($_GET['tab']) ? 'addons' : sanitize_title($_GET['tab']); |
|
269 | + include_once(WPINV_PLUGIN_DIR . '/includes/admin/html-admin-page-addons.php'); |
|
270 | 270 | } |
271 | 271 | |
272 | 272 | /** |
273 | 273 | * A list of recommended wp.org plugins. |
274 | 274 | * @return array |
275 | 275 | */ |
276 | - public function get_recommend_wp_plugins(){ |
|
276 | + public function get_recommend_wp_plugins() { |
|
277 | 277 | $plugins = array( |
278 | 278 | 'invoicing-quotes' => array( |
279 | 279 | 'url' => 'https://wordpress.org/plugins/invoicing-quotes/', |
280 | 280 | 'slug' => 'invoicing-quotes', |
281 | 281 | 'name' => 'Quotes', |
282 | 282 | 'thumbnail' => 'https://ps.w.org/invoicing-quotes/assets/banner-772x250.png', |
283 | - 'desc' => __('Allows you to create quotes, send them to clients and convert them to Invoices when accepted by the customer.','invoicing'), |
|
283 | + 'desc' => __('Allows you to create quotes, send them to clients and convert them to Invoices when accepted by the customer.', 'invoicing'), |
|
284 | 284 | ), |
285 | 285 | 'geodirectory' => array( |
286 | 286 | 'url' => 'https://wordpress.org/plugins/geodirectory/', |
287 | 287 | 'slug' => 'geodirectory', |
288 | 288 | 'name' => 'GeoDirectory', |
289 | - 'desc' => __('Turn any WordPress theme into a global business directory portal.','invoicing'), |
|
289 | + 'desc' => __('Turn any WordPress theme into a global business directory portal.', 'invoicing'), |
|
290 | 290 | ), |
291 | 291 | 'userswp' => array( |
292 | 292 | 'url' => 'https://wordpress.org/plugins/userswp/', |
293 | 293 | 'slug' => 'userswp', |
294 | 294 | 'name' => 'UsersWP', |
295 | - 'desc' => __('Allow frontend user login and registration as well as have slick profile pages.','invoicing'), |
|
295 | + 'desc' => __('Allow frontend user login and registration as well as have slick profile pages.', 'invoicing'), |
|
296 | 296 | ), |
297 | 297 | ); |
298 | 298 |
@@ -9,7 +9,7 @@ discard block |
||
9 | 9 | */ |
10 | 10 | |
11 | 11 | if ( ! defined( 'ABSPATH' ) ) { |
12 | - exit; |
|
12 | + exit; |
|
13 | 13 | } |
14 | 14 | |
15 | 15 | /** |
@@ -21,356 +21,356 @@ discard block |
||
21 | 21 | */ |
22 | 22 | abstract class GetPaid_Data { |
23 | 23 | |
24 | - /** |
|
25 | - * ID for this object. |
|
26 | - * |
|
27 | - * @since 1.0.19 |
|
28 | - * @var int |
|
29 | - */ |
|
30 | - protected $id = 0; |
|
31 | - |
|
32 | - /** |
|
33 | - * Core data for this object. Name value pairs (name + default value). |
|
34 | - * |
|
35 | - * @since 1.0.19 |
|
36 | - * @var array |
|
37 | - */ |
|
38 | - protected $data = array(); |
|
39 | - |
|
40 | - /** |
|
41 | - * Core data changes for this object. |
|
42 | - * |
|
43 | - * @since 1.0.19 |
|
44 | - * @var array |
|
45 | - */ |
|
46 | - protected $changes = array(); |
|
47 | - |
|
48 | - /** |
|
49 | - * This is false until the object is read from the DB. |
|
50 | - * |
|
51 | - * @since 1.0.19 |
|
52 | - * @var bool |
|
53 | - */ |
|
54 | - protected $object_read = false; |
|
55 | - |
|
56 | - /** |
|
57 | - * This is the name of this object type. |
|
58 | - * |
|
59 | - * @since 1.0.19 |
|
60 | - * @var string |
|
61 | - */ |
|
62 | - protected $object_type = 'data'; |
|
63 | - |
|
64 | - /** |
|
65 | - * Extra data for this object. Name value pairs (name + default value). |
|
66 | - * Used as a standard way for sub classes (like item types) to add |
|
67 | - * additional information to an inherited class. |
|
68 | - * |
|
69 | - * @since 1.0.19 |
|
70 | - * @var array |
|
71 | - */ |
|
72 | - protected $extra_data = array(); |
|
73 | - |
|
74 | - /** |
|
75 | - * Set to _data on construct so we can track and reset data if needed. |
|
76 | - * |
|
77 | - * @since 1.0.19 |
|
78 | - * @var array |
|
79 | - */ |
|
80 | - protected $default_data = array(); |
|
81 | - |
|
82 | - /** |
|
83 | - * Contains a reference to the data store for this class. |
|
84 | - * |
|
85 | - * @since 1.0.19 |
|
86 | - * @var GetPaid_Data_Store |
|
87 | - */ |
|
88 | - protected $data_store; |
|
89 | - |
|
90 | - /** |
|
91 | - * Stores meta in cache for future reads. |
|
92 | - * A group must be set to to enable caching. |
|
93 | - * |
|
94 | - * @since 1.0.19 |
|
95 | - * @var string |
|
96 | - */ |
|
97 | - protected $cache_group = ''; |
|
98 | - |
|
99 | - /** |
|
100 | - * Stores the last error. |
|
101 | - * |
|
102 | - * @since 1.0.19 |
|
103 | - * @var string |
|
104 | - */ |
|
105 | - public $last_error = ''; |
|
106 | - |
|
107 | - /** |
|
108 | - * Stores additional meta data. |
|
109 | - * |
|
110 | - * @since 1.0.19 |
|
111 | - * @var array |
|
112 | - */ |
|
113 | - protected $meta_data = null; |
|
114 | - |
|
115 | - /** |
|
116 | - * Default constructor. |
|
117 | - * |
|
118 | - * @param int|object|array|string $read ID to load from the DB (optional) or already queried data. |
|
119 | - */ |
|
120 | - public function __construct( $read = 0 ) { |
|
121 | - $this->data = array_merge( $this->data, $this->extra_data ); |
|
122 | - $this->default_data = $this->data; |
|
123 | - } |
|
124 | - |
|
125 | - /** |
|
126 | - * Only store the object ID to avoid serializing the data object instance. |
|
127 | - * |
|
128 | - * @return array |
|
129 | - */ |
|
130 | - public function __sleep() { |
|
131 | - return array( 'id' ); |
|
132 | - } |
|
133 | - |
|
134 | - /** |
|
135 | - * Re-run the constructor with the object ID. |
|
136 | - * |
|
137 | - * If the object no longer exists, remove the ID. |
|
138 | - */ |
|
139 | - public function __wakeup() { |
|
140 | - $this->__construct( absint( $this->id ) ); |
|
141 | - |
|
142 | - if ( ! empty( $this->last_error ) ) { |
|
143 | - $this->set_id( 0 ); |
|
144 | - } |
|
145 | - |
|
146 | - } |
|
147 | - |
|
148 | - /** |
|
149 | - * When the object is cloned, make sure meta is duplicated correctly. |
|
150 | - * |
|
151 | - * @since 1.0.19 |
|
152 | - */ |
|
153 | - public function __clone() { |
|
154 | - $this->maybe_read_meta_data(); |
|
155 | - if ( ! empty( $this->meta_data ) ) { |
|
156 | - foreach ( $this->meta_data as $array_key => $meta ) { |
|
157 | - $this->meta_data[ $array_key ] = clone $meta; |
|
158 | - if ( ! empty( $meta->id ) ) { |
|
159 | - $this->meta_data[ $array_key ]->id = null; |
|
160 | - } |
|
161 | - } |
|
162 | - } |
|
163 | - } |
|
164 | - |
|
165 | - /** |
|
166 | - * Get the data store. |
|
167 | - * |
|
168 | - * @since 1.0.19 |
|
169 | - * @return object |
|
170 | - */ |
|
171 | - public function get_data_store() { |
|
172 | - return $this->data_store; |
|
173 | - } |
|
174 | - |
|
175 | - /** |
|
176 | - * Get the object type. |
|
177 | - * |
|
178 | - * @since 1.0.19 |
|
179 | - * @return string |
|
180 | - */ |
|
181 | - public function get_object_type() { |
|
182 | - return $this->object_type; |
|
183 | - } |
|
184 | - |
|
185 | - /** |
|
186 | - * Returns the unique ID for this object. |
|
187 | - * |
|
188 | - * @since 1.0.19 |
|
189 | - * @return int |
|
190 | - */ |
|
191 | - public function get_id() { |
|
192 | - return $this->id; |
|
193 | - } |
|
194 | - |
|
195 | - /** |
|
196 | - * Get form status. |
|
197 | - * |
|
198 | - * @since 1.0.19 |
|
199 | - * @param string $context View or edit context. |
|
200 | - * @return string |
|
201 | - */ |
|
202 | - public function get_status( $context = 'view' ) { |
|
203 | - return $this->get_prop( 'status', $context ); |
|
204 | - } |
|
205 | - |
|
206 | - /** |
|
207 | - * Delete an object, set the ID to 0, and return result. |
|
208 | - * |
|
209 | - * @since 1.0.19 |
|
210 | - * @param bool $force_delete Should the data be deleted permanently. |
|
211 | - * @return bool result |
|
212 | - */ |
|
213 | - public function delete( $force_delete = false ) { |
|
214 | - if ( $this->data_store && $this->exists() ) { |
|
215 | - $this->data_store->delete( $this, array( 'force_delete' => $force_delete ) ); |
|
216 | - $this->set_id( 0 ); |
|
217 | - return true; |
|
218 | - } |
|
219 | - return false; |
|
220 | - } |
|
221 | - |
|
222 | - /** |
|
223 | - * Save should create or update based on object existence. |
|
224 | - * |
|
225 | - * @since 1.0.19 |
|
226 | - * @return int |
|
227 | - */ |
|
228 | - public function save() { |
|
229 | - if ( ! $this->data_store ) { |
|
230 | - return $this->get_id(); |
|
231 | - } |
|
232 | - |
|
233 | - /** |
|
234 | - * Trigger action before saving to the DB. Allows you to adjust object props before save. |
|
235 | - * |
|
236 | - * @param GetPaid_Data $this The object being saved. |
|
237 | - * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
|
238 | - */ |
|
239 | - do_action( 'getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
240 | - |
|
241 | - if ( $this->get_id() ) { |
|
242 | - $this->data_store->update( $this ); |
|
243 | - } else { |
|
244 | - $this->data_store->create( $this ); |
|
245 | - } |
|
246 | - |
|
247 | - /** |
|
248 | - * Trigger action after saving to the DB. |
|
249 | - * |
|
250 | - * @param GetPaid_Data $this The object being saved. |
|
251 | - * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
|
252 | - */ |
|
253 | - do_action( 'getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
254 | - |
|
255 | - return $this->get_id(); |
|
256 | - } |
|
257 | - |
|
258 | - /** |
|
259 | - * Change data to JSON format. |
|
260 | - * |
|
261 | - * @since 1.0.19 |
|
262 | - * @return string Data in JSON format. |
|
263 | - */ |
|
264 | - public function __toString() { |
|
265 | - return wp_json_encode( $this->get_data() ); |
|
266 | - } |
|
267 | - |
|
268 | - /** |
|
269 | - * Returns all data for this object. |
|
270 | - * |
|
271 | - * @since 1.0.19 |
|
272 | - * @return array |
|
273 | - */ |
|
274 | - public function get_data() { |
|
275 | - return array_merge( array( 'id' => $this->get_id() ), $this->data, array( 'meta_data' => $this->get_meta_data() ) ); |
|
276 | - } |
|
277 | - |
|
278 | - /** |
|
279 | - * Returns array of expected data keys for this object. |
|
280 | - * |
|
281 | - * @since 1.0.19 |
|
282 | - * @return array |
|
283 | - */ |
|
284 | - public function get_data_keys() { |
|
285 | - return array_keys( $this->data ); |
|
286 | - } |
|
287 | - |
|
288 | - /** |
|
289 | - * Returns all "extra" data keys for an object (for sub objects like item types). |
|
290 | - * |
|
291 | - * @since 1.0.19 |
|
292 | - * @return array |
|
293 | - */ |
|
294 | - public function get_extra_data_keys() { |
|
295 | - return array_keys( $this->extra_data ); |
|
296 | - } |
|
297 | - |
|
298 | - /** |
|
299 | - * Filter null meta values from array. |
|
300 | - * |
|
301 | - * @since 1.0.19 |
|
302 | - * @param mixed $meta Meta value to check. |
|
303 | - * @return bool |
|
304 | - */ |
|
305 | - protected function filter_null_meta( $meta ) { |
|
306 | - return ! is_null( $meta->value ); |
|
307 | - } |
|
308 | - |
|
309 | - /** |
|
310 | - * Get All Meta Data. |
|
311 | - * |
|
312 | - * @since 1.0.19 |
|
313 | - * @return array of objects. |
|
314 | - */ |
|
315 | - public function get_meta_data() { |
|
316 | - $this->maybe_read_meta_data(); |
|
317 | - return array_values( array_filter( $this->meta_data, array( $this, 'filter_null_meta' ) ) ); |
|
318 | - } |
|
319 | - |
|
320 | - /** |
|
321 | - * Check if the key is an internal one. |
|
322 | - * |
|
323 | - * @since 1.0.19 |
|
324 | - * @param string $key Key to check. |
|
325 | - * @return bool true if it's an internal key, false otherwise |
|
326 | - */ |
|
327 | - protected function is_internal_meta_key( $key ) { |
|
328 | - $internal_meta_key = ! empty( $key ) && $this->data_store && in_array( $key, $this->data_store->get_internal_meta_keys(), true ); |
|
329 | - |
|
330 | - if ( ! $internal_meta_key ) { |
|
331 | - return false; |
|
332 | - } |
|
333 | - |
|
334 | - $has_setter_or_getter = is_callable( array( $this, 'set_' . $key ) ) || is_callable( array( $this, 'get_' . $key ) ); |
|
335 | - |
|
336 | - if ( ! $has_setter_or_getter ) { |
|
337 | - return false; |
|
338 | - } |
|
339 | - |
|
340 | - /* translators: %s: $key Key to check */ |
|
341 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
342 | - |
|
343 | - return true; |
|
344 | - } |
|
345 | - |
|
346 | - /** |
|
347 | - * Magic method for setting data fields. |
|
348 | - * |
|
349 | - * This method does not update custom fields in the database. |
|
350 | - * |
|
351 | - * @since 1.0.19 |
|
352 | - * @access public |
|
353 | - * |
|
354 | - */ |
|
355 | - public function __set( $key, $value ) { |
|
356 | - |
|
357 | - if ( 'id' == strtolower( $key ) ) { |
|
358 | - return $this->set_id( $value ); |
|
359 | - } |
|
360 | - |
|
361 | - if ( method_exists( $this, "set_$key") ) { |
|
362 | - |
|
363 | - /* translators: %s: $key Key to set */ |
|
364 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
365 | - |
|
366 | - call_user_func( array( $this, "set_$key" ), $value ); |
|
367 | - } else { |
|
368 | - $this->set_prop( $key, $value ); |
|
369 | - } |
|
370 | - |
|
371 | - } |
|
372 | - |
|
373 | - /** |
|
24 | + /** |
|
25 | + * ID for this object. |
|
26 | + * |
|
27 | + * @since 1.0.19 |
|
28 | + * @var int |
|
29 | + */ |
|
30 | + protected $id = 0; |
|
31 | + |
|
32 | + /** |
|
33 | + * Core data for this object. Name value pairs (name + default value). |
|
34 | + * |
|
35 | + * @since 1.0.19 |
|
36 | + * @var array |
|
37 | + */ |
|
38 | + protected $data = array(); |
|
39 | + |
|
40 | + /** |
|
41 | + * Core data changes for this object. |
|
42 | + * |
|
43 | + * @since 1.0.19 |
|
44 | + * @var array |
|
45 | + */ |
|
46 | + protected $changes = array(); |
|
47 | + |
|
48 | + /** |
|
49 | + * This is false until the object is read from the DB. |
|
50 | + * |
|
51 | + * @since 1.0.19 |
|
52 | + * @var bool |
|
53 | + */ |
|
54 | + protected $object_read = false; |
|
55 | + |
|
56 | + /** |
|
57 | + * This is the name of this object type. |
|
58 | + * |
|
59 | + * @since 1.0.19 |
|
60 | + * @var string |
|
61 | + */ |
|
62 | + protected $object_type = 'data'; |
|
63 | + |
|
64 | + /** |
|
65 | + * Extra data for this object. Name value pairs (name + default value). |
|
66 | + * Used as a standard way for sub classes (like item types) to add |
|
67 | + * additional information to an inherited class. |
|
68 | + * |
|
69 | + * @since 1.0.19 |
|
70 | + * @var array |
|
71 | + */ |
|
72 | + protected $extra_data = array(); |
|
73 | + |
|
74 | + /** |
|
75 | + * Set to _data on construct so we can track and reset data if needed. |
|
76 | + * |
|
77 | + * @since 1.0.19 |
|
78 | + * @var array |
|
79 | + */ |
|
80 | + protected $default_data = array(); |
|
81 | + |
|
82 | + /** |
|
83 | + * Contains a reference to the data store for this class. |
|
84 | + * |
|
85 | + * @since 1.0.19 |
|
86 | + * @var GetPaid_Data_Store |
|
87 | + */ |
|
88 | + protected $data_store; |
|
89 | + |
|
90 | + /** |
|
91 | + * Stores meta in cache for future reads. |
|
92 | + * A group must be set to to enable caching. |
|
93 | + * |
|
94 | + * @since 1.0.19 |
|
95 | + * @var string |
|
96 | + */ |
|
97 | + protected $cache_group = ''; |
|
98 | + |
|
99 | + /** |
|
100 | + * Stores the last error. |
|
101 | + * |
|
102 | + * @since 1.0.19 |
|
103 | + * @var string |
|
104 | + */ |
|
105 | + public $last_error = ''; |
|
106 | + |
|
107 | + /** |
|
108 | + * Stores additional meta data. |
|
109 | + * |
|
110 | + * @since 1.0.19 |
|
111 | + * @var array |
|
112 | + */ |
|
113 | + protected $meta_data = null; |
|
114 | + |
|
115 | + /** |
|
116 | + * Default constructor. |
|
117 | + * |
|
118 | + * @param int|object|array|string $read ID to load from the DB (optional) or already queried data. |
|
119 | + */ |
|
120 | + public function __construct( $read = 0 ) { |
|
121 | + $this->data = array_merge( $this->data, $this->extra_data ); |
|
122 | + $this->default_data = $this->data; |
|
123 | + } |
|
124 | + |
|
125 | + /** |
|
126 | + * Only store the object ID to avoid serializing the data object instance. |
|
127 | + * |
|
128 | + * @return array |
|
129 | + */ |
|
130 | + public function __sleep() { |
|
131 | + return array( 'id' ); |
|
132 | + } |
|
133 | + |
|
134 | + /** |
|
135 | + * Re-run the constructor with the object ID. |
|
136 | + * |
|
137 | + * If the object no longer exists, remove the ID. |
|
138 | + */ |
|
139 | + public function __wakeup() { |
|
140 | + $this->__construct( absint( $this->id ) ); |
|
141 | + |
|
142 | + if ( ! empty( $this->last_error ) ) { |
|
143 | + $this->set_id( 0 ); |
|
144 | + } |
|
145 | + |
|
146 | + } |
|
147 | + |
|
148 | + /** |
|
149 | + * When the object is cloned, make sure meta is duplicated correctly. |
|
150 | + * |
|
151 | + * @since 1.0.19 |
|
152 | + */ |
|
153 | + public function __clone() { |
|
154 | + $this->maybe_read_meta_data(); |
|
155 | + if ( ! empty( $this->meta_data ) ) { |
|
156 | + foreach ( $this->meta_data as $array_key => $meta ) { |
|
157 | + $this->meta_data[ $array_key ] = clone $meta; |
|
158 | + if ( ! empty( $meta->id ) ) { |
|
159 | + $this->meta_data[ $array_key ]->id = null; |
|
160 | + } |
|
161 | + } |
|
162 | + } |
|
163 | + } |
|
164 | + |
|
165 | + /** |
|
166 | + * Get the data store. |
|
167 | + * |
|
168 | + * @since 1.0.19 |
|
169 | + * @return object |
|
170 | + */ |
|
171 | + public function get_data_store() { |
|
172 | + return $this->data_store; |
|
173 | + } |
|
174 | + |
|
175 | + /** |
|
176 | + * Get the object type. |
|
177 | + * |
|
178 | + * @since 1.0.19 |
|
179 | + * @return string |
|
180 | + */ |
|
181 | + public function get_object_type() { |
|
182 | + return $this->object_type; |
|
183 | + } |
|
184 | + |
|
185 | + /** |
|
186 | + * Returns the unique ID for this object. |
|
187 | + * |
|
188 | + * @since 1.0.19 |
|
189 | + * @return int |
|
190 | + */ |
|
191 | + public function get_id() { |
|
192 | + return $this->id; |
|
193 | + } |
|
194 | + |
|
195 | + /** |
|
196 | + * Get form status. |
|
197 | + * |
|
198 | + * @since 1.0.19 |
|
199 | + * @param string $context View or edit context. |
|
200 | + * @return string |
|
201 | + */ |
|
202 | + public function get_status( $context = 'view' ) { |
|
203 | + return $this->get_prop( 'status', $context ); |
|
204 | + } |
|
205 | + |
|
206 | + /** |
|
207 | + * Delete an object, set the ID to 0, and return result. |
|
208 | + * |
|
209 | + * @since 1.0.19 |
|
210 | + * @param bool $force_delete Should the data be deleted permanently. |
|
211 | + * @return bool result |
|
212 | + */ |
|
213 | + public function delete( $force_delete = false ) { |
|
214 | + if ( $this->data_store && $this->exists() ) { |
|
215 | + $this->data_store->delete( $this, array( 'force_delete' => $force_delete ) ); |
|
216 | + $this->set_id( 0 ); |
|
217 | + return true; |
|
218 | + } |
|
219 | + return false; |
|
220 | + } |
|
221 | + |
|
222 | + /** |
|
223 | + * Save should create or update based on object existence. |
|
224 | + * |
|
225 | + * @since 1.0.19 |
|
226 | + * @return int |
|
227 | + */ |
|
228 | + public function save() { |
|
229 | + if ( ! $this->data_store ) { |
|
230 | + return $this->get_id(); |
|
231 | + } |
|
232 | + |
|
233 | + /** |
|
234 | + * Trigger action before saving to the DB. Allows you to adjust object props before save. |
|
235 | + * |
|
236 | + * @param GetPaid_Data $this The object being saved. |
|
237 | + * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
|
238 | + */ |
|
239 | + do_action( 'getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
240 | + |
|
241 | + if ( $this->get_id() ) { |
|
242 | + $this->data_store->update( $this ); |
|
243 | + } else { |
|
244 | + $this->data_store->create( $this ); |
|
245 | + } |
|
246 | + |
|
247 | + /** |
|
248 | + * Trigger action after saving to the DB. |
|
249 | + * |
|
250 | + * @param GetPaid_Data $this The object being saved. |
|
251 | + * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
|
252 | + */ |
|
253 | + do_action( 'getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
254 | + |
|
255 | + return $this->get_id(); |
|
256 | + } |
|
257 | + |
|
258 | + /** |
|
259 | + * Change data to JSON format. |
|
260 | + * |
|
261 | + * @since 1.0.19 |
|
262 | + * @return string Data in JSON format. |
|
263 | + */ |
|
264 | + public function __toString() { |
|
265 | + return wp_json_encode( $this->get_data() ); |
|
266 | + } |
|
267 | + |
|
268 | + /** |
|
269 | + * Returns all data for this object. |
|
270 | + * |
|
271 | + * @since 1.0.19 |
|
272 | + * @return array |
|
273 | + */ |
|
274 | + public function get_data() { |
|
275 | + return array_merge( array( 'id' => $this->get_id() ), $this->data, array( 'meta_data' => $this->get_meta_data() ) ); |
|
276 | + } |
|
277 | + |
|
278 | + /** |
|
279 | + * Returns array of expected data keys for this object. |
|
280 | + * |
|
281 | + * @since 1.0.19 |
|
282 | + * @return array |
|
283 | + */ |
|
284 | + public function get_data_keys() { |
|
285 | + return array_keys( $this->data ); |
|
286 | + } |
|
287 | + |
|
288 | + /** |
|
289 | + * Returns all "extra" data keys for an object (for sub objects like item types). |
|
290 | + * |
|
291 | + * @since 1.0.19 |
|
292 | + * @return array |
|
293 | + */ |
|
294 | + public function get_extra_data_keys() { |
|
295 | + return array_keys( $this->extra_data ); |
|
296 | + } |
|
297 | + |
|
298 | + /** |
|
299 | + * Filter null meta values from array. |
|
300 | + * |
|
301 | + * @since 1.0.19 |
|
302 | + * @param mixed $meta Meta value to check. |
|
303 | + * @return bool |
|
304 | + */ |
|
305 | + protected function filter_null_meta( $meta ) { |
|
306 | + return ! is_null( $meta->value ); |
|
307 | + } |
|
308 | + |
|
309 | + /** |
|
310 | + * Get All Meta Data. |
|
311 | + * |
|
312 | + * @since 1.0.19 |
|
313 | + * @return array of objects. |
|
314 | + */ |
|
315 | + public function get_meta_data() { |
|
316 | + $this->maybe_read_meta_data(); |
|
317 | + return array_values( array_filter( $this->meta_data, array( $this, 'filter_null_meta' ) ) ); |
|
318 | + } |
|
319 | + |
|
320 | + /** |
|
321 | + * Check if the key is an internal one. |
|
322 | + * |
|
323 | + * @since 1.0.19 |
|
324 | + * @param string $key Key to check. |
|
325 | + * @return bool true if it's an internal key, false otherwise |
|
326 | + */ |
|
327 | + protected function is_internal_meta_key( $key ) { |
|
328 | + $internal_meta_key = ! empty( $key ) && $this->data_store && in_array( $key, $this->data_store->get_internal_meta_keys(), true ); |
|
329 | + |
|
330 | + if ( ! $internal_meta_key ) { |
|
331 | + return false; |
|
332 | + } |
|
333 | + |
|
334 | + $has_setter_or_getter = is_callable( array( $this, 'set_' . $key ) ) || is_callable( array( $this, 'get_' . $key ) ); |
|
335 | + |
|
336 | + if ( ! $has_setter_or_getter ) { |
|
337 | + return false; |
|
338 | + } |
|
339 | + |
|
340 | + /* translators: %s: $key Key to check */ |
|
341 | + getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
342 | + |
|
343 | + return true; |
|
344 | + } |
|
345 | + |
|
346 | + /** |
|
347 | + * Magic method for setting data fields. |
|
348 | + * |
|
349 | + * This method does not update custom fields in the database. |
|
350 | + * |
|
351 | + * @since 1.0.19 |
|
352 | + * @access public |
|
353 | + * |
|
354 | + */ |
|
355 | + public function __set( $key, $value ) { |
|
356 | + |
|
357 | + if ( 'id' == strtolower( $key ) ) { |
|
358 | + return $this->set_id( $value ); |
|
359 | + } |
|
360 | + |
|
361 | + if ( method_exists( $this, "set_$key") ) { |
|
362 | + |
|
363 | + /* translators: %s: $key Key to set */ |
|
364 | + getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
365 | + |
|
366 | + call_user_func( array( $this, "set_$key" ), $value ); |
|
367 | + } else { |
|
368 | + $this->set_prop( $key, $value ); |
|
369 | + } |
|
370 | + |
|
371 | + } |
|
372 | + |
|
373 | + /** |
|
374 | 374 | * Margic method for retrieving a property. |
375 | 375 | */ |
376 | 376 | public function __get( $key ) { |
@@ -378,10 +378,10 @@ discard block |
||
378 | 378 | // Check if we have a helper method for that. |
379 | 379 | if ( method_exists( $this, 'get_' . $key ) ) { |
380 | 380 | |
381 | - if ( 'post_type' != $key ) { |
|
382 | - /* translators: %s: $key Key to set */ |
|
383 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
384 | - } |
|
381 | + if ( 'post_type' != $key ) { |
|
382 | + /* translators: %s: $key Key to set */ |
|
383 | + getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
384 | + } |
|
385 | 385 | |
386 | 386 | return call_user_func( array( $this, 'get_' . $key ) ); |
387 | 387 | } |
@@ -391,515 +391,515 @@ discard block |
||
391 | 391 | return $this->post->$key; |
392 | 392 | } |
393 | 393 | |
394 | - return $this->get_prop( $key ); |
|
395 | - |
|
396 | - } |
|
397 | - |
|
398 | - /** |
|
399 | - * Get Meta Data by Key. |
|
400 | - * |
|
401 | - * @since 1.0.19 |
|
402 | - * @param string $key Meta Key. |
|
403 | - * @param bool $single return first found meta with key, or all with $key. |
|
404 | - * @param string $context What the value is for. Valid values are view and edit. |
|
405 | - * @return mixed |
|
406 | - */ |
|
407 | - public function get_meta( $key = '', $single = true, $context = 'view' ) { |
|
408 | - |
|
409 | - // Check if this is an internal meta key. |
|
410 | - $_key = str_replace( '_wpinv', '', $key ); |
|
411 | - $_key = str_replace( 'wpinv', '', $_key ); |
|
412 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
413 | - $function = 'get_' . $_key; |
|
414 | - |
|
415 | - if ( is_callable( array( $this, $function ) ) ) { |
|
416 | - return $this->{$function}(); |
|
417 | - } |
|
418 | - } |
|
419 | - |
|
420 | - // Read the meta data if not yet read. |
|
421 | - $this->maybe_read_meta_data(); |
|
422 | - $meta_data = $this->get_meta_data(); |
|
423 | - $array_keys = array_keys( wp_list_pluck( $meta_data, 'key' ), $key, true ); |
|
424 | - $value = $single ? '' : array(); |
|
425 | - |
|
426 | - if ( ! empty( $array_keys ) ) { |
|
427 | - // We don't use the $this->meta_data property directly here because we don't want meta with a null value (i.e. meta which has been deleted via $this->delete_meta_data()). |
|
428 | - if ( $single ) { |
|
429 | - $value = $meta_data[ current( $array_keys ) ]->value; |
|
430 | - } else { |
|
431 | - $value = array_intersect_key( $meta_data, array_flip( $array_keys ) ); |
|
432 | - } |
|
433 | - } |
|
434 | - |
|
435 | - if ( 'view' === $context ) { |
|
436 | - $value = apply_filters( $this->get_hook_prefix() . $key, $value, $this ); |
|
437 | - } |
|
438 | - |
|
439 | - return $value; |
|
440 | - } |
|
441 | - |
|
442 | - /** |
|
443 | - * See if meta data exists, since get_meta always returns a '' or array(). |
|
444 | - * |
|
445 | - * @since 1.0.19 |
|
446 | - * @param string $key Meta Key. |
|
447 | - * @return boolean |
|
448 | - */ |
|
449 | - public function meta_exists( $key = '' ) { |
|
450 | - $this->maybe_read_meta_data(); |
|
451 | - $array_keys = wp_list_pluck( $this->get_meta_data(), 'key' ); |
|
452 | - return in_array( $key, $array_keys, true ); |
|
453 | - } |
|
454 | - |
|
455 | - /** |
|
456 | - * Set all meta data from array. |
|
457 | - * |
|
458 | - * @since 1.0.19 |
|
459 | - * @param array $data Key/Value pairs. |
|
460 | - */ |
|
461 | - public function set_meta_data( $data ) { |
|
462 | - if ( ! empty( $data ) && is_array( $data ) ) { |
|
463 | - $this->maybe_read_meta_data(); |
|
464 | - foreach ( $data as $meta ) { |
|
465 | - $meta = (array) $meta; |
|
466 | - if ( isset( $meta['key'], $meta['value'], $meta['id'] ) ) { |
|
467 | - $this->meta_data[] = new GetPaid_Meta_Data( |
|
468 | - array( |
|
469 | - 'id' => $meta['id'], |
|
470 | - 'key' => $meta['key'], |
|
471 | - 'value' => $meta['value'], |
|
472 | - ) |
|
473 | - ); |
|
474 | - } |
|
475 | - } |
|
476 | - } |
|
477 | - } |
|
478 | - |
|
479 | - /** |
|
480 | - * Add meta data. |
|
481 | - * |
|
482 | - * @since 1.0.19 |
|
483 | - * |
|
484 | - * @param string $key Meta key. |
|
485 | - * @param string|array $value Meta value. |
|
486 | - * @param bool $unique Should this be a unique key?. |
|
487 | - */ |
|
488 | - public function add_meta_data( $key, $value, $unique = false ) { |
|
489 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
490 | - $function = 'set_' . $key; |
|
491 | - |
|
492 | - if ( is_callable( array( $this, $function ) ) ) { |
|
493 | - return $this->{$function}( $value ); |
|
494 | - } |
|
495 | - } |
|
496 | - |
|
497 | - $this->maybe_read_meta_data(); |
|
498 | - if ( $unique ) { |
|
499 | - $this->delete_meta_data( $key ); |
|
500 | - } |
|
501 | - $this->meta_data[] = new GetPaid_Meta_Data( |
|
502 | - array( |
|
503 | - 'key' => $key, |
|
504 | - 'value' => $value, |
|
505 | - ) |
|
506 | - ); |
|
507 | - |
|
508 | - $this->save(); |
|
509 | - } |
|
510 | - |
|
511 | - /** |
|
512 | - * Update meta data by key or ID, if provided. |
|
513 | - * |
|
514 | - * @since 1.0.19 |
|
515 | - * |
|
516 | - * @param string $key Meta key. |
|
517 | - * @param string|array $value Meta value. |
|
518 | - * @param int $meta_id Meta ID. |
|
519 | - */ |
|
520 | - public function update_meta_data( $key, $value, $meta_id = 0 ) { |
|
521 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
522 | - $function = 'set_' . $key; |
|
523 | - |
|
524 | - if ( is_callable( array( $this, $function ) ) ) { |
|
525 | - return $this->{$function}( $value ); |
|
526 | - } |
|
527 | - } |
|
528 | - |
|
529 | - $this->maybe_read_meta_data(); |
|
530 | - |
|
531 | - $array_key = false; |
|
532 | - |
|
533 | - if ( $meta_id ) { |
|
534 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true ); |
|
535 | - $array_key = $array_keys ? current( $array_keys ) : false; |
|
536 | - } else { |
|
537 | - // Find matches by key. |
|
538 | - $matches = array(); |
|
539 | - foreach ( $this->meta_data as $meta_data_array_key => $meta ) { |
|
540 | - if ( $meta->key === $key ) { |
|
541 | - $matches[] = $meta_data_array_key; |
|
542 | - } |
|
543 | - } |
|
544 | - |
|
545 | - if ( ! empty( $matches ) ) { |
|
546 | - // Set matches to null so only one key gets the new value. |
|
547 | - foreach ( $matches as $meta_data_array_key ) { |
|
548 | - $this->meta_data[ $meta_data_array_key ]->value = null; |
|
549 | - } |
|
550 | - $array_key = current( $matches ); |
|
551 | - } |
|
552 | - } |
|
553 | - |
|
554 | - if ( false !== $array_key ) { |
|
555 | - $meta = $this->meta_data[ $array_key ]; |
|
556 | - $meta->key = $key; |
|
557 | - $meta->value = $value; |
|
558 | - } else { |
|
559 | - $this->add_meta_data( $key, $value, true ); |
|
560 | - } |
|
561 | - } |
|
562 | - |
|
563 | - /** |
|
564 | - * Delete meta data. |
|
565 | - * |
|
566 | - * @since 1.0.19 |
|
567 | - * @param string $key Meta key. |
|
568 | - */ |
|
569 | - public function delete_meta_data( $key ) { |
|
570 | - $this->maybe_read_meta_data(); |
|
571 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'key' ), $key, true ); |
|
572 | - |
|
573 | - if ( $array_keys ) { |
|
574 | - foreach ( $array_keys as $array_key ) { |
|
575 | - $this->meta_data[ $array_key ]->value = null; |
|
576 | - } |
|
577 | - } |
|
578 | - } |
|
579 | - |
|
580 | - /** |
|
581 | - * Delete meta data. |
|
582 | - * |
|
583 | - * @since 1.0.19 |
|
584 | - * @param int $mid Meta ID. |
|
585 | - */ |
|
586 | - public function delete_meta_data_by_mid( $mid ) { |
|
587 | - $this->maybe_read_meta_data(); |
|
588 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), (int) $mid, true ); |
|
589 | - |
|
590 | - if ( $array_keys ) { |
|
591 | - foreach ( $array_keys as $array_key ) { |
|
592 | - $this->meta_data[ $array_key ]->value = null; |
|
593 | - } |
|
594 | - } |
|
595 | - } |
|
596 | - |
|
597 | - /** |
|
598 | - * Read meta data if null. |
|
599 | - * |
|
600 | - * @since 1.0.19 |
|
601 | - */ |
|
602 | - protected function maybe_read_meta_data() { |
|
603 | - if ( is_null( $this->meta_data ) ) { |
|
604 | - $this->read_meta_data(); |
|
605 | - } |
|
606 | - } |
|
607 | - |
|
608 | - /** |
|
609 | - * Read Meta Data from the database. Ignore any internal properties. |
|
610 | - * Uses it's own caches because get_metadata does not provide meta_ids. |
|
611 | - * |
|
612 | - * @since 1.0.19 |
|
613 | - * @param bool $force_read True to force a new DB read (and update cache). |
|
614 | - */ |
|
615 | - public function read_meta_data( $force_read = false ) { |
|
616 | - |
|
617 | - // Reset meta data. |
|
618 | - $this->meta_data = array(); |
|
619 | - |
|
620 | - // Maybe abort early. |
|
621 | - if ( ! $this->get_id() || ! $this->data_store ) { |
|
622 | - return; |
|
623 | - } |
|
624 | - |
|
625 | - // Only read from cache if the cache key is set. |
|
626 | - $cache_key = null; |
|
627 | - if ( ! $force_read && ! empty( $this->cache_group ) ) { |
|
628 | - $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
629 | - $raw_meta_data = wp_cache_get( $cache_key, $this->cache_group ); |
|
630 | - } |
|
631 | - |
|
632 | - // Should we force read? |
|
633 | - if ( empty( $raw_meta_data ) ) { |
|
634 | - $raw_meta_data = $this->data_store->read_meta( $this ); |
|
635 | - |
|
636 | - if ( ! empty( $cache_key ) ) { |
|
637 | - wp_cache_set( $cache_key, $raw_meta_data, $this->cache_group ); |
|
638 | - } |
|
639 | - |
|
640 | - } |
|
641 | - |
|
642 | - // Set meta data. |
|
643 | - if ( is_array( $raw_meta_data ) ) { |
|
644 | - |
|
645 | - foreach ( $raw_meta_data as $meta ) { |
|
646 | - $this->meta_data[] = new GetPaid_Meta_Data( |
|
647 | - array( |
|
648 | - 'id' => (int) $meta->meta_id, |
|
649 | - 'key' => $meta->meta_key, |
|
650 | - 'value' => maybe_unserialize( $meta->meta_value ), |
|
651 | - ) |
|
652 | - ); |
|
653 | - } |
|
654 | - |
|
655 | - } |
|
656 | - |
|
657 | - } |
|
658 | - |
|
659 | - /** |
|
660 | - * Update Meta Data in the database. |
|
661 | - * |
|
662 | - * @since 1.0.19 |
|
663 | - */ |
|
664 | - public function save_meta_data() { |
|
665 | - if ( ! $this->data_store || is_null( $this->meta_data ) ) { |
|
666 | - return; |
|
667 | - } |
|
668 | - foreach ( $this->meta_data as $array_key => $meta ) { |
|
669 | - if ( is_null( $meta->value ) ) { |
|
670 | - if ( ! empty( $meta->id ) ) { |
|
671 | - $this->data_store->delete_meta( $this, $meta ); |
|
672 | - unset( $this->meta_data[ $array_key ] ); |
|
673 | - } |
|
674 | - } elseif ( empty( $meta->id ) ) { |
|
675 | - $meta->id = $this->data_store->add_meta( $this, $meta ); |
|
676 | - $meta->apply_changes(); |
|
677 | - } else { |
|
678 | - if ( $meta->get_changes() ) { |
|
679 | - $this->data_store->update_meta( $this, $meta ); |
|
680 | - $meta->apply_changes(); |
|
681 | - } |
|
682 | - } |
|
683 | - } |
|
684 | - if ( ! empty( $this->cache_group ) ) { |
|
685 | - $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
686 | - wp_cache_delete( $cache_key, $this->cache_group ); |
|
687 | - } |
|
688 | - } |
|
689 | - |
|
690 | - /** |
|
691 | - * Set ID. |
|
692 | - * |
|
693 | - * @since 1.0.19 |
|
694 | - * @param int $id ID. |
|
695 | - */ |
|
696 | - public function set_id( $id ) { |
|
697 | - $this->id = absint( $id ); |
|
698 | - } |
|
699 | - |
|
700 | - /** |
|
701 | - * Sets item status. |
|
702 | - * |
|
703 | - * @since 1.0.19 |
|
704 | - * @param string $status New status. |
|
705 | - * @return array details of change. |
|
706 | - */ |
|
707 | - public function set_status( $status ) { |
|
394 | + return $this->get_prop( $key ); |
|
395 | + |
|
396 | + } |
|
397 | + |
|
398 | + /** |
|
399 | + * Get Meta Data by Key. |
|
400 | + * |
|
401 | + * @since 1.0.19 |
|
402 | + * @param string $key Meta Key. |
|
403 | + * @param bool $single return first found meta with key, or all with $key. |
|
404 | + * @param string $context What the value is for. Valid values are view and edit. |
|
405 | + * @return mixed |
|
406 | + */ |
|
407 | + public function get_meta( $key = '', $single = true, $context = 'view' ) { |
|
408 | + |
|
409 | + // Check if this is an internal meta key. |
|
410 | + $_key = str_replace( '_wpinv', '', $key ); |
|
411 | + $_key = str_replace( 'wpinv', '', $_key ); |
|
412 | + if ( $this->is_internal_meta_key( $key ) ) { |
|
413 | + $function = 'get_' . $_key; |
|
414 | + |
|
415 | + if ( is_callable( array( $this, $function ) ) ) { |
|
416 | + return $this->{$function}(); |
|
417 | + } |
|
418 | + } |
|
419 | + |
|
420 | + // Read the meta data if not yet read. |
|
421 | + $this->maybe_read_meta_data(); |
|
422 | + $meta_data = $this->get_meta_data(); |
|
423 | + $array_keys = array_keys( wp_list_pluck( $meta_data, 'key' ), $key, true ); |
|
424 | + $value = $single ? '' : array(); |
|
425 | + |
|
426 | + if ( ! empty( $array_keys ) ) { |
|
427 | + // We don't use the $this->meta_data property directly here because we don't want meta with a null value (i.e. meta which has been deleted via $this->delete_meta_data()). |
|
428 | + if ( $single ) { |
|
429 | + $value = $meta_data[ current( $array_keys ) ]->value; |
|
430 | + } else { |
|
431 | + $value = array_intersect_key( $meta_data, array_flip( $array_keys ) ); |
|
432 | + } |
|
433 | + } |
|
434 | + |
|
435 | + if ( 'view' === $context ) { |
|
436 | + $value = apply_filters( $this->get_hook_prefix() . $key, $value, $this ); |
|
437 | + } |
|
438 | + |
|
439 | + return $value; |
|
440 | + } |
|
441 | + |
|
442 | + /** |
|
443 | + * See if meta data exists, since get_meta always returns a '' or array(). |
|
444 | + * |
|
445 | + * @since 1.0.19 |
|
446 | + * @param string $key Meta Key. |
|
447 | + * @return boolean |
|
448 | + */ |
|
449 | + public function meta_exists( $key = '' ) { |
|
450 | + $this->maybe_read_meta_data(); |
|
451 | + $array_keys = wp_list_pluck( $this->get_meta_data(), 'key' ); |
|
452 | + return in_array( $key, $array_keys, true ); |
|
453 | + } |
|
454 | + |
|
455 | + /** |
|
456 | + * Set all meta data from array. |
|
457 | + * |
|
458 | + * @since 1.0.19 |
|
459 | + * @param array $data Key/Value pairs. |
|
460 | + */ |
|
461 | + public function set_meta_data( $data ) { |
|
462 | + if ( ! empty( $data ) && is_array( $data ) ) { |
|
463 | + $this->maybe_read_meta_data(); |
|
464 | + foreach ( $data as $meta ) { |
|
465 | + $meta = (array) $meta; |
|
466 | + if ( isset( $meta['key'], $meta['value'], $meta['id'] ) ) { |
|
467 | + $this->meta_data[] = new GetPaid_Meta_Data( |
|
468 | + array( |
|
469 | + 'id' => $meta['id'], |
|
470 | + 'key' => $meta['key'], |
|
471 | + 'value' => $meta['value'], |
|
472 | + ) |
|
473 | + ); |
|
474 | + } |
|
475 | + } |
|
476 | + } |
|
477 | + } |
|
478 | + |
|
479 | + /** |
|
480 | + * Add meta data. |
|
481 | + * |
|
482 | + * @since 1.0.19 |
|
483 | + * |
|
484 | + * @param string $key Meta key. |
|
485 | + * @param string|array $value Meta value. |
|
486 | + * @param bool $unique Should this be a unique key?. |
|
487 | + */ |
|
488 | + public function add_meta_data( $key, $value, $unique = false ) { |
|
489 | + if ( $this->is_internal_meta_key( $key ) ) { |
|
490 | + $function = 'set_' . $key; |
|
491 | + |
|
492 | + if ( is_callable( array( $this, $function ) ) ) { |
|
493 | + return $this->{$function}( $value ); |
|
494 | + } |
|
495 | + } |
|
496 | + |
|
497 | + $this->maybe_read_meta_data(); |
|
498 | + if ( $unique ) { |
|
499 | + $this->delete_meta_data( $key ); |
|
500 | + } |
|
501 | + $this->meta_data[] = new GetPaid_Meta_Data( |
|
502 | + array( |
|
503 | + 'key' => $key, |
|
504 | + 'value' => $value, |
|
505 | + ) |
|
506 | + ); |
|
507 | + |
|
508 | + $this->save(); |
|
509 | + } |
|
510 | + |
|
511 | + /** |
|
512 | + * Update meta data by key or ID, if provided. |
|
513 | + * |
|
514 | + * @since 1.0.19 |
|
515 | + * |
|
516 | + * @param string $key Meta key. |
|
517 | + * @param string|array $value Meta value. |
|
518 | + * @param int $meta_id Meta ID. |
|
519 | + */ |
|
520 | + public function update_meta_data( $key, $value, $meta_id = 0 ) { |
|
521 | + if ( $this->is_internal_meta_key( $key ) ) { |
|
522 | + $function = 'set_' . $key; |
|
523 | + |
|
524 | + if ( is_callable( array( $this, $function ) ) ) { |
|
525 | + return $this->{$function}( $value ); |
|
526 | + } |
|
527 | + } |
|
528 | + |
|
529 | + $this->maybe_read_meta_data(); |
|
530 | + |
|
531 | + $array_key = false; |
|
532 | + |
|
533 | + if ( $meta_id ) { |
|
534 | + $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true ); |
|
535 | + $array_key = $array_keys ? current( $array_keys ) : false; |
|
536 | + } else { |
|
537 | + // Find matches by key. |
|
538 | + $matches = array(); |
|
539 | + foreach ( $this->meta_data as $meta_data_array_key => $meta ) { |
|
540 | + if ( $meta->key === $key ) { |
|
541 | + $matches[] = $meta_data_array_key; |
|
542 | + } |
|
543 | + } |
|
544 | + |
|
545 | + if ( ! empty( $matches ) ) { |
|
546 | + // Set matches to null so only one key gets the new value. |
|
547 | + foreach ( $matches as $meta_data_array_key ) { |
|
548 | + $this->meta_data[ $meta_data_array_key ]->value = null; |
|
549 | + } |
|
550 | + $array_key = current( $matches ); |
|
551 | + } |
|
552 | + } |
|
553 | + |
|
554 | + if ( false !== $array_key ) { |
|
555 | + $meta = $this->meta_data[ $array_key ]; |
|
556 | + $meta->key = $key; |
|
557 | + $meta->value = $value; |
|
558 | + } else { |
|
559 | + $this->add_meta_data( $key, $value, true ); |
|
560 | + } |
|
561 | + } |
|
562 | + |
|
563 | + /** |
|
564 | + * Delete meta data. |
|
565 | + * |
|
566 | + * @since 1.0.19 |
|
567 | + * @param string $key Meta key. |
|
568 | + */ |
|
569 | + public function delete_meta_data( $key ) { |
|
570 | + $this->maybe_read_meta_data(); |
|
571 | + $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'key' ), $key, true ); |
|
572 | + |
|
573 | + if ( $array_keys ) { |
|
574 | + foreach ( $array_keys as $array_key ) { |
|
575 | + $this->meta_data[ $array_key ]->value = null; |
|
576 | + } |
|
577 | + } |
|
578 | + } |
|
579 | + |
|
580 | + /** |
|
581 | + * Delete meta data. |
|
582 | + * |
|
583 | + * @since 1.0.19 |
|
584 | + * @param int $mid Meta ID. |
|
585 | + */ |
|
586 | + public function delete_meta_data_by_mid( $mid ) { |
|
587 | + $this->maybe_read_meta_data(); |
|
588 | + $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), (int) $mid, true ); |
|
589 | + |
|
590 | + if ( $array_keys ) { |
|
591 | + foreach ( $array_keys as $array_key ) { |
|
592 | + $this->meta_data[ $array_key ]->value = null; |
|
593 | + } |
|
594 | + } |
|
595 | + } |
|
596 | + |
|
597 | + /** |
|
598 | + * Read meta data if null. |
|
599 | + * |
|
600 | + * @since 1.0.19 |
|
601 | + */ |
|
602 | + protected function maybe_read_meta_data() { |
|
603 | + if ( is_null( $this->meta_data ) ) { |
|
604 | + $this->read_meta_data(); |
|
605 | + } |
|
606 | + } |
|
607 | + |
|
608 | + /** |
|
609 | + * Read Meta Data from the database. Ignore any internal properties. |
|
610 | + * Uses it's own caches because get_metadata does not provide meta_ids. |
|
611 | + * |
|
612 | + * @since 1.0.19 |
|
613 | + * @param bool $force_read True to force a new DB read (and update cache). |
|
614 | + */ |
|
615 | + public function read_meta_data( $force_read = false ) { |
|
616 | + |
|
617 | + // Reset meta data. |
|
618 | + $this->meta_data = array(); |
|
619 | + |
|
620 | + // Maybe abort early. |
|
621 | + if ( ! $this->get_id() || ! $this->data_store ) { |
|
622 | + return; |
|
623 | + } |
|
624 | + |
|
625 | + // Only read from cache if the cache key is set. |
|
626 | + $cache_key = null; |
|
627 | + if ( ! $force_read && ! empty( $this->cache_group ) ) { |
|
628 | + $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
629 | + $raw_meta_data = wp_cache_get( $cache_key, $this->cache_group ); |
|
630 | + } |
|
631 | + |
|
632 | + // Should we force read? |
|
633 | + if ( empty( $raw_meta_data ) ) { |
|
634 | + $raw_meta_data = $this->data_store->read_meta( $this ); |
|
635 | + |
|
636 | + if ( ! empty( $cache_key ) ) { |
|
637 | + wp_cache_set( $cache_key, $raw_meta_data, $this->cache_group ); |
|
638 | + } |
|
639 | + |
|
640 | + } |
|
641 | + |
|
642 | + // Set meta data. |
|
643 | + if ( is_array( $raw_meta_data ) ) { |
|
644 | + |
|
645 | + foreach ( $raw_meta_data as $meta ) { |
|
646 | + $this->meta_data[] = new GetPaid_Meta_Data( |
|
647 | + array( |
|
648 | + 'id' => (int) $meta->meta_id, |
|
649 | + 'key' => $meta->meta_key, |
|
650 | + 'value' => maybe_unserialize( $meta->meta_value ), |
|
651 | + ) |
|
652 | + ); |
|
653 | + } |
|
654 | + |
|
655 | + } |
|
656 | + |
|
657 | + } |
|
658 | + |
|
659 | + /** |
|
660 | + * Update Meta Data in the database. |
|
661 | + * |
|
662 | + * @since 1.0.19 |
|
663 | + */ |
|
664 | + public function save_meta_data() { |
|
665 | + if ( ! $this->data_store || is_null( $this->meta_data ) ) { |
|
666 | + return; |
|
667 | + } |
|
668 | + foreach ( $this->meta_data as $array_key => $meta ) { |
|
669 | + if ( is_null( $meta->value ) ) { |
|
670 | + if ( ! empty( $meta->id ) ) { |
|
671 | + $this->data_store->delete_meta( $this, $meta ); |
|
672 | + unset( $this->meta_data[ $array_key ] ); |
|
673 | + } |
|
674 | + } elseif ( empty( $meta->id ) ) { |
|
675 | + $meta->id = $this->data_store->add_meta( $this, $meta ); |
|
676 | + $meta->apply_changes(); |
|
677 | + } else { |
|
678 | + if ( $meta->get_changes() ) { |
|
679 | + $this->data_store->update_meta( $this, $meta ); |
|
680 | + $meta->apply_changes(); |
|
681 | + } |
|
682 | + } |
|
683 | + } |
|
684 | + if ( ! empty( $this->cache_group ) ) { |
|
685 | + $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
686 | + wp_cache_delete( $cache_key, $this->cache_group ); |
|
687 | + } |
|
688 | + } |
|
689 | + |
|
690 | + /** |
|
691 | + * Set ID. |
|
692 | + * |
|
693 | + * @since 1.0.19 |
|
694 | + * @param int $id ID. |
|
695 | + */ |
|
696 | + public function set_id( $id ) { |
|
697 | + $this->id = absint( $id ); |
|
698 | + } |
|
699 | + |
|
700 | + /** |
|
701 | + * Sets item status. |
|
702 | + * |
|
703 | + * @since 1.0.19 |
|
704 | + * @param string $status New status. |
|
705 | + * @return array details of change. |
|
706 | + */ |
|
707 | + public function set_status( $status ) { |
|
708 | 708 | $old_status = $this->get_status(); |
709 | 709 | |
710 | - $this->set_prop( 'status', $status ); |
|
711 | - |
|
712 | - return array( |
|
713 | - 'from' => $old_status, |
|
714 | - 'to' => $status, |
|
715 | - ); |
|
716 | - } |
|
717 | - |
|
718 | - /** |
|
719 | - * Set all props to default values. |
|
720 | - * |
|
721 | - * @since 1.0.19 |
|
722 | - */ |
|
723 | - public function set_defaults() { |
|
724 | - $this->data = $this->default_data; |
|
725 | - $this->changes = array(); |
|
726 | - $this->set_object_read( false ); |
|
727 | - } |
|
728 | - |
|
729 | - /** |
|
730 | - * Set object read property. |
|
731 | - * |
|
732 | - * @since 1.0.19 |
|
733 | - * @param boolean $read Should read?. |
|
734 | - */ |
|
735 | - public function set_object_read( $read = true ) { |
|
736 | - $this->object_read = (bool) $read; |
|
737 | - } |
|
738 | - |
|
739 | - /** |
|
740 | - * Get object read property. |
|
741 | - * |
|
742 | - * @since 1.0.19 |
|
743 | - * @return boolean |
|
744 | - */ |
|
745 | - public function get_object_read() { |
|
746 | - return (bool) $this->object_read; |
|
747 | - } |
|
748 | - |
|
749 | - /** |
|
750 | - * Set a collection of props in one go, collect any errors, and return the result. |
|
751 | - * Only sets using public methods. |
|
752 | - * |
|
753 | - * @since 1.0.19 |
|
754 | - * |
|
755 | - * @param array $props Key value pairs to set. Key is the prop and should map to a setter function name. |
|
756 | - * @param string $context In what context to run this. |
|
757 | - * |
|
758 | - * @return bool|WP_Error |
|
759 | - */ |
|
760 | - public function set_props( $props, $context = 'set' ) { |
|
761 | - $errors = false; |
|
762 | - |
|
763 | - $props = wp_unslash( $props ); |
|
764 | - foreach ( $props as $prop => $value ) { |
|
765 | - try { |
|
766 | - /** |
|
767 | - * Checks if the prop being set is allowed, and the value is not null. |
|
768 | - */ |
|
769 | - if ( is_null( $value ) || in_array( $prop, array( 'prop', 'date_prop', 'meta_data' ), true ) ) { |
|
770 | - continue; |
|
771 | - } |
|
772 | - $setter = "set_$prop"; |
|
773 | - |
|
774 | - if ( is_callable( array( $this, $setter ) ) ) { |
|
775 | - $this->{$setter}( $value ); |
|
776 | - } |
|
777 | - } catch ( Exception $e ) { |
|
778 | - if ( ! $errors ) { |
|
779 | - $errors = new WP_Error(); |
|
780 | - } |
|
781 | - $errors->add( $e->getCode(), $e->getMessage() ); |
|
782 | - $this->last_error = $e->getMessage(); |
|
783 | - } |
|
784 | - } |
|
785 | - |
|
786 | - return $errors && count( $errors->get_error_codes() ) ? $errors : true; |
|
787 | - } |
|
788 | - |
|
789 | - /** |
|
790 | - * Sets a prop for a setter method. |
|
791 | - * |
|
792 | - * This stores changes in a special array so we can track what needs saving |
|
793 | - * the the DB later. |
|
794 | - * |
|
795 | - * @since 1.0.19 |
|
796 | - * @param string $prop Name of prop to set. |
|
797 | - * @param mixed $value Value of the prop. |
|
798 | - */ |
|
799 | - protected function set_prop( $prop, $value ) { |
|
800 | - if ( array_key_exists( $prop, $this->data ) ) { |
|
801 | - if ( true === $this->object_read ) { |
|
802 | - if ( $value !== $this->data[ $prop ] || array_key_exists( $prop, $this->changes ) ) { |
|
803 | - $this->changes[ $prop ] = $value; |
|
804 | - } |
|
805 | - } else { |
|
806 | - $this->data[ $prop ] = $value; |
|
807 | - } |
|
808 | - } |
|
809 | - } |
|
810 | - |
|
811 | - /** |
|
812 | - * Return data changes only. |
|
813 | - * |
|
814 | - * @since 1.0.19 |
|
815 | - * @return array |
|
816 | - */ |
|
817 | - public function get_changes() { |
|
818 | - return $this->changes; |
|
819 | - } |
|
820 | - |
|
821 | - /** |
|
822 | - * Merge changes with data and clear. |
|
823 | - * |
|
824 | - * @since 1.0.19 |
|
825 | - */ |
|
826 | - public function apply_changes() { |
|
827 | - $this->data = array_replace( $this->data, $this->changes ); |
|
828 | - $this->changes = array(); |
|
829 | - } |
|
830 | - |
|
831 | - /** |
|
832 | - * Prefix for action and filter hooks on data. |
|
833 | - * |
|
834 | - * @since 1.0.19 |
|
835 | - * @return string |
|
836 | - */ |
|
837 | - protected function get_hook_prefix() { |
|
838 | - return 'wpinv_get_' . $this->object_type . '_'; |
|
839 | - } |
|
840 | - |
|
841 | - /** |
|
842 | - * Gets a prop for a getter method. |
|
843 | - * |
|
844 | - * Gets the value from either current pending changes, or the data itself. |
|
845 | - * Context controls what happens to the value before it's returned. |
|
846 | - * |
|
847 | - * @since 1.0.19 |
|
848 | - * @param string $prop Name of prop to get. |
|
849 | - * @param string $context What the value is for. Valid values are view and edit. |
|
850 | - * @return mixed |
|
851 | - */ |
|
852 | - protected function get_prop( $prop, $context = 'view' ) { |
|
853 | - $value = null; |
|
854 | - |
|
855 | - if ( array_key_exists( $prop, $this->data ) ) { |
|
856 | - $value = array_key_exists( $prop, $this->changes ) ? $this->changes[ $prop ] : $this->data[ $prop ]; |
|
857 | - |
|
858 | - if ( 'view' === $context ) { |
|
859 | - $value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this ); |
|
860 | - } |
|
861 | - } |
|
862 | - |
|
863 | - return $value; |
|
864 | - } |
|
865 | - |
|
866 | - /** |
|
867 | - * Sets a date prop whilst handling formatting and datetime objects. |
|
868 | - * |
|
869 | - * @since 1.0.19 |
|
870 | - * @param string $prop Name of prop to set. |
|
871 | - * @param string|integer $value Value of the prop. |
|
872 | - */ |
|
873 | - protected function set_date_prop( $prop, $value ) { |
|
874 | - |
|
875 | - if ( empty( $value ) ) { |
|
876 | - $this->set_prop( $prop, null ); |
|
877 | - return; |
|
878 | - } |
|
879 | - $this->set_prop( $prop, $value ); |
|
880 | - |
|
881 | - } |
|
882 | - |
|
883 | - /** |
|
884 | - * When invalid data is found, throw an exception unless reading from the DB. |
|
885 | - * |
|
886 | - * @since 1.0.19 |
|
887 | - * @param string $code Error code. |
|
888 | - * @param string $message Error message. |
|
889 | - */ |
|
890 | - protected function error( $code, $message ) { |
|
891 | - $this->last_error = $message; |
|
892 | - } |
|
893 | - |
|
894 | - /** |
|
895 | - * Checks if the object is saved in the database |
|
896 | - * |
|
897 | - * @since 1.0.19 |
|
898 | - * @return bool |
|
899 | - */ |
|
900 | - public function exists() { |
|
901 | - $id = $this->get_id(); |
|
902 | - return ! empty( $id ); |
|
903 | - } |
|
710 | + $this->set_prop( 'status', $status ); |
|
711 | + |
|
712 | + return array( |
|
713 | + 'from' => $old_status, |
|
714 | + 'to' => $status, |
|
715 | + ); |
|
716 | + } |
|
717 | + |
|
718 | + /** |
|
719 | + * Set all props to default values. |
|
720 | + * |
|
721 | + * @since 1.0.19 |
|
722 | + */ |
|
723 | + public function set_defaults() { |
|
724 | + $this->data = $this->default_data; |
|
725 | + $this->changes = array(); |
|
726 | + $this->set_object_read( false ); |
|
727 | + } |
|
728 | + |
|
729 | + /** |
|
730 | + * Set object read property. |
|
731 | + * |
|
732 | + * @since 1.0.19 |
|
733 | + * @param boolean $read Should read?. |
|
734 | + */ |
|
735 | + public function set_object_read( $read = true ) { |
|
736 | + $this->object_read = (bool) $read; |
|
737 | + } |
|
738 | + |
|
739 | + /** |
|
740 | + * Get object read property. |
|
741 | + * |
|
742 | + * @since 1.0.19 |
|
743 | + * @return boolean |
|
744 | + */ |
|
745 | + public function get_object_read() { |
|
746 | + return (bool) $this->object_read; |
|
747 | + } |
|
748 | + |
|
749 | + /** |
|
750 | + * Set a collection of props in one go, collect any errors, and return the result. |
|
751 | + * Only sets using public methods. |
|
752 | + * |
|
753 | + * @since 1.0.19 |
|
754 | + * |
|
755 | + * @param array $props Key value pairs to set. Key is the prop and should map to a setter function name. |
|
756 | + * @param string $context In what context to run this. |
|
757 | + * |
|
758 | + * @return bool|WP_Error |
|
759 | + */ |
|
760 | + public function set_props( $props, $context = 'set' ) { |
|
761 | + $errors = false; |
|
762 | + |
|
763 | + $props = wp_unslash( $props ); |
|
764 | + foreach ( $props as $prop => $value ) { |
|
765 | + try { |
|
766 | + /** |
|
767 | + * Checks if the prop being set is allowed, and the value is not null. |
|
768 | + */ |
|
769 | + if ( is_null( $value ) || in_array( $prop, array( 'prop', 'date_prop', 'meta_data' ), true ) ) { |
|
770 | + continue; |
|
771 | + } |
|
772 | + $setter = "set_$prop"; |
|
773 | + |
|
774 | + if ( is_callable( array( $this, $setter ) ) ) { |
|
775 | + $this->{$setter}( $value ); |
|
776 | + } |
|
777 | + } catch ( Exception $e ) { |
|
778 | + if ( ! $errors ) { |
|
779 | + $errors = new WP_Error(); |
|
780 | + } |
|
781 | + $errors->add( $e->getCode(), $e->getMessage() ); |
|
782 | + $this->last_error = $e->getMessage(); |
|
783 | + } |
|
784 | + } |
|
785 | + |
|
786 | + return $errors && count( $errors->get_error_codes() ) ? $errors : true; |
|
787 | + } |
|
788 | + |
|
789 | + /** |
|
790 | + * Sets a prop for a setter method. |
|
791 | + * |
|
792 | + * This stores changes in a special array so we can track what needs saving |
|
793 | + * the the DB later. |
|
794 | + * |
|
795 | + * @since 1.0.19 |
|
796 | + * @param string $prop Name of prop to set. |
|
797 | + * @param mixed $value Value of the prop. |
|
798 | + */ |
|
799 | + protected function set_prop( $prop, $value ) { |
|
800 | + if ( array_key_exists( $prop, $this->data ) ) { |
|
801 | + if ( true === $this->object_read ) { |
|
802 | + if ( $value !== $this->data[ $prop ] || array_key_exists( $prop, $this->changes ) ) { |
|
803 | + $this->changes[ $prop ] = $value; |
|
804 | + } |
|
805 | + } else { |
|
806 | + $this->data[ $prop ] = $value; |
|
807 | + } |
|
808 | + } |
|
809 | + } |
|
810 | + |
|
811 | + /** |
|
812 | + * Return data changes only. |
|
813 | + * |
|
814 | + * @since 1.0.19 |
|
815 | + * @return array |
|
816 | + */ |
|
817 | + public function get_changes() { |
|
818 | + return $this->changes; |
|
819 | + } |
|
820 | + |
|
821 | + /** |
|
822 | + * Merge changes with data and clear. |
|
823 | + * |
|
824 | + * @since 1.0.19 |
|
825 | + */ |
|
826 | + public function apply_changes() { |
|
827 | + $this->data = array_replace( $this->data, $this->changes ); |
|
828 | + $this->changes = array(); |
|
829 | + } |
|
830 | + |
|
831 | + /** |
|
832 | + * Prefix for action and filter hooks on data. |
|
833 | + * |
|
834 | + * @since 1.0.19 |
|
835 | + * @return string |
|
836 | + */ |
|
837 | + protected function get_hook_prefix() { |
|
838 | + return 'wpinv_get_' . $this->object_type . '_'; |
|
839 | + } |
|
840 | + |
|
841 | + /** |
|
842 | + * Gets a prop for a getter method. |
|
843 | + * |
|
844 | + * Gets the value from either current pending changes, or the data itself. |
|
845 | + * Context controls what happens to the value before it's returned. |
|
846 | + * |
|
847 | + * @since 1.0.19 |
|
848 | + * @param string $prop Name of prop to get. |
|
849 | + * @param string $context What the value is for. Valid values are view and edit. |
|
850 | + * @return mixed |
|
851 | + */ |
|
852 | + protected function get_prop( $prop, $context = 'view' ) { |
|
853 | + $value = null; |
|
854 | + |
|
855 | + if ( array_key_exists( $prop, $this->data ) ) { |
|
856 | + $value = array_key_exists( $prop, $this->changes ) ? $this->changes[ $prop ] : $this->data[ $prop ]; |
|
857 | + |
|
858 | + if ( 'view' === $context ) { |
|
859 | + $value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this ); |
|
860 | + } |
|
861 | + } |
|
862 | + |
|
863 | + return $value; |
|
864 | + } |
|
865 | + |
|
866 | + /** |
|
867 | + * Sets a date prop whilst handling formatting and datetime objects. |
|
868 | + * |
|
869 | + * @since 1.0.19 |
|
870 | + * @param string $prop Name of prop to set. |
|
871 | + * @param string|integer $value Value of the prop. |
|
872 | + */ |
|
873 | + protected function set_date_prop( $prop, $value ) { |
|
874 | + |
|
875 | + if ( empty( $value ) ) { |
|
876 | + $this->set_prop( $prop, null ); |
|
877 | + return; |
|
878 | + } |
|
879 | + $this->set_prop( $prop, $value ); |
|
880 | + |
|
881 | + } |
|
882 | + |
|
883 | + /** |
|
884 | + * When invalid data is found, throw an exception unless reading from the DB. |
|
885 | + * |
|
886 | + * @since 1.0.19 |
|
887 | + * @param string $code Error code. |
|
888 | + * @param string $message Error message. |
|
889 | + */ |
|
890 | + protected function error( $code, $message ) { |
|
891 | + $this->last_error = $message; |
|
892 | + } |
|
893 | + |
|
894 | + /** |
|
895 | + * Checks if the object is saved in the database |
|
896 | + * |
|
897 | + * @since 1.0.19 |
|
898 | + * @return bool |
|
899 | + */ |
|
900 | + public function exists() { |
|
901 | + $id = $this->get_id(); |
|
902 | + return ! empty( $id ); |
|
903 | + } |
|
904 | 904 | |
905 | 905 | } |
@@ -8,7 +8,7 @@ discard block |
||
8 | 8 | * |
9 | 9 | */ |
10 | 10 | |
11 | -if ( ! defined( 'ABSPATH' ) ) { |
|
11 | +if (!defined('ABSPATH')) { |
|
12 | 12 | exit; |
13 | 13 | } |
14 | 14 | |
@@ -117,8 +117,8 @@ discard block |
||
117 | 117 | * |
118 | 118 | * @param int|object|array|string $read ID to load from the DB (optional) or already queried data. |
119 | 119 | */ |
120 | - public function __construct( $read = 0 ) { |
|
121 | - $this->data = array_merge( $this->data, $this->extra_data ); |
|
120 | + public function __construct($read = 0) { |
|
121 | + $this->data = array_merge($this->data, $this->extra_data); |
|
122 | 122 | $this->default_data = $this->data; |
123 | 123 | } |
124 | 124 | |
@@ -128,7 +128,7 @@ discard block |
||
128 | 128 | * @return array |
129 | 129 | */ |
130 | 130 | public function __sleep() { |
131 | - return array( 'id' ); |
|
131 | + return array('id'); |
|
132 | 132 | } |
133 | 133 | |
134 | 134 | /** |
@@ -137,10 +137,10 @@ discard block |
||
137 | 137 | * If the object no longer exists, remove the ID. |
138 | 138 | */ |
139 | 139 | public function __wakeup() { |
140 | - $this->__construct( absint( $this->id ) ); |
|
140 | + $this->__construct(absint($this->id)); |
|
141 | 141 | |
142 | - if ( ! empty( $this->last_error ) ) { |
|
143 | - $this->set_id( 0 ); |
|
142 | + if (!empty($this->last_error)) { |
|
143 | + $this->set_id(0); |
|
144 | 144 | } |
145 | 145 | |
146 | 146 | } |
@@ -152,11 +152,11 @@ discard block |
||
152 | 152 | */ |
153 | 153 | public function __clone() { |
154 | 154 | $this->maybe_read_meta_data(); |
155 | - if ( ! empty( $this->meta_data ) ) { |
|
156 | - foreach ( $this->meta_data as $array_key => $meta ) { |
|
157 | - $this->meta_data[ $array_key ] = clone $meta; |
|
158 | - if ( ! empty( $meta->id ) ) { |
|
159 | - $this->meta_data[ $array_key ]->id = null; |
|
155 | + if (!empty($this->meta_data)) { |
|
156 | + foreach ($this->meta_data as $array_key => $meta) { |
|
157 | + $this->meta_data[$array_key] = clone $meta; |
|
158 | + if (!empty($meta->id)) { |
|
159 | + $this->meta_data[$array_key]->id = null; |
|
160 | 160 | } |
161 | 161 | } |
162 | 162 | } |
@@ -199,8 +199,8 @@ discard block |
||
199 | 199 | * @param string $context View or edit context. |
200 | 200 | * @return string |
201 | 201 | */ |
202 | - public function get_status( $context = 'view' ) { |
|
203 | - return $this->get_prop( 'status', $context ); |
|
202 | + public function get_status($context = 'view') { |
|
203 | + return $this->get_prop('status', $context); |
|
204 | 204 | } |
205 | 205 | |
206 | 206 | /** |
@@ -210,10 +210,10 @@ discard block |
||
210 | 210 | * @param bool $force_delete Should the data be deleted permanently. |
211 | 211 | * @return bool result |
212 | 212 | */ |
213 | - public function delete( $force_delete = false ) { |
|
214 | - if ( $this->data_store && $this->exists() ) { |
|
215 | - $this->data_store->delete( $this, array( 'force_delete' => $force_delete ) ); |
|
216 | - $this->set_id( 0 ); |
|
213 | + public function delete($force_delete = false) { |
|
214 | + if ($this->data_store && $this->exists()) { |
|
215 | + $this->data_store->delete($this, array('force_delete' => $force_delete)); |
|
216 | + $this->set_id(0); |
|
217 | 217 | return true; |
218 | 218 | } |
219 | 219 | return false; |
@@ -226,7 +226,7 @@ discard block |
||
226 | 226 | * @return int |
227 | 227 | */ |
228 | 228 | public function save() { |
229 | - if ( ! $this->data_store ) { |
|
229 | + if (!$this->data_store) { |
|
230 | 230 | return $this->get_id(); |
231 | 231 | } |
232 | 232 | |
@@ -236,12 +236,12 @@ discard block |
||
236 | 236 | * @param GetPaid_Data $this The object being saved. |
237 | 237 | * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
238 | 238 | */ |
239 | - do_action( 'getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
239 | + do_action('getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store); |
|
240 | 240 | |
241 | - if ( $this->get_id() ) { |
|
242 | - $this->data_store->update( $this ); |
|
241 | + if ($this->get_id()) { |
|
242 | + $this->data_store->update($this); |
|
243 | 243 | } else { |
244 | - $this->data_store->create( $this ); |
|
244 | + $this->data_store->create($this); |
|
245 | 245 | } |
246 | 246 | |
247 | 247 | /** |
@@ -250,7 +250,7 @@ discard block |
||
250 | 250 | * @param GetPaid_Data $this The object being saved. |
251 | 251 | * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
252 | 252 | */ |
253 | - do_action( 'getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
253 | + do_action('getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store); |
|
254 | 254 | |
255 | 255 | return $this->get_id(); |
256 | 256 | } |
@@ -262,7 +262,7 @@ discard block |
||
262 | 262 | * @return string Data in JSON format. |
263 | 263 | */ |
264 | 264 | public function __toString() { |
265 | - return wp_json_encode( $this->get_data() ); |
|
265 | + return wp_json_encode($this->get_data()); |
|
266 | 266 | } |
267 | 267 | |
268 | 268 | /** |
@@ -272,7 +272,7 @@ discard block |
||
272 | 272 | * @return array |
273 | 273 | */ |
274 | 274 | public function get_data() { |
275 | - return array_merge( array( 'id' => $this->get_id() ), $this->data, array( 'meta_data' => $this->get_meta_data() ) ); |
|
275 | + return array_merge(array('id' => $this->get_id()), $this->data, array('meta_data' => $this->get_meta_data())); |
|
276 | 276 | } |
277 | 277 | |
278 | 278 | /** |
@@ -282,7 +282,7 @@ discard block |
||
282 | 282 | * @return array |
283 | 283 | */ |
284 | 284 | public function get_data_keys() { |
285 | - return array_keys( $this->data ); |
|
285 | + return array_keys($this->data); |
|
286 | 286 | } |
287 | 287 | |
288 | 288 | /** |
@@ -292,7 +292,7 @@ discard block |
||
292 | 292 | * @return array |
293 | 293 | */ |
294 | 294 | public function get_extra_data_keys() { |
295 | - return array_keys( $this->extra_data ); |
|
295 | + return array_keys($this->extra_data); |
|
296 | 296 | } |
297 | 297 | |
298 | 298 | /** |
@@ -302,8 +302,8 @@ discard block |
||
302 | 302 | * @param mixed $meta Meta value to check. |
303 | 303 | * @return bool |
304 | 304 | */ |
305 | - protected function filter_null_meta( $meta ) { |
|
306 | - return ! is_null( $meta->value ); |
|
305 | + protected function filter_null_meta($meta) { |
|
306 | + return !is_null($meta->value); |
|
307 | 307 | } |
308 | 308 | |
309 | 309 | /** |
@@ -314,7 +314,7 @@ discard block |
||
314 | 314 | */ |
315 | 315 | public function get_meta_data() { |
316 | 316 | $this->maybe_read_meta_data(); |
317 | - return array_values( array_filter( $this->meta_data, array( $this, 'filter_null_meta' ) ) ); |
|
317 | + return array_values(array_filter($this->meta_data, array($this, 'filter_null_meta'))); |
|
318 | 318 | } |
319 | 319 | |
320 | 320 | /** |
@@ -324,21 +324,21 @@ discard block |
||
324 | 324 | * @param string $key Key to check. |
325 | 325 | * @return bool true if it's an internal key, false otherwise |
326 | 326 | */ |
327 | - protected function is_internal_meta_key( $key ) { |
|
328 | - $internal_meta_key = ! empty( $key ) && $this->data_store && in_array( $key, $this->data_store->get_internal_meta_keys(), true ); |
|
327 | + protected function is_internal_meta_key($key) { |
|
328 | + $internal_meta_key = !empty($key) && $this->data_store && in_array($key, $this->data_store->get_internal_meta_keys(), true); |
|
329 | 329 | |
330 | - if ( ! $internal_meta_key ) { |
|
330 | + if (!$internal_meta_key) { |
|
331 | 331 | return false; |
332 | 332 | } |
333 | 333 | |
334 | - $has_setter_or_getter = is_callable( array( $this, 'set_' . $key ) ) || is_callable( array( $this, 'get_' . $key ) ); |
|
334 | + $has_setter_or_getter = is_callable(array($this, 'set_' . $key)) || is_callable(array($this, 'get_' . $key)); |
|
335 | 335 | |
336 | - if ( ! $has_setter_or_getter ) { |
|
336 | + if (!$has_setter_or_getter) { |
|
337 | 337 | return false; |
338 | 338 | } |
339 | 339 | |
340 | 340 | /* translators: %s: $key Key to check */ |
341 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
341 | + getpaid_doing_it_wrong(__FUNCTION__, sprintf(__('Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing'), $key), '1.0.19'); |
|
342 | 342 | |
343 | 343 | return true; |
344 | 344 | } |
@@ -352,20 +352,20 @@ discard block |
||
352 | 352 | * @access public |
353 | 353 | * |
354 | 354 | */ |
355 | - public function __set( $key, $value ) { |
|
355 | + public function __set($key, $value) { |
|
356 | 356 | |
357 | - if ( 'id' == strtolower( $key ) ) { |
|
358 | - return $this->set_id( $value ); |
|
357 | + if ('id' == strtolower($key)) { |
|
358 | + return $this->set_id($value); |
|
359 | 359 | } |
360 | 360 | |
361 | - if ( method_exists( $this, "set_$key") ) { |
|
361 | + if (method_exists($this, "set_$key")) { |
|
362 | 362 | |
363 | 363 | /* translators: %s: $key Key to set */ |
364 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
364 | + getpaid_doing_it_wrong(__FUNCTION__, sprintf(__('Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing'), $key), '1.0.19'); |
|
365 | 365 | |
366 | - call_user_func( array( $this, "set_$key" ), $value ); |
|
366 | + call_user_func(array($this, "set_$key"), $value); |
|
367 | 367 | } else { |
368 | - $this->set_prop( $key, $value ); |
|
368 | + $this->set_prop($key, $value); |
|
369 | 369 | } |
370 | 370 | |
371 | 371 | } |
@@ -373,25 +373,25 @@ discard block |
||
373 | 373 | /** |
374 | 374 | * Margic method for retrieving a property. |
375 | 375 | */ |
376 | - public function __get( $key ) { |
|
376 | + public function __get($key) { |
|
377 | 377 | |
378 | 378 | // Check if we have a helper method for that. |
379 | - if ( method_exists( $this, 'get_' . $key ) ) { |
|
379 | + if (method_exists($this, 'get_' . $key)) { |
|
380 | 380 | |
381 | - if ( 'post_type' != $key ) { |
|
381 | + if ('post_type' != $key) { |
|
382 | 382 | /* translators: %s: $key Key to set */ |
383 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
383 | + getpaid_doing_it_wrong(__FUNCTION__, sprintf(__('Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing'), $key), '1.0.19'); |
|
384 | 384 | } |
385 | 385 | |
386 | - return call_user_func( array( $this, 'get_' . $key ) ); |
|
386 | + return call_user_func(array($this, 'get_' . $key)); |
|
387 | 387 | } |
388 | 388 | |
389 | 389 | // Check if the key is in the associated $post object. |
390 | - if ( ! empty( $this->post ) && isset( $this->post->$key ) ) { |
|
390 | + if (!empty($this->post) && isset($this->post->$key)) { |
|
391 | 391 | return $this->post->$key; |
392 | 392 | } |
393 | 393 | |
394 | - return $this->get_prop( $key ); |
|
394 | + return $this->get_prop($key); |
|
395 | 395 | |
396 | 396 | } |
397 | 397 | |
@@ -404,15 +404,15 @@ discard block |
||
404 | 404 | * @param string $context What the value is for. Valid values are view and edit. |
405 | 405 | * @return mixed |
406 | 406 | */ |
407 | - public function get_meta( $key = '', $single = true, $context = 'view' ) { |
|
407 | + public function get_meta($key = '', $single = true, $context = 'view') { |
|
408 | 408 | |
409 | 409 | // Check if this is an internal meta key. |
410 | - $_key = str_replace( '_wpinv', '', $key ); |
|
411 | - $_key = str_replace( 'wpinv', '', $_key ); |
|
412 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
410 | + $_key = str_replace('_wpinv', '', $key); |
|
411 | + $_key = str_replace('wpinv', '', $_key); |
|
412 | + if ($this->is_internal_meta_key($key)) { |
|
413 | 413 | $function = 'get_' . $_key; |
414 | 414 | |
415 | - if ( is_callable( array( $this, $function ) ) ) { |
|
415 | + if (is_callable(array($this, $function))) { |
|
416 | 416 | return $this->{$function}(); |
417 | 417 | } |
418 | 418 | } |
@@ -420,20 +420,20 @@ discard block |
||
420 | 420 | // Read the meta data if not yet read. |
421 | 421 | $this->maybe_read_meta_data(); |
422 | 422 | $meta_data = $this->get_meta_data(); |
423 | - $array_keys = array_keys( wp_list_pluck( $meta_data, 'key' ), $key, true ); |
|
423 | + $array_keys = array_keys(wp_list_pluck($meta_data, 'key'), $key, true); |
|
424 | 424 | $value = $single ? '' : array(); |
425 | 425 | |
426 | - if ( ! empty( $array_keys ) ) { |
|
426 | + if (!empty($array_keys)) { |
|
427 | 427 | // We don't use the $this->meta_data property directly here because we don't want meta with a null value (i.e. meta which has been deleted via $this->delete_meta_data()). |
428 | - if ( $single ) { |
|
429 | - $value = $meta_data[ current( $array_keys ) ]->value; |
|
428 | + if ($single) { |
|
429 | + $value = $meta_data[current($array_keys)]->value; |
|
430 | 430 | } else { |
431 | - $value = array_intersect_key( $meta_data, array_flip( $array_keys ) ); |
|
431 | + $value = array_intersect_key($meta_data, array_flip($array_keys)); |
|
432 | 432 | } |
433 | 433 | } |
434 | 434 | |
435 | - if ( 'view' === $context ) { |
|
436 | - $value = apply_filters( $this->get_hook_prefix() . $key, $value, $this ); |
|
435 | + if ('view' === $context) { |
|
436 | + $value = apply_filters($this->get_hook_prefix() . $key, $value, $this); |
|
437 | 437 | } |
438 | 438 | |
439 | 439 | return $value; |
@@ -446,10 +446,10 @@ discard block |
||
446 | 446 | * @param string $key Meta Key. |
447 | 447 | * @return boolean |
448 | 448 | */ |
449 | - public function meta_exists( $key = '' ) { |
|
449 | + public function meta_exists($key = '') { |
|
450 | 450 | $this->maybe_read_meta_data(); |
451 | - $array_keys = wp_list_pluck( $this->get_meta_data(), 'key' ); |
|
452 | - return in_array( $key, $array_keys, true ); |
|
451 | + $array_keys = wp_list_pluck($this->get_meta_data(), 'key'); |
|
452 | + return in_array($key, $array_keys, true); |
|
453 | 453 | } |
454 | 454 | |
455 | 455 | /** |
@@ -458,12 +458,12 @@ discard block |
||
458 | 458 | * @since 1.0.19 |
459 | 459 | * @param array $data Key/Value pairs. |
460 | 460 | */ |
461 | - public function set_meta_data( $data ) { |
|
462 | - if ( ! empty( $data ) && is_array( $data ) ) { |
|
461 | + public function set_meta_data($data) { |
|
462 | + if (!empty($data) && is_array($data)) { |
|
463 | 463 | $this->maybe_read_meta_data(); |
464 | - foreach ( $data as $meta ) { |
|
464 | + foreach ($data as $meta) { |
|
465 | 465 | $meta = (array) $meta; |
466 | - if ( isset( $meta['key'], $meta['value'], $meta['id'] ) ) { |
|
466 | + if (isset($meta['key'], $meta['value'], $meta['id'])) { |
|
467 | 467 | $this->meta_data[] = new GetPaid_Meta_Data( |
468 | 468 | array( |
469 | 469 | 'id' => $meta['id'], |
@@ -485,18 +485,18 @@ discard block |
||
485 | 485 | * @param string|array $value Meta value. |
486 | 486 | * @param bool $unique Should this be a unique key?. |
487 | 487 | */ |
488 | - public function add_meta_data( $key, $value, $unique = false ) { |
|
489 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
488 | + public function add_meta_data($key, $value, $unique = false) { |
|
489 | + if ($this->is_internal_meta_key($key)) { |
|
490 | 490 | $function = 'set_' . $key; |
491 | 491 | |
492 | - if ( is_callable( array( $this, $function ) ) ) { |
|
493 | - return $this->{$function}( $value ); |
|
492 | + if (is_callable(array($this, $function))) { |
|
493 | + return $this->{$function}($value); |
|
494 | 494 | } |
495 | 495 | } |
496 | 496 | |
497 | 497 | $this->maybe_read_meta_data(); |
498 | - if ( $unique ) { |
|
499 | - $this->delete_meta_data( $key ); |
|
498 | + if ($unique) { |
|
499 | + $this->delete_meta_data($key); |
|
500 | 500 | } |
501 | 501 | $this->meta_data[] = new GetPaid_Meta_Data( |
502 | 502 | array( |
@@ -517,12 +517,12 @@ discard block |
||
517 | 517 | * @param string|array $value Meta value. |
518 | 518 | * @param int $meta_id Meta ID. |
519 | 519 | */ |
520 | - public function update_meta_data( $key, $value, $meta_id = 0 ) { |
|
521 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
520 | + public function update_meta_data($key, $value, $meta_id = 0) { |
|
521 | + if ($this->is_internal_meta_key($key)) { |
|
522 | 522 | $function = 'set_' . $key; |
523 | 523 | |
524 | - if ( is_callable( array( $this, $function ) ) ) { |
|
525 | - return $this->{$function}( $value ); |
|
524 | + if (is_callable(array($this, $function))) { |
|
525 | + return $this->{$function}($value); |
|
526 | 526 | } |
527 | 527 | } |
528 | 528 | |
@@ -530,33 +530,33 @@ discard block |
||
530 | 530 | |
531 | 531 | $array_key = false; |
532 | 532 | |
533 | - if ( $meta_id ) { |
|
534 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true ); |
|
535 | - $array_key = $array_keys ? current( $array_keys ) : false; |
|
533 | + if ($meta_id) { |
|
534 | + $array_keys = array_keys(wp_list_pluck($this->meta_data, 'id'), $meta_id, true); |
|
535 | + $array_key = $array_keys ? current($array_keys) : false; |
|
536 | 536 | } else { |
537 | 537 | // Find matches by key. |
538 | 538 | $matches = array(); |
539 | - foreach ( $this->meta_data as $meta_data_array_key => $meta ) { |
|
540 | - if ( $meta->key === $key ) { |
|
539 | + foreach ($this->meta_data as $meta_data_array_key => $meta) { |
|
540 | + if ($meta->key === $key) { |
|
541 | 541 | $matches[] = $meta_data_array_key; |
542 | 542 | } |
543 | 543 | } |
544 | 544 | |
545 | - if ( ! empty( $matches ) ) { |
|
545 | + if (!empty($matches)) { |
|
546 | 546 | // Set matches to null so only one key gets the new value. |
547 | - foreach ( $matches as $meta_data_array_key ) { |
|
548 | - $this->meta_data[ $meta_data_array_key ]->value = null; |
|
547 | + foreach ($matches as $meta_data_array_key) { |
|
548 | + $this->meta_data[$meta_data_array_key]->value = null; |
|
549 | 549 | } |
550 | - $array_key = current( $matches ); |
|
550 | + $array_key = current($matches); |
|
551 | 551 | } |
552 | 552 | } |
553 | 553 | |
554 | - if ( false !== $array_key ) { |
|
555 | - $meta = $this->meta_data[ $array_key ]; |
|
554 | + if (false !== $array_key) { |
|
555 | + $meta = $this->meta_data[$array_key]; |
|
556 | 556 | $meta->key = $key; |
557 | 557 | $meta->value = $value; |
558 | 558 | } else { |
559 | - $this->add_meta_data( $key, $value, true ); |
|
559 | + $this->add_meta_data($key, $value, true); |
|
560 | 560 | } |
561 | 561 | } |
562 | 562 | |
@@ -566,13 +566,13 @@ discard block |
||
566 | 566 | * @since 1.0.19 |
567 | 567 | * @param string $key Meta key. |
568 | 568 | */ |
569 | - public function delete_meta_data( $key ) { |
|
569 | + public function delete_meta_data($key) { |
|
570 | 570 | $this->maybe_read_meta_data(); |
571 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'key' ), $key, true ); |
|
571 | + $array_keys = array_keys(wp_list_pluck($this->meta_data, 'key'), $key, true); |
|
572 | 572 | |
573 | - if ( $array_keys ) { |
|
574 | - foreach ( $array_keys as $array_key ) { |
|
575 | - $this->meta_data[ $array_key ]->value = null; |
|
573 | + if ($array_keys) { |
|
574 | + foreach ($array_keys as $array_key) { |
|
575 | + $this->meta_data[$array_key]->value = null; |
|
576 | 576 | } |
577 | 577 | } |
578 | 578 | } |
@@ -583,13 +583,13 @@ discard block |
||
583 | 583 | * @since 1.0.19 |
584 | 584 | * @param int $mid Meta ID. |
585 | 585 | */ |
586 | - public function delete_meta_data_by_mid( $mid ) { |
|
586 | + public function delete_meta_data_by_mid($mid) { |
|
587 | 587 | $this->maybe_read_meta_data(); |
588 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), (int) $mid, true ); |
|
588 | + $array_keys = array_keys(wp_list_pluck($this->meta_data, 'id'), (int) $mid, true); |
|
589 | 589 | |
590 | - if ( $array_keys ) { |
|
591 | - foreach ( $array_keys as $array_key ) { |
|
592 | - $this->meta_data[ $array_key ]->value = null; |
|
590 | + if ($array_keys) { |
|
591 | + foreach ($array_keys as $array_key) { |
|
592 | + $this->meta_data[$array_key]->value = null; |
|
593 | 593 | } |
594 | 594 | } |
595 | 595 | } |
@@ -600,7 +600,7 @@ discard block |
||
600 | 600 | * @since 1.0.19 |
601 | 601 | */ |
602 | 602 | protected function maybe_read_meta_data() { |
603 | - if ( is_null( $this->meta_data ) ) { |
|
603 | + if (is_null($this->meta_data)) { |
|
604 | 604 | $this->read_meta_data(); |
605 | 605 | } |
606 | 606 | } |
@@ -612,42 +612,42 @@ discard block |
||
612 | 612 | * @since 1.0.19 |
613 | 613 | * @param bool $force_read True to force a new DB read (and update cache). |
614 | 614 | */ |
615 | - public function read_meta_data( $force_read = false ) { |
|
615 | + public function read_meta_data($force_read = false) { |
|
616 | 616 | |
617 | 617 | // Reset meta data. |
618 | 618 | $this->meta_data = array(); |
619 | 619 | |
620 | 620 | // Maybe abort early. |
621 | - if ( ! $this->get_id() || ! $this->data_store ) { |
|
621 | + if (!$this->get_id() || !$this->data_store) { |
|
622 | 622 | return; |
623 | 623 | } |
624 | 624 | |
625 | 625 | // Only read from cache if the cache key is set. |
626 | 626 | $cache_key = null; |
627 | - if ( ! $force_read && ! empty( $this->cache_group ) ) { |
|
628 | - $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
629 | - $raw_meta_data = wp_cache_get( $cache_key, $this->cache_group ); |
|
627 | + if (!$force_read && !empty($this->cache_group)) { |
|
628 | + $cache_key = GetPaid_Cache_Helper::get_cache_prefix($this->cache_group) . GetPaid_Cache_Helper::get_cache_prefix('object_' . $this->get_id()) . 'object_meta_' . $this->get_id(); |
|
629 | + $raw_meta_data = wp_cache_get($cache_key, $this->cache_group); |
|
630 | 630 | } |
631 | 631 | |
632 | 632 | // Should we force read? |
633 | - if ( empty( $raw_meta_data ) ) { |
|
634 | - $raw_meta_data = $this->data_store->read_meta( $this ); |
|
633 | + if (empty($raw_meta_data)) { |
|
634 | + $raw_meta_data = $this->data_store->read_meta($this); |
|
635 | 635 | |
636 | - if ( ! empty( $cache_key ) ) { |
|
637 | - wp_cache_set( $cache_key, $raw_meta_data, $this->cache_group ); |
|
636 | + if (!empty($cache_key)) { |
|
637 | + wp_cache_set($cache_key, $raw_meta_data, $this->cache_group); |
|
638 | 638 | } |
639 | 639 | |
640 | 640 | } |
641 | 641 | |
642 | 642 | // Set meta data. |
643 | - if ( is_array( $raw_meta_data ) ) { |
|
643 | + if (is_array($raw_meta_data)) { |
|
644 | 644 | |
645 | - foreach ( $raw_meta_data as $meta ) { |
|
645 | + foreach ($raw_meta_data as $meta) { |
|
646 | 646 | $this->meta_data[] = new GetPaid_Meta_Data( |
647 | 647 | array( |
648 | 648 | 'id' => (int) $meta->meta_id, |
649 | 649 | 'key' => $meta->meta_key, |
650 | - 'value' => maybe_unserialize( $meta->meta_value ), |
|
650 | + 'value' => maybe_unserialize($meta->meta_value), |
|
651 | 651 | ) |
652 | 652 | ); |
653 | 653 | } |
@@ -662,28 +662,28 @@ discard block |
||
662 | 662 | * @since 1.0.19 |
663 | 663 | */ |
664 | 664 | public function save_meta_data() { |
665 | - if ( ! $this->data_store || is_null( $this->meta_data ) ) { |
|
665 | + if (!$this->data_store || is_null($this->meta_data)) { |
|
666 | 666 | return; |
667 | 667 | } |
668 | - foreach ( $this->meta_data as $array_key => $meta ) { |
|
669 | - if ( is_null( $meta->value ) ) { |
|
670 | - if ( ! empty( $meta->id ) ) { |
|
671 | - $this->data_store->delete_meta( $this, $meta ); |
|
672 | - unset( $this->meta_data[ $array_key ] ); |
|
668 | + foreach ($this->meta_data as $array_key => $meta) { |
|
669 | + if (is_null($meta->value)) { |
|
670 | + if (!empty($meta->id)) { |
|
671 | + $this->data_store->delete_meta($this, $meta); |
|
672 | + unset($this->meta_data[$array_key]); |
|
673 | 673 | } |
674 | - } elseif ( empty( $meta->id ) ) { |
|
675 | - $meta->id = $this->data_store->add_meta( $this, $meta ); |
|
674 | + } elseif (empty($meta->id)) { |
|
675 | + $meta->id = $this->data_store->add_meta($this, $meta); |
|
676 | 676 | $meta->apply_changes(); |
677 | 677 | } else { |
678 | - if ( $meta->get_changes() ) { |
|
679 | - $this->data_store->update_meta( $this, $meta ); |
|
678 | + if ($meta->get_changes()) { |
|
679 | + $this->data_store->update_meta($this, $meta); |
|
680 | 680 | $meta->apply_changes(); |
681 | 681 | } |
682 | 682 | } |
683 | 683 | } |
684 | - if ( ! empty( $this->cache_group ) ) { |
|
685 | - $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
686 | - wp_cache_delete( $cache_key, $this->cache_group ); |
|
684 | + if (!empty($this->cache_group)) { |
|
685 | + $cache_key = GetPaid_Cache_Helper::get_cache_prefix($this->cache_group) . GetPaid_Cache_Helper::get_cache_prefix('object_' . $this->get_id()) . 'object_meta_' . $this->get_id(); |
|
686 | + wp_cache_delete($cache_key, $this->cache_group); |
|
687 | 687 | } |
688 | 688 | } |
689 | 689 | |
@@ -693,8 +693,8 @@ discard block |
||
693 | 693 | * @since 1.0.19 |
694 | 694 | * @param int $id ID. |
695 | 695 | */ |
696 | - public function set_id( $id ) { |
|
697 | - $this->id = absint( $id ); |
|
696 | + public function set_id($id) { |
|
697 | + $this->id = absint($id); |
|
698 | 698 | } |
699 | 699 | |
700 | 700 | /** |
@@ -704,10 +704,10 @@ discard block |
||
704 | 704 | * @param string $status New status. |
705 | 705 | * @return array details of change. |
706 | 706 | */ |
707 | - public function set_status( $status ) { |
|
707 | + public function set_status($status) { |
|
708 | 708 | $old_status = $this->get_status(); |
709 | 709 | |
710 | - $this->set_prop( 'status', $status ); |
|
710 | + $this->set_prop('status', $status); |
|
711 | 711 | |
712 | 712 | return array( |
713 | 713 | 'from' => $old_status, |
@@ -723,7 +723,7 @@ discard block |
||
723 | 723 | public function set_defaults() { |
724 | 724 | $this->data = $this->default_data; |
725 | 725 | $this->changes = array(); |
726 | - $this->set_object_read( false ); |
|
726 | + $this->set_object_read(false); |
|
727 | 727 | } |
728 | 728 | |
729 | 729 | /** |
@@ -732,7 +732,7 @@ discard block |
||
732 | 732 | * @since 1.0.19 |
733 | 733 | * @param boolean $read Should read?. |
734 | 734 | */ |
735 | - public function set_object_read( $read = true ) { |
|
735 | + public function set_object_read($read = true) { |
|
736 | 736 | $this->object_read = (bool) $read; |
737 | 737 | } |
738 | 738 | |
@@ -757,33 +757,33 @@ discard block |
||
757 | 757 | * |
758 | 758 | * @return bool|WP_Error |
759 | 759 | */ |
760 | - public function set_props( $props, $context = 'set' ) { |
|
760 | + public function set_props($props, $context = 'set') { |
|
761 | 761 | $errors = false; |
762 | 762 | |
763 | - $props = wp_unslash( $props ); |
|
764 | - foreach ( $props as $prop => $value ) { |
|
763 | + $props = wp_unslash($props); |
|
764 | + foreach ($props as $prop => $value) { |
|
765 | 765 | try { |
766 | 766 | /** |
767 | 767 | * Checks if the prop being set is allowed, and the value is not null. |
768 | 768 | */ |
769 | - if ( is_null( $value ) || in_array( $prop, array( 'prop', 'date_prop', 'meta_data' ), true ) ) { |
|
769 | + if (is_null($value) || in_array($prop, array('prop', 'date_prop', 'meta_data'), true)) { |
|
770 | 770 | continue; |
771 | 771 | } |
772 | 772 | $setter = "set_$prop"; |
773 | 773 | |
774 | - if ( is_callable( array( $this, $setter ) ) ) { |
|
775 | - $this->{$setter}( $value ); |
|
774 | + if (is_callable(array($this, $setter))) { |
|
775 | + $this->{$setter}($value); |
|
776 | 776 | } |
777 | - } catch ( Exception $e ) { |
|
778 | - if ( ! $errors ) { |
|
777 | + } catch (Exception $e) { |
|
778 | + if (!$errors) { |
|
779 | 779 | $errors = new WP_Error(); |
780 | 780 | } |
781 | - $errors->add( $e->getCode(), $e->getMessage() ); |
|
781 | + $errors->add($e->getCode(), $e->getMessage()); |
|
782 | 782 | $this->last_error = $e->getMessage(); |
783 | 783 | } |
784 | 784 | } |
785 | 785 | |
786 | - return $errors && count( $errors->get_error_codes() ) ? $errors : true; |
|
786 | + return $errors && count($errors->get_error_codes()) ? $errors : true; |
|
787 | 787 | } |
788 | 788 | |
789 | 789 | /** |
@@ -796,14 +796,14 @@ discard block |
||
796 | 796 | * @param string $prop Name of prop to set. |
797 | 797 | * @param mixed $value Value of the prop. |
798 | 798 | */ |
799 | - protected function set_prop( $prop, $value ) { |
|
800 | - if ( array_key_exists( $prop, $this->data ) ) { |
|
801 | - if ( true === $this->object_read ) { |
|
802 | - if ( $value !== $this->data[ $prop ] || array_key_exists( $prop, $this->changes ) ) { |
|
803 | - $this->changes[ $prop ] = $value; |
|
799 | + protected function set_prop($prop, $value) { |
|
800 | + if (array_key_exists($prop, $this->data)) { |
|
801 | + if (true === $this->object_read) { |
|
802 | + if ($value !== $this->data[$prop] || array_key_exists($prop, $this->changes)) { |
|
803 | + $this->changes[$prop] = $value; |
|
804 | 804 | } |
805 | 805 | } else { |
806 | - $this->data[ $prop ] = $value; |
|
806 | + $this->data[$prop] = $value; |
|
807 | 807 | } |
808 | 808 | } |
809 | 809 | } |
@@ -824,7 +824,7 @@ discard block |
||
824 | 824 | * @since 1.0.19 |
825 | 825 | */ |
826 | 826 | public function apply_changes() { |
827 | - $this->data = array_replace( $this->data, $this->changes ); |
|
827 | + $this->data = array_replace($this->data, $this->changes); |
|
828 | 828 | $this->changes = array(); |
829 | 829 | } |
830 | 830 | |
@@ -849,14 +849,14 @@ discard block |
||
849 | 849 | * @param string $context What the value is for. Valid values are view and edit. |
850 | 850 | * @return mixed |
851 | 851 | */ |
852 | - protected function get_prop( $prop, $context = 'view' ) { |
|
852 | + protected function get_prop($prop, $context = 'view') { |
|
853 | 853 | $value = null; |
854 | 854 | |
855 | - if ( array_key_exists( $prop, $this->data ) ) { |
|
856 | - $value = array_key_exists( $prop, $this->changes ) ? $this->changes[ $prop ] : $this->data[ $prop ]; |
|
855 | + if (array_key_exists($prop, $this->data)) { |
|
856 | + $value = array_key_exists($prop, $this->changes) ? $this->changes[$prop] : $this->data[$prop]; |
|
857 | 857 | |
858 | - if ( 'view' === $context ) { |
|
859 | - $value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this ); |
|
858 | + if ('view' === $context) { |
|
859 | + $value = apply_filters($this->get_hook_prefix() . $prop, $value, $this); |
|
860 | 860 | } |
861 | 861 | } |
862 | 862 | |
@@ -870,13 +870,13 @@ discard block |
||
870 | 870 | * @param string $prop Name of prop to set. |
871 | 871 | * @param string|integer $value Value of the prop. |
872 | 872 | */ |
873 | - protected function set_date_prop( $prop, $value ) { |
|
873 | + protected function set_date_prop($prop, $value) { |
|
874 | 874 | |
875 | - if ( empty( $value ) ) { |
|
876 | - $this->set_prop( $prop, null ); |
|
875 | + if (empty($value)) { |
|
876 | + $this->set_prop($prop, null); |
|
877 | 877 | return; |
878 | 878 | } |
879 | - $this->set_prop( $prop, $value ); |
|
879 | + $this->set_prop($prop, $value); |
|
880 | 880 | |
881 | 881 | } |
882 | 882 | |
@@ -887,7 +887,7 @@ discard block |
||
887 | 887 | * @param string $code Error code. |
888 | 888 | * @param string $message Error message. |
889 | 889 | */ |
890 | - protected function error( $code, $message ) { |
|
890 | + protected function error($code, $message) { |
|
891 | 891 | $this->last_error = $message; |
892 | 892 | } |
893 | 893 | |
@@ -899,7 +899,7 @@ discard block |
||
899 | 899 | */ |
900 | 900 | public function exists() { |
901 | 901 | $id = $this->get_id(); |
902 | - return ! empty( $id ); |
|
902 | + return !empty($id); |
|
903 | 903 | } |
904 | 904 | |
905 | 905 | } |
@@ -8,99 +8,99 @@ discard block |
||
8 | 8 | * @version 1.0.19 |
9 | 9 | */ |
10 | 10 | |
11 | -defined( 'ABSPATH' ) || exit; |
|
11 | +defined('ABSPATH') || exit; |
|
12 | 12 | |
13 | 13 | $getpaid_pages = GetPaid_Installer::get_pages(); |
14 | -$pages = wpinv_get_pages( true ); |
|
14 | +$pages = wpinv_get_pages(true); |
|
15 | 15 | |
16 | 16 | $currencies = wpinv_get_currencies(); |
17 | 17 | |
18 | 18 | $currency_code_options = array(); |
19 | -foreach ( $currencies as $code => $name ) { |
|
20 | - $currency_code_options[ $code ] = $code . ' - ' . $name . ' (' . wpinv_currency_symbol( $code ) . ')'; |
|
19 | +foreach ($currencies as $code => $name) { |
|
20 | + $currency_code_options[$code] = $code . ' - ' . $name . ' (' . wpinv_currency_symbol($code) . ')'; |
|
21 | 21 | } |
22 | 22 | |
23 | 23 | $invoice_number_padd_options = array(); |
24 | -for ( $i = 0; $i <= 20; $i++ ) { |
|
24 | +for ($i = 0; $i <= 20; $i++) { |
|
25 | 25 | $invoice_number_padd_options[$i] = $i; |
26 | 26 | } |
27 | 27 | |
28 | 28 | $currency_symbol = wpinv_currency_symbol(); |
29 | 29 | |
30 | 30 | $last_number = $reset_number = ''; |
31 | -if ( $last_invoice_number = get_option( 'wpinv_last_invoice_number' ) ) { |
|
32 | - $last_invoice_number = preg_replace( '/[^0-9]/', '', $last_invoice_number ); |
|
31 | +if ($last_invoice_number = get_option('wpinv_last_invoice_number')) { |
|
32 | + $last_invoice_number = preg_replace('/[^0-9]/', '', $last_invoice_number); |
|
33 | 33 | |
34 | - if ( !empty( $last_invoice_number ) ) { |
|
35 | - $last_number = ' ' . wp_sprintf( __( "( Last Invoice's sequential number: <b>%s</b> )", 'invoicing' ), $last_invoice_number ); |
|
34 | + if (!empty($last_invoice_number)) { |
|
35 | + $last_number = ' ' . wp_sprintf(__("( Last Invoice's sequential number: <b>%s</b> )", 'invoicing'), $last_invoice_number); |
|
36 | 36 | } |
37 | 37 | |
38 | 38 | $nonce = wp_create_nonce('reset_invoice_count'); |
39 | - $reset_number = '<a href="'.add_query_arg(array('reset_invoice_count' => 1, '_nonce' => $nonce)).'" class="btn button">'.__('Force Reset Sequence', 'invoicing' ). '</a>'; |
|
39 | + $reset_number = '<a href="' . add_query_arg(array('reset_invoice_count' => 1, '_nonce' => $nonce)) . '" class="btn button">' . __('Force Reset Sequence', 'invoicing') . '</a>'; |
|
40 | 40 | } |
41 | 41 | |
42 | 42 | $alert_wrapper_start = '<p style="color: #F00">'; |
43 | 43 | $alert_wrapper_close = '</p>'; |
44 | 44 | |
45 | 45 | return array( |
46 | - 'general' => apply_filters( 'wpinv_settings_general', |
|
46 | + 'general' => apply_filters('wpinv_settings_general', |
|
47 | 47 | array( |
48 | 48 | 'main' => array( |
49 | 49 | 'location_settings' => array( |
50 | 50 | 'id' => 'location_settings', |
51 | - 'name' => '<h3>' . __( 'Default Location', 'invoicing' ) . '</h3>', |
|
51 | + 'name' => '<h3>' . __('Default Location', 'invoicing') . '</h3>', |
|
52 | 52 | 'desc' => '', |
53 | 53 | 'type' => 'header', |
54 | 54 | ), |
55 | 55 | 'default_country' => array( |
56 | 56 | 'id' => 'default_country', |
57 | - 'name' => __( 'Default Country', 'invoicing' ), |
|
58 | - 'desc' => __( 'Where does your store operate from?', 'invoicing' ), |
|
57 | + 'name' => __('Default Country', 'invoicing'), |
|
58 | + 'desc' => __('Where does your store operate from?', 'invoicing'), |
|
59 | 59 | 'type' => 'select', |
60 | 60 | 'options' => wpinv_get_country_list(), |
61 | 61 | 'std' => 'GB', |
62 | 62 | 'class' => 'wpi_select2', |
63 | - 'placeholder' => __( 'Select a country', 'invoicing' ), |
|
63 | + 'placeholder' => __('Select a country', 'invoicing'), |
|
64 | 64 | ), |
65 | 65 | 'default_state' => array( |
66 | 66 | 'id' => 'default_state', |
67 | - 'name' => __( 'Default State / Province', 'invoicing' ), |
|
68 | - 'desc' => __( 'What state / province does your store operate from?', 'invoicing' ), |
|
67 | + 'name' => __('Default State / Province', 'invoicing'), |
|
68 | + 'desc' => __('What state / province does your store operate from?', 'invoicing'), |
|
69 | 69 | 'type' => 'country_states', |
70 | 70 | 'class' => 'wpi_select2', |
71 | - 'placeholder' => __( 'Select a state', 'invoicing' ), |
|
71 | + 'placeholder' => __('Select a state', 'invoicing'), |
|
72 | 72 | ), |
73 | 73 | 'store_name' => array( |
74 | 74 | 'id' => 'store_name', |
75 | - 'name' => __( 'Store Name', 'invoicing' ), |
|
76 | - 'desc' => __( 'Store name to print on invoices.', 'invoicing' ), |
|
75 | + 'name' => __('Store Name', 'invoicing'), |
|
76 | + 'desc' => __('Store name to print on invoices.', 'invoicing'), |
|
77 | 77 | 'std' => get_option('blogname'), |
78 | 78 | 'type' => 'text', |
79 | 79 | ), |
80 | 80 | 'logo' => array( |
81 | 81 | 'id' => 'logo', |
82 | - 'name' => __( 'Logo URL', 'invoicing' ), |
|
83 | - 'desc' => __( 'Store logo to print on invoices.', 'invoicing' ), |
|
82 | + 'name' => __('Logo URL', 'invoicing'), |
|
83 | + 'desc' => __('Store logo to print on invoices.', 'invoicing'), |
|
84 | 84 | 'type' => 'text', |
85 | 85 | ), |
86 | 86 | 'logo_width' => array( |
87 | 87 | 'id' => 'logo_width', |
88 | - 'name' => __( 'Logo width', 'invoicing' ), |
|
89 | - 'desc' => __( 'Logo width to use in invoice image.', 'invoicing' ), |
|
88 | + 'name' => __('Logo width', 'invoicing'), |
|
89 | + 'desc' => __('Logo width to use in invoice image.', 'invoicing'), |
|
90 | 90 | 'type' => 'number', |
91 | - 'placeholder' => __( 'Auto', 'invoicing' ), |
|
91 | + 'placeholder' => __('Auto', 'invoicing'), |
|
92 | 92 | ), |
93 | 93 | 'logo_height' => array( |
94 | 94 | 'id' => 'logo_height', |
95 | - 'name' => __( 'Logo height', 'invoicing' ), |
|
96 | - 'desc' => __( 'Logo height to use in invoice image.', 'invoicing' ), |
|
95 | + 'name' => __('Logo height', 'invoicing'), |
|
96 | + 'desc' => __('Logo height to use in invoice image.', 'invoicing'), |
|
97 | 97 | 'type' => 'number', |
98 | - 'placeholder' => __( 'Auto', 'invoicing' ), |
|
98 | + 'placeholder' => __('Auto', 'invoicing'), |
|
99 | 99 | ), |
100 | 100 | 'store_address' => array( |
101 | 101 | 'id' => 'store_address', |
102 | - 'name' => __( 'Store Address', 'invoicing' ), |
|
103 | - 'desc' => __( 'Enter the store address to display on invoice', 'invoicing' ), |
|
102 | + 'name' => __('Store Address', 'invoicing'), |
|
103 | + 'desc' => __('Enter the store address to display on invoice', 'invoicing'), |
|
104 | 104 | 'type' => 'textarea', |
105 | 105 | ), |
106 | 106 | |
@@ -108,114 +108,114 @@ discard block |
||
108 | 108 | 'page_section' => array( |
109 | 109 | 'page_settings' => array( |
110 | 110 | 'id' => 'page_settings', |
111 | - 'name' => '<h3>' . __( 'Page Settings', 'invoicing' ) . '</h3>', |
|
111 | + 'name' => '<h3>' . __('Page Settings', 'invoicing') . '</h3>', |
|
112 | 112 | 'desc' => '', |
113 | 113 | 'type' => 'header', |
114 | 114 | ), |
115 | 115 | 'checkout_page' => array( |
116 | 116 | 'id' => 'checkout_page', |
117 | - 'name' => __( 'Checkout Page', 'invoicing' ), |
|
118 | - 'desc' => __( 'This is the checkout page where buyers will complete their payments. The <b>[wpinv_checkout]</b> short code must be on this page.', 'invoicing' ), |
|
117 | + 'name' => __('Checkout Page', 'invoicing'), |
|
118 | + 'desc' => __('This is the checkout page where buyers will complete their payments. The <b>[wpinv_checkout]</b> short code must be on this page.', 'invoicing'), |
|
119 | 119 | 'type' => 'select', |
120 | 120 | 'options' => $pages, |
121 | 121 | 'class' => 'wpi_select2', |
122 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
123 | - 'default_content' => empty( $getpaid_pages['checkout_page'] ) ? '' : $getpaid_pages['checkout_page']['content'], |
|
122 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
123 | + 'default_content' => empty($getpaid_pages['checkout_page']) ? '' : $getpaid_pages['checkout_page']['content'], |
|
124 | 124 | 'help-tip' => true, |
125 | 125 | ), |
126 | 126 | 'success_page' => array( |
127 | 127 | 'id' => 'success_page', |
128 | - 'name' => __( 'Success Page', 'invoicing' ), |
|
129 | - 'desc' => __( 'This is the page buyers are sent to after completing their payments. The <b>[wpinv_receipt]</b> short code should be on this page.', 'invoicing' ), |
|
128 | + 'name' => __('Success Page', 'invoicing'), |
|
129 | + 'desc' => __('This is the page buyers are sent to after completing their payments. The <b>[wpinv_receipt]</b> short code should be on this page.', 'invoicing'), |
|
130 | 130 | 'type' => 'select', |
131 | 131 | 'options' => $pages, |
132 | 132 | 'class' => 'wpi_select2', |
133 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
134 | - 'default_content' => empty( $getpaid_pages['success_page'] ) ? '' : $getpaid_pages['success_page']['content'], |
|
133 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
134 | + 'default_content' => empty($getpaid_pages['success_page']) ? '' : $getpaid_pages['success_page']['content'], |
|
135 | 135 | 'help-tip' => true, |
136 | 136 | ), |
137 | 137 | 'failure_page' => array( |
138 | 138 | 'id' => 'failure_page', |
139 | - 'name' => __( 'Failed Transaction Page', 'invoicing' ), |
|
140 | - 'desc' => __( 'This is the page buyers are sent to if their transaction is cancelled or fails.', 'invoicing' ), |
|
139 | + 'name' => __('Failed Transaction Page', 'invoicing'), |
|
140 | + 'desc' => __('This is the page buyers are sent to if their transaction is cancelled or fails.', 'invoicing'), |
|
141 | 141 | 'type' => 'select', |
142 | 142 | 'options' => $pages, |
143 | 143 | 'class' => 'wpi_select2', |
144 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
145 | - 'default_content' => empty( $getpaid_pages['failure_page'] ) ? '' : $getpaid_pages['failure_page']['content'], |
|
144 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
145 | + 'default_content' => empty($getpaid_pages['failure_page']) ? '' : $getpaid_pages['failure_page']['content'], |
|
146 | 146 | 'help-tip' => true, |
147 | 147 | ), |
148 | 148 | 'invoice_history_page' => array( |
149 | 149 | 'id' => 'invoice_history_page', |
150 | - 'name' => __( 'Invoice History Page', 'invoicing' ), |
|
151 | - 'desc' => __( 'This page shows an invoice history for the current user. The <b>[wpinv_history]</b> short code should be on this page.', 'invoicing' ), |
|
150 | + 'name' => __('Invoice History Page', 'invoicing'), |
|
151 | + 'desc' => __('This page shows an invoice history for the current user. The <b>[wpinv_history]</b> short code should be on this page.', 'invoicing'), |
|
152 | 152 | 'type' => 'select', |
153 | 153 | 'options' => $pages, |
154 | 154 | 'class' => 'wpi_select2', |
155 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
156 | - 'default_content' => empty( $getpaid_pages['invoice_history_page'] ) ? '' : $getpaid_pages['invoice_history_page']['content'], |
|
155 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
156 | + 'default_content' => empty($getpaid_pages['invoice_history_page']) ? '' : $getpaid_pages['invoice_history_page']['content'], |
|
157 | 157 | 'help-tip' => true, |
158 | 158 | ), |
159 | 159 | 'invoice_subscription_page' => array( |
160 | 160 | 'id' => 'invoice_subscription_page', |
161 | - 'name' => __( 'Invoice Subscriptions Page', 'invoicing' ), |
|
162 | - 'desc' => __( 'This page shows subscriptions history for the current user. The <b>[wpinv_subscriptions]</b> short code should be on this page.', 'invoicing' ), |
|
161 | + 'name' => __('Invoice Subscriptions Page', 'invoicing'), |
|
162 | + 'desc' => __('This page shows subscriptions history for the current user. The <b>[wpinv_subscriptions]</b> short code should be on this page.', 'invoicing'), |
|
163 | 163 | 'type' => 'select', |
164 | 164 | 'options' => $pages, |
165 | 165 | 'class' => 'wpi_select2', |
166 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
167 | - 'default_content' => empty( $getpaid_pages['invoice_subscription_page'] ) ? '' : $getpaid_pages['invoice_subscription_page']['content'], |
|
166 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
167 | + 'default_content' => empty($getpaid_pages['invoice_subscription_page']) ? '' : $getpaid_pages['invoice_subscription_page']['content'], |
|
168 | 168 | 'help-tip' => true, |
169 | 169 | ), |
170 | 170 | ), |
171 | 171 | 'currency_section' => array( |
172 | 172 | 'currency_settings' => array( |
173 | 173 | 'id' => 'currency_settings', |
174 | - 'name' => '<h3>' . __( 'Currency Settings', 'invoicing' ) . '</h3>', |
|
174 | + 'name' => '<h3>' . __('Currency Settings', 'invoicing') . '</h3>', |
|
175 | 175 | 'desc' => '', |
176 | 176 | 'type' => 'header', |
177 | 177 | ), |
178 | 178 | 'currency' => array( |
179 | 179 | 'id' => 'currency', |
180 | - 'name' => __( 'Currency', 'invoicing' ), |
|
181 | - 'desc' => __( 'Choose your currency. Note that some payment gateways have currency restrictions.', 'invoicing' ), |
|
180 | + 'name' => __('Currency', 'invoicing'), |
|
181 | + 'desc' => __('Choose your currency. Note that some payment gateways have currency restrictions.', 'invoicing'), |
|
182 | 182 | 'type' => 'select', |
183 | 183 | 'class' => 'wpi_select2', |
184 | 184 | 'options' => $currency_code_options, |
185 | 185 | ), |
186 | 186 | 'currency_position' => array( |
187 | 187 | 'id' => 'currency_position', |
188 | - 'name' => __( 'Currency Position', 'invoicing' ), |
|
189 | - 'desc' => __( 'Choose the location of the currency sign.', 'invoicing' ), |
|
188 | + 'name' => __('Currency Position', 'invoicing'), |
|
189 | + 'desc' => __('Choose the location of the currency sign.', 'invoicing'), |
|
190 | 190 | 'type' => 'select', |
191 | 191 | 'class' => 'wpi_select2', |
192 | 192 | 'options' => array( |
193 | - 'left' => __( 'Left', 'invoicing' ) . ' (' . $currency_symbol . wpinv_format_amount( '99.99' ) . ')', |
|
194 | - 'right' => __( 'Right', 'invoicing' ) . ' ('. wpinv_format_amount( '99.99' ) . $currency_symbol . ')', |
|
195 | - 'left_space' => __( 'Left with space', 'invoicing' ) . ' (' . $currency_symbol . ' ' . wpinv_format_amount( '99.99' ) . ')', |
|
196 | - 'right_space' => __( 'Right with space', 'invoicing' ) . ' (' . wpinv_format_amount( '99.99' ) . ' ' . $currency_symbol . ')' |
|
193 | + 'left' => __('Left', 'invoicing') . ' (' . $currency_symbol . wpinv_format_amount('99.99') . ')', |
|
194 | + 'right' => __('Right', 'invoicing') . ' (' . wpinv_format_amount('99.99') . $currency_symbol . ')', |
|
195 | + 'left_space' => __('Left with space', 'invoicing') . ' (' . $currency_symbol . ' ' . wpinv_format_amount('99.99') . ')', |
|
196 | + 'right_space' => __('Right with space', 'invoicing') . ' (' . wpinv_format_amount('99.99') . ' ' . $currency_symbol . ')' |
|
197 | 197 | ) |
198 | 198 | ), |
199 | 199 | 'thousands_separator' => array( |
200 | 200 | 'id' => 'thousands_separator', |
201 | - 'name' => __( 'Thousands Separator', 'invoicing' ), |
|
202 | - 'desc' => __( 'The symbol (usually , or .) to separate thousands', 'invoicing' ), |
|
201 | + 'name' => __('Thousands Separator', 'invoicing'), |
|
202 | + 'desc' => __('The symbol (usually , or .) to separate thousands', 'invoicing'), |
|
203 | 203 | 'type' => 'text', |
204 | 204 | 'size' => 'small', |
205 | 205 | 'std' => ',', |
206 | 206 | ), |
207 | 207 | 'decimal_separator' => array( |
208 | 208 | 'id' => 'decimal_separator', |
209 | - 'name' => __( 'Decimal Separator', 'invoicing' ), |
|
210 | - 'desc' => __( 'The symbol (usually , or .) to separate decimal points', 'invoicing' ), |
|
209 | + 'name' => __('Decimal Separator', 'invoicing'), |
|
210 | + 'desc' => __('The symbol (usually , or .) to separate decimal points', 'invoicing'), |
|
211 | 211 | 'type' => 'text', |
212 | 212 | 'size' => 'small', |
213 | 213 | 'std' => '.', |
214 | 214 | ), |
215 | 215 | 'decimals' => array( |
216 | 216 | 'id' => 'decimals', |
217 | - 'name' => __( 'Number of Decimals', 'invoicing' ), |
|
218 | - 'desc' => __( 'This sets the number of decimal points shown in displayed prices.', 'invoicing' ), |
|
217 | + 'name' => __('Number of Decimals', 'invoicing'), |
|
218 | + 'desc' => __('This sets the number of decimal points shown in displayed prices.', 'invoicing'), |
|
219 | 219 | 'type' => 'number', |
220 | 220 | 'size' => 'small', |
221 | 221 | 'std' => '2', |
@@ -227,21 +227,21 @@ discard block |
||
227 | 227 | 'labels' => array( |
228 | 228 | 'labels' => array( |
229 | 229 | 'id' => 'labels_settings', |
230 | - 'name' => '<h3>' . __( 'Invoice Labels', 'invoicing' ) . '</h3>', |
|
230 | + 'name' => '<h3>' . __('Invoice Labels', 'invoicing') . '</h3>', |
|
231 | 231 | 'desc' => '', |
232 | 232 | 'type' => 'header', |
233 | 233 | ), |
234 | 234 | 'vat_invoice_notice_label' => array( |
235 | 235 | 'id' => 'vat_invoice_notice_label', |
236 | - 'name' => __( 'Invoice Notice Label', 'invoicing' ), |
|
237 | - 'desc' => __( 'Use this to add an invoice notice section (label) to your invoices', 'invoicing' ), |
|
236 | + 'name' => __('Invoice Notice Label', 'invoicing'), |
|
237 | + 'desc' => __('Use this to add an invoice notice section (label) to your invoices', 'invoicing'), |
|
238 | 238 | 'type' => 'text', |
239 | 239 | 'size' => 'regular', |
240 | 240 | ), |
241 | 241 | 'vat_invoice_notice' => array( |
242 | 242 | 'id' => 'vat_invoice_notice', |
243 | - 'name' => __( 'Invoice notice', 'invoicing' ), |
|
244 | - 'desc' => __( 'Use this to add an invoice notice section (description) to your invoices', 'invoicing' ), |
|
243 | + 'name' => __('Invoice notice', 'invoicing'), |
|
244 | + 'desc' => __('Use this to add an invoice notice section (description) to your invoices', 'invoicing'), |
|
245 | 245 | 'type' => 'text', |
246 | 246 | 'size' => 'regular', |
247 | 247 | ), |
@@ -253,22 +253,22 @@ discard block |
||
253 | 253 | 'main' => array( |
254 | 254 | 'gateway_settings' => array( |
255 | 255 | 'id' => 'api_header', |
256 | - 'name' => '<h3>' . __( 'Gateway Settings', 'invoicing' ) . '</h3>', |
|
256 | + 'name' => '<h3>' . __('Gateway Settings', 'invoicing') . '</h3>', |
|
257 | 257 | 'desc' => '', |
258 | 258 | 'type' => 'header', |
259 | 259 | ), |
260 | 260 | 'gateways' => array( |
261 | 261 | 'id' => 'gateways', |
262 | - 'name' => __( 'Payment Gateways', 'invoicing' ), |
|
263 | - 'desc' => __( 'Choose the payment gateways you want to enable.', 'invoicing' ), |
|
262 | + 'name' => __('Payment Gateways', 'invoicing'), |
|
263 | + 'desc' => __('Choose the payment gateways you want to enable.', 'invoicing'), |
|
264 | 264 | 'type' => 'gateways', |
265 | - 'std' => array( 'manual'=>1 ), |
|
265 | + 'std' => array('manual'=>1), |
|
266 | 266 | 'options' => wpinv_get_payment_gateways(), |
267 | 267 | ), |
268 | 268 | 'default_gateway' => array( |
269 | 269 | 'id' => 'default_gateway', |
270 | - 'name' => __( 'Default Gateway', 'invoicing' ), |
|
271 | - 'desc' => __( 'This gateway will be loaded automatically with the checkout page.', 'invoicing' ), |
|
270 | + 'name' => __('Default Gateway', 'invoicing'), |
|
271 | + 'desc' => __('This gateway will be loaded automatically with the checkout page.', 'invoicing'), |
|
272 | 272 | 'type' => 'gateway_select', |
273 | 273 | 'std' => 'manual', |
274 | 274 | 'class' => 'wpi_select2', |
@@ -283,32 +283,32 @@ discard block |
||
283 | 283 | 'main' => array( |
284 | 284 | 'tax_settings' => array( |
285 | 285 | 'id' => 'tax_settings', |
286 | - 'name' => '<h3>' . __( 'Tax Settings', 'invoicing' ) . '</h3>', |
|
286 | + 'name' => '<h3>' . __('Tax Settings', 'invoicing') . '</h3>', |
|
287 | 287 | 'type' => 'header', |
288 | 288 | ), |
289 | 289 | |
290 | 290 | 'enable_taxes' => array( |
291 | 291 | 'id' => 'enable_taxes', |
292 | - 'name' => __( 'Enable Taxes', 'invoicing' ), |
|
293 | - 'desc' => __( 'Enable tax rates and calculations.', 'invoicing' ), |
|
292 | + 'name' => __('Enable Taxes', 'invoicing'), |
|
293 | + 'desc' => __('Enable tax rates and calculations.', 'invoicing'), |
|
294 | 294 | 'type' => 'checkbox', |
295 | 295 | 'std' => 0, |
296 | 296 | ), |
297 | 297 | |
298 | 298 | 'tax_subtotal_rounding' => array( |
299 | 299 | 'id' => 'tax_subtotal_rounding', |
300 | - 'name' => __( 'Rounding', 'invoicing' ), |
|
301 | - 'desc' => __( 'Round tax at subtotal level, instead of rounding per tax rate', 'invoicing' ), |
|
300 | + 'name' => __('Rounding', 'invoicing'), |
|
301 | + 'desc' => __('Round tax at subtotal level, instead of rounding per tax rate', 'invoicing'), |
|
302 | 302 | 'type' => 'checkbox', |
303 | 303 | 'std' => 1, |
304 | 304 | ), |
305 | 305 | |
306 | 306 | 'prices_include_tax' => array( |
307 | 307 | 'id' => 'prices_include_tax', |
308 | - 'name' => __( 'Prices entered with tax', 'invoicing' ), |
|
308 | + 'name' => __('Prices entered with tax', 'invoicing'), |
|
309 | 309 | 'options' => array( |
310 | - 'yes' => __( 'Yes, I will enter prices inclusive of tax', 'invoicing' ), |
|
311 | - 'no' => __( 'No, I will enter prices exclusive of tax', 'invoicing' ), |
|
310 | + 'yes' => __('Yes, I will enter prices inclusive of tax', 'invoicing'), |
|
311 | + 'no' => __('No, I will enter prices exclusive of tax', 'invoicing'), |
|
312 | 312 | ), |
313 | 313 | 'type' => 'select', |
314 | 314 | 'std' => 'no', |
@@ -316,10 +316,10 @@ discard block |
||
316 | 316 | |
317 | 317 | 'tax_base' => array( |
318 | 318 | 'id' => 'tax_base', |
319 | - 'name' => __( 'Calculate tax based on', 'invoicing' ), |
|
319 | + 'name' => __('Calculate tax based on', 'invoicing'), |
|
320 | 320 | 'options' => array( |
321 | - 'billing' => __( 'Customer billing address', 'invoicing' ), |
|
322 | - 'base' => __( 'Shop base address', 'invoicing' ), |
|
321 | + 'billing' => __('Customer billing address', 'invoicing'), |
|
322 | + 'base' => __('Shop base address', 'invoicing'), |
|
323 | 323 | ), |
324 | 324 | 'type' => 'select', |
325 | 325 | 'std' => 'billing', |
@@ -327,10 +327,10 @@ discard block |
||
327 | 327 | |
328 | 328 | 'tax_display_totals' => array( |
329 | 329 | 'id' => 'tax_display_totals', |
330 | - 'name' => __( 'Display tax totals', 'invoicing' ), |
|
330 | + 'name' => __('Display tax totals', 'invoicing'), |
|
331 | 331 | 'options' => array( |
332 | - 'single' => __( 'As a single total', 'invoicing' ), |
|
333 | - 'individual' => __( 'As individual tax rates', 'invoicing' ), |
|
332 | + 'single' => __('As a single total', 'invoicing'), |
|
333 | + 'individual' => __('As individual tax rates', 'invoicing'), |
|
334 | 334 | ), |
335 | 335 | 'type' => 'select', |
336 | 336 | 'std' => 'individual', |
@@ -338,8 +338,8 @@ discard block |
||
338 | 338 | |
339 | 339 | 'tax_rate' => array( |
340 | 340 | 'id' => 'tax_rate', |
341 | - 'name' => __( 'Fallback Tax Rate', 'invoicing' ), |
|
342 | - 'desc' => __( 'Enter a percentage, such as 6.5. Customers not in a specific rate will be charged this rate.', 'invoicing' ), |
|
341 | + 'name' => __('Fallback Tax Rate', 'invoicing'), |
|
342 | + 'desc' => __('Enter a percentage, such as 6.5. Customers not in a specific rate will be charged this rate.', 'invoicing'), |
|
343 | 343 | 'type' => 'number', |
344 | 344 | 'size' => 'small', |
345 | 345 | 'min' => '0', |
@@ -351,8 +351,8 @@ discard block |
||
351 | 351 | 'rates' => array( |
352 | 352 | 'tax_rates' => array( |
353 | 353 | 'id' => 'tax_rates', |
354 | - 'name' => '<h3>' . __( 'Tax Rates', 'invoicing' ) . '</h3>', |
|
355 | - 'desc' => __( 'Enter tax rates for specific regions.', 'invoicing' ), |
|
354 | + 'name' => '<h3>' . __('Tax Rates', 'invoicing') . '</h3>', |
|
355 | + 'desc' => __('Enter tax rates for specific regions.', 'invoicing'), |
|
356 | 356 | 'type' => 'tax_rates', |
357 | 357 | ), |
358 | 358 | ), |
@@ -361,45 +361,45 @@ discard block |
||
361 | 361 | |
362 | 362 | 'vat_company_name' => array( |
363 | 363 | 'id' => 'vat_company_name', |
364 | - 'name' => __( 'Company Name', 'invoicing' ), |
|
365 | - 'desc' => wp_sprintf(__( 'Verify your company name and VAT number on the %sEU VIES System.%s', 'invoicing' ), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>' ), |
|
364 | + 'name' => __('Company Name', 'invoicing'), |
|
365 | + 'desc' => wp_sprintf(__('Verify your company name and VAT number on the %sEU VIES System.%s', 'invoicing'), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>'), |
|
366 | 366 | 'type' => 'text', |
367 | 367 | 'size' => 'regular', |
368 | 368 | ), |
369 | 369 | |
370 | 370 | 'vat_number' => array( |
371 | 371 | 'id' => 'vat_number', |
372 | - 'name' => __( 'VAT Number', 'invoicing' ), |
|
373 | - 'desc' => __( 'Enter your VAT number including the country identifier, eg: GB123456789', 'invoicing' ), |
|
372 | + 'name' => __('VAT Number', 'invoicing'), |
|
373 | + 'desc' => __('Enter your VAT number including the country identifier, eg: GB123456789', 'invoicing'), |
|
374 | 374 | 'type' => 'text', |
375 | 375 | 'size' => 'regular', |
376 | 376 | ), |
377 | 377 | |
378 | 378 | 'vat_prevent_b2c_purchase' => array( |
379 | 379 | 'id' => 'vat_prevent_b2c_purchase', |
380 | - 'name' => __( 'Prevent B2C Sales', 'invoicing' ), |
|
381 | - 'desc' => __( 'Require everyone in the EU to provide a VAT number.', 'invoicing' ), |
|
380 | + 'name' => __('Prevent B2C Sales', 'invoicing'), |
|
381 | + 'desc' => __('Require everyone in the EU to provide a VAT number.', 'invoicing'), |
|
382 | 382 | 'type' => 'checkbox' |
383 | 383 | ), |
384 | 384 | |
385 | 385 | 'validate_vat_number' => array( |
386 | 386 | 'id' => 'validate_vat_number', |
387 | - 'name' => __( 'Validate VAT Number', 'invoicing' ), |
|
388 | - 'desc' => __( 'Validate VAT numbers with VIES.', 'invoicing' ), |
|
387 | + 'name' => __('Validate VAT Number', 'invoicing'), |
|
388 | + 'desc' => __('Validate VAT numbers with VIES.', 'invoicing'), |
|
389 | 389 | 'type' => 'checkbox' |
390 | 390 | ), |
391 | 391 | |
392 | 392 | 'vat_same_country_rule' => array( |
393 | 393 | 'id' => 'vat_same_country_rule', |
394 | - 'name' => __( 'Same Country Rule', 'invoicing' ), |
|
395 | - 'desc' => __( 'What should happen if a customer is from the same country as your business?', 'invoicing' ), |
|
394 | + 'name' => __('Same Country Rule', 'invoicing'), |
|
395 | + 'desc' => __('What should happen if a customer is from the same country as your business?', 'invoicing'), |
|
396 | 396 | 'type' => 'select', |
397 | 397 | 'options' => array( |
398 | - 'no' => __( 'Do not charge tax', 'invoicing' ), |
|
399 | - 'always' => __( 'Charge tax unless vat number is validated', 'invoicing' ), |
|
400 | - 'vat_too' => __( 'Charge tax even if vat number is validated', 'invoicing' ) |
|
398 | + 'no' => __('Do not charge tax', 'invoicing'), |
|
399 | + 'always' => __('Charge tax unless vat number is validated', 'invoicing'), |
|
400 | + 'vat_too' => __('Charge tax even if vat number is validated', 'invoicing') |
|
401 | 401 | ), |
402 | - 'placeholder' => __( 'Select an option', 'invoicing' ), |
|
402 | + 'placeholder' => __('Select an option', 'invoicing'), |
|
403 | 403 | 'std' => 'vat_too', |
404 | 404 | ), |
405 | 405 | |
@@ -413,66 +413,66 @@ discard block |
||
413 | 413 | 'main' => array( |
414 | 414 | 'email_settings_header' => array( |
415 | 415 | 'id' => 'email_settings_header', |
416 | - 'name' => '<h3>' . __( 'Email Sender Options', 'invoicing' ) . '</h3>', |
|
416 | + 'name' => '<h3>' . __('Email Sender Options', 'invoicing') . '</h3>', |
|
417 | 417 | 'type' => 'header', |
418 | 418 | ), |
419 | 419 | 'email_from_name' => array( |
420 | 420 | 'id' => 'email_from_name', |
421 | - 'name' => __( 'From Name', 'invoicing' ), |
|
422 | - 'desc' => __( 'Enter the sender\'s name appears in outgoing invoice emails. This should be your site name.', 'invoicing' ), |
|
423 | - 'std' => esc_attr( get_bloginfo( 'name', 'display' ) ), |
|
421 | + 'name' => __('From Name', 'invoicing'), |
|
422 | + 'desc' => __('Enter the sender\'s name appears in outgoing invoice emails. This should be your site name.', 'invoicing'), |
|
423 | + 'std' => esc_attr(get_bloginfo('name', 'display')), |
|
424 | 424 | 'type' => 'text', |
425 | 425 | ), |
426 | 426 | 'email_from' => array( |
427 | 427 | 'id' => 'email_from', |
428 | - 'name' => __( 'From Email', 'invoicing' ), |
|
429 | - 'desc' => sprintf (__( 'Email address to send invoice emails from. This will act as the "from" address. %s If emails are not being sent it may be that your hosting prevents emails being sent if the email domains do not match.%s', 'invoicing' ), $alert_wrapper_start, $alert_wrapper_close), |
|
430 | - 'std' => get_option( 'admin_email' ), |
|
428 | + 'name' => __('From Email', 'invoicing'), |
|
429 | + 'desc' => sprintf(__('Email address to send invoice emails from. This will act as the "from" address. %s If emails are not being sent it may be that your hosting prevents emails being sent if the email domains do not match.%s', 'invoicing'), $alert_wrapper_start, $alert_wrapper_close), |
|
430 | + 'std' => get_option('admin_email'), |
|
431 | 431 | 'type' => 'text', |
432 | 432 | ), |
433 | 433 | 'admin_email' => array( |
434 | 434 | 'id' => 'admin_email', |
435 | - 'name' => __( 'Admin Email', 'invoicing' ), |
|
436 | - 'desc' => __( 'Where should we send admin notifications? This will is also act as the "reply-to" address for invoice emails', 'invoicing' ), |
|
437 | - 'std' => get_option( 'admin_email' ), |
|
435 | + 'name' => __('Admin Email', 'invoicing'), |
|
436 | + 'desc' => __('Where should we send admin notifications? This will is also act as the "reply-to" address for invoice emails', 'invoicing'), |
|
437 | + 'std' => get_option('admin_email'), |
|
438 | 438 | 'type' => 'text', |
439 | 439 | ), |
440 | 440 | 'skip_email_free_invoice' => array( |
441 | 441 | 'id' => 'skip_email_free_invoice', |
442 | - 'name' => __( 'Skip Free Invoices', 'invoicing' ), |
|
443 | - 'desc' => __( 'Check this to disable sending emails for free invoices.', 'invoicing' ), |
|
442 | + 'name' => __('Skip Free Invoices', 'invoicing'), |
|
443 | + 'desc' => __('Check this to disable sending emails for free invoices.', 'invoicing'), |
|
444 | 444 | 'type' => 'checkbox', |
445 | 445 | 'std' => false, |
446 | 446 | ), |
447 | 447 | 'overdue_settings_header' => array( |
448 | 448 | 'id' => 'overdue_settings_header', |
449 | - 'name' => '<h3>' . __( 'Due Date Settings', 'invoicing' ) . '</h3>', |
|
449 | + 'name' => '<h3>' . __('Due Date Settings', 'invoicing') . '</h3>', |
|
450 | 450 | 'type' => 'header', |
451 | 451 | ), |
452 | 452 | 'overdue_active' => array( |
453 | 453 | 'id' => 'overdue_active', |
454 | - 'name' => __( 'Enable Due Date', 'invoicing' ), |
|
455 | - 'desc' => __( 'Check this to enable due date option for invoices.', 'invoicing' ), |
|
454 | + 'name' => __('Enable Due Date', 'invoicing'), |
|
455 | + 'desc' => __('Check this to enable due date option for invoices.', 'invoicing'), |
|
456 | 456 | 'type' => 'checkbox', |
457 | 457 | 'std' => false, |
458 | 458 | ), |
459 | 459 | 'email_template_header' => array( |
460 | 460 | 'id' => 'email_template_header', |
461 | - 'name' => '<h3>' . __( 'Email Template', 'invoicing' ) . '</h3>', |
|
461 | + 'name' => '<h3>' . __('Email Template', 'invoicing') . '</h3>', |
|
462 | 462 | 'type' => 'header', |
463 | 463 | ), |
464 | 464 | 'email_header_image' => array( |
465 | 465 | 'id' => 'email_header_image', |
466 | - 'name' => __( 'Header Image', 'invoicing' ), |
|
467 | - 'desc' => __( 'URL to an image you want to show in the email header. Upload images using the media uploader (Admin > Media).', 'invoicing' ), |
|
466 | + 'name' => __('Header Image', 'invoicing'), |
|
467 | + 'desc' => __('URL to an image you want to show in the email header. Upload images using the media uploader (Admin > Media).', 'invoicing'), |
|
468 | 468 | 'std' => '', |
469 | 469 | 'type' => 'text', |
470 | 470 | ), |
471 | 471 | 'email_footer_text' => array( |
472 | 472 | 'id' => 'email_footer_text', |
473 | - 'name' => __( 'Footer Text', 'invoicing' ), |
|
474 | - 'desc' => __( 'The text to appear in the footer of all invoice emails.', 'invoicing' ), |
|
475 | - 'std' => get_bloginfo( 'name', 'display' ) . ' - ' . __( 'Powered by GetPaid', 'invoicing' ), |
|
473 | + 'name' => __('Footer Text', 'invoicing'), |
|
474 | + 'desc' => __('The text to appear in the footer of all invoice emails.', 'invoicing'), |
|
475 | + 'std' => get_bloginfo('name', 'display') . ' - ' . __('Powered by GetPaid', 'invoicing'), |
|
476 | 476 | 'type' => 'textarea', |
477 | 477 | 'class' => 'regular-text', |
478 | 478 | 'rows' => 2, |
@@ -480,29 +480,29 @@ discard block |
||
480 | 480 | ), |
481 | 481 | 'email_base_color' => array( |
482 | 482 | 'id' => 'email_base_color', |
483 | - 'name' => __( 'Base Color', 'invoicing' ), |
|
484 | - 'desc' => __( 'The base color for invoice email template. Default <code>#557da2</code>.', 'invoicing' ), |
|
483 | + 'name' => __('Base Color', 'invoicing'), |
|
484 | + 'desc' => __('The base color for invoice email template. Default <code>#557da2</code>.', 'invoicing'), |
|
485 | 485 | 'std' => '#557da2', |
486 | 486 | 'type' => 'color', |
487 | 487 | ), |
488 | 488 | 'email_background_color' => array( |
489 | 489 | 'id' => 'email_background_color', |
490 | - 'name' => __( 'Background Color', 'invoicing' ), |
|
491 | - 'desc' => __( 'The background color of email template. Default <code>#f5f5f5</code>.', 'invoicing' ), |
|
490 | + 'name' => __('Background Color', 'invoicing'), |
|
491 | + 'desc' => __('The background color of email template. Default <code>#f5f5f5</code>.', 'invoicing'), |
|
492 | 492 | 'std' => '#f5f5f5', |
493 | 493 | 'type' => 'color', |
494 | 494 | ), |
495 | 495 | 'email_body_background_color' => array( |
496 | 496 | 'id' => 'email_body_background_color', |
497 | - 'name' => __( 'Body Background Color', 'invoicing' ), |
|
498 | - 'desc' => __( 'The main body background color of email template. Default <code>#fdfdfd</code>.', 'invoicing' ), |
|
497 | + 'name' => __('Body Background Color', 'invoicing'), |
|
498 | + 'desc' => __('The main body background color of email template. Default <code>#fdfdfd</code>.', 'invoicing'), |
|
499 | 499 | 'std' => '#fdfdfd', |
500 | 500 | 'type' => 'color', |
501 | 501 | ), |
502 | 502 | 'email_text_color' => array( |
503 | 503 | 'id' => 'email_text_color', |
504 | - 'name' => __( 'Body Text Color', 'invoicing' ), |
|
505 | - 'desc' => __( 'The main body text color. Default <code>#505050</code>.', 'invoicing' ), |
|
504 | + 'name' => __('Body Text Color', 'invoicing'), |
|
505 | + 'desc' => __('The main body text color. Default <code>#505050</code>.', 'invoicing'), |
|
506 | 506 | 'std' => '#505050', |
507 | 507 | 'type' => 'color', |
508 | 508 | ), |
@@ -517,7 +517,7 @@ discard block |
||
517 | 517 | ), |
518 | 518 | |
519 | 519 | // Integrations. |
520 | - 'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'settings', 'id' ), |
|
520 | + 'integrations' => wp_list_pluck(getpaid_get_integration_settings(), 'settings', 'id'), |
|
521 | 521 | |
522 | 522 | /** Privacy Settings */ |
523 | 523 | 'privacy' => apply_filters('wpinv_settings_privacy', |
@@ -525,17 +525,17 @@ discard block |
||
525 | 525 | 'main' => array( |
526 | 526 | 'invoicing_privacy_policy_settings' => array( |
527 | 527 | 'id' => 'invoicing_privacy_policy_settings', |
528 | - 'name' => '<h3>' . __( 'Privacy Policy', 'invoicing' ) . '</h3>', |
|
528 | + 'name' => '<h3>' . __('Privacy Policy', 'invoicing') . '</h3>', |
|
529 | 529 | 'type' => 'header', |
530 | 530 | ), |
531 | 531 | 'privacy_page' => array( |
532 | 532 | 'id' => 'privacy_page', |
533 | - 'name' => __( 'Privacy Page', 'invoicing' ), |
|
534 | - 'desc' => __( 'If no privacy policy page set in Settings->Privacy default settings, this page will be used on checkout page.', 'invoicing' ), |
|
533 | + 'name' => __('Privacy Page', 'invoicing'), |
|
534 | + 'desc' => __('If no privacy policy page set in Settings->Privacy default settings, this page will be used on checkout page.', 'invoicing'), |
|
535 | 535 | 'type' => 'select', |
536 | - 'options' => wpinv_get_pages( true, __( 'Select a page', 'invoicing' )), |
|
536 | + 'options' => wpinv_get_pages(true, __('Select a page', 'invoicing')), |
|
537 | 537 | 'class' => 'wpi_select2', |
538 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
538 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
539 | 539 | ), |
540 | 540 | ), |
541 | 541 | ) |
@@ -546,19 +546,19 @@ discard block |
||
546 | 546 | 'main' => array( |
547 | 547 | 'invoice_number_format_settings' => array( |
548 | 548 | 'id' => 'invoice_number_format_settings', |
549 | - 'name' => '<h3>' . __( 'Invoice Number', 'invoicing' ) . '</h3>', |
|
549 | + 'name' => '<h3>' . __('Invoice Number', 'invoicing') . '</h3>', |
|
550 | 550 | 'type' => 'header', |
551 | 551 | ), |
552 | 552 | 'sequential_invoice_number' => array( |
553 | 553 | 'id' => 'sequential_invoice_number', |
554 | - 'name' => __( 'Sequential Invoice Numbers', 'invoicing' ), |
|
555 | - 'desc' => __('Check this box to enable sequential invoice numbers.', 'invoicing' ) . $reset_number, |
|
554 | + 'name' => __('Sequential Invoice Numbers', 'invoicing'), |
|
555 | + 'desc' => __('Check this box to enable sequential invoice numbers.', 'invoicing') . $reset_number, |
|
556 | 556 | 'type' => 'checkbox', |
557 | 557 | ), |
558 | 558 | 'invoice_sequence_start' => array( |
559 | 559 | 'id' => 'invoice_sequence_start', |
560 | - 'name' => __( 'Sequential Starting Number', 'invoicing' ), |
|
561 | - 'desc' => __( 'The number at which the invoice number sequence should begin.', 'invoicing' ) . $last_number, |
|
560 | + 'name' => __('Sequential Starting Number', 'invoicing'), |
|
561 | + 'desc' => __('The number at which the invoice number sequence should begin.', 'invoicing') . $last_number, |
|
562 | 562 | 'type' => 'number', |
563 | 563 | 'size' => 'small', |
564 | 564 | 'std' => '1', |
@@ -566,8 +566,8 @@ discard block |
||
566 | 566 | ), |
567 | 567 | 'invoice_number_padd' => array( |
568 | 568 | 'id' => 'invoice_number_padd', |
569 | - 'name' => __( 'Minimum Digits', 'invoicing' ), |
|
570 | - 'desc' => __( 'If the invoice number has less digits than this number, it is left padded with 0s. Ex: invoice number 108 will padded to 00108 if digits set to 5. The default 0 means no padding.', 'invoicing' ), |
|
569 | + 'name' => __('Minimum Digits', 'invoicing'), |
|
570 | + 'desc' => __('If the invoice number has less digits than this number, it is left padded with 0s. Ex: invoice number 108 will padded to 00108 if digits set to 5. The default 0 means no padding.', 'invoicing'), |
|
571 | 571 | 'type' => 'select', |
572 | 572 | 'options' => $invoice_number_padd_options, |
573 | 573 | 'std' => 5, |
@@ -575,8 +575,8 @@ discard block |
||
575 | 575 | ), |
576 | 576 | 'invoice_number_prefix' => array( |
577 | 577 | 'id' => 'invoice_number_prefix', |
578 | - 'name' => __( 'Invoice Number Prefix', 'invoicing' ), |
|
579 | - 'desc' => __( 'Prefix for all invoice numbers. Ex: INV-', 'invoicing' ), |
|
578 | + 'name' => __('Invoice Number Prefix', 'invoicing'), |
|
579 | + 'desc' => __('Prefix for all invoice numbers. Ex: INV-', 'invoicing'), |
|
580 | 580 | 'type' => 'text', |
581 | 581 | 'size' => 'regular', |
582 | 582 | 'std' => 'INV-', |
@@ -584,46 +584,46 @@ discard block |
||
584 | 584 | ), |
585 | 585 | 'invoice_number_postfix' => array( |
586 | 586 | 'id' => 'invoice_number_postfix', |
587 | - 'name' => __( 'Invoice Number Postfix', 'invoicing' ), |
|
588 | - 'desc' => __( 'Postfix for all invoice numbers.', 'invoicing' ), |
|
587 | + 'name' => __('Invoice Number Postfix', 'invoicing'), |
|
588 | + 'desc' => __('Postfix for all invoice numbers.', 'invoicing'), |
|
589 | 589 | 'type' => 'text', |
590 | 590 | 'size' => 'regular', |
591 | 591 | 'std' => '' |
592 | 592 | ), |
593 | 593 | 'checkout_settings' => array( |
594 | 594 | 'id' => 'checkout_settings', |
595 | - 'name' => '<h3>' . __( 'Checkout Settings', 'invoicing' ) . '</h3>', |
|
595 | + 'name' => '<h3>' . __('Checkout Settings', 'invoicing') . '</h3>', |
|
596 | 596 | 'type' => 'header', |
597 | 597 | ), |
598 | 598 | 'disable_new_user_emails' => array( |
599 | 599 | 'id' => 'disable_new_user_emails', |
600 | - 'name' => __( 'Disable new user emails', 'invoicing' ), |
|
601 | - 'desc' => __( 'Do not send an email to customers when a new user account is created for them.', 'invoicing' ), |
|
600 | + 'name' => __('Disable new user emails', 'invoicing'), |
|
601 | + 'desc' => __('Do not send an email to customers when a new user account is created for them.', 'invoicing'), |
|
602 | 602 | 'type' => 'checkbox', |
603 | 603 | ), |
604 | 604 | 'login_to_checkout' => array( |
605 | 605 | 'id' => 'login_to_checkout', |
606 | - 'name' => __( 'Require Login To Checkout', 'invoicing' ), |
|
607 | - 'desc' => __( 'If ticked then user needs to be logged in to view or pay invoice, can only view or pay their own invoice. If unticked then anyone can view or pay the invoice.', 'invoicing' ), |
|
606 | + 'name' => __('Require Login To Checkout', 'invoicing'), |
|
607 | + 'desc' => __('If ticked then user needs to be logged in to view or pay invoice, can only view or pay their own invoice. If unticked then anyone can view or pay the invoice.', 'invoicing'), |
|
608 | 608 | 'type' => 'checkbox', |
609 | 609 | ), |
610 | 610 | 'maxmind_license_key' => array( |
611 | 611 | 'id' => 'maxmind_license_key', |
612 | - 'name' => __( 'MaxMind License Key', 'invoicing' ), |
|
612 | + 'name' => __('MaxMind License Key', 'invoicing'), |
|
613 | 613 | 'type' => 'text', |
614 | 614 | 'size' => 'regular', |
615 | - 'desc' => __( "Enter you license key if you would like to use MaxMind to automatically detect a customer's country.", 'invoicing' ) . ' <a href="https://support.maxmind.com/account-faq/license-keys/how-do-i-generate-a-license-key/">' . __( 'How to generate a free license key.', 'invoicing' ) . '</a>', |
|
615 | + 'desc' => __("Enter you license key if you would like to use MaxMind to automatically detect a customer's country.", 'invoicing') . ' <a href="https://support.maxmind.com/account-faq/license-keys/how-do-i-generate-a-license-key/">' . __('How to generate a free license key.', 'invoicing') . '</a>', |
|
616 | 616 | ), |
617 | 617 | |
618 | 618 | 'uninstall_settings' => array( |
619 | 619 | 'id' => 'uninstall_settings', |
620 | - 'name' => '<h3>' . __( 'Uninstall Settings', 'invoicing' ) . '</h3>', |
|
620 | + 'name' => '<h3>' . __('Uninstall Settings', 'invoicing') . '</h3>', |
|
621 | 621 | 'type' => 'header', |
622 | 622 | ), |
623 | 623 | 'remove_data_on_unistall' => array( |
624 | 624 | 'id' => 'remove_data_on_unistall', |
625 | - 'name' => __( 'Remove Data on Uninstall?', 'invoicing' ), |
|
626 | - 'desc' => __( 'Check this box if you would like Invoicing plugin to completely remove all of its data when the plugin is deleted/uninstalled.', 'invoicing' ), |
|
625 | + 'name' => __('Remove Data on Uninstall?', 'invoicing'), |
|
626 | + 'desc' => __('Check this box if you would like Invoicing plugin to completely remove all of its data when the plugin is deleted/uninstalled.', 'invoicing'), |
|
627 | 627 | 'type' => 'checkbox', |
628 | 628 | 'std' => '' |
629 | 629 | ), |
@@ -632,13 +632,13 @@ discard block |
||
632 | 632 | 'custom-css' => array( |
633 | 633 | 'css_settings' => array( |
634 | 634 | 'id' => 'css_settings', |
635 | - 'name' => '<h3>' . __( 'Custom CSS', 'invoicing' ) . '</h3>', |
|
635 | + 'name' => '<h3>' . __('Custom CSS', 'invoicing') . '</h3>', |
|
636 | 636 | 'type' => 'header', |
637 | 637 | ), |
638 | 638 | 'template_custom_css' => array( |
639 | 639 | 'id' => 'template_custom_css', |
640 | - 'name' => __( 'Invoice Template CSS', 'invoicing' ), |
|
641 | - 'desc' => __( 'Add CSS to modify appearance of the print invoice page.', 'invoicing' ), |
|
640 | + 'name' => __('Invoice Template CSS', 'invoicing'), |
|
641 | + 'desc' => __('Add CSS to modify appearance of the print invoice page.', 'invoicing'), |
|
642 | 642 | 'type' => 'textarea', |
643 | 643 | 'class'=> 'regular-text', |
644 | 644 | 'rows' => 10, |
@@ -652,8 +652,8 @@ discard block |
||
652 | 652 | 'main' => array( |
653 | 653 | 'tool_settings' => array( |
654 | 654 | 'id' => 'tool_settings', |
655 | - 'name' => '<h3>' . __( 'Diagnostic Tools', 'invoicing' ) . '</h3>', |
|
656 | - 'desc' => __( 'Invoicing diagnostic tools', 'invoicing' ), |
|
655 | + 'name' => '<h3>' . __('Diagnostic Tools', 'invoicing') . '</h3>', |
|
656 | + 'desc' => __('Invoicing diagnostic tools', 'invoicing'), |
|
657 | 657 | 'type' => 'tools', |
658 | 658 | ), |
659 | 659 | ), |
@@ -20,13 +20,13 @@ |
||
20 | 20 | <title><?php esc_html_e( 'GetPaid › Setup Wizard', 'invoicing' ); ?></title> |
21 | 21 | <?php |
22 | 22 | getpaid_admin()->enqeue_scripts(); |
23 | - wp_enqueue_style( 'font-awesome', 'https://use.fontawesome.com/releases/v5.13.0/css/all.css', array(), 'v5.13.0' ); |
|
24 | - wp_print_styles( 'select2' ); |
|
23 | + wp_enqueue_style( 'font-awesome', 'https://use.fontawesome.com/releases/v5.13.0/css/all.css', array(), 'v5.13.0' ); |
|
24 | + wp_print_styles( 'select2' ); |
|
25 | 25 | wp_print_scripts( 'select2' ); |
26 | - wp_print_scripts( 'wpinv-admin-script' ); |
|
26 | + wp_print_scripts( 'wpinv-admin-script' ); |
|
27 | 27 | do_action( 'admin_print_styles' ); |
28 | 28 | do_action( 'admin_head' ); |
29 | - ?> |
|
29 | + ?> |
|
30 | 30 | <style> |
31 | 31 | body, p{ |
32 | 32 | font-size: 16px; |
@@ -55,9 +55,12 @@ |
||
55 | 55 | </li> |
56 | 56 | <?php endforeach; ?> |
57 | 57 | </ol> |
58 | - <?php else: ?> |
|
58 | + <?php else { |
|
59 | + : ?> |
|
59 | 60 | <div class='mb-3'> </div> |
60 | - <?php endif; ?> |
|
61 | + <?php endif; |
|
62 | +} |
|
63 | +?> |
|
61 | 64 | |
62 | 65 | <div class="text-center pb-3 mt-5"> |
63 | 66 | <a class=" text-decoration-none" href="https://wpgetpaid.com/"> |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | |
7 | -defined( 'ABSPATH' ) || exit; |
|
7 | +defined('ABSPATH') || exit; |
|
8 | 8 | |
9 | 9 | $aui_settings = AyeCode_UI_Settings::instance(); |
10 | 10 | $aui_settings->enqueue_scripts(); |
@@ -17,15 +17,15 @@ discard block |
||
17 | 17 | <head> |
18 | 18 | <meta name="viewport" content="width=device-width"/> |
19 | 19 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
20 | - <title><?php esc_html_e( 'GetPaid › Setup Wizard', 'invoicing' ); ?></title> |
|
20 | + <title><?php esc_html_e('GetPaid › Setup Wizard', 'invoicing'); ?></title> |
|
21 | 21 | <?php |
22 | 22 | getpaid_admin()->enqeue_scripts(); |
23 | - wp_enqueue_style( 'font-awesome', 'https://use.fontawesome.com/releases/v5.13.0/css/all.css', array(), 'v5.13.0' ); |
|
24 | - wp_print_styles( 'select2' ); |
|
25 | - wp_print_scripts( 'select2' ); |
|
26 | - wp_print_scripts( 'wpinv-admin-script' ); |
|
27 | - do_action( 'admin_print_styles' ); |
|
28 | - do_action( 'admin_head' ); |
|
23 | + wp_enqueue_style('font-awesome', 'https://use.fontawesome.com/releases/v5.13.0/css/all.css', array(), 'v5.13.0'); |
|
24 | + wp_print_styles('select2'); |
|
25 | + wp_print_scripts('select2'); |
|
26 | + wp_print_scripts('wpinv-admin-script'); |
|
27 | + do_action('admin_print_styles'); |
|
28 | + do_action('admin_head'); |
|
29 | 29 | ?> |
30 | 30 | <style> |
31 | 31 | body, p{ |
@@ -37,21 +37,21 @@ discard block |
||
37 | 37 | font-weight: 500; |
38 | 38 | margin-bottom: .1rem; |
39 | 39 | } |
40 | - <?php echo $aui_settings::css_primary( '#009874', true ); ?> |
|
40 | + <?php echo $aui_settings::css_primary('#009874', true); ?> |
|
41 | 41 | </style> |
42 | 42 | </head> |
43 | 43 | |
44 | 44 | <body class="gp-setup wp-core-ui bg-lightx mx-auto text-dark scrollbars-ios" style="background: #f3f6ff;"> |
45 | 45 | |
46 | - <?php if ( isset( $_REQUEST['step'] ) ) : ?> |
|
46 | + <?php if (isset($_REQUEST['step'])) : ?> |
|
47 | 47 | <ol class="gp-setup-steps mb-0 pb-4 mw-100 list-group list-group-horizontal text-center"> |
48 | - <?php foreach ( $steps as $step => $data ) : ?> |
|
48 | + <?php foreach ($steps as $step => $data) : ?> |
|
49 | 49 | <li class="list-group-item flex-fill rounded-0 <?php |
50 | 50 | echo $step == $current ? 'active' : 'd-none d-md-block'; |
51 | - echo array_search( $current, array_keys( $steps ) ) > array_search( $step, array_keys( $steps ) ) ? ' done' : ''; |
|
51 | + echo array_search($current, array_keys($steps)) > array_search($step, array_keys($steps)) ? ' done' : ''; |
|
52 | 52 | ?>"> |
53 | - <i class="far fa-check-circle <?php echo array_search( $current, array_keys( $steps ) ) > array_search( $step, array_keys( $steps ) ) ? 'text-success' : '' ;?>"></i> |
|
54 | - <?php echo esc_html( $data['name'] ); ?> |
|
53 | + <i class="far fa-check-circle <?php echo array_search($current, array_keys($steps)) > array_search($step, array_keys($steps)) ? 'text-success' : ''; ?>"></i> |
|
54 | + <?php echo esc_html($data['name']); ?> |
|
55 | 55 | </li> |
56 | 56 | <?php endforeach; ?> |
57 | 57 | </ol> |
@@ -62,7 +62,7 @@ discard block |
||
62 | 62 | <div class="text-center pb-3 mt-5"> |
63 | 63 | <a class=" text-decoration-none" href="https://wpgetpaid.com/"> |
64 | 64 | <span class="text-black-50"> |
65 | - <img class="ml-n3x" src="<?php echo esc_url( WPINV_PLUGIN_URL . 'assets/images/getpaid-logo.png' );?>" /> |
|
65 | + <img class="ml-n3x" src="<?php echo esc_url(WPINV_PLUGIN_URL . 'assets/images/getpaid-logo.png'); ?>" /> |
|
66 | 66 | </span> |
67 | 67 | </a> |
68 | 68 | </div> |
69 | 69 | \ No newline at end of file |
@@ -57,8 +57,8 @@ discard block |
||
57 | 57 | 'getpaid-nonce', |
58 | 58 | 'getpaid-nonce' |
59 | 59 | ); |
60 | - $anchor = __( 'Deactivate', 'invoicing' ); |
|
61 | - $title = esc_attr__( 'Are you sure you want to deactivate this discount?', 'invoicing' ); |
|
60 | + $anchor = __( 'Deactivate', 'invoicing' ); |
|
61 | + $title = esc_attr__( 'Are you sure you want to deactivate this discount?', 'invoicing' ); |
|
62 | 62 | $row_actions['deactivate'] = "<a href='$url' onclick='return confirm(\"$title\")'>$anchor</a>"; |
63 | 63 | |
64 | 64 | } else if( in_array( strtolower( $discount->post_status ), array( 'pending', 'draft' ) ) ) { |
@@ -73,8 +73,8 @@ discard block |
||
73 | 73 | 'getpaid-nonce', |
74 | 74 | 'getpaid-nonce' |
75 | 75 | ); |
76 | - $anchor = __( 'Activate', 'invoicing' ); |
|
77 | - $title = esc_attr__( 'Are you sure you want to activate this discount?', 'invoicing' ); |
|
76 | + $anchor = __( 'Activate', 'invoicing' ); |
|
77 | + $title = esc_attr__( 'Are you sure you want to activate this discount?', 'invoicing' ); |
|
78 | 78 | $row_actions['activate'] = "<a href='$url' onclick='return confirm(\"$title\")'>$anchor</a>"; |
79 | 79 | |
80 | 80 | } |
@@ -91,8 +91,8 @@ discard block |
||
91 | 91 | 'getpaid-nonce' |
92 | 92 | ) |
93 | 93 | ); |
94 | - $anchor = __( 'Delete', 'invoicing' ); |
|
95 | - $title = esc_attr__( 'Are you sure you want to delete this discount?', 'invoicing' ); |
|
94 | + $anchor = __( 'Delete', 'invoicing' ); |
|
95 | + $title = esc_attr__( 'Are you sure you want to delete this discount?', 'invoicing' ); |
|
96 | 96 | $row_actions['delete'] = "<a href='$url' onclick='return confirm(\"$title\")'>$anchor</a>"; |
97 | 97 | |
98 | 98 | $row_actions = apply_filters( 'wpinv_discount_row_actions', $row_actions, $discount ); |
@@ -1,51 +1,51 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | // MUST have WordPress. |
3 | -if ( !defined( 'WPINC' ) ) { |
|
4 | - exit( 'Do NOT access this file directly: ' . basename( __FILE__ ) ); |
|
3 | +if (!defined('WPINC')) { |
|
4 | + exit('Do NOT access this file directly: ' . basename(__FILE__)); |
|
5 | 5 | } |
6 | 6 | |
7 | -add_action( 'manage_wpi_discount_posts_custom_column', 'wpinv_discount_custom_column' ); |
|
8 | -function wpinv_discount_custom_column( $column ) { |
|
7 | +add_action('manage_wpi_discount_posts_custom_column', 'wpinv_discount_custom_column'); |
|
8 | +function wpinv_discount_custom_column($column) { |
|
9 | 9 | global $post; |
10 | 10 | |
11 | - $discount = new WPInv_Discount( $post ); |
|
11 | + $discount = new WPInv_Discount($post); |
|
12 | 12 | |
13 | - switch ( $column ) { |
|
13 | + switch ($column) { |
|
14 | 14 | case 'code' : |
15 | - echo esc_html( $discount->get_code() ); |
|
15 | + echo esc_html($discount->get_code()); |
|
16 | 16 | break; |
17 | 17 | case 'amount' : |
18 | - echo wp_kses_post( $discount->get_formatted_amount() ); |
|
18 | + echo wp_kses_post($discount->get_formatted_amount()); |
|
19 | 19 | break; |
20 | 20 | case 'usage' : |
21 | - echo wp_kses_post( $discount->get_usage() ); |
|
21 | + echo wp_kses_post($discount->get_usage()); |
|
22 | 22 | break; |
23 | 23 | case 'start_date' : |
24 | - echo wp_kses_post( getpaid_format_date_value( $discount->get_start_date() ) ); |
|
24 | + echo wp_kses_post(getpaid_format_date_value($discount->get_start_date())); |
|
25 | 25 | break; |
26 | 26 | case 'expiry_date' : |
27 | - echo wp_kses_post( getpaid_format_date_value( $discount->get_expiration_date(), __( 'Never', 'invoicing' ) ) ); |
|
27 | + echo wp_kses_post(getpaid_format_date_value($discount->get_expiration_date(), __('Never', 'invoicing'))); |
|
28 | 28 | break; |
29 | 29 | } |
30 | 30 | } |
31 | 31 | |
32 | -add_filter( 'post_row_actions', 'wpinv_post_row_actions', 90, 2 ); |
|
33 | -function wpinv_post_row_actions( $actions, $post ) { |
|
34 | - $post_type = !empty( $post->post_type ) ? $post->post_type : ''; |
|
32 | +add_filter('post_row_actions', 'wpinv_post_row_actions', 90, 2); |
|
33 | +function wpinv_post_row_actions($actions, $post) { |
|
34 | + $post_type = !empty($post->post_type) ? $post->post_type : ''; |
|
35 | 35 | |
36 | - if ( $post_type == 'wpi_discount' ) { |
|
37 | - $actions = wpinv_discount_row_actions( $post, $actions ); |
|
36 | + if ($post_type == 'wpi_discount') { |
|
37 | + $actions = wpinv_discount_row_actions($post, $actions); |
|
38 | 38 | } |
39 | 39 | |
40 | 40 | return $actions; |
41 | 41 | } |
42 | 42 | |
43 | -function wpinv_discount_row_actions( $discount, $row_actions ) { |
|
44 | - $row_actions = array(); |
|
45 | - $edit_link = get_edit_post_link( $discount->ID ); |
|
46 | - $row_actions['edit'] = '<a href="' . esc_url( $edit_link ) . '">' . __( 'Edit', 'invoicing' ) . '</a>'; |
|
43 | +function wpinv_discount_row_actions($discount, $row_actions) { |
|
44 | + $row_actions = array(); |
|
45 | + $edit_link = get_edit_post_link($discount->ID); |
|
46 | + $row_actions['edit'] = '<a href="' . esc_url($edit_link) . '">' . __('Edit', 'invoicing') . '</a>'; |
|
47 | 47 | |
48 | - if ( in_array( strtolower( $discount->post_status ), array( 'publish' ) ) ) { |
|
48 | + if (in_array(strtolower($discount->post_status), array('publish'))) { |
|
49 | 49 | |
50 | 50 | $url = wp_nonce_url( |
51 | 51 | add_query_arg( |
@@ -57,13 +57,13 @@ discard block |
||
57 | 57 | 'getpaid-nonce', |
58 | 58 | 'getpaid-nonce' |
59 | 59 | ); |
60 | - $anchor = __( 'Deactivate', 'invoicing' ); |
|
61 | - $title = esc_attr__( 'Are you sure you want to deactivate this discount?', 'invoicing' ); |
|
60 | + $anchor = __('Deactivate', 'invoicing'); |
|
61 | + $title = esc_attr__('Are you sure you want to deactivate this discount?', 'invoicing'); |
|
62 | 62 | $row_actions['deactivate'] = "<a href='$url' onclick='return confirm(\"$title\")'>$anchor</a>"; |
63 | 63 | |
64 | - } else if( in_array( strtolower( $discount->post_status ), array( 'pending', 'draft' ) ) ) { |
|
64 | + } else if (in_array(strtolower($discount->post_status), array('pending', 'draft'))) { |
|
65 | 65 | |
66 | - $url = wp_nonce_url( |
|
66 | + $url = wp_nonce_url( |
|
67 | 67 | add_query_arg( |
68 | 68 | array( |
69 | 69 | 'getpaid-admin-action' => 'activate_discount', |
@@ -73,13 +73,13 @@ discard block |
||
73 | 73 | 'getpaid-nonce', |
74 | 74 | 'getpaid-nonce' |
75 | 75 | ); |
76 | - $anchor = __( 'Activate', 'invoicing' ); |
|
77 | - $title = esc_attr__( 'Are you sure you want to activate this discount?', 'invoicing' ); |
|
76 | + $anchor = __('Activate', 'invoicing'); |
|
77 | + $title = esc_attr__('Are you sure you want to activate this discount?', 'invoicing'); |
|
78 | 78 | $row_actions['activate'] = "<a href='$url' onclick='return confirm(\"$title\")'>$anchor</a>"; |
79 | 79 | |
80 | 80 | } |
81 | 81 | |
82 | - $url = esc_url( |
|
82 | + $url = esc_url( |
|
83 | 83 | wp_nonce_url( |
84 | 84 | add_query_arg( |
85 | 85 | array( |
@@ -91,11 +91,11 @@ discard block |
||
91 | 91 | 'getpaid-nonce' |
92 | 92 | ) |
93 | 93 | ); |
94 | - $anchor = __( 'Delete', 'invoicing' ); |
|
95 | - $title = esc_attr__( 'Are you sure you want to delete this discount?', 'invoicing' ); |
|
94 | + $anchor = __('Delete', 'invoicing'); |
|
95 | + $title = esc_attr__('Are you sure you want to delete this discount?', 'invoicing'); |
|
96 | 96 | $row_actions['delete'] = "<a href='$url' onclick='return confirm(\"$title\")'>$anchor</a>"; |
97 | 97 | |
98 | - $row_actions = apply_filters( 'wpinv_discount_row_actions', $row_actions, $discount ); |
|
98 | + $row_actions = apply_filters('wpinv_discount_row_actions', $row_actions, $discount); |
|
99 | 99 | |
100 | 100 | return $row_actions; |
101 | 101 | } |
@@ -103,68 +103,68 @@ discard block |
||
103 | 103 | function wpinv_restrict_manage_posts() { |
104 | 104 | global $typenow; |
105 | 105 | |
106 | - if( 'wpi_discount' == $typenow ) { |
|
106 | + if ('wpi_discount' == $typenow) { |
|
107 | 107 | wpinv_discount_filters(); |
108 | 108 | } |
109 | 109 | } |
110 | -add_action( 'restrict_manage_posts', 'wpinv_restrict_manage_posts', 10 ); |
|
110 | +add_action('restrict_manage_posts', 'wpinv_restrict_manage_posts', 10); |
|
111 | 111 | |
112 | 112 | function wpinv_discount_filters() { |
113 | 113 | |
114 | 114 | ?> |
115 | 115 | <select name="discount_type" id="dropdown_wpinv_discount_type"> |
116 | - <option value=""><?php _e( 'Show all types', 'invoicing' ); ?></option> |
|
116 | + <option value=""><?php _e('Show all types', 'invoicing'); ?></option> |
|
117 | 117 | <?php |
118 | 118 | $types = wpinv_get_discount_types(); |
119 | 119 | |
120 | - foreach ( $types as $name => $type ) { |
|
121 | - echo '<option value="' . esc_attr( $name ) . '"'; |
|
120 | + foreach ($types as $name => $type) { |
|
121 | + echo '<option value="' . esc_attr($name) . '"'; |
|
122 | 122 | |
123 | - if ( isset( $_GET['discount_type'] ) ) |
|
124 | - selected( $name, sanitize_text_field( $_GET['discount_type'] ) ); |
|
123 | + if (isset($_GET['discount_type'])) |
|
124 | + selected($name, sanitize_text_field($_GET['discount_type'])); |
|
125 | 125 | |
126 | - echo '>' . esc_html__( $type, 'invoicing' ) . '</option>'; |
|
126 | + echo '>' . esc_html__($type, 'invoicing') . '</option>'; |
|
127 | 127 | } |
128 | 128 | ?> |
129 | 129 | </select> |
130 | 130 | <?php |
131 | 131 | } |
132 | 132 | |
133 | -function wpinv_request( $vars ) { |
|
133 | +function wpinv_request($vars) { |
|
134 | 134 | global $typenow, $wp_post_statuses; |
135 | 135 | |
136 | - if ( getpaid_is_invoice_post_type( $typenow ) ) { |
|
137 | - if ( ! isset( $vars['post_status'] ) ) { |
|
138 | - $post_statuses = wpinv_get_invoice_statuses( false, false, $typenow ); |
|
136 | + if (getpaid_is_invoice_post_type($typenow)) { |
|
137 | + if (!isset($vars['post_status'])) { |
|
138 | + $post_statuses = wpinv_get_invoice_statuses(false, false, $typenow); |
|
139 | 139 | |
140 | - foreach ( $post_statuses as $status => $value ) { |
|
141 | - if ( isset( $wp_post_statuses[ $status ] ) && false === $wp_post_statuses[ $status ]->show_in_admin_all_list ) { |
|
142 | - unset( $post_statuses[ $status ] ); |
|
140 | + foreach ($post_statuses as $status => $value) { |
|
141 | + if (isset($wp_post_statuses[$status]) && false === $wp_post_statuses[$status]->show_in_admin_all_list) { |
|
142 | + unset($post_statuses[$status]); |
|
143 | 143 | } |
144 | 144 | } |
145 | 145 | |
146 | - $vars['post_status'] = array_keys( $post_statuses ); |
|
146 | + $vars['post_status'] = array_keys($post_statuses); |
|
147 | 147 | } |
148 | 148 | |
149 | - } else if ( 'wpi_discount' == $typenow ) { |
|
150 | - $meta_query = !empty( $vars['meta_query'] ) ? $vars['meta_query'] : array(); |
|
149 | + } else if ('wpi_discount' == $typenow) { |
|
150 | + $meta_query = !empty($vars['meta_query']) ? $vars['meta_query'] : array(); |
|
151 | 151 | // Filter vat rule type |
152 | - if ( isset( $_GET['discount_type'] ) && $_GET['discount_type'] !== '' ) { |
|
152 | + if (isset($_GET['discount_type']) && $_GET['discount_type'] !== '') { |
|
153 | 153 | $meta_query[] = array( |
154 | 154 | 'key' => '_wpi_discount_type', |
155 | - 'value' => sanitize_key( urldecode( $_GET['discount_type'] ) ), |
|
155 | + 'value' => sanitize_key(urldecode($_GET['discount_type'])), |
|
156 | 156 | 'compare' => '=' |
157 | 157 | ); |
158 | 158 | } |
159 | 159 | |
160 | - if ( !empty( $meta_query ) ) { |
|
160 | + if (!empty($meta_query)) { |
|
161 | 161 | $vars['meta_query'] = $meta_query; |
162 | 162 | } |
163 | 163 | } |
164 | 164 | |
165 | 165 | return $vars; |
166 | 166 | } |
167 | -add_filter( 'request', 'wpinv_request' ); |
|
167 | +add_filter('request', 'wpinv_request'); |
|
168 | 168 | |
169 | 169 | /** |
170 | 170 | * Create a page and store the ID in an option. |
@@ -176,19 +176,19 @@ discard block |
||
176 | 176 | * @param int $post_parent (default: 0) Parent for the new page |
177 | 177 | * @return int page ID |
178 | 178 | */ |
179 | -function wpinv_create_page( $slug, $option = '', $page_title = '', $page_content = '', $post_parent = 0 ) { |
|
179 | +function wpinv_create_page($slug, $option = '', $page_title = '', $page_content = '', $post_parent = 0) { |
|
180 | 180 | global $wpdb; |
181 | 181 | |
182 | - $option_value = wpinv_get_option( $option ); |
|
182 | + $option_value = wpinv_get_option($option); |
|
183 | 183 | |
184 | - if ( ! empty( $option_value ) && ( $page_object = get_post( $option_value ) ) ) { |
|
185 | - if ( 'page' === $page_object->post_type && ! in_array( $page_object->post_status, array( 'pending', 'trash', 'future', 'auto-draft' ) ) ) { |
|
184 | + if (!empty($option_value) && ($page_object = get_post($option_value))) { |
|
185 | + if ('page' === $page_object->post_type && !in_array($page_object->post_status, array('pending', 'trash', 'future', 'auto-draft'))) { |
|
186 | 186 | // Valid page is already in place |
187 | 187 | return $page_object->ID; |
188 | 188 | } |
189 | 189 | } |
190 | 190 | |
191 | - if(!empty($post_parent)){ |
|
191 | + if (!empty($post_parent)) { |
|
192 | 192 | $page = get_page_by_path($post_parent); |
193 | 193 | if ($page) { |
194 | 194 | $post_parent = $page->ID; |
@@ -197,40 +197,40 @@ discard block |
||
197 | 197 | } |
198 | 198 | } |
199 | 199 | |
200 | - if ( strlen( $page_content ) > 0 ) { |
|
200 | + if (strlen($page_content) > 0) { |
|
201 | 201 | // Search for an existing page with the specified page content (typically a shortcode) |
202 | - $valid_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status NOT IN ( 'pending', 'trash', 'future', 'auto-draft' ) AND post_content LIKE %s LIMIT 1;", "%{$page_content}%" ) ); |
|
202 | + $valid_page_found = $wpdb->get_var($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status NOT IN ( 'pending', 'trash', 'future', 'auto-draft' ) AND post_content LIKE %s LIMIT 1;", "%{$page_content}%")); |
|
203 | 203 | } else { |
204 | 204 | // Search for an existing page with the specified page slug |
205 | - $valid_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status NOT IN ( 'pending', 'trash', 'future', 'auto-draft' ) AND post_name = %s LIMIT 1;", $slug ) ); |
|
205 | + $valid_page_found = $wpdb->get_var($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status NOT IN ( 'pending', 'trash', 'future', 'auto-draft' ) AND post_name = %s LIMIT 1;", $slug)); |
|
206 | 206 | } |
207 | 207 | |
208 | - $valid_page_found = apply_filters( 'wpinv_create_page_id', $valid_page_found, $slug, $page_content ); |
|
208 | + $valid_page_found = apply_filters('wpinv_create_page_id', $valid_page_found, $slug, $page_content); |
|
209 | 209 | |
210 | - if ( $valid_page_found ) { |
|
211 | - if ( $option ) { |
|
212 | - wpinv_update_option( $option, $valid_page_found ); |
|
210 | + if ($valid_page_found) { |
|
211 | + if ($option) { |
|
212 | + wpinv_update_option($option, $valid_page_found); |
|
213 | 213 | } |
214 | 214 | return $valid_page_found; |
215 | 215 | } |
216 | 216 | |
217 | 217 | // Search for a matching valid trashed page |
218 | - if ( strlen( $page_content ) > 0 ) { |
|
218 | + if (strlen($page_content) > 0) { |
|
219 | 219 | // Search for an existing page with the specified page content (typically a shortcode) |
220 | - $trashed_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status = 'trash' AND post_content LIKE %s LIMIT 1;", "%{$page_content}%" ) ); |
|
220 | + $trashed_page_found = $wpdb->get_var($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status = 'trash' AND post_content LIKE %s LIMIT 1;", "%{$page_content}%")); |
|
221 | 221 | } else { |
222 | 222 | // Search for an existing page with the specified page slug |
223 | - $trashed_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status = 'trash' AND post_name = %s LIMIT 1;", $slug ) ); |
|
223 | + $trashed_page_found = $wpdb->get_var($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status = 'trash' AND post_name = %s LIMIT 1;", $slug)); |
|
224 | 224 | } |
225 | 225 | |
226 | - if ( $trashed_page_found ) { |
|
226 | + if ($trashed_page_found) { |
|
227 | 227 | $page_id = $trashed_page_found; |
228 | 228 | $page_data = array( |
229 | 229 | 'ID' => $page_id, |
230 | 230 | 'post_status' => 'publish', |
231 | 231 | 'post_parent' => $post_parent, |
232 | 232 | ); |
233 | - wp_update_post( $page_data ); |
|
233 | + wp_update_post($page_data); |
|
234 | 234 | } else { |
235 | 235 | $page_data = array( |
236 | 236 | 'post_status' => 'publish', |
@@ -242,11 +242,11 @@ discard block |
||
242 | 242 | 'post_parent' => $post_parent, |
243 | 243 | 'comment_status' => 'closed', |
244 | 244 | ); |
245 | - $page_id = wp_insert_post( $page_data ); |
|
245 | + $page_id = wp_insert_post($page_data); |
|
246 | 246 | } |
247 | 247 | |
248 | - if ( $option ) { |
|
249 | - wpinv_update_option( $option, (int) $page_id ); |
|
248 | + if ($option) { |
|
249 | + wpinv_update_option($option, (int) $page_id); |
|
250 | 250 | } |
251 | 251 | |
252 | 252 | return $page_id; |
@@ -259,11 +259,11 @@ discard block |
||
259 | 259 | * |
260 | 260 | * @return array |
261 | 261 | */ |
262 | -function wpinv_add_aui_screens($screen_ids){ |
|
262 | +function wpinv_add_aui_screens($screen_ids) { |
|
263 | 263 | |
264 | 264 | // load on these pages if set |
265 | - $screen_ids = array_merge( $screen_ids, wpinv_get_screen_ids() ); |
|
265 | + $screen_ids = array_merge($screen_ids, wpinv_get_screen_ids()); |
|
266 | 266 | |
267 | 267 | return $screen_ids; |
268 | 268 | } |
269 | -add_filter('aui_screen_ids','wpinv_add_aui_screens'); |
|
270 | 269 | \ No newline at end of file |
270 | +add_filter('aui_screen_ids', 'wpinv_add_aui_screens'); |
|
271 | 271 | \ No newline at end of file |
@@ -120,8 +120,9 @@ |
||
120 | 120 | foreach ( $types as $name => $type ) { |
121 | 121 | echo '<option value="' . esc_attr( $name ) . '"'; |
122 | 122 | |
123 | - if ( isset( $_GET['discount_type'] ) ) |
|
124 | - selected( $name, sanitize_text_field( $_GET['discount_type'] ) ); |
|
123 | + if ( isset( $_GET['discount_type'] ) ) { |
|
124 | + selected( $name, sanitize_text_field( $_GET['discount_type'] ) ); |
|
125 | + } |
|
125 | 126 | |
126 | 127 | echo '>' . esc_html__( $type, 'invoicing' ) . '</option>'; |
127 | 128 | } |