@@ -13,30 +13,30 @@ discard block |
||
13 | 13 | class GetPaid_Bank_Transfer_Gateway extends GetPaid_Payment_Gateway { |
14 | 14 | |
15 | 15 | /** |
16 | - * Payment method id. |
|
17 | - * |
|
18 | - * @var string |
|
19 | - */ |
|
16 | + * Payment method id. |
|
17 | + * |
|
18 | + * @var string |
|
19 | + */ |
|
20 | 20 | public $id = 'bank_transfer'; |
21 | 21 | |
22 | - /** |
|
23 | - * An array of features that this gateway supports. |
|
24 | - * |
|
25 | - * @var array |
|
26 | - */ |
|
27 | - protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups' ); |
|
22 | + /** |
|
23 | + * An array of features that this gateway supports. |
|
24 | + * |
|
25 | + * @var array |
|
26 | + */ |
|
27 | + protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups' ); |
|
28 | 28 | |
29 | 29 | /** |
30 | - * Payment method order. |
|
31 | - * |
|
32 | - * @var int |
|
33 | - */ |
|
34 | - public $order = 8; |
|
30 | + * Payment method order. |
|
31 | + * |
|
32 | + * @var int |
|
33 | + */ |
|
34 | + public $order = 8; |
|
35 | 35 | |
36 | 36 | /** |
37 | - * Class constructor. |
|
38 | - */ |
|
39 | - public function __construct() { |
|
37 | + * Class constructor. |
|
38 | + */ |
|
39 | + public function __construct() { |
|
40 | 40 | parent::__construct(); |
41 | 41 | |
42 | 42 | $this->title = __( 'Direct bank transfer', 'invoicing' ); |
@@ -44,24 +44,24 @@ discard block |
||
44 | 44 | $this->checkout_button_text = __( 'Proceed', 'invoicing' ); |
45 | 45 | $this->instructions = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) ); |
46 | 46 | |
47 | - add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
48 | - add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
49 | - add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 ); |
|
50 | - add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
51 | - add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) ); |
|
52 | - add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 ); |
|
47 | + add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
48 | + add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
49 | + add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 ); |
|
50 | + add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
51 | + add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) ); |
|
52 | + add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 ); |
|
53 | 53 | |
54 | 54 | } |
55 | 55 | |
56 | 56 | /** |
57 | - * Process Payment. |
|
58 | - * |
|
59 | - * @param WPInv_Invoice $invoice Invoice. |
|
60 | - * @param array $submission_data Posted checkout fields. |
|
61 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
62 | - * @return array |
|
63 | - */ |
|
64 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
57 | + * Process Payment. |
|
58 | + * |
|
59 | + * @param WPInv_Invoice $invoice Invoice. |
|
60 | + * @param array $submission_data Posted checkout fields. |
|
61 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
62 | + * @return array |
|
63 | + */ |
|
64 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
65 | 65 | |
66 | 66 | // Add a transaction id. |
67 | 67 | $invoice->set_transaction_id( $invoice->generate_key('bt_') ); |
@@ -82,66 +82,66 @@ discard block |
||
82 | 82 | } |
83 | 83 | |
84 | 84 | /** |
85 | - * Output for the order received page. |
|
86 | - * |
|
87 | - * @param WPInv_Invoice $invoice Invoice. |
|
88 | - */ |
|
89 | - public function thankyou_page( $invoice ) { |
|
85 | + * Output for the order received page. |
|
86 | + * |
|
87 | + * @param WPInv_Invoice $invoice Invoice. |
|
88 | + */ |
|
89 | + public function thankyou_page( $invoice ) { |
|
90 | 90 | |
91 | 91 | if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
92 | 92 | |
93 | - echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
93 | + echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
94 | 94 | |
95 | 95 | if ( ! empty( $this->instructions ) ) { |
96 | 96 | echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) ); |
97 | - } |
|
97 | + } |
|
98 | 98 | |
99 | - $this->bank_details( $invoice ); |
|
99 | + $this->bank_details( $invoice ); |
|
100 | 100 | |
101 | - echo '</div>'; |
|
101 | + echo '</div>'; |
|
102 | 102 | |
103 | 103 | } |
104 | 104 | |
105 | - } |
|
105 | + } |
|
106 | 106 | |
107 | 107 | /** |
108 | - * Add content to the WPI emails. |
|
109 | - * |
|
110 | - * @param WPInv_Invoice $invoice Invoice. |
|
111 | - * @param string $email_type Email format: plain text or HTML. |
|
112 | - * @param bool $sent_to_admin Sent to admin. |
|
113 | - */ |
|
114 | - public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
108 | + * Add content to the WPI emails. |
|
109 | + * |
|
110 | + * @param WPInv_Invoice $invoice Invoice. |
|
111 | + * @param string $email_type Email format: plain text or HTML. |
|
112 | + * @param bool $sent_to_admin Sent to admin. |
|
113 | + */ |
|
114 | + public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
115 | 115 | |
116 | - if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
116 | + if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
117 | 117 | |
118 | - echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
118 | + echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
119 | 119 | |
120 | - if ( $this->instructions ) { |
|
121 | - echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
120 | + if ( $this->instructions ) { |
|
121 | + echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
122 | 122 | } |
123 | 123 | |
124 | - $this->bank_details( $invoice ); |
|
124 | + $this->bank_details( $invoice ); |
|
125 | 125 | |
126 | - echo '</div>'; |
|
126 | + echo '</div>'; |
|
127 | 127 | |
128 | - } |
|
128 | + } |
|
129 | 129 | |
130 | 130 | } |
131 | 131 | |
132 | 132 | /** |
133 | - * Get bank details and place into a list format. |
|
134 | - * |
|
135 | - * @param WPInv_Invoice $invoice Invoice. |
|
136 | - */ |
|
137 | - protected function bank_details( $invoice ) { |
|
133 | + * Get bank details and place into a list format. |
|
134 | + * |
|
135 | + * @param WPInv_Invoice $invoice Invoice. |
|
136 | + */ |
|
137 | + protected function bank_details( $invoice ) { |
|
138 | 138 | |
139 | - // Get the invoice country and country $locale. |
|
140 | - $country = $invoice->get_country(); |
|
141 | - $locale = $this->get_country_locale(); |
|
139 | + // Get the invoice country and country $locale. |
|
140 | + $country = $invoice->get_country(); |
|
141 | + $locale = $this->get_country_locale(); |
|
142 | 142 | |
143 | - // Get sortcode label in the $locale array and use appropriate one. |
|
144 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
143 | + // Get sortcode label in the $locale array and use appropriate one. |
|
144 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
145 | 145 | |
146 | 146 | $bank_fields = array( |
147 | 147 | 'ac_name' => __( 'Account Name', 'invoicing' ), |
@@ -170,144 +170,144 @@ discard block |
||
170 | 170 | return; |
171 | 171 | } |
172 | 172 | |
173 | - echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) . '</h3>' . PHP_EOL; |
|
173 | + echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) . '</h3>' . PHP_EOL; |
|
174 | + |
|
175 | + echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
176 | + |
|
177 | + foreach ( $bank_info as $key => $data ) { |
|
178 | + |
|
179 | + $key = sanitize_html_class( $key ); |
|
180 | + $label = wp_kses_post( $data['label'] ); |
|
181 | + $value = wp_kses_post( wptexturize( $data['value'] ) ); |
|
182 | + |
|
183 | + echo "<tr class='getpaid-bank-transfer-$key'><th class='font-weight-bold'>$label</th><td class='w-75'>$value</td></tr>" . PHP_EOL; |
|
184 | + } |
|
174 | 185 | |
175 | - echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
186 | + echo '</table>'; |
|
176 | 187 | |
177 | - foreach ( $bank_info as $key => $data ) { |
|
188 | + } |
|
178 | 189 | |
179 | - $key = sanitize_html_class( $key ); |
|
180 | - $label = wp_kses_post( $data['label'] ); |
|
181 | - $value = wp_kses_post( wptexturize( $data['value'] ) ); |
|
190 | + /** |
|
191 | + * Get country locale if localized. |
|
192 | + * |
|
193 | + * @return array |
|
194 | + */ |
|
195 | + public function get_country_locale() { |
|
196 | + |
|
197 | + if ( empty( $this->locale ) ) { |
|
198 | + |
|
199 | + // Locale information to be used - only those that are not 'Sort Code'. |
|
200 | + $this->locale = apply_filters( |
|
201 | + 'getpaid_get_bank_transfer_locale', |
|
202 | + array( |
|
203 | + 'AU' => array( |
|
204 | + 'sortcode' => array( |
|
205 | + 'label' => __( 'BSB', 'invoicing' ), |
|
206 | + ), |
|
207 | + ), |
|
208 | + 'CA' => array( |
|
209 | + 'sortcode' => array( |
|
210 | + 'label' => __( 'Bank transit number', 'invoicing' ), |
|
211 | + ), |
|
212 | + ), |
|
213 | + 'IN' => array( |
|
214 | + 'sortcode' => array( |
|
215 | + 'label' => __( 'IFSC', 'invoicing' ), |
|
216 | + ), |
|
217 | + ), |
|
218 | + 'IT' => array( |
|
219 | + 'sortcode' => array( |
|
220 | + 'label' => __( 'Branch sort', 'invoicing' ), |
|
221 | + ), |
|
222 | + ), |
|
223 | + 'NZ' => array( |
|
224 | + 'sortcode' => array( |
|
225 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
226 | + ), |
|
227 | + ), |
|
228 | + 'SE' => array( |
|
229 | + 'sortcode' => array( |
|
230 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
231 | + ), |
|
232 | + ), |
|
233 | + 'US' => array( |
|
234 | + 'sortcode' => array( |
|
235 | + 'label' => __( 'Routing number', 'invoicing' ), |
|
236 | + ), |
|
237 | + ), |
|
238 | + 'ZA' => array( |
|
239 | + 'sortcode' => array( |
|
240 | + 'label' => __( 'Branch code', 'invoicing' ), |
|
241 | + ), |
|
242 | + ), |
|
243 | + ) |
|
244 | + ); |
|
182 | 245 | |
183 | - echo "<tr class='getpaid-bank-transfer-$key'><th class='font-weight-bold'>$label</th><td class='w-75'>$value</td></tr>" . PHP_EOL; |
|
184 | - } |
|
246 | + } |
|
185 | 247 | |
186 | - echo '</table>'; |
|
248 | + return $this->locale; |
|
187 | 249 | |
188 | 250 | } |
189 | 251 | |
190 | 252 | /** |
191 | - * Get country locale if localized. |
|
192 | - * |
|
193 | - * @return array |
|
194 | - */ |
|
195 | - public function get_country_locale() { |
|
196 | - |
|
197 | - if ( empty( $this->locale ) ) { |
|
198 | - |
|
199 | - // Locale information to be used - only those that are not 'Sort Code'. |
|
200 | - $this->locale = apply_filters( |
|
201 | - 'getpaid_get_bank_transfer_locale', |
|
202 | - array( |
|
203 | - 'AU' => array( |
|
204 | - 'sortcode' => array( |
|
205 | - 'label' => __( 'BSB', 'invoicing' ), |
|
206 | - ), |
|
207 | - ), |
|
208 | - 'CA' => array( |
|
209 | - 'sortcode' => array( |
|
210 | - 'label' => __( 'Bank transit number', 'invoicing' ), |
|
211 | - ), |
|
212 | - ), |
|
213 | - 'IN' => array( |
|
214 | - 'sortcode' => array( |
|
215 | - 'label' => __( 'IFSC', 'invoicing' ), |
|
216 | - ), |
|
217 | - ), |
|
218 | - 'IT' => array( |
|
219 | - 'sortcode' => array( |
|
220 | - 'label' => __( 'Branch sort', 'invoicing' ), |
|
221 | - ), |
|
222 | - ), |
|
223 | - 'NZ' => array( |
|
224 | - 'sortcode' => array( |
|
225 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
226 | - ), |
|
227 | - ), |
|
228 | - 'SE' => array( |
|
229 | - 'sortcode' => array( |
|
230 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
231 | - ), |
|
232 | - ), |
|
233 | - 'US' => array( |
|
234 | - 'sortcode' => array( |
|
235 | - 'label' => __( 'Routing number', 'invoicing' ), |
|
236 | - ), |
|
237 | - ), |
|
238 | - 'ZA' => array( |
|
239 | - 'sortcode' => array( |
|
240 | - 'label' => __( 'Branch code', 'invoicing' ), |
|
241 | - ), |
|
242 | - ), |
|
243 | - ) |
|
244 | - ); |
|
245 | - |
|
246 | - } |
|
247 | - |
|
248 | - return $this->locale; |
|
249 | - |
|
250 | - } |
|
251 | - |
|
252 | - /** |
|
253 | - * Filters the gateway settings. |
|
254 | - * |
|
255 | - * @param array $admin_settings |
|
256 | - */ |
|
257 | - public function admin_settings( $admin_settings ) { |
|
253 | + * Filters the gateway settings. |
|
254 | + * |
|
255 | + * @param array $admin_settings |
|
256 | + */ |
|
257 | + public function admin_settings( $admin_settings ) { |
|
258 | 258 | |
259 | 259 | $admin_settings['bank_transfer_desc']['std'] = __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' ); |
260 | - $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
260 | + $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
261 | 261 | |
262 | - $locale = $this->get_country_locale(); |
|
262 | + $locale = $this->get_country_locale(); |
|
263 | 263 | |
264 | - // Get sortcode label in the $locale array and use appropriate one. |
|
265 | - $country = wpinv_default_billing_country(); |
|
266 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
264 | + // Get sortcode label in the $locale array and use appropriate one. |
|
265 | + $country = wpinv_default_billing_country(); |
|
266 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
267 | 267 | |
268 | - $admin_settings['bank_transfer_ac_name'] = array( |
|
268 | + $admin_settings['bank_transfer_ac_name'] = array( |
|
269 | 269 | 'type' => 'text', |
270 | 270 | 'id' => 'bank_transfer_ac_name', |
271 | 271 | 'name' => __( 'Account Name', 'invoicing' ), |
272 | - ); |
|
272 | + ); |
|
273 | 273 | |
274 | - $admin_settings['bank_transfer_ac_no'] = array( |
|
274 | + $admin_settings['bank_transfer_ac_no'] = array( |
|
275 | 275 | 'type' => 'text', |
276 | 276 | 'id' => 'bank_transfer_ac_no', |
277 | 277 | 'name' => __( 'Account Number', 'invoicing' ), |
278 | - ); |
|
278 | + ); |
|
279 | 279 | |
280 | - $admin_settings['bank_transfer_bank_name'] = array( |
|
280 | + $admin_settings['bank_transfer_bank_name'] = array( |
|
281 | 281 | 'type' => 'text', |
282 | 282 | 'id' => 'bank_transfer_bank_name', |
283 | 283 | 'name' => __( 'Bank Name', 'invoicing' ), |
284 | - ); |
|
284 | + ); |
|
285 | 285 | |
286 | - $admin_settings['bank_transfer_ifsc'] = array( |
|
286 | + $admin_settings['bank_transfer_ifsc'] = array( |
|
287 | 287 | 'type' => 'text', |
288 | 288 | 'id' => 'bank_transfer_ifsc', |
289 | 289 | 'name' => __( 'IFSC Code', 'invoicing' ), |
290 | - ); |
|
290 | + ); |
|
291 | 291 | |
292 | - $admin_settings['bank_transfer_iban'] = array( |
|
292 | + $admin_settings['bank_transfer_iban'] = array( |
|
293 | 293 | 'type' => 'text', |
294 | 294 | 'id' => 'bank_transfer_iban', |
295 | 295 | 'name' => __( 'IBAN', 'invoicing' ), |
296 | - ); |
|
296 | + ); |
|
297 | 297 | |
298 | - $admin_settings['bank_transfer_bic'] = array( |
|
298 | + $admin_settings['bank_transfer_bic'] = array( |
|
299 | 299 | 'type' => 'text', |
300 | 300 | 'id' => 'bank_transfer_bic', |
301 | 301 | 'name' => __( 'BIC/Swift Code', 'invoicing' ), |
302 | - ); |
|
302 | + ); |
|
303 | 303 | |
304 | - $admin_settings['bank_transfer_sort_code'] = array( |
|
305 | - 'type' => 'text', |
|
306 | - 'id' => 'bank_transfer_sort_code', |
|
307 | - 'name' => $sortcode, |
|
308 | - ); |
|
304 | + $admin_settings['bank_transfer_sort_code'] = array( |
|
305 | + 'type' => 'text', |
|
306 | + 'id' => 'bank_transfer_sort_code', |
|
307 | + 'name' => $sortcode, |
|
308 | + ); |
|
309 | 309 | |
310 | - $admin_settings['bank_transfer_info'] = array( |
|
310 | + $admin_settings['bank_transfer_info'] = array( |
|
311 | 311 | 'id' => 'bank_transfer_info', |
312 | 312 | 'name' => __( 'Instructions', 'invoicing' ), |
313 | 313 | 'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ), |
@@ -317,17 +317,17 @@ discard block |
||
317 | 317 | 'rows' => 5 |
318 | 318 | ); |
319 | 319 | |
320 | - return $admin_settings; |
|
321 | - } |
|
320 | + return $admin_settings; |
|
321 | + } |
|
322 | 322 | |
323 | - /** |
|
324 | - * Processes invoice addons. |
|
325 | - * |
|
326 | - * @param WPInv_Invoice $invoice |
|
327 | - * @param GetPaid_Form_Item[] $items |
|
328 | - * @return WPInv_Invoice |
|
329 | - */ |
|
330 | - public function process_addons( $invoice, $items ) { |
|
323 | + /** |
|
324 | + * Processes invoice addons. |
|
325 | + * |
|
326 | + * @param WPInv_Invoice $invoice |
|
327 | + * @param GetPaid_Form_Item[] $items |
|
328 | + * @return WPInv_Invoice |
|
329 | + */ |
|
330 | + public function process_addons( $invoice, $items ) { |
|
331 | 331 | |
332 | 332 | foreach ( $items as $item ) { |
333 | 333 | $invoice->add_item( $item ); |
@@ -335,70 +335,70 @@ discard block |
||
335 | 335 | |
336 | 336 | $invoice->recalculate_total(); |
337 | 337 | $invoice->save(); |
338 | - } |
|
338 | + } |
|
339 | 339 | |
340 | - /** |
|
341 | - * (Maybe) renews a bank transfer subscription profile. |
|
342 | - * |
|
343 | - * |
|
340 | + /** |
|
341 | + * (Maybe) renews a bank transfer subscription profile. |
|
342 | + * |
|
343 | + * |
|
344 | 344 | * @param WPInv_Subscription $subscription |
345 | - */ |
|
346 | - public function maybe_renew_subscription( $subscription ) { |
|
345 | + */ |
|
346 | + public function maybe_renew_subscription( $subscription ) { |
|
347 | 347 | |
348 | 348 | // Ensure its our subscription && it's active. |
349 | 349 | if ( $this->id == $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
350 | - $subscription->create_payment(); |
|
350 | + $subscription->create_payment(); |
|
351 | 351 | } |
352 | 352 | |
353 | 353 | } |
354 | 354 | |
355 | - /** |
|
356 | - * Process a bank transfer payment. |
|
357 | - * |
|
358 | - * |
|
355 | + /** |
|
356 | + * Process a bank transfer payment. |
|
357 | + * |
|
358 | + * |
|
359 | 359 | * @param WPInv_Invoice $invoice |
360 | - */ |
|
361 | - public function invoice_paid( $invoice ) { |
|
360 | + */ |
|
361 | + public function invoice_paid( $invoice ) { |
|
362 | 362 | |
363 | - // Abort if not paid by bank transfer. |
|
364 | - if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) { |
|
365 | - return; |
|
366 | - } |
|
363 | + // Abort if not paid by bank transfer. |
|
364 | + if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) { |
|
365 | + return; |
|
366 | + } |
|
367 | 367 | |
368 | - // Is it a parent payment? |
|
369 | - if ( 0 == $invoice->get_parent_id() ) { |
|
368 | + // Is it a parent payment? |
|
369 | + if ( 0 == $invoice->get_parent_id() ) { |
|
370 | 370 | |
371 | - // (Maybe) activate subscriptions. |
|
372 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
371 | + // (Maybe) activate subscriptions. |
|
372 | + $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
373 | 373 | |
374 | - if ( ! empty( $subscriptions ) ) { |
|
375 | - $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
374 | + if ( ! empty( $subscriptions ) ) { |
|
375 | + $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
376 | 376 | |
377 | - foreach ( $subscriptions as $subscription ) { |
|
378 | - if ( $subscription->exists() ) { |
|
379 | - $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
380 | - $expiry = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
377 | + foreach ( $subscriptions as $subscription ) { |
|
378 | + if ( $subscription->exists() ) { |
|
379 | + $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
380 | + $expiry = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
381 | 381 | |
382 | - $subscription->set_next_renewal_date( $expiry ); |
|
383 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
384 | - $subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ); |
|
385 | - $subscription->activate(); |
|
386 | - } |
|
387 | - } |
|
382 | + $subscription->set_next_renewal_date( $expiry ); |
|
383 | + $subscription->set_date_created( current_time( 'mysql' ) ); |
|
384 | + $subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ); |
|
385 | + $subscription->activate(); |
|
386 | + } |
|
387 | + } |
|
388 | 388 | |
389 | - } |
|
389 | + } |
|
390 | 390 | |
391 | - } else { |
|
391 | + } else { |
|
392 | 392 | |
393 | - $subscription = getpaid_get_subscription( $invoice->get_subscription_id() ); |
|
393 | + $subscription = getpaid_get_subscription( $invoice->get_subscription_id() ); |
|
394 | 394 | |
395 | - // Renew the subscription. |
|
396 | - if ( $subscription && $subscription->exists() ) { |
|
397 | - $subscription->add_payment( array(), $invoice ); |
|
398 | - $subscription->renew(); |
|
399 | - } |
|
395 | + // Renew the subscription. |
|
396 | + if ( $subscription && $subscription->exists() ) { |
|
397 | + $subscription->add_payment( array(), $invoice ); |
|
398 | + $subscription->renew(); |
|
399 | + } |
|
400 | 400 | |
401 | - } |
|
401 | + } |
|
402 | 402 | |
403 | 403 | } |
404 | 404 |
@@ -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 | * Bank transfer 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,17 +39,17 @@ discard block |
||
39 | 39 | public function __construct() { |
40 | 40 | parent::__construct(); |
41 | 41 | |
42 | - $this->title = __( 'Direct bank transfer', 'invoicing' ); |
|
43 | - $this->method_title = __( 'Bank transfer', 'invoicing' ); |
|
44 | - $this->checkout_button_text = __( 'Proceed', 'invoicing' ); |
|
45 | - $this->instructions = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) ); |
|
42 | + $this->title = __('Direct bank transfer', 'invoicing'); |
|
43 | + $this->method_title = __('Bank transfer', 'invoicing'); |
|
44 | + $this->checkout_button_text = __('Proceed', 'invoicing'); |
|
45 | + $this->instructions = apply_filters('wpinv_bank_instructions', $this->get_option('info')); |
|
46 | 46 | |
47 | - add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
48 | - add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
49 | - add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 ); |
|
50 | - add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
51 | - add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) ); |
|
52 | - add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 ); |
|
47 | + add_action('wpinv_receipt_end', array($this, 'thankyou_page')); |
|
48 | + add_action('getpaid_invoice_line_items', array($this, 'thankyou_page'), 40); |
|
49 | + add_action('wpinv_pdf_content_billing', array($this, 'thankyou_page'), 11); |
|
50 | + add_action('wpinv_email_invoice_details', array($this, 'email_instructions'), 10, 3); |
|
51 | + add_action('getpaid_should_renew_subscription', array($this, 'maybe_renew_subscription')); |
|
52 | + add_action('getpaid_invoice_status_publish', array($this, 'invoice_paid'), 20); |
|
53 | 53 | |
54 | 54 | } |
55 | 55 | |
@@ -61,23 +61,23 @@ discard block |
||
61 | 61 | * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
62 | 62 | * @return array |
63 | 63 | */ |
64 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
64 | + public function process_payment($invoice, $submission_data, $submission) { |
|
65 | 65 | |
66 | 66 | // Add a transaction id. |
67 | - $invoice->set_transaction_id( $invoice->generate_key('bt_') ); |
|
67 | + $invoice->set_transaction_id($invoice->generate_key('bt_')); |
|
68 | 68 | |
69 | 69 | // Set it as pending payment. |
70 | - if ( ! $invoice->needs_payment() ) { |
|
70 | + if (!$invoice->needs_payment()) { |
|
71 | 71 | $invoice->mark_paid(); |
72 | - } else if ( ! $invoice->is_paid() ) { |
|
73 | - $invoice->set_status( 'wpi-onhold' ); |
|
72 | + } else if (!$invoice->is_paid()) { |
|
73 | + $invoice->set_status('wpi-onhold'); |
|
74 | 74 | } |
75 | 75 | |
76 | 76 | // Save it. |
77 | 77 | $invoice->save(); |
78 | 78 | |
79 | 79 | // Send to the success page. |
80 | - wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
|
80 | + wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key())); |
|
81 | 81 | |
82 | 82 | } |
83 | 83 | |
@@ -86,17 +86,17 @@ discard block |
||
86 | 86 | * |
87 | 87 | * @param WPInv_Invoice $invoice Invoice. |
88 | 88 | */ |
89 | - public function thankyou_page( $invoice ) { |
|
89 | + public function thankyou_page($invoice) { |
|
90 | 90 | |
91 | - if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
91 | + if ('bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment()) { |
|
92 | 92 | |
93 | 93 | echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
94 | 94 | |
95 | - if ( ! empty( $this->instructions ) ) { |
|
96 | - echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) ); |
|
95 | + if (!empty($this->instructions)) { |
|
96 | + echo wp_kses_post(wpautop(wptexturize($this->instructions))); |
|
97 | 97 | } |
98 | 98 | |
99 | - $this->bank_details( $invoice ); |
|
99 | + $this->bank_details($invoice); |
|
100 | 100 | |
101 | 101 | echo '</div>'; |
102 | 102 | |
@@ -111,17 +111,17 @@ discard block |
||
111 | 111 | * @param string $email_type Email format: plain text or HTML. |
112 | 112 | * @param bool $sent_to_admin Sent to admin. |
113 | 113 | */ |
114 | - public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
114 | + public function email_instructions($invoice, $email_type, $sent_to_admin) { |
|
115 | 115 | |
116 | - if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
116 | + if (!$sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment()) { |
|
117 | 117 | |
118 | 118 | echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
119 | 119 | |
120 | - if ( $this->instructions ) { |
|
121 | - echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
120 | + if ($this->instructions) { |
|
121 | + echo wp_kses_post(wpautop(wptexturize($this->instructions)) . PHP_EOL); |
|
122 | 122 | } |
123 | 123 | |
124 | - $this->bank_details( $invoice ); |
|
124 | + $this->bank_details($invoice); |
|
125 | 125 | |
126 | 126 | echo '</div>'; |
127 | 127 | |
@@ -134,51 +134,51 @@ discard block |
||
134 | 134 | * |
135 | 135 | * @param WPInv_Invoice $invoice Invoice. |
136 | 136 | */ |
137 | - protected function bank_details( $invoice ) { |
|
137 | + protected function bank_details($invoice) { |
|
138 | 138 | |
139 | 139 | // Get the invoice country and country $locale. |
140 | 140 | $country = $invoice->get_country(); |
141 | 141 | $locale = $this->get_country_locale(); |
142 | 142 | |
143 | 143 | // Get sortcode label in the $locale array and use appropriate one. |
144 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
144 | + $sortcode = isset($locale[$country]['sortcode']['label']) ? $locale[$country]['sortcode']['label'] : __('Sort code', 'invoicing'); |
|
145 | 145 | |
146 | 146 | $bank_fields = array( |
147 | - 'ac_name' => __( 'Account Name', 'invoicing' ), |
|
148 | - 'ac_no' => __( 'Account Number', 'invoicing' ), |
|
149 | - 'bank_name' => __( 'Bank Name', 'invoicing' ), |
|
150 | - 'ifsc' => __( 'IFSC code', 'invoicing' ), |
|
151 | - 'iban' => __( 'IBAN', 'invoicing' ), |
|
152 | - 'bic' => __( 'BIC/Swift code', 'invoicing' ), |
|
147 | + 'ac_name' => __('Account Name', 'invoicing'), |
|
148 | + 'ac_no' => __('Account Number', 'invoicing'), |
|
149 | + 'bank_name' => __('Bank Name', 'invoicing'), |
|
150 | + 'ifsc' => __('IFSC code', 'invoicing'), |
|
151 | + 'iban' => __('IBAN', 'invoicing'), |
|
152 | + 'bic' => __('BIC/Swift code', 'invoicing'), |
|
153 | 153 | 'sort_code' => $sortcode, |
154 | 154 | ); |
155 | 155 | |
156 | 156 | $bank_info = array(); |
157 | 157 | |
158 | - foreach ( $bank_fields as $field => $label ) { |
|
159 | - $value = $this->get_option( $field ); |
|
158 | + foreach ($bank_fields as $field => $label) { |
|
159 | + $value = $this->get_option($field); |
|
160 | 160 | |
161 | - if ( ! empty( $value ) ) { |
|
162 | - $bank_info[$field] = array( 'label' => $label, 'value' => $value ); |
|
161 | + if (!empty($value)) { |
|
162 | + $bank_info[$field] = array('label' => $label, 'value' => $value); |
|
163 | 163 | } |
164 | 164 | |
165 | 165 | } |
166 | 166 | |
167 | - $bank_info = apply_filters( 'wpinv_bank_info', $bank_info ); |
|
167 | + $bank_info = apply_filters('wpinv_bank_info', $bank_info); |
|
168 | 168 | |
169 | - if ( empty( $bank_info ) ) { |
|
169 | + if (empty($bank_info)) { |
|
170 | 170 | return; |
171 | 171 | } |
172 | 172 | |
173 | - echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) . '</h3>' . PHP_EOL; |
|
173 | + echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters('wpinv_receipt_bank_details_title', __('Bank Details', 'invoicing')) . '</h3>' . PHP_EOL; |
|
174 | 174 | |
175 | 175 | echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
176 | 176 | |
177 | - foreach ( $bank_info as $key => $data ) { |
|
177 | + foreach ($bank_info as $key => $data) { |
|
178 | 178 | |
179 | - $key = sanitize_html_class( $key ); |
|
180 | - $label = wp_kses_post( $data['label'] ); |
|
181 | - $value = wp_kses_post( wptexturize( $data['value'] ) ); |
|
179 | + $key = sanitize_html_class($key); |
|
180 | + $label = wp_kses_post($data['label']); |
|
181 | + $value = wp_kses_post(wptexturize($data['value'])); |
|
182 | 182 | |
183 | 183 | echo "<tr class='getpaid-bank-transfer-$key'><th class='font-weight-bold'>$label</th><td class='w-75'>$value</td></tr>" . PHP_EOL; |
184 | 184 | } |
@@ -194,7 +194,7 @@ discard block |
||
194 | 194 | */ |
195 | 195 | public function get_country_locale() { |
196 | 196 | |
197 | - if ( empty( $this->locale ) ) { |
|
197 | + if (empty($this->locale)) { |
|
198 | 198 | |
199 | 199 | // Locale information to be used - only those that are not 'Sort Code'. |
200 | 200 | $this->locale = apply_filters( |
@@ -202,42 +202,42 @@ discard block |
||
202 | 202 | array( |
203 | 203 | 'AU' => array( |
204 | 204 | 'sortcode' => array( |
205 | - 'label' => __( 'BSB', 'invoicing' ), |
|
205 | + 'label' => __('BSB', 'invoicing'), |
|
206 | 206 | ), |
207 | 207 | ), |
208 | 208 | 'CA' => array( |
209 | 209 | 'sortcode' => array( |
210 | - 'label' => __( 'Bank transit number', 'invoicing' ), |
|
210 | + 'label' => __('Bank transit number', 'invoicing'), |
|
211 | 211 | ), |
212 | 212 | ), |
213 | 213 | 'IN' => array( |
214 | 214 | 'sortcode' => array( |
215 | - 'label' => __( 'IFSC', 'invoicing' ), |
|
215 | + 'label' => __('IFSC', 'invoicing'), |
|
216 | 216 | ), |
217 | 217 | ), |
218 | 218 | 'IT' => array( |
219 | 219 | 'sortcode' => array( |
220 | - 'label' => __( 'Branch sort', 'invoicing' ), |
|
220 | + 'label' => __('Branch sort', 'invoicing'), |
|
221 | 221 | ), |
222 | 222 | ), |
223 | 223 | 'NZ' => array( |
224 | 224 | 'sortcode' => array( |
225 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
225 | + 'label' => __('Bank code', 'invoicing'), |
|
226 | 226 | ), |
227 | 227 | ), |
228 | 228 | 'SE' => array( |
229 | 229 | 'sortcode' => array( |
230 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
230 | + 'label' => __('Bank code', 'invoicing'), |
|
231 | 231 | ), |
232 | 232 | ), |
233 | 233 | 'US' => array( |
234 | 234 | 'sortcode' => array( |
235 | - 'label' => __( 'Routing number', 'invoicing' ), |
|
235 | + 'label' => __('Routing number', 'invoicing'), |
|
236 | 236 | ), |
237 | 237 | ), |
238 | 238 | 'ZA' => array( |
239 | 239 | 'sortcode' => array( |
240 | - 'label' => __( 'Branch code', 'invoicing' ), |
|
240 | + 'label' => __('Branch code', 'invoicing'), |
|
241 | 241 | ), |
242 | 242 | ), |
243 | 243 | ) |
@@ -254,51 +254,51 @@ discard block |
||
254 | 254 | * |
255 | 255 | * @param array $admin_settings |
256 | 256 | */ |
257 | - public function admin_settings( $admin_settings ) { |
|
257 | + public function admin_settings($admin_settings) { |
|
258 | 258 | |
259 | - $admin_settings['bank_transfer_desc']['std'] = __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' ); |
|
260 | - $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
259 | + $admin_settings['bank_transfer_desc']['std'] = __("Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing'); |
|
260 | + $admin_settings['bank_transfer_active']['desc'] = __('Enable bank transfer', 'invoicing'); |
|
261 | 261 | |
262 | - $locale = $this->get_country_locale(); |
|
262 | + $locale = $this->get_country_locale(); |
|
263 | 263 | |
264 | 264 | // Get sortcode label in the $locale array and use appropriate one. |
265 | 265 | $country = wpinv_default_billing_country(); |
266 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
266 | + $sortcode = isset($locale[$country]['sortcode']['label']) ? $locale[$country]['sortcode']['label'] : __('Sort code', 'invoicing'); |
|
267 | 267 | |
268 | 268 | $admin_settings['bank_transfer_ac_name'] = array( |
269 | 269 | 'type' => 'text', |
270 | 270 | 'id' => 'bank_transfer_ac_name', |
271 | - 'name' => __( 'Account Name', 'invoicing' ), |
|
271 | + 'name' => __('Account Name', 'invoicing'), |
|
272 | 272 | ); |
273 | 273 | |
274 | 274 | $admin_settings['bank_transfer_ac_no'] = array( |
275 | 275 | 'type' => 'text', |
276 | 276 | 'id' => 'bank_transfer_ac_no', |
277 | - 'name' => __( 'Account Number', 'invoicing' ), |
|
277 | + 'name' => __('Account Number', 'invoicing'), |
|
278 | 278 | ); |
279 | 279 | |
280 | 280 | $admin_settings['bank_transfer_bank_name'] = array( |
281 | 281 | 'type' => 'text', |
282 | 282 | 'id' => 'bank_transfer_bank_name', |
283 | - 'name' => __( 'Bank Name', 'invoicing' ), |
|
283 | + 'name' => __('Bank Name', 'invoicing'), |
|
284 | 284 | ); |
285 | 285 | |
286 | 286 | $admin_settings['bank_transfer_ifsc'] = array( |
287 | 287 | 'type' => 'text', |
288 | 288 | 'id' => 'bank_transfer_ifsc', |
289 | - 'name' => __( 'IFSC Code', 'invoicing' ), |
|
289 | + 'name' => __('IFSC Code', 'invoicing'), |
|
290 | 290 | ); |
291 | 291 | |
292 | 292 | $admin_settings['bank_transfer_iban'] = array( |
293 | 293 | 'type' => 'text', |
294 | 294 | 'id' => 'bank_transfer_iban', |
295 | - 'name' => __( 'IBAN', 'invoicing' ), |
|
295 | + 'name' => __('IBAN', 'invoicing'), |
|
296 | 296 | ); |
297 | 297 | |
298 | 298 | $admin_settings['bank_transfer_bic'] = array( |
299 | 299 | 'type' => 'text', |
300 | 300 | 'id' => 'bank_transfer_bic', |
301 | - 'name' => __( 'BIC/Swift Code', 'invoicing' ), |
|
301 | + 'name' => __('BIC/Swift Code', 'invoicing'), |
|
302 | 302 | ); |
303 | 303 | |
304 | 304 | $admin_settings['bank_transfer_sort_code'] = array( |
@@ -309,10 +309,10 @@ discard block |
||
309 | 309 | |
310 | 310 | $admin_settings['bank_transfer_info'] = array( |
311 | 311 | 'id' => 'bank_transfer_info', |
312 | - 'name' => __( 'Instructions', 'invoicing' ), |
|
313 | - 'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ), |
|
312 | + 'name' => __('Instructions', 'invoicing'), |
|
313 | + 'desc' => __('Instructions that will be added to the thank you page and emails.', 'invoicing'), |
|
314 | 314 | 'type' => 'textarea', |
315 | - 'std' => __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' ), |
|
315 | + 'std' => __("Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing'), |
|
316 | 316 | 'cols' => 50, |
317 | 317 | 'rows' => 5 |
318 | 318 | ); |
@@ -327,10 +327,10 @@ discard block |
||
327 | 327 | * @param GetPaid_Form_Item[] $items |
328 | 328 | * @return WPInv_Invoice |
329 | 329 | */ |
330 | - public function process_addons( $invoice, $items ) { |
|
330 | + public function process_addons($invoice, $items) { |
|
331 | 331 | |
332 | - foreach ( $items as $item ) { |
|
333 | - $invoice->add_item( $item ); |
|
332 | + foreach ($items as $item) { |
|
333 | + $invoice->add_item($item); |
|
334 | 334 | } |
335 | 335 | |
336 | 336 | $invoice->recalculate_total(); |
@@ -343,10 +343,10 @@ discard block |
||
343 | 343 | * |
344 | 344 | * @param WPInv_Subscription $subscription |
345 | 345 | */ |
346 | - public function maybe_renew_subscription( $subscription ) { |
|
346 | + public function maybe_renew_subscription($subscription) { |
|
347 | 347 | |
348 | 348 | // Ensure its our subscription && it's active. |
349 | - if ( $this->id == $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
|
349 | + if ($this->id == $subscription->get_gateway() && $subscription->has_status('active trialling')) { |
|
350 | 350 | $subscription->create_payment(); |
351 | 351 | } |
352 | 352 | |
@@ -358,30 +358,30 @@ discard block |
||
358 | 358 | * |
359 | 359 | * @param WPInv_Invoice $invoice |
360 | 360 | */ |
361 | - public function invoice_paid( $invoice ) { |
|
361 | + public function invoice_paid($invoice) { |
|
362 | 362 | |
363 | 363 | // Abort if not paid by bank transfer. |
364 | - if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) { |
|
364 | + if ($this->id !== $invoice->get_gateway() || !$invoice->is_recurring()) { |
|
365 | 365 | return; |
366 | 366 | } |
367 | 367 | |
368 | 368 | // Is it a parent payment? |
369 | - if ( 0 == $invoice->get_parent_id() ) { |
|
369 | + if (0 == $invoice->get_parent_id()) { |
|
370 | 370 | |
371 | 371 | // (Maybe) activate subscriptions. |
372 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
372 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
373 | 373 | |
374 | - if ( ! empty( $subscriptions ) ) { |
|
375 | - $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
374 | + if (!empty($subscriptions)) { |
|
375 | + $subscriptions = is_array($subscriptions) ? $subscriptions : array($subscriptions); |
|
376 | 376 | |
377 | - foreach ( $subscriptions as $subscription ) { |
|
378 | - if ( $subscription->exists() ) { |
|
379 | - $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
380 | - $expiry = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
377 | + foreach ($subscriptions as $subscription) { |
|
378 | + if ($subscription->exists()) { |
|
379 | + $duration = strtotime($subscription->get_expiration()) - strtotime($subscription->get_date_created()); |
|
380 | + $expiry = date('Y-m-d H:i:s', (current_time('timestamp') + $duration)); |
|
381 | 381 | |
382 | - $subscription->set_next_renewal_date( $expiry ); |
|
383 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
384 | - $subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ); |
|
382 | + $subscription->set_next_renewal_date($expiry); |
|
383 | + $subscription->set_date_created(current_time('mysql')); |
|
384 | + $subscription->set_profile_id('bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id()); |
|
385 | 385 | $subscription->activate(); |
386 | 386 | } |
387 | 387 | } |
@@ -390,11 +390,11 @@ discard block |
||
390 | 390 | |
391 | 391 | } else { |
392 | 392 | |
393 | - $subscription = getpaid_get_subscription( $invoice->get_subscription_id() ); |
|
393 | + $subscription = getpaid_get_subscription($invoice->get_subscription_id()); |
|
394 | 394 | |
395 | 395 | // Renew the subscription. |
396 | - if ( $subscription && $subscription->exists() ) { |
|
397 | - $subscription->add_payment( array(), $invoice ); |
|
396 | + if ($subscription && $subscription->exists()) { |
|
397 | + $subscription->add_payment(array(), $invoice); |
|
398 | 398 | $subscription->renew(); |
399 | 399 | } |
400 | 400 |
@@ -436,7 +436,7 @@ |
||
436 | 436 | |
437 | 437 | if ( is_admin() && $pagenow && in_array($pagenow, $block_widget_init_screens)) { |
438 | 438 | // don't initiate in these conditions. |
439 | - }else{ |
|
439 | + } else{ |
|
440 | 440 | |
441 | 441 | // Only load allowed widgets. |
442 | 442 | $exclude = function_exists( 'sd_widget_exclude' ) ? sd_widget_exclude() : array(); |
@@ -14,619 +14,619 @@ |
||
14 | 14 | */ |
15 | 15 | class WPInv_Plugin { |
16 | 16 | |
17 | - /** |
|
18 | - * GetPaid version. |
|
19 | - * |
|
20 | - * @var string |
|
21 | - */ |
|
22 | - public $version; |
|
23 | - |
|
24 | - /** |
|
25 | - * Data container. |
|
26 | - * |
|
27 | - * @var array |
|
28 | - */ |
|
29 | - protected $data = array(); |
|
30 | - |
|
31 | - /** |
|
32 | - * Form elements instance. |
|
33 | - * |
|
34 | - * @var WPInv_Payment_Form_Elements |
|
35 | - */ |
|
36 | - public $form_elements; |
|
37 | - |
|
38 | - /** |
|
39 | - * @var array An array of payment gateways. |
|
40 | - */ |
|
41 | - public $gateways; |
|
42 | - |
|
43 | - /** |
|
44 | - * Class constructor. |
|
45 | - */ |
|
46 | - public function __construct() { |
|
47 | - $this->define_constants(); |
|
48 | - $this->includes(); |
|
49 | - $this->init_hooks(); |
|
50 | - $this->set_properties(); |
|
51 | - } |
|
52 | - |
|
53 | - /** |
|
54 | - * Sets a custom data property. |
|
55 | - * |
|
56 | - * @param string $prop The prop to set. |
|
57 | - * @param mixed $value The value to retrieve. |
|
58 | - */ |
|
59 | - public function set( $prop, $value ) { |
|
60 | - $this->data[ $prop ] = $value; |
|
61 | - } |
|
62 | - |
|
63 | - /** |
|
64 | - * Gets a custom data property. |
|
65 | - * |
|
66 | - * @param string $prop The prop to set. |
|
67 | - * @return mixed The value. |
|
68 | - */ |
|
69 | - public function get( $prop ) { |
|
70 | - |
|
71 | - if ( isset( $this->data[ $prop ] ) ) { |
|
72 | - return $this->data[ $prop ]; |
|
73 | - } |
|
74 | - |
|
75 | - return null; |
|
76 | - } |
|
77 | - |
|
78 | - /** |
|
79 | - * Define class properties. |
|
80 | - */ |
|
81 | - public function set_properties() { |
|
82 | - |
|
83 | - // Sessions. |
|
84 | - $this->set( 'session', new WPInv_Session_Handler() ); |
|
85 | - $GLOBALS['wpi_session'] = $this->get( 'session' ); // Backwards compatibility. |
|
86 | - $GLOBALS['wpinv_euvat'] = new WPInv_EUVat(); // Backwards compatibility. |
|
87 | - |
|
88 | - // Init other objects. |
|
89 | - $this->set( 'session', new WPInv_Session_Handler() ); |
|
90 | - $this->set( 'notes', new WPInv_Notes() ); |
|
91 | - $this->set( 'api', new WPInv_API() ); |
|
92 | - $this->set( 'post_types', new GetPaid_Post_Types() ); |
|
93 | - $this->set( 'template', new GetPaid_Template() ); |
|
94 | - $this->set( 'admin', new GetPaid_Admin() ); |
|
95 | - $this->set( 'subscriptions', new WPInv_Subscriptions() ); |
|
96 | - $this->set( 'invoice_emails', new GetPaid_Invoice_Notification_Emails() ); |
|
97 | - $this->set( 'subscription_emails', new GetPaid_Subscription_Notification_Emails() ); |
|
98 | - $this->set( 'daily_maintenace', new GetPaid_Daily_Maintenance() ); |
|
99 | - $this->set( 'payment_forms', new GetPaid_Payment_Forms() ); |
|
100 | - $this->set( 'maxmind', new GetPaid_MaxMind_Geolocation() ); |
|
101 | - |
|
102 | - } |
|
103 | - |
|
104 | - /** |
|
105 | - * Define plugin constants. |
|
106 | - */ |
|
107 | - public function define_constants() { |
|
108 | - define( 'WPINV_PLUGIN_DIR', plugin_dir_path( WPINV_PLUGIN_FILE ) ); |
|
109 | - define( 'WPINV_PLUGIN_URL', plugin_dir_url( WPINV_PLUGIN_FILE ) ); |
|
110 | - $this->version = WPINV_VERSION; |
|
111 | - } |
|
112 | - |
|
113 | - /** |
|
114 | - * Hook into actions and filters. |
|
115 | - * |
|
116 | - * @since 1.0.19 |
|
117 | - */ |
|
118 | - protected function init_hooks() { |
|
119 | - /* Internationalize the text strings used. */ |
|
120 | - add_action( 'plugins_loaded', array( &$this, 'plugins_loaded' ) ); |
|
121 | - |
|
122 | - // Init the plugin after WordPress inits. |
|
123 | - add_action( 'init', array( $this, 'init' ), 1 ); |
|
124 | - add_action( 'init', array( $this, 'maybe_process_ipn' ), 10 ); |
|
125 | - add_action( 'init', array( $this, 'wpinv_actions' ) ); |
|
126 | - add_action( 'init', array( $this, 'maybe_do_authenticated_action' ), 100 ); |
|
127 | - add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 ); |
|
128 | - add_action( 'wp_footer', array( $this, 'wp_footer' ) ); |
|
129 | - add_action( 'wp_head', array( $this, 'wp_head' ) ); |
|
130 | - add_action( 'widgets_init', array( $this, 'register_widgets' ) ); |
|
131 | - add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', array( $this, 'wpseo_exclude_from_sitemap_by_post_ids' ) ); |
|
132 | - add_filter( 'pre_get_posts', array( &$this, 'pre_get_posts' ) ); |
|
133 | - |
|
134 | - add_filter( 'query_vars', array( $this, 'custom_query_vars' ) ); |
|
17 | + /** |
|
18 | + * GetPaid version. |
|
19 | + * |
|
20 | + * @var string |
|
21 | + */ |
|
22 | + public $version; |
|
23 | + |
|
24 | + /** |
|
25 | + * Data container. |
|
26 | + * |
|
27 | + * @var array |
|
28 | + */ |
|
29 | + protected $data = array(); |
|
30 | + |
|
31 | + /** |
|
32 | + * Form elements instance. |
|
33 | + * |
|
34 | + * @var WPInv_Payment_Form_Elements |
|
35 | + */ |
|
36 | + public $form_elements; |
|
37 | + |
|
38 | + /** |
|
39 | + * @var array An array of payment gateways. |
|
40 | + */ |
|
41 | + public $gateways; |
|
42 | + |
|
43 | + /** |
|
44 | + * Class constructor. |
|
45 | + */ |
|
46 | + public function __construct() { |
|
47 | + $this->define_constants(); |
|
48 | + $this->includes(); |
|
49 | + $this->init_hooks(); |
|
50 | + $this->set_properties(); |
|
51 | + } |
|
52 | + |
|
53 | + /** |
|
54 | + * Sets a custom data property. |
|
55 | + * |
|
56 | + * @param string $prop The prop to set. |
|
57 | + * @param mixed $value The value to retrieve. |
|
58 | + */ |
|
59 | + public function set( $prop, $value ) { |
|
60 | + $this->data[ $prop ] = $value; |
|
61 | + } |
|
62 | + |
|
63 | + /** |
|
64 | + * Gets a custom data property. |
|
65 | + * |
|
66 | + * @param string $prop The prop to set. |
|
67 | + * @return mixed The value. |
|
68 | + */ |
|
69 | + public function get( $prop ) { |
|
70 | + |
|
71 | + if ( isset( $this->data[ $prop ] ) ) { |
|
72 | + return $this->data[ $prop ]; |
|
73 | + } |
|
74 | + |
|
75 | + return null; |
|
76 | + } |
|
77 | + |
|
78 | + /** |
|
79 | + * Define class properties. |
|
80 | + */ |
|
81 | + public function set_properties() { |
|
82 | + |
|
83 | + // Sessions. |
|
84 | + $this->set( 'session', new WPInv_Session_Handler() ); |
|
85 | + $GLOBALS['wpi_session'] = $this->get( 'session' ); // Backwards compatibility. |
|
86 | + $GLOBALS['wpinv_euvat'] = new WPInv_EUVat(); // Backwards compatibility. |
|
87 | + |
|
88 | + // Init other objects. |
|
89 | + $this->set( 'session', new WPInv_Session_Handler() ); |
|
90 | + $this->set( 'notes', new WPInv_Notes() ); |
|
91 | + $this->set( 'api', new WPInv_API() ); |
|
92 | + $this->set( 'post_types', new GetPaid_Post_Types() ); |
|
93 | + $this->set( 'template', new GetPaid_Template() ); |
|
94 | + $this->set( 'admin', new GetPaid_Admin() ); |
|
95 | + $this->set( 'subscriptions', new WPInv_Subscriptions() ); |
|
96 | + $this->set( 'invoice_emails', new GetPaid_Invoice_Notification_Emails() ); |
|
97 | + $this->set( 'subscription_emails', new GetPaid_Subscription_Notification_Emails() ); |
|
98 | + $this->set( 'daily_maintenace', new GetPaid_Daily_Maintenance() ); |
|
99 | + $this->set( 'payment_forms', new GetPaid_Payment_Forms() ); |
|
100 | + $this->set( 'maxmind', new GetPaid_MaxMind_Geolocation() ); |
|
101 | + |
|
102 | + } |
|
103 | + |
|
104 | + /** |
|
105 | + * Define plugin constants. |
|
106 | + */ |
|
107 | + public function define_constants() { |
|
108 | + define( 'WPINV_PLUGIN_DIR', plugin_dir_path( WPINV_PLUGIN_FILE ) ); |
|
109 | + define( 'WPINV_PLUGIN_URL', plugin_dir_url( WPINV_PLUGIN_FILE ) ); |
|
110 | + $this->version = WPINV_VERSION; |
|
111 | + } |
|
112 | + |
|
113 | + /** |
|
114 | + * Hook into actions and filters. |
|
115 | + * |
|
116 | + * @since 1.0.19 |
|
117 | + */ |
|
118 | + protected function init_hooks() { |
|
119 | + /* Internationalize the text strings used. */ |
|
120 | + add_action( 'plugins_loaded', array( &$this, 'plugins_loaded' ) ); |
|
121 | + |
|
122 | + // Init the plugin after WordPress inits. |
|
123 | + add_action( 'init', array( $this, 'init' ), 1 ); |
|
124 | + add_action( 'init', array( $this, 'maybe_process_ipn' ), 10 ); |
|
125 | + add_action( 'init', array( $this, 'wpinv_actions' ) ); |
|
126 | + add_action( 'init', array( $this, 'maybe_do_authenticated_action' ), 100 ); |
|
127 | + add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 ); |
|
128 | + add_action( 'wp_footer', array( $this, 'wp_footer' ) ); |
|
129 | + add_action( 'wp_head', array( $this, 'wp_head' ) ); |
|
130 | + add_action( 'widgets_init', array( $this, 'register_widgets' ) ); |
|
131 | + add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', array( $this, 'wpseo_exclude_from_sitemap_by_post_ids' ) ); |
|
132 | + add_filter( 'pre_get_posts', array( &$this, 'pre_get_posts' ) ); |
|
133 | + |
|
134 | + add_filter( 'query_vars', array( $this, 'custom_query_vars' ) ); |
|
135 | 135 | add_action( 'init', array( $this, 'add_rewrite_rule' ), 10, 0 ); |
136 | - add_action( 'pre_get_posts', array( $this, 'maybe_process_new_ipn' ), 1 ); |
|
137 | - |
|
138 | - // Fires after registering actions. |
|
139 | - do_action( 'wpinv_actions', $this ); |
|
140 | - do_action( 'getpaid_actions', $this ); |
|
141 | - |
|
142 | - } |
|
143 | - |
|
144 | - public function plugins_loaded() { |
|
145 | - /* Internationalize the text strings used. */ |
|
146 | - $this->load_textdomain(); |
|
147 | - |
|
148 | - do_action( 'wpinv_loaded' ); |
|
149 | - |
|
150 | - // Fix oxygen page builder conflict |
|
151 | - if ( function_exists( 'ct_css_output' ) ) { |
|
152 | - wpinv_oxygen_fix_conflict(); |
|
153 | - } |
|
154 | - } |
|
155 | - |
|
156 | - /** |
|
157 | - * Load Localisation files. |
|
158 | - * |
|
159 | - * Note: the first-loaded translation file overrides any following ones if the same translation is present. |
|
160 | - * |
|
161 | - * Locales found in: |
|
162 | - * - WP_LANG_DIR/plugins/invoicing-LOCALE.mo |
|
163 | - * - WP_PLUGIN_DIR/invoicing/languages/invoicing-LOCALE.mo |
|
164 | - * |
|
165 | - * @since 1.0.0 |
|
166 | - */ |
|
167 | - public function load_textdomain() { |
|
168 | - |
|
169 | - load_plugin_textdomain( |
|
170 | - 'invoicing', |
|
171 | - false, |
|
172 | - plugin_basename( dirname( WPINV_PLUGIN_FILE ) ) . '/languages/' |
|
173 | - ); |
|
174 | - |
|
175 | - } |
|
176 | - |
|
177 | - /** |
|
178 | - * Include required core files used in admin and on the frontend. |
|
179 | - */ |
|
180 | - public function includes() { |
|
181 | - |
|
182 | - // Start with the settings. |
|
183 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/register-settings.php' ); |
|
184 | - |
|
185 | - // Packages/libraries. |
|
186 | - require_once( WPINV_PLUGIN_DIR . 'vendor/autoload.php' ); |
|
187 | - require_once( WPINV_PLUGIN_DIR . 'vendor/ayecode/wp-ayecode-ui/ayecode-ui-loader.php' ); |
|
188 | - |
|
189 | - // Load functions. |
|
190 | - require_once( WPINV_PLUGIN_DIR . 'includes/deprecated-functions.php' ); |
|
191 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-email-functions.php' ); |
|
192 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-general-functions.php' ); |
|
193 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-helper-functions.php' ); |
|
194 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-tax-functions.php' ); |
|
195 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-template-functions.php' ); |
|
196 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-address-functions.php' ); |
|
197 | - require_once( WPINV_PLUGIN_DIR . 'includes/invoice-functions.php' ); |
|
198 | - require_once( WPINV_PLUGIN_DIR . 'includes/subscription-functions.php' ); |
|
199 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-item-functions.php' ); |
|
200 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-discount-functions.php' ); |
|
201 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-gateway-functions.php' ); |
|
202 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-payment-functions.php' ); |
|
203 | - require_once( WPINV_PLUGIN_DIR . 'includes/user-functions.php' ); |
|
204 | - require_once( WPINV_PLUGIN_DIR . 'includes/error-functions.php' ); |
|
205 | - |
|
206 | - // Register autoloader. |
|
207 | - try { |
|
208 | - spl_autoload_register( array( $this, 'autoload' ), true ); |
|
209 | - } catch ( Exception $e ) { |
|
210 | - wpinv_error_log( $e->getMessage(), '', __FILE__, 149, true ); |
|
211 | - } |
|
212 | - |
|
213 | - require_once( WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php' ); |
|
214 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-session-handler.php' ); |
|
215 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-ajax.php' ); |
|
216 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-api.php' ); |
|
217 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-cache-helper.php' ); |
|
218 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-db.php' ); |
|
219 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/subscriptions.php' ); |
|
220 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions-db.php' ); |
|
221 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-subscription.php' ); |
|
222 | - require_once( WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-privacy.php' ); |
|
223 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-privacy.php' ); |
|
224 | - require_once( WPINV_PLUGIN_DIR . 'includes/libraries/class-ayecode-addons.php' ); |
|
225 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-addons.php' ); |
|
226 | - require_once( WPINV_PLUGIN_DIR . 'widgets/checkout.php' ); |
|
227 | - require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-history.php' ); |
|
228 | - require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-receipt.php' ); |
|
229 | - require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-messages.php' ); |
|
230 | - require_once( WPINV_PLUGIN_DIR . 'widgets/subscriptions.php' ); |
|
231 | - require_once( WPINV_PLUGIN_DIR . 'widgets/buy-item.php' ); |
|
232 | - require_once( WPINV_PLUGIN_DIR . 'widgets/getpaid.php' ); |
|
233 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php' ); |
|
234 | - |
|
235 | - if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) { |
|
236 | - GetPaid_Post_Types_Admin::init(); |
|
237 | - |
|
238 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php' ); |
|
239 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-payment-form.php' ); |
|
240 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-notes.php' ); |
|
241 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-admin-menus.php' ); |
|
242 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-users.php' ); |
|
243 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-getpaid-admin-profile.php' ); |
|
244 | - // load the user class only on the users.php page |
|
245 | - global $pagenow; |
|
246 | - if($pagenow=='users.php'){ |
|
247 | - new WPInv_Admin_Users(); |
|
248 | - } |
|
249 | - } |
|
250 | - |
|
251 | - // Register cli commands |
|
252 | - if ( defined( 'WP_CLI' ) && WP_CLI ) { |
|
253 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php' ); |
|
254 | - WP_CLI::add_command( 'invoicing', 'WPInv_CLI' ); |
|
255 | - } |
|
256 | - |
|
257 | - } |
|
258 | - |
|
259 | - /** |
|
260 | - * Class autoloader |
|
261 | - * |
|
262 | - * @param string $class_name The name of the class to load. |
|
263 | - * @access public |
|
264 | - * @since 1.0.19 |
|
265 | - * @return void |
|
266 | - */ |
|
267 | - public function autoload( $class_name ) { |
|
268 | - |
|
269 | - // Normalize the class name... |
|
270 | - $class_name = strtolower( $class_name ); |
|
271 | - |
|
272 | - // ... and make sure it is our class. |
|
273 | - if ( false === strpos( $class_name, 'getpaid_' ) && false === strpos( $class_name, 'wpinv_' ) ) { |
|
274 | - return; |
|
275 | - } |
|
276 | - |
|
277 | - // Next, prepare the file name from the class. |
|
278 | - $file_name = 'class-' . str_replace( '_', '-', $class_name ) . '.php'; |
|
279 | - |
|
280 | - // Base path of the classes. |
|
281 | - $plugin_path = untrailingslashit( WPINV_PLUGIN_DIR ); |
|
282 | - |
|
283 | - // And an array of possible locations in order of importance. |
|
284 | - $locations = array( |
|
285 | - "$plugin_path/includes", |
|
286 | - "$plugin_path/includes/data-stores", |
|
287 | - "$plugin_path/includes/gateways", |
|
288 | - "$plugin_path/includes/payments", |
|
289 | - "$plugin_path/includes/geolocation", |
|
290 | - "$plugin_path/includes/reports", |
|
291 | - "$plugin_path/includes/api", |
|
292 | - "$plugin_path/includes/admin", |
|
293 | - "$plugin_path/includes/admin/meta-boxes", |
|
294 | - ); |
|
295 | - |
|
296 | - foreach ( apply_filters( 'getpaid_autoload_locations', $locations ) as $location ) { |
|
297 | - |
|
298 | - if ( file_exists( trailingslashit( $location ) . $file_name ) ) { |
|
299 | - include trailingslashit( $location ) . $file_name; |
|
300 | - break; |
|
301 | - } |
|
302 | - |
|
303 | - } |
|
304 | - |
|
305 | - } |
|
306 | - |
|
307 | - /** |
|
308 | - * Inits hooks etc. |
|
309 | - */ |
|
310 | - public function init() { |
|
311 | - |
|
312 | - // Fires before getpaid inits. |
|
313 | - do_action( 'before_getpaid_init', $this ); |
|
314 | - |
|
315 | - // Maybe upgrade. |
|
316 | - $this->maybe_upgrade_database(); |
|
317 | - |
|
318 | - // Load default gateways. |
|
319 | - $gateways = apply_filters( |
|
320 | - 'getpaid_default_gateways', |
|
321 | - array( |
|
322 | - 'manual' => 'GetPaid_Manual_Gateway', |
|
323 | - 'paypal' => 'GetPaid_Paypal_Gateway', |
|
324 | - 'worldpay' => 'GetPaid_Worldpay_Gateway', |
|
325 | - 'bank_transfer' => 'GetPaid_Bank_Transfer_Gateway', |
|
326 | - 'authorizenet' => 'GetPaid_Authorize_Net_Gateway', |
|
327 | - ) |
|
328 | - ); |
|
329 | - |
|
330 | - foreach ( $gateways as $id => $class ) { |
|
331 | - $this->gateways[ $id ] = new $class(); |
|
332 | - } |
|
333 | - |
|
334 | - if ( 'yes' != get_option( 'wpinv_renamed_gateways' ) ) { |
|
335 | - GetPaid_Installer::rename_gateways_label(); |
|
336 | - update_option( 'wpinv_renamed_gateways', 'yes' ); |
|
337 | - } |
|
338 | - |
|
339 | - // Fires after getpaid inits. |
|
340 | - do_action( 'getpaid_init', $this ); |
|
341 | - |
|
342 | - } |
|
343 | - |
|
344 | - /** |
|
345 | - * Checks if this is an IPN request and processes it. |
|
346 | - */ |
|
347 | - public function maybe_process_ipn() { |
|
348 | - |
|
349 | - // Ensure that this is an IPN request. |
|
350 | - if ( empty( $_GET['wpi-listener'] ) || 'IPN' !== $_GET['wpi-listener'] || empty( $_GET['wpi-gateway'] ) ) { |
|
351 | - return; |
|
352 | - } |
|
353 | - |
|
354 | - $gateway = wpinv_clean( $_GET['wpi-gateway'] ); |
|
355 | - |
|
356 | - do_action( 'wpinv_verify_payment_ipn', $gateway ); |
|
357 | - do_action( "wpinv_verify_{$gateway}_ipn" ); |
|
358 | - exit; |
|
359 | - |
|
360 | - } |
|
361 | - |
|
362 | - public function enqueue_scripts() { |
|
363 | - |
|
364 | - // Fires before adding scripts. |
|
365 | - do_action( 'getpaid_enqueue_scripts' ); |
|
366 | - |
|
367 | - $localize = array(); |
|
368 | - $localize['ajax_url'] = admin_url( 'admin-ajax.php' ); |
|
369 | - $localize['thousands'] = wpinv_thousands_separator(); |
|
370 | - $localize['decimals'] = wpinv_decimal_separator(); |
|
371 | - $localize['nonce'] = wp_create_nonce( 'wpinv-nonce' ); |
|
372 | - $localize['txtComplete'] = __( 'Continue', 'invoicing' ); |
|
373 | - $localize['UseTaxes'] = wpinv_use_taxes(); |
|
374 | - $localize['formNonce'] = wp_create_nonce( 'getpaid_form_nonce' ); |
|
375 | - $localize['loading'] = __( 'Loading...', 'invoicing' ); |
|
376 | - $localize['connectionError'] = __( 'Could not establish a connection to the server.', 'invoicing' ); |
|
377 | - |
|
378 | - $localize = apply_filters( 'wpinv_front_js_localize', $localize ); |
|
379 | - |
|
380 | - $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js' ); |
|
381 | - wp_enqueue_script( 'wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array( 'jquery' ), $version, true ); |
|
382 | - wp_localize_script( 'wpinv-front-script', 'WPInv', $localize ); |
|
383 | - } |
|
384 | - |
|
385 | - public function wpinv_actions() { |
|
386 | - if ( isset( $_REQUEST['wpi_action'] ) ) { |
|
387 | - do_action( 'wpinv_' . wpinv_sanitize_key( $_REQUEST['wpi_action'] ), $_REQUEST ); |
|
388 | - } |
|
389 | - |
|
390 | - if ( defined( 'WP_ALL_IMPORT_ROOT_DIR' ) ) { |
|
391 | - include plugin_dir_path( __FILE__ ) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php'; |
|
392 | - } |
|
393 | - } |
|
136 | + add_action( 'pre_get_posts', array( $this, 'maybe_process_new_ipn' ), 1 ); |
|
137 | + |
|
138 | + // Fires after registering actions. |
|
139 | + do_action( 'wpinv_actions', $this ); |
|
140 | + do_action( 'getpaid_actions', $this ); |
|
141 | + |
|
142 | + } |
|
143 | + |
|
144 | + public function plugins_loaded() { |
|
145 | + /* Internationalize the text strings used. */ |
|
146 | + $this->load_textdomain(); |
|
147 | + |
|
148 | + do_action( 'wpinv_loaded' ); |
|
149 | + |
|
150 | + // Fix oxygen page builder conflict |
|
151 | + if ( function_exists( 'ct_css_output' ) ) { |
|
152 | + wpinv_oxygen_fix_conflict(); |
|
153 | + } |
|
154 | + } |
|
155 | + |
|
156 | + /** |
|
157 | + * Load Localisation files. |
|
158 | + * |
|
159 | + * Note: the first-loaded translation file overrides any following ones if the same translation is present. |
|
160 | + * |
|
161 | + * Locales found in: |
|
162 | + * - WP_LANG_DIR/plugins/invoicing-LOCALE.mo |
|
163 | + * - WP_PLUGIN_DIR/invoicing/languages/invoicing-LOCALE.mo |
|
164 | + * |
|
165 | + * @since 1.0.0 |
|
166 | + */ |
|
167 | + public function load_textdomain() { |
|
168 | + |
|
169 | + load_plugin_textdomain( |
|
170 | + 'invoicing', |
|
171 | + false, |
|
172 | + plugin_basename( dirname( WPINV_PLUGIN_FILE ) ) . '/languages/' |
|
173 | + ); |
|
174 | + |
|
175 | + } |
|
176 | + |
|
177 | + /** |
|
178 | + * Include required core files used in admin and on the frontend. |
|
179 | + */ |
|
180 | + public function includes() { |
|
181 | + |
|
182 | + // Start with the settings. |
|
183 | + require_once( WPINV_PLUGIN_DIR . 'includes/admin/register-settings.php' ); |
|
184 | + |
|
185 | + // Packages/libraries. |
|
186 | + require_once( WPINV_PLUGIN_DIR . 'vendor/autoload.php' ); |
|
187 | + require_once( WPINV_PLUGIN_DIR . 'vendor/ayecode/wp-ayecode-ui/ayecode-ui-loader.php' ); |
|
188 | + |
|
189 | + // Load functions. |
|
190 | + require_once( WPINV_PLUGIN_DIR . 'includes/deprecated-functions.php' ); |
|
191 | + require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-email-functions.php' ); |
|
192 | + require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-general-functions.php' ); |
|
193 | + require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-helper-functions.php' ); |
|
194 | + require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-tax-functions.php' ); |
|
195 | + require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-template-functions.php' ); |
|
196 | + require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-address-functions.php' ); |
|
197 | + require_once( WPINV_PLUGIN_DIR . 'includes/invoice-functions.php' ); |
|
198 | + require_once( WPINV_PLUGIN_DIR . 'includes/subscription-functions.php' ); |
|
199 | + require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-item-functions.php' ); |
|
200 | + require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-discount-functions.php' ); |
|
201 | + require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-gateway-functions.php' ); |
|
202 | + require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-payment-functions.php' ); |
|
203 | + require_once( WPINV_PLUGIN_DIR . 'includes/user-functions.php' ); |
|
204 | + require_once( WPINV_PLUGIN_DIR . 'includes/error-functions.php' ); |
|
205 | + |
|
206 | + // Register autoloader. |
|
207 | + try { |
|
208 | + spl_autoload_register( array( $this, 'autoload' ), true ); |
|
209 | + } catch ( Exception $e ) { |
|
210 | + wpinv_error_log( $e->getMessage(), '', __FILE__, 149, true ); |
|
211 | + } |
|
212 | + |
|
213 | + require_once( WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php' ); |
|
214 | + require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-session-handler.php' ); |
|
215 | + require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-ajax.php' ); |
|
216 | + require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-api.php' ); |
|
217 | + require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-cache-helper.php' ); |
|
218 | + require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-db.php' ); |
|
219 | + require_once( WPINV_PLUGIN_DIR . 'includes/admin/subscriptions.php' ); |
|
220 | + require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions-db.php' ); |
|
221 | + require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-subscription.php' ); |
|
222 | + require_once( WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-privacy.php' ); |
|
223 | + require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-privacy.php' ); |
|
224 | + require_once( WPINV_PLUGIN_DIR . 'includes/libraries/class-ayecode-addons.php' ); |
|
225 | + require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-addons.php' ); |
|
226 | + require_once( WPINV_PLUGIN_DIR . 'widgets/checkout.php' ); |
|
227 | + require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-history.php' ); |
|
228 | + require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-receipt.php' ); |
|
229 | + require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-messages.php' ); |
|
230 | + require_once( WPINV_PLUGIN_DIR . 'widgets/subscriptions.php' ); |
|
231 | + require_once( WPINV_PLUGIN_DIR . 'widgets/buy-item.php' ); |
|
232 | + require_once( WPINV_PLUGIN_DIR . 'widgets/getpaid.php' ); |
|
233 | + require_once( WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php' ); |
|
234 | + |
|
235 | + if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) { |
|
236 | + GetPaid_Post_Types_Admin::init(); |
|
237 | + |
|
238 | + require_once( WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php' ); |
|
239 | + require_once( WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-payment-form.php' ); |
|
240 | + require_once( WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-notes.php' ); |
|
241 | + require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-admin-menus.php' ); |
|
242 | + require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-users.php' ); |
|
243 | + require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-getpaid-admin-profile.php' ); |
|
244 | + // load the user class only on the users.php page |
|
245 | + global $pagenow; |
|
246 | + if($pagenow=='users.php'){ |
|
247 | + new WPInv_Admin_Users(); |
|
248 | + } |
|
249 | + } |
|
250 | + |
|
251 | + // Register cli commands |
|
252 | + if ( defined( 'WP_CLI' ) && WP_CLI ) { |
|
253 | + require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php' ); |
|
254 | + WP_CLI::add_command( 'invoicing', 'WPInv_CLI' ); |
|
255 | + } |
|
256 | + |
|
257 | + } |
|
258 | + |
|
259 | + /** |
|
260 | + * Class autoloader |
|
261 | + * |
|
262 | + * @param string $class_name The name of the class to load. |
|
263 | + * @access public |
|
264 | + * @since 1.0.19 |
|
265 | + * @return void |
|
266 | + */ |
|
267 | + public function autoload( $class_name ) { |
|
268 | + |
|
269 | + // Normalize the class name... |
|
270 | + $class_name = strtolower( $class_name ); |
|
271 | + |
|
272 | + // ... and make sure it is our class. |
|
273 | + if ( false === strpos( $class_name, 'getpaid_' ) && false === strpos( $class_name, 'wpinv_' ) ) { |
|
274 | + return; |
|
275 | + } |
|
276 | + |
|
277 | + // Next, prepare the file name from the class. |
|
278 | + $file_name = 'class-' . str_replace( '_', '-', $class_name ) . '.php'; |
|
279 | + |
|
280 | + // Base path of the classes. |
|
281 | + $plugin_path = untrailingslashit( WPINV_PLUGIN_DIR ); |
|
282 | + |
|
283 | + // And an array of possible locations in order of importance. |
|
284 | + $locations = array( |
|
285 | + "$plugin_path/includes", |
|
286 | + "$plugin_path/includes/data-stores", |
|
287 | + "$plugin_path/includes/gateways", |
|
288 | + "$plugin_path/includes/payments", |
|
289 | + "$plugin_path/includes/geolocation", |
|
290 | + "$plugin_path/includes/reports", |
|
291 | + "$plugin_path/includes/api", |
|
292 | + "$plugin_path/includes/admin", |
|
293 | + "$plugin_path/includes/admin/meta-boxes", |
|
294 | + ); |
|
295 | + |
|
296 | + foreach ( apply_filters( 'getpaid_autoload_locations', $locations ) as $location ) { |
|
297 | + |
|
298 | + if ( file_exists( trailingslashit( $location ) . $file_name ) ) { |
|
299 | + include trailingslashit( $location ) . $file_name; |
|
300 | + break; |
|
301 | + } |
|
302 | + |
|
303 | + } |
|
304 | + |
|
305 | + } |
|
306 | + |
|
307 | + /** |
|
308 | + * Inits hooks etc. |
|
309 | + */ |
|
310 | + public function init() { |
|
311 | + |
|
312 | + // Fires before getpaid inits. |
|
313 | + do_action( 'before_getpaid_init', $this ); |
|
314 | + |
|
315 | + // Maybe upgrade. |
|
316 | + $this->maybe_upgrade_database(); |
|
317 | + |
|
318 | + // Load default gateways. |
|
319 | + $gateways = apply_filters( |
|
320 | + 'getpaid_default_gateways', |
|
321 | + array( |
|
322 | + 'manual' => 'GetPaid_Manual_Gateway', |
|
323 | + 'paypal' => 'GetPaid_Paypal_Gateway', |
|
324 | + 'worldpay' => 'GetPaid_Worldpay_Gateway', |
|
325 | + 'bank_transfer' => 'GetPaid_Bank_Transfer_Gateway', |
|
326 | + 'authorizenet' => 'GetPaid_Authorize_Net_Gateway', |
|
327 | + ) |
|
328 | + ); |
|
329 | + |
|
330 | + foreach ( $gateways as $id => $class ) { |
|
331 | + $this->gateways[ $id ] = new $class(); |
|
332 | + } |
|
333 | + |
|
334 | + if ( 'yes' != get_option( 'wpinv_renamed_gateways' ) ) { |
|
335 | + GetPaid_Installer::rename_gateways_label(); |
|
336 | + update_option( 'wpinv_renamed_gateways', 'yes' ); |
|
337 | + } |
|
338 | + |
|
339 | + // Fires after getpaid inits. |
|
340 | + do_action( 'getpaid_init', $this ); |
|
394 | 341 | |
395 | - /** |
|
342 | + } |
|
343 | + |
|
344 | + /** |
|
345 | + * Checks if this is an IPN request and processes it. |
|
346 | + */ |
|
347 | + public function maybe_process_ipn() { |
|
348 | + |
|
349 | + // Ensure that this is an IPN request. |
|
350 | + if ( empty( $_GET['wpi-listener'] ) || 'IPN' !== $_GET['wpi-listener'] || empty( $_GET['wpi-gateway'] ) ) { |
|
351 | + return; |
|
352 | + } |
|
353 | + |
|
354 | + $gateway = wpinv_clean( $_GET['wpi-gateway'] ); |
|
355 | + |
|
356 | + do_action( 'wpinv_verify_payment_ipn', $gateway ); |
|
357 | + do_action( "wpinv_verify_{$gateway}_ipn" ); |
|
358 | + exit; |
|
359 | + |
|
360 | + } |
|
361 | + |
|
362 | + public function enqueue_scripts() { |
|
363 | + |
|
364 | + // Fires before adding scripts. |
|
365 | + do_action( 'getpaid_enqueue_scripts' ); |
|
366 | + |
|
367 | + $localize = array(); |
|
368 | + $localize['ajax_url'] = admin_url( 'admin-ajax.php' ); |
|
369 | + $localize['thousands'] = wpinv_thousands_separator(); |
|
370 | + $localize['decimals'] = wpinv_decimal_separator(); |
|
371 | + $localize['nonce'] = wp_create_nonce( 'wpinv-nonce' ); |
|
372 | + $localize['txtComplete'] = __( 'Continue', 'invoicing' ); |
|
373 | + $localize['UseTaxes'] = wpinv_use_taxes(); |
|
374 | + $localize['formNonce'] = wp_create_nonce( 'getpaid_form_nonce' ); |
|
375 | + $localize['loading'] = __( 'Loading...', 'invoicing' ); |
|
376 | + $localize['connectionError'] = __( 'Could not establish a connection to the server.', 'invoicing' ); |
|
377 | + |
|
378 | + $localize = apply_filters( 'wpinv_front_js_localize', $localize ); |
|
379 | + |
|
380 | + $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js' ); |
|
381 | + wp_enqueue_script( 'wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array( 'jquery' ), $version, true ); |
|
382 | + wp_localize_script( 'wpinv-front-script', 'WPInv', $localize ); |
|
383 | + } |
|
384 | + |
|
385 | + public function wpinv_actions() { |
|
386 | + if ( isset( $_REQUEST['wpi_action'] ) ) { |
|
387 | + do_action( 'wpinv_' . wpinv_sanitize_key( $_REQUEST['wpi_action'] ), $_REQUEST ); |
|
388 | + } |
|
389 | + |
|
390 | + if ( defined( 'WP_ALL_IMPORT_ROOT_DIR' ) ) { |
|
391 | + include plugin_dir_path( __FILE__ ) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php'; |
|
392 | + } |
|
393 | + } |
|
394 | + |
|
395 | + /** |
|
396 | 396 | * Fires an action after verifying that a user can fire them. |
397 | - * |
|
398 | - * Note: If the action is on an invoice, subscription etc, esure that the |
|
399 | - * current user owns the invoice/subscription. |
|
397 | + * |
|
398 | + * Note: If the action is on an invoice, subscription etc, esure that the |
|
399 | + * current user owns the invoice/subscription. |
|
400 | 400 | */ |
401 | 401 | public function maybe_do_authenticated_action() { |
402 | 402 | |
403 | - if ( isset( $_REQUEST['getpaid-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) { |
|
403 | + if ( isset( $_REQUEST['getpaid-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) { |
|
404 | + |
|
405 | + $key = sanitize_key( $_REQUEST['getpaid-action'] ); |
|
406 | + $data = wp_unslash( $_REQUEST ); |
|
407 | + if ( is_user_logged_in() ) { |
|
408 | + do_action( "getpaid_authenticated_action_$key", $data ); |
|
409 | + } |
|
410 | + |
|
411 | + do_action( "getpaid_unauthenticated_action_$key", $data ); |
|
412 | + |
|
413 | + } |
|
414 | + |
|
415 | + } |
|
416 | + |
|
417 | + public function pre_get_posts( $wp_query ) { |
|
418 | + |
|
419 | + if ( ! is_admin() && ! empty( $wp_query->query_vars['post_type'] ) && getpaid_is_invoice_post_type( $wp_query->query_vars['post_type'] ) && is_user_logged_in() && is_single() && $wp_query->is_main_query() ) { |
|
420 | + $wp_query->query_vars['post_status'] = array_keys( wpinv_get_invoice_statuses( false, false, $wp_query->query_vars['post_type'] ) ); |
|
421 | + } |
|
422 | + |
|
423 | + return $wp_query; |
|
424 | + } |
|
425 | + |
|
426 | + /** |
|
427 | + * Register widgets |
|
428 | + * |
|
429 | + */ |
|
430 | + public function register_widgets() { |
|
431 | + global $pagenow; |
|
432 | + |
|
433 | + // Currently, UX Builder does not work particulaly well with SuperDuper. |
|
434 | + // So we disable our widgets when editing a page with UX Builder. |
|
435 | + if ( function_exists( 'ux_builder_is_active' ) && ux_builder_is_active() ) { |
|
436 | + return; |
|
437 | + } |
|
438 | + |
|
439 | + $block_widget_init_screens = function_exists('sd_pagenow_exclude') ? sd_pagenow_exclude() : array(); |
|
440 | + |
|
441 | + if ( is_admin() && $pagenow && in_array($pagenow, $block_widget_init_screens)) { |
|
442 | + // don't initiate in these conditions. |
|
443 | + }else{ |
|
444 | + |
|
445 | + // Only load allowed widgets. |
|
446 | + $exclude = function_exists( 'sd_widget_exclude' ) ? sd_widget_exclude() : array(); |
|
447 | + $widgets = apply_filters( |
|
448 | + 'getpaid_widget_classes', |
|
449 | + array( |
|
450 | + 'WPInv_Checkout_Widget', |
|
451 | + 'WPInv_History_Widget', |
|
452 | + 'WPInv_Receipt_Widget', |
|
453 | + 'WPInv_Subscriptions_Widget', |
|
454 | + 'WPInv_Buy_Item_Widget', |
|
455 | + 'WPInv_Messages_Widget', |
|
456 | + 'WPInv_GetPaid_Widget' |
|
457 | + ) |
|
458 | + ); |
|
459 | + |
|
460 | + // For each widget... |
|
461 | + foreach ( $widgets as $widget ) { |
|
462 | + |
|
463 | + // Abort early if it is excluded for this page. |
|
464 | + if ( in_array( $widget, $exclude ) ) { |
|
465 | + continue; |
|
466 | + } |
|
467 | + |
|
468 | + // SD V1 used to extend the widget class. V2 does not, so we cannot call register widget on it. |
|
469 | + if ( is_subclass_of( $widget, 'WP_Widget' ) ) { |
|
470 | + register_widget( $widget ); |
|
471 | + } else { |
|
472 | + new $widget(); |
|
473 | + } |
|
474 | + |
|
475 | + } |
|
476 | + |
|
477 | + } |
|
478 | + |
|
479 | + } |
|
480 | + |
|
481 | + /** |
|
482 | + * Upgrades the database. |
|
483 | + * |
|
484 | + * @since 2.0.2 |
|
485 | + */ |
|
486 | + public function maybe_upgrade_database() { |
|
404 | 487 | |
405 | - $key = sanitize_key( $_REQUEST['getpaid-action'] ); |
|
406 | - $data = wp_unslash( $_REQUEST ); |
|
407 | - if ( is_user_logged_in() ) { |
|
408 | - do_action( "getpaid_authenticated_action_$key", $data ); |
|
409 | - } |
|
488 | + $wpi_version = get_option( 'wpinv_version', 0 ); |
|
410 | 489 | |
411 | - do_action( "getpaid_unauthenticated_action_$key", $data ); |
|
490 | + if ( $wpi_version == WPINV_VERSION ) { |
|
491 | + return; |
|
492 | + } |
|
412 | 493 | |
413 | - } |
|
494 | + $installer = new GetPaid_Installer(); |
|
495 | + |
|
496 | + if ( empty( $wpi_version ) ) { |
|
497 | + return $installer->upgrade_db( 0 ); |
|
498 | + } |
|
499 | + |
|
500 | + $upgrades = array( |
|
501 | + '0.0.5' => '004', |
|
502 | + '1.0.3' => '102', |
|
503 | + '2.0.0' => '118', |
|
504 | + '2.0.8' => '207', |
|
505 | + ); |
|
506 | + |
|
507 | + foreach ( $upgrades as $key => $method ) { |
|
508 | + |
|
509 | + if ( version_compare( $wpi_version, $key, '<' ) ) { |
|
510 | + return $installer->upgrade_db( $method ); |
|
511 | + } |
|
512 | + |
|
513 | + } |
|
414 | 514 | |
415 | 515 | } |
416 | 516 | |
417 | - public function pre_get_posts( $wp_query ) { |
|
517 | + /** |
|
518 | + * Flushes the permalinks if needed. |
|
519 | + * |
|
520 | + * @since 2.0.8 |
|
521 | + */ |
|
522 | + public function maybe_flush_permalinks() { |
|
418 | 523 | |
419 | - if ( ! is_admin() && ! empty( $wp_query->query_vars['post_type'] ) && getpaid_is_invoice_post_type( $wp_query->query_vars['post_type'] ) && is_user_logged_in() && is_single() && $wp_query->is_main_query() ) { |
|
420 | - $wp_query->query_vars['post_status'] = array_keys( wpinv_get_invoice_statuses( false, false, $wp_query->query_vars['post_type'] ) ); |
|
421 | - } |
|
422 | - |
|
423 | - return $wp_query; |
|
424 | - } |
|
524 | + $flush = get_option( 'wpinv_flush_permalinks', 0 ); |
|
425 | 525 | |
426 | - /** |
|
427 | - * Register widgets |
|
428 | - * |
|
429 | - */ |
|
430 | - public function register_widgets() { |
|
431 | - global $pagenow; |
|
526 | + if ( ! empty( $flush ) ) { |
|
527 | + flush_rewrite_rules(); |
|
528 | + delete_option( 'wpinv_flush_permalinks' ); |
|
529 | + } |
|
432 | 530 | |
433 | - // Currently, UX Builder does not work particulaly well with SuperDuper. |
|
434 | - // So we disable our widgets when editing a page with UX Builder. |
|
435 | - if ( function_exists( 'ux_builder_is_active' ) && ux_builder_is_active() ) { |
|
436 | - return; |
|
437 | - } |
|
438 | - |
|
439 | - $block_widget_init_screens = function_exists('sd_pagenow_exclude') ? sd_pagenow_exclude() : array(); |
|
440 | - |
|
441 | - if ( is_admin() && $pagenow && in_array($pagenow, $block_widget_init_screens)) { |
|
442 | - // don't initiate in these conditions. |
|
443 | - }else{ |
|
444 | - |
|
445 | - // Only load allowed widgets. |
|
446 | - $exclude = function_exists( 'sd_widget_exclude' ) ? sd_widget_exclude() : array(); |
|
447 | - $widgets = apply_filters( |
|
448 | - 'getpaid_widget_classes', |
|
449 | - array( |
|
450 | - 'WPInv_Checkout_Widget', |
|
451 | - 'WPInv_History_Widget', |
|
452 | - 'WPInv_Receipt_Widget', |
|
453 | - 'WPInv_Subscriptions_Widget', |
|
454 | - 'WPInv_Buy_Item_Widget', |
|
455 | - 'WPInv_Messages_Widget', |
|
456 | - 'WPInv_GetPaid_Widget' |
|
457 | - ) |
|
458 | - ); |
|
459 | - |
|
460 | - // For each widget... |
|
461 | - foreach ( $widgets as $widget ) { |
|
531 | + } |
|
462 | 532 | |
463 | - // Abort early if it is excluded for this page. |
|
464 | - if ( in_array( $widget, $exclude ) ) { |
|
465 | - continue; |
|
466 | - } |
|
533 | + /** |
|
534 | + * Remove our pages from yoast sitemaps. |
|
535 | + * |
|
536 | + * @since 1.0.19 |
|
537 | + * @param int[] $excluded_posts_ids |
|
538 | + */ |
|
539 | + public function wpseo_exclude_from_sitemap_by_post_ids( $excluded_posts_ids ){ |
|
467 | 540 | |
468 | - // SD V1 used to extend the widget class. V2 does not, so we cannot call register widget on it. |
|
469 | - if ( is_subclass_of( $widget, 'WP_Widget' ) ) { |
|
470 | - register_widget( $widget ); |
|
471 | - } else { |
|
472 | - new $widget(); |
|
473 | - } |
|
541 | + // Ensure that we have an array. |
|
542 | + if ( ! is_array( $excluded_posts_ids ) ) { |
|
543 | + $excluded_posts_ids = array(); |
|
544 | + } |
|
474 | 545 | |
475 | - } |
|
546 | + // Prepare our pages. |
|
547 | + $our_pages = array(); |
|
476 | 548 | |
477 | - } |
|
549 | + // Checkout page. |
|
550 | + $our_pages[] = wpinv_get_option( 'checkout_page', false ); |
|
478 | 551 | |
479 | - } |
|
552 | + // Success page. |
|
553 | + $our_pages[] = wpinv_get_option( 'success_page', false ); |
|
480 | 554 | |
481 | - /** |
|
482 | - * Upgrades the database. |
|
483 | - * |
|
484 | - * @since 2.0.2 |
|
485 | - */ |
|
486 | - public function maybe_upgrade_database() { |
|
487 | - |
|
488 | - $wpi_version = get_option( 'wpinv_version', 0 ); |
|
489 | - |
|
490 | - if ( $wpi_version == WPINV_VERSION ) { |
|
491 | - return; |
|
492 | - } |
|
493 | - |
|
494 | - $installer = new GetPaid_Installer(); |
|
495 | - |
|
496 | - if ( empty( $wpi_version ) ) { |
|
497 | - return $installer->upgrade_db( 0 ); |
|
498 | - } |
|
499 | - |
|
500 | - $upgrades = array( |
|
501 | - '0.0.5' => '004', |
|
502 | - '1.0.3' => '102', |
|
503 | - '2.0.0' => '118', |
|
504 | - '2.0.8' => '207', |
|
505 | - ); |
|
506 | - |
|
507 | - foreach ( $upgrades as $key => $method ) { |
|
508 | - |
|
509 | - if ( version_compare( $wpi_version, $key, '<' ) ) { |
|
510 | - return $installer->upgrade_db( $method ); |
|
511 | - } |
|
512 | - |
|
513 | - } |
|
514 | - |
|
515 | - } |
|
516 | - |
|
517 | - /** |
|
518 | - * Flushes the permalinks if needed. |
|
519 | - * |
|
520 | - * @since 2.0.8 |
|
521 | - */ |
|
522 | - public function maybe_flush_permalinks() { |
|
523 | - |
|
524 | - $flush = get_option( 'wpinv_flush_permalinks', 0 ); |
|
525 | - |
|
526 | - if ( ! empty( $flush ) ) { |
|
527 | - flush_rewrite_rules(); |
|
528 | - delete_option( 'wpinv_flush_permalinks' ); |
|
529 | - } |
|
530 | - |
|
531 | - } |
|
532 | - |
|
533 | - /** |
|
534 | - * Remove our pages from yoast sitemaps. |
|
535 | - * |
|
536 | - * @since 1.0.19 |
|
537 | - * @param int[] $excluded_posts_ids |
|
538 | - */ |
|
539 | - public function wpseo_exclude_from_sitemap_by_post_ids( $excluded_posts_ids ){ |
|
540 | - |
|
541 | - // Ensure that we have an array. |
|
542 | - if ( ! is_array( $excluded_posts_ids ) ) { |
|
543 | - $excluded_posts_ids = array(); |
|
544 | - } |
|
545 | - |
|
546 | - // Prepare our pages. |
|
547 | - $our_pages = array(); |
|
548 | - |
|
549 | - // Checkout page. |
|
550 | - $our_pages[] = wpinv_get_option( 'checkout_page', false ); |
|
551 | - |
|
552 | - // Success page. |
|
553 | - $our_pages[] = wpinv_get_option( 'success_page', false ); |
|
554 | - |
|
555 | - // Failure page. |
|
556 | - $our_pages[] = wpinv_get_option( 'failure_page', false ); |
|
555 | + // Failure page. |
|
556 | + $our_pages[] = wpinv_get_option( 'failure_page', false ); |
|
557 | 557 | |
558 | - // History page. |
|
559 | - $our_pages[] = wpinv_get_option( 'invoice_history_page', false ); |
|
558 | + // History page. |
|
559 | + $our_pages[] = wpinv_get_option( 'invoice_history_page', false ); |
|
560 | 560 | |
561 | - // Subscriptions page. |
|
562 | - $our_pages[] = wpinv_get_option( 'invoice_subscription_page', false ); |
|
561 | + // Subscriptions page. |
|
562 | + $our_pages[] = wpinv_get_option( 'invoice_subscription_page', false ); |
|
563 | 563 | |
564 | - $our_pages = array_map( 'intval', array_filter( $our_pages ) ); |
|
564 | + $our_pages = array_map( 'intval', array_filter( $our_pages ) ); |
|
565 | 565 | |
566 | - $excluded_posts_ids = $excluded_posts_ids + $our_pages; |
|
567 | - return array_unique( $excluded_posts_ids ); |
|
566 | + $excluded_posts_ids = $excluded_posts_ids + $our_pages; |
|
567 | + return array_unique( $excluded_posts_ids ); |
|
568 | 568 | |
569 | - } |
|
569 | + } |
|
570 | 570 | |
571 | - /** |
|
572 | - * Displays additional footer code. |
|
573 | - * |
|
574 | - * @since 2.0.0 |
|
575 | - */ |
|
576 | - public function wp_footer() { |
|
577 | - wpinv_get_template( 'frontend-footer.php' ); |
|
578 | - } |
|
571 | + /** |
|
572 | + * Displays additional footer code. |
|
573 | + * |
|
574 | + * @since 2.0.0 |
|
575 | + */ |
|
576 | + public function wp_footer() { |
|
577 | + wpinv_get_template( 'frontend-footer.php' ); |
|
578 | + } |
|
579 | 579 | |
580 | - /** |
|
581 | - * Displays additional header code. |
|
582 | - * |
|
583 | - * @since 2.0.0 |
|
584 | - */ |
|
585 | - public function wp_head() { |
|
586 | - wpinv_get_template( 'frontend-head.php' ); |
|
587 | - } |
|
580 | + /** |
|
581 | + * Displays additional header code. |
|
582 | + * |
|
583 | + * @since 2.0.0 |
|
584 | + */ |
|
585 | + public function wp_head() { |
|
586 | + wpinv_get_template( 'frontend-head.php' ); |
|
587 | + } |
|
588 | 588 | |
589 | - /** |
|
590 | - * Custom query vars. |
|
591 | - * |
|
592 | - */ |
|
593 | - public function custom_query_vars( $vars ) { |
|
589 | + /** |
|
590 | + * Custom query vars. |
|
591 | + * |
|
592 | + */ |
|
593 | + public function custom_query_vars( $vars ) { |
|
594 | 594 | $vars[] = 'getpaid-ipn'; |
595 | 595 | return $vars; |
596 | - } |
|
596 | + } |
|
597 | 597 | |
598 | - /** |
|
599 | - * Add rewrite tags and rules. |
|
600 | - * |
|
601 | - */ |
|
602 | - public function add_rewrite_rule() { |
|
598 | + /** |
|
599 | + * Add rewrite tags and rules. |
|
600 | + * |
|
601 | + */ |
|
602 | + public function add_rewrite_rule() { |
|
603 | 603 | $tag = 'getpaid-ipn'; |
604 | 604 | add_rewrite_tag( "%$tag%", '([^&]+)' ); |
605 | 605 | add_rewrite_rule( "^$tag/([^/]*)/?", "index.php?$tag=\$matches[1]",'top' ); |
606 | - } |
|
606 | + } |
|
607 | 607 | |
608 | - /** |
|
609 | - * Processes non-query string ipns. |
|
610 | - * |
|
611 | - */ |
|
612 | - public function maybe_process_new_ipn( $query ) { |
|
608 | + /** |
|
609 | + * Processes non-query string ipns. |
|
610 | + * |
|
611 | + */ |
|
612 | + public function maybe_process_new_ipn( $query ) { |
|
613 | 613 | |
614 | 614 | if ( is_admin() || ! $query->is_main_query() ) { |
615 | 615 | return; |
616 | 616 | } |
617 | 617 | |
618 | - $gateway = get_query_var( 'getpaid-ipn' ); |
|
618 | + $gateway = get_query_var( 'getpaid-ipn' ); |
|
619 | 619 | |
620 | 620 | if ( ! empty( $gateway ) ){ |
621 | 621 | |
622 | - $gateway = sanitize_text_field( $gateway ); |
|
623 | - nocache_headers(); |
|
624 | - do_action( 'wpinv_verify_payment_ipn', $gateway ); |
|
625 | - do_action( "wpinv_verify_{$gateway}_ipn" ); |
|
626 | - exit; |
|
622 | + $gateway = sanitize_text_field( $gateway ); |
|
623 | + nocache_headers(); |
|
624 | + do_action( 'wpinv_verify_payment_ipn', $gateway ); |
|
625 | + do_action( "wpinv_verify_{$gateway}_ipn" ); |
|
626 | + exit; |
|
627 | 627 | |
628 | 628 | } |
629 | 629 | |
630 | - } |
|
630 | + } |
|
631 | 631 | |
632 | 632 | } |
@@ -6,7 +6,7 @@ discard block |
||
6 | 6 | * @since 1.0.0 |
7 | 7 | */ |
8 | 8 | |
9 | -defined( 'ABSPATH' ) || exit; |
|
9 | +defined('ABSPATH') || exit; |
|
10 | 10 | |
11 | 11 | /** |
12 | 12 | * Main Invoicing class. |
@@ -56,8 +56,8 @@ discard block |
||
56 | 56 | * @param string $prop The prop to set. |
57 | 57 | * @param mixed $value The value to retrieve. |
58 | 58 | */ |
59 | - public function set( $prop, $value ) { |
|
60 | - $this->data[ $prop ] = $value; |
|
59 | + public function set($prop, $value) { |
|
60 | + $this->data[$prop] = $value; |
|
61 | 61 | } |
62 | 62 | |
63 | 63 | /** |
@@ -66,10 +66,10 @@ discard block |
||
66 | 66 | * @param string $prop The prop to set. |
67 | 67 | * @return mixed The value. |
68 | 68 | */ |
69 | - public function get( $prop ) { |
|
69 | + public function get($prop) { |
|
70 | 70 | |
71 | - if ( isset( $this->data[ $prop ] ) ) { |
|
72 | - return $this->data[ $prop ]; |
|
71 | + if (isset($this->data[$prop])) { |
|
72 | + return $this->data[$prop]; |
|
73 | 73 | } |
74 | 74 | |
75 | 75 | return null; |
@@ -81,23 +81,23 @@ discard block |
||
81 | 81 | public function set_properties() { |
82 | 82 | |
83 | 83 | // Sessions. |
84 | - $this->set( 'session', new WPInv_Session_Handler() ); |
|
85 | - $GLOBALS['wpi_session'] = $this->get( 'session' ); // Backwards compatibility. |
|
84 | + $this->set('session', new WPInv_Session_Handler()); |
|
85 | + $GLOBALS['wpi_session'] = $this->get('session'); // Backwards compatibility. |
|
86 | 86 | $GLOBALS['wpinv_euvat'] = new WPInv_EUVat(); // Backwards compatibility. |
87 | 87 | |
88 | 88 | // Init other objects. |
89 | - $this->set( 'session', new WPInv_Session_Handler() ); |
|
90 | - $this->set( 'notes', new WPInv_Notes() ); |
|
91 | - $this->set( 'api', new WPInv_API() ); |
|
92 | - $this->set( 'post_types', new GetPaid_Post_Types() ); |
|
93 | - $this->set( 'template', new GetPaid_Template() ); |
|
94 | - $this->set( 'admin', new GetPaid_Admin() ); |
|
95 | - $this->set( 'subscriptions', new WPInv_Subscriptions() ); |
|
96 | - $this->set( 'invoice_emails', new GetPaid_Invoice_Notification_Emails() ); |
|
97 | - $this->set( 'subscription_emails', new GetPaid_Subscription_Notification_Emails() ); |
|
98 | - $this->set( 'daily_maintenace', new GetPaid_Daily_Maintenance() ); |
|
99 | - $this->set( 'payment_forms', new GetPaid_Payment_Forms() ); |
|
100 | - $this->set( 'maxmind', new GetPaid_MaxMind_Geolocation() ); |
|
89 | + $this->set('session', new WPInv_Session_Handler()); |
|
90 | + $this->set('notes', new WPInv_Notes()); |
|
91 | + $this->set('api', new WPInv_API()); |
|
92 | + $this->set('post_types', new GetPaid_Post_Types()); |
|
93 | + $this->set('template', new GetPaid_Template()); |
|
94 | + $this->set('admin', new GetPaid_Admin()); |
|
95 | + $this->set('subscriptions', new WPInv_Subscriptions()); |
|
96 | + $this->set('invoice_emails', new GetPaid_Invoice_Notification_Emails()); |
|
97 | + $this->set('subscription_emails', new GetPaid_Subscription_Notification_Emails()); |
|
98 | + $this->set('daily_maintenace', new GetPaid_Daily_Maintenance()); |
|
99 | + $this->set('payment_forms', new GetPaid_Payment_Forms()); |
|
100 | + $this->set('maxmind', new GetPaid_MaxMind_Geolocation()); |
|
101 | 101 | |
102 | 102 | } |
103 | 103 | |
@@ -105,8 +105,8 @@ discard block |
||
105 | 105 | * Define plugin constants. |
106 | 106 | */ |
107 | 107 | public function define_constants() { |
108 | - define( 'WPINV_PLUGIN_DIR', plugin_dir_path( WPINV_PLUGIN_FILE ) ); |
|
109 | - define( 'WPINV_PLUGIN_URL', plugin_dir_url( WPINV_PLUGIN_FILE ) ); |
|
108 | + define('WPINV_PLUGIN_DIR', plugin_dir_path(WPINV_PLUGIN_FILE)); |
|
109 | + define('WPINV_PLUGIN_URL', plugin_dir_url(WPINV_PLUGIN_FILE)); |
|
110 | 110 | $this->version = WPINV_VERSION; |
111 | 111 | } |
112 | 112 | |
@@ -117,27 +117,27 @@ discard block |
||
117 | 117 | */ |
118 | 118 | protected function init_hooks() { |
119 | 119 | /* Internationalize the text strings used. */ |
120 | - add_action( 'plugins_loaded', array( &$this, 'plugins_loaded' ) ); |
|
120 | + add_action('plugins_loaded', array(&$this, 'plugins_loaded')); |
|
121 | 121 | |
122 | 122 | // Init the plugin after WordPress inits. |
123 | - add_action( 'init', array( $this, 'init' ), 1 ); |
|
124 | - add_action( 'init', array( $this, 'maybe_process_ipn' ), 10 ); |
|
125 | - add_action( 'init', array( $this, 'wpinv_actions' ) ); |
|
126 | - add_action( 'init', array( $this, 'maybe_do_authenticated_action' ), 100 ); |
|
127 | - add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 ); |
|
128 | - add_action( 'wp_footer', array( $this, 'wp_footer' ) ); |
|
129 | - add_action( 'wp_head', array( $this, 'wp_head' ) ); |
|
130 | - add_action( 'widgets_init', array( $this, 'register_widgets' ) ); |
|
131 | - add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', array( $this, 'wpseo_exclude_from_sitemap_by_post_ids' ) ); |
|
132 | - add_filter( 'pre_get_posts', array( &$this, 'pre_get_posts' ) ); |
|
133 | - |
|
134 | - add_filter( 'query_vars', array( $this, 'custom_query_vars' ) ); |
|
135 | - add_action( 'init', array( $this, 'add_rewrite_rule' ), 10, 0 ); |
|
136 | - add_action( 'pre_get_posts', array( $this, 'maybe_process_new_ipn' ), 1 ); |
|
123 | + add_action('init', array($this, 'init'), 1); |
|
124 | + add_action('init', array($this, 'maybe_process_ipn'), 10); |
|
125 | + add_action('init', array($this, 'wpinv_actions')); |
|
126 | + add_action('init', array($this, 'maybe_do_authenticated_action'), 100); |
|
127 | + add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'), 11); |
|
128 | + add_action('wp_footer', array($this, 'wp_footer')); |
|
129 | + add_action('wp_head', array($this, 'wp_head')); |
|
130 | + add_action('widgets_init', array($this, 'register_widgets')); |
|
131 | + add_filter('wpseo_exclude_from_sitemap_by_post_ids', array($this, 'wpseo_exclude_from_sitemap_by_post_ids')); |
|
132 | + add_filter('pre_get_posts', array(&$this, 'pre_get_posts')); |
|
133 | + |
|
134 | + add_filter('query_vars', array($this, 'custom_query_vars')); |
|
135 | + add_action('init', array($this, 'add_rewrite_rule'), 10, 0); |
|
136 | + add_action('pre_get_posts', array($this, 'maybe_process_new_ipn'), 1); |
|
137 | 137 | |
138 | 138 | // Fires after registering actions. |
139 | - do_action( 'wpinv_actions', $this ); |
|
140 | - do_action( 'getpaid_actions', $this ); |
|
139 | + do_action('wpinv_actions', $this); |
|
140 | + do_action('getpaid_actions', $this); |
|
141 | 141 | |
142 | 142 | } |
143 | 143 | |
@@ -145,10 +145,10 @@ discard block |
||
145 | 145 | /* Internationalize the text strings used. */ |
146 | 146 | $this->load_textdomain(); |
147 | 147 | |
148 | - do_action( 'wpinv_loaded' ); |
|
148 | + do_action('wpinv_loaded'); |
|
149 | 149 | |
150 | 150 | // Fix oxygen page builder conflict |
151 | - if ( function_exists( 'ct_css_output' ) ) { |
|
151 | + if (function_exists('ct_css_output')) { |
|
152 | 152 | wpinv_oxygen_fix_conflict(); |
153 | 153 | } |
154 | 154 | } |
@@ -169,7 +169,7 @@ discard block |
||
169 | 169 | load_plugin_textdomain( |
170 | 170 | 'invoicing', |
171 | 171 | false, |
172 | - plugin_basename( dirname( WPINV_PLUGIN_FILE ) ) . '/languages/' |
|
172 | + plugin_basename(dirname(WPINV_PLUGIN_FILE)) . '/languages/' |
|
173 | 173 | ); |
174 | 174 | |
175 | 175 | } |
@@ -180,78 +180,78 @@ discard block |
||
180 | 180 | public function includes() { |
181 | 181 | |
182 | 182 | // Start with the settings. |
183 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/register-settings.php' ); |
|
183 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/register-settings.php'); |
|
184 | 184 | |
185 | 185 | // Packages/libraries. |
186 | - require_once( WPINV_PLUGIN_DIR . 'vendor/autoload.php' ); |
|
187 | - require_once( WPINV_PLUGIN_DIR . 'vendor/ayecode/wp-ayecode-ui/ayecode-ui-loader.php' ); |
|
186 | + require_once(WPINV_PLUGIN_DIR . 'vendor/autoload.php'); |
|
187 | + require_once(WPINV_PLUGIN_DIR . 'vendor/ayecode/wp-ayecode-ui/ayecode-ui-loader.php'); |
|
188 | 188 | |
189 | 189 | // Load functions. |
190 | - require_once( WPINV_PLUGIN_DIR . 'includes/deprecated-functions.php' ); |
|
191 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-email-functions.php' ); |
|
192 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-general-functions.php' ); |
|
193 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-helper-functions.php' ); |
|
194 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-tax-functions.php' ); |
|
195 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-template-functions.php' ); |
|
196 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-address-functions.php' ); |
|
197 | - require_once( WPINV_PLUGIN_DIR . 'includes/invoice-functions.php' ); |
|
198 | - require_once( WPINV_PLUGIN_DIR . 'includes/subscription-functions.php' ); |
|
199 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-item-functions.php' ); |
|
200 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-discount-functions.php' ); |
|
201 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-gateway-functions.php' ); |
|
202 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-payment-functions.php' ); |
|
203 | - require_once( WPINV_PLUGIN_DIR . 'includes/user-functions.php' ); |
|
204 | - require_once( WPINV_PLUGIN_DIR . 'includes/error-functions.php' ); |
|
190 | + require_once(WPINV_PLUGIN_DIR . 'includes/deprecated-functions.php'); |
|
191 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-email-functions.php'); |
|
192 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-general-functions.php'); |
|
193 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-helper-functions.php'); |
|
194 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-tax-functions.php'); |
|
195 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-template-functions.php'); |
|
196 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-address-functions.php'); |
|
197 | + require_once(WPINV_PLUGIN_DIR . 'includes/invoice-functions.php'); |
|
198 | + require_once(WPINV_PLUGIN_DIR . 'includes/subscription-functions.php'); |
|
199 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-item-functions.php'); |
|
200 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-discount-functions.php'); |
|
201 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-gateway-functions.php'); |
|
202 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-payment-functions.php'); |
|
203 | + require_once(WPINV_PLUGIN_DIR . 'includes/user-functions.php'); |
|
204 | + require_once(WPINV_PLUGIN_DIR . 'includes/error-functions.php'); |
|
205 | 205 | |
206 | 206 | // Register autoloader. |
207 | 207 | try { |
208 | - spl_autoload_register( array( $this, 'autoload' ), true ); |
|
209 | - } catch ( Exception $e ) { |
|
210 | - wpinv_error_log( $e->getMessage(), '', __FILE__, 149, true ); |
|
208 | + spl_autoload_register(array($this, 'autoload'), true); |
|
209 | + } catch (Exception $e) { |
|
210 | + wpinv_error_log($e->getMessage(), '', __FILE__, 149, true); |
|
211 | 211 | } |
212 | 212 | |
213 | - require_once( WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php' ); |
|
214 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-session-handler.php' ); |
|
215 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-ajax.php' ); |
|
216 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-api.php' ); |
|
217 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-cache-helper.php' ); |
|
218 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-db.php' ); |
|
219 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/subscriptions.php' ); |
|
220 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions-db.php' ); |
|
221 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-subscription.php' ); |
|
222 | - require_once( WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-privacy.php' ); |
|
223 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-privacy.php' ); |
|
224 | - require_once( WPINV_PLUGIN_DIR . 'includes/libraries/class-ayecode-addons.php' ); |
|
225 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-addons.php' ); |
|
226 | - require_once( WPINV_PLUGIN_DIR . 'widgets/checkout.php' ); |
|
227 | - require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-history.php' ); |
|
228 | - require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-receipt.php' ); |
|
229 | - require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-messages.php' ); |
|
230 | - require_once( WPINV_PLUGIN_DIR . 'widgets/subscriptions.php' ); |
|
231 | - require_once( WPINV_PLUGIN_DIR . 'widgets/buy-item.php' ); |
|
232 | - require_once( WPINV_PLUGIN_DIR . 'widgets/getpaid.php' ); |
|
233 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php' ); |
|
234 | - |
|
235 | - if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) { |
|
213 | + require_once(WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php'); |
|
214 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-session-handler.php'); |
|
215 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-ajax.php'); |
|
216 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-api.php'); |
|
217 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-cache-helper.php'); |
|
218 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-db.php'); |
|
219 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/subscriptions.php'); |
|
220 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions-db.php'); |
|
221 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-subscription.php'); |
|
222 | + require_once(WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-privacy.php'); |
|
223 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-privacy.php'); |
|
224 | + require_once(WPINV_PLUGIN_DIR . 'includes/libraries/class-ayecode-addons.php'); |
|
225 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-addons.php'); |
|
226 | + require_once(WPINV_PLUGIN_DIR . 'widgets/checkout.php'); |
|
227 | + require_once(WPINV_PLUGIN_DIR . 'widgets/invoice-history.php'); |
|
228 | + require_once(WPINV_PLUGIN_DIR . 'widgets/invoice-receipt.php'); |
|
229 | + require_once(WPINV_PLUGIN_DIR . 'widgets/invoice-messages.php'); |
|
230 | + require_once(WPINV_PLUGIN_DIR . 'widgets/subscriptions.php'); |
|
231 | + require_once(WPINV_PLUGIN_DIR . 'widgets/buy-item.php'); |
|
232 | + require_once(WPINV_PLUGIN_DIR . 'widgets/getpaid.php'); |
|
233 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php'); |
|
234 | + |
|
235 | + if (is_admin() || (defined('WP_CLI') && WP_CLI)) { |
|
236 | 236 | GetPaid_Post_Types_Admin::init(); |
237 | 237 | |
238 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php' ); |
|
239 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-payment-form.php' ); |
|
240 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-notes.php' ); |
|
241 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-admin-menus.php' ); |
|
242 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-users.php' ); |
|
243 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-getpaid-admin-profile.php' ); |
|
238 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php'); |
|
239 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-payment-form.php'); |
|
240 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-notes.php'); |
|
241 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-admin-menus.php'); |
|
242 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-users.php'); |
|
243 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/class-getpaid-admin-profile.php'); |
|
244 | 244 | // load the user class only on the users.php page |
245 | 245 | global $pagenow; |
246 | - if($pagenow=='users.php'){ |
|
246 | + if ($pagenow == 'users.php') { |
|
247 | 247 | new WPInv_Admin_Users(); |
248 | 248 | } |
249 | 249 | } |
250 | 250 | |
251 | 251 | // Register cli commands |
252 | - if ( defined( 'WP_CLI' ) && WP_CLI ) { |
|
253 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php' ); |
|
254 | - WP_CLI::add_command( 'invoicing', 'WPInv_CLI' ); |
|
252 | + if (defined('WP_CLI') && WP_CLI) { |
|
253 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php'); |
|
254 | + WP_CLI::add_command('invoicing', 'WPInv_CLI'); |
|
255 | 255 | } |
256 | 256 | |
257 | 257 | } |
@@ -264,21 +264,21 @@ discard block |
||
264 | 264 | * @since 1.0.19 |
265 | 265 | * @return void |
266 | 266 | */ |
267 | - public function autoload( $class_name ) { |
|
267 | + public function autoload($class_name) { |
|
268 | 268 | |
269 | 269 | // Normalize the class name... |
270 | - $class_name = strtolower( $class_name ); |
|
270 | + $class_name = strtolower($class_name); |
|
271 | 271 | |
272 | 272 | // ... and make sure it is our class. |
273 | - if ( false === strpos( $class_name, 'getpaid_' ) && false === strpos( $class_name, 'wpinv_' ) ) { |
|
273 | + if (false === strpos($class_name, 'getpaid_') && false === strpos($class_name, 'wpinv_')) { |
|
274 | 274 | return; |
275 | 275 | } |
276 | 276 | |
277 | 277 | // Next, prepare the file name from the class. |
278 | - $file_name = 'class-' . str_replace( '_', '-', $class_name ) . '.php'; |
|
278 | + $file_name = 'class-' . str_replace('_', '-', $class_name) . '.php'; |
|
279 | 279 | |
280 | 280 | // Base path of the classes. |
281 | - $plugin_path = untrailingslashit( WPINV_PLUGIN_DIR ); |
|
281 | + $plugin_path = untrailingslashit(WPINV_PLUGIN_DIR); |
|
282 | 282 | |
283 | 283 | // And an array of possible locations in order of importance. |
284 | 284 | $locations = array( |
@@ -293,10 +293,10 @@ discard block |
||
293 | 293 | "$plugin_path/includes/admin/meta-boxes", |
294 | 294 | ); |
295 | 295 | |
296 | - foreach ( apply_filters( 'getpaid_autoload_locations', $locations ) as $location ) { |
|
296 | + foreach (apply_filters('getpaid_autoload_locations', $locations) as $location) { |
|
297 | 297 | |
298 | - if ( file_exists( trailingslashit( $location ) . $file_name ) ) { |
|
299 | - include trailingslashit( $location ) . $file_name; |
|
298 | + if (file_exists(trailingslashit($location) . $file_name)) { |
|
299 | + include trailingslashit($location) . $file_name; |
|
300 | 300 | break; |
301 | 301 | } |
302 | 302 | |
@@ -310,7 +310,7 @@ discard block |
||
310 | 310 | public function init() { |
311 | 311 | |
312 | 312 | // Fires before getpaid inits. |
313 | - do_action( 'before_getpaid_init', $this ); |
|
313 | + do_action('before_getpaid_init', $this); |
|
314 | 314 | |
315 | 315 | // Maybe upgrade. |
316 | 316 | $this->maybe_upgrade_database(); |
@@ -327,17 +327,17 @@ discard block |
||
327 | 327 | ) |
328 | 328 | ); |
329 | 329 | |
330 | - foreach ( $gateways as $id => $class ) { |
|
331 | - $this->gateways[ $id ] = new $class(); |
|
330 | + foreach ($gateways as $id => $class) { |
|
331 | + $this->gateways[$id] = new $class(); |
|
332 | 332 | } |
333 | 333 | |
334 | - if ( 'yes' != get_option( 'wpinv_renamed_gateways' ) ) { |
|
334 | + if ('yes' != get_option('wpinv_renamed_gateways')) { |
|
335 | 335 | GetPaid_Installer::rename_gateways_label(); |
336 | - update_option( 'wpinv_renamed_gateways', 'yes' ); |
|
336 | + update_option('wpinv_renamed_gateways', 'yes'); |
|
337 | 337 | } |
338 | 338 | |
339 | 339 | // Fires after getpaid inits. |
340 | - do_action( 'getpaid_init', $this ); |
|
340 | + do_action('getpaid_init', $this); |
|
341 | 341 | |
342 | 342 | } |
343 | 343 | |
@@ -347,14 +347,14 @@ discard block |
||
347 | 347 | public function maybe_process_ipn() { |
348 | 348 | |
349 | 349 | // Ensure that this is an IPN request. |
350 | - if ( empty( $_GET['wpi-listener'] ) || 'IPN' !== $_GET['wpi-listener'] || empty( $_GET['wpi-gateway'] ) ) { |
|
350 | + if (empty($_GET['wpi-listener']) || 'IPN' !== $_GET['wpi-listener'] || empty($_GET['wpi-gateway'])) { |
|
351 | 351 | return; |
352 | 352 | } |
353 | 353 | |
354 | - $gateway = wpinv_clean( $_GET['wpi-gateway'] ); |
|
354 | + $gateway = wpinv_clean($_GET['wpi-gateway']); |
|
355 | 355 | |
356 | - do_action( 'wpinv_verify_payment_ipn', $gateway ); |
|
357 | - do_action( "wpinv_verify_{$gateway}_ipn" ); |
|
356 | + do_action('wpinv_verify_payment_ipn', $gateway); |
|
357 | + do_action("wpinv_verify_{$gateway}_ipn"); |
|
358 | 358 | exit; |
359 | 359 | |
360 | 360 | } |
@@ -362,33 +362,33 @@ discard block |
||
362 | 362 | public function enqueue_scripts() { |
363 | 363 | |
364 | 364 | // Fires before adding scripts. |
365 | - do_action( 'getpaid_enqueue_scripts' ); |
|
365 | + do_action('getpaid_enqueue_scripts'); |
|
366 | 366 | |
367 | 367 | $localize = array(); |
368 | - $localize['ajax_url'] = admin_url( 'admin-ajax.php' ); |
|
368 | + $localize['ajax_url'] = admin_url('admin-ajax.php'); |
|
369 | 369 | $localize['thousands'] = wpinv_thousands_separator(); |
370 | 370 | $localize['decimals'] = wpinv_decimal_separator(); |
371 | - $localize['nonce'] = wp_create_nonce( 'wpinv-nonce' ); |
|
372 | - $localize['txtComplete'] = __( 'Continue', 'invoicing' ); |
|
371 | + $localize['nonce'] = wp_create_nonce('wpinv-nonce'); |
|
372 | + $localize['txtComplete'] = __('Continue', 'invoicing'); |
|
373 | 373 | $localize['UseTaxes'] = wpinv_use_taxes(); |
374 | - $localize['formNonce'] = wp_create_nonce( 'getpaid_form_nonce' ); |
|
375 | - $localize['loading'] = __( 'Loading...', 'invoicing' ); |
|
376 | - $localize['connectionError'] = __( 'Could not establish a connection to the server.', 'invoicing' ); |
|
374 | + $localize['formNonce'] = wp_create_nonce('getpaid_form_nonce'); |
|
375 | + $localize['loading'] = __('Loading...', 'invoicing'); |
|
376 | + $localize['connectionError'] = __('Could not establish a connection to the server.', 'invoicing'); |
|
377 | 377 | |
378 | - $localize = apply_filters( 'wpinv_front_js_localize', $localize ); |
|
378 | + $localize = apply_filters('wpinv_front_js_localize', $localize); |
|
379 | 379 | |
380 | - $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js' ); |
|
381 | - wp_enqueue_script( 'wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array( 'jquery' ), $version, true ); |
|
382 | - wp_localize_script( 'wpinv-front-script', 'WPInv', $localize ); |
|
380 | + $version = filemtime(WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js'); |
|
381 | + wp_enqueue_script('wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array('jquery'), $version, true); |
|
382 | + wp_localize_script('wpinv-front-script', 'WPInv', $localize); |
|
383 | 383 | } |
384 | 384 | |
385 | 385 | public function wpinv_actions() { |
386 | - if ( isset( $_REQUEST['wpi_action'] ) ) { |
|
387 | - do_action( 'wpinv_' . wpinv_sanitize_key( $_REQUEST['wpi_action'] ), $_REQUEST ); |
|
386 | + if (isset($_REQUEST['wpi_action'])) { |
|
387 | + do_action('wpinv_' . wpinv_sanitize_key($_REQUEST['wpi_action']), $_REQUEST); |
|
388 | 388 | } |
389 | 389 | |
390 | - if ( defined( 'WP_ALL_IMPORT_ROOT_DIR' ) ) { |
|
391 | - include plugin_dir_path( __FILE__ ) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php'; |
|
390 | + if (defined('WP_ALL_IMPORT_ROOT_DIR')) { |
|
391 | + include plugin_dir_path(__FILE__) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php'; |
|
392 | 392 | } |
393 | 393 | } |
394 | 394 | |
@@ -400,24 +400,24 @@ discard block |
||
400 | 400 | */ |
401 | 401 | public function maybe_do_authenticated_action() { |
402 | 402 | |
403 | - if ( isset( $_REQUEST['getpaid-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) { |
|
403 | + if (isset($_REQUEST['getpaid-action']) && isset($_REQUEST['getpaid-nonce']) && wp_verify_nonce($_REQUEST['getpaid-nonce'], 'getpaid-nonce')) { |
|
404 | 404 | |
405 | - $key = sanitize_key( $_REQUEST['getpaid-action'] ); |
|
406 | - $data = wp_unslash( $_REQUEST ); |
|
407 | - if ( is_user_logged_in() ) { |
|
408 | - do_action( "getpaid_authenticated_action_$key", $data ); |
|
405 | + $key = sanitize_key($_REQUEST['getpaid-action']); |
|
406 | + $data = wp_unslash($_REQUEST); |
|
407 | + if (is_user_logged_in()) { |
|
408 | + do_action("getpaid_authenticated_action_$key", $data); |
|
409 | 409 | } |
410 | 410 | |
411 | - do_action( "getpaid_unauthenticated_action_$key", $data ); |
|
411 | + do_action("getpaid_unauthenticated_action_$key", $data); |
|
412 | 412 | |
413 | 413 | } |
414 | 414 | |
415 | 415 | } |
416 | 416 | |
417 | - public function pre_get_posts( $wp_query ) { |
|
417 | + public function pre_get_posts($wp_query) { |
|
418 | 418 | |
419 | - if ( ! is_admin() && ! empty( $wp_query->query_vars['post_type'] ) && getpaid_is_invoice_post_type( $wp_query->query_vars['post_type'] ) && is_user_logged_in() && is_single() && $wp_query->is_main_query() ) { |
|
420 | - $wp_query->query_vars['post_status'] = array_keys( wpinv_get_invoice_statuses( false, false, $wp_query->query_vars['post_type'] ) ); |
|
419 | + if (!is_admin() && !empty($wp_query->query_vars['post_type']) && getpaid_is_invoice_post_type($wp_query->query_vars['post_type']) && is_user_logged_in() && is_single() && $wp_query->is_main_query()) { |
|
420 | + $wp_query->query_vars['post_status'] = array_keys(wpinv_get_invoice_statuses(false, false, $wp_query->query_vars['post_type'])); |
|
421 | 421 | } |
422 | 422 | |
423 | 423 | return $wp_query; |
@@ -432,18 +432,18 @@ discard block |
||
432 | 432 | |
433 | 433 | // Currently, UX Builder does not work particulaly well with SuperDuper. |
434 | 434 | // So we disable our widgets when editing a page with UX Builder. |
435 | - if ( function_exists( 'ux_builder_is_active' ) && ux_builder_is_active() ) { |
|
435 | + if (function_exists('ux_builder_is_active') && ux_builder_is_active()) { |
|
436 | 436 | return; |
437 | 437 | } |
438 | 438 | |
439 | 439 | $block_widget_init_screens = function_exists('sd_pagenow_exclude') ? sd_pagenow_exclude() : array(); |
440 | 440 | |
441 | - if ( is_admin() && $pagenow && in_array($pagenow, $block_widget_init_screens)) { |
|
441 | + if (is_admin() && $pagenow && in_array($pagenow, $block_widget_init_screens)) { |
|
442 | 442 | // don't initiate in these conditions. |
443 | - }else{ |
|
443 | + } else { |
|
444 | 444 | |
445 | 445 | // Only load allowed widgets. |
446 | - $exclude = function_exists( 'sd_widget_exclude' ) ? sd_widget_exclude() : array(); |
|
446 | + $exclude = function_exists('sd_widget_exclude') ? sd_widget_exclude() : array(); |
|
447 | 447 | $widgets = apply_filters( |
448 | 448 | 'getpaid_widget_classes', |
449 | 449 | array( |
@@ -458,16 +458,16 @@ discard block |
||
458 | 458 | ); |
459 | 459 | |
460 | 460 | // For each widget... |
461 | - foreach ( $widgets as $widget ) { |
|
461 | + foreach ($widgets as $widget) { |
|
462 | 462 | |
463 | 463 | // Abort early if it is excluded for this page. |
464 | - if ( in_array( $widget, $exclude ) ) { |
|
464 | + if (in_array($widget, $exclude)) { |
|
465 | 465 | continue; |
466 | 466 | } |
467 | 467 | |
468 | 468 | // SD V1 used to extend the widget class. V2 does not, so we cannot call register widget on it. |
469 | - if ( is_subclass_of( $widget, 'WP_Widget' ) ) { |
|
470 | - register_widget( $widget ); |
|
469 | + if (is_subclass_of($widget, 'WP_Widget')) { |
|
470 | + register_widget($widget); |
|
471 | 471 | } else { |
472 | 472 | new $widget(); |
473 | 473 | } |
@@ -485,29 +485,29 @@ discard block |
||
485 | 485 | */ |
486 | 486 | public function maybe_upgrade_database() { |
487 | 487 | |
488 | - $wpi_version = get_option( 'wpinv_version', 0 ); |
|
488 | + $wpi_version = get_option('wpinv_version', 0); |
|
489 | 489 | |
490 | - if ( $wpi_version == WPINV_VERSION ) { |
|
490 | + if ($wpi_version == WPINV_VERSION) { |
|
491 | 491 | return; |
492 | 492 | } |
493 | 493 | |
494 | 494 | $installer = new GetPaid_Installer(); |
495 | 495 | |
496 | - if ( empty( $wpi_version ) ) { |
|
497 | - return $installer->upgrade_db( 0 ); |
|
496 | + if (empty($wpi_version)) { |
|
497 | + return $installer->upgrade_db(0); |
|
498 | 498 | } |
499 | 499 | |
500 | - $upgrades = array( |
|
500 | + $upgrades = array( |
|
501 | 501 | '0.0.5' => '004', |
502 | 502 | '1.0.3' => '102', |
503 | 503 | '2.0.0' => '118', |
504 | 504 | '2.0.8' => '207', |
505 | 505 | ); |
506 | 506 | |
507 | - foreach ( $upgrades as $key => $method ) { |
|
507 | + foreach ($upgrades as $key => $method) { |
|
508 | 508 | |
509 | - if ( version_compare( $wpi_version, $key, '<' ) ) { |
|
510 | - return $installer->upgrade_db( $method ); |
|
509 | + if (version_compare($wpi_version, $key, '<')) { |
|
510 | + return $installer->upgrade_db($method); |
|
511 | 511 | } |
512 | 512 | |
513 | 513 | } |
@@ -521,11 +521,11 @@ discard block |
||
521 | 521 | */ |
522 | 522 | public function maybe_flush_permalinks() { |
523 | 523 | |
524 | - $flush = get_option( 'wpinv_flush_permalinks', 0 ); |
|
524 | + $flush = get_option('wpinv_flush_permalinks', 0); |
|
525 | 525 | |
526 | - if ( ! empty( $flush ) ) { |
|
526 | + if (!empty($flush)) { |
|
527 | 527 | flush_rewrite_rules(); |
528 | - delete_option( 'wpinv_flush_permalinks' ); |
|
528 | + delete_option('wpinv_flush_permalinks'); |
|
529 | 529 | } |
530 | 530 | |
531 | 531 | } |
@@ -536,10 +536,10 @@ discard block |
||
536 | 536 | * @since 1.0.19 |
537 | 537 | * @param int[] $excluded_posts_ids |
538 | 538 | */ |
539 | - public function wpseo_exclude_from_sitemap_by_post_ids( $excluded_posts_ids ){ |
|
539 | + public function wpseo_exclude_from_sitemap_by_post_ids($excluded_posts_ids) { |
|
540 | 540 | |
541 | 541 | // Ensure that we have an array. |
542 | - if ( ! is_array( $excluded_posts_ids ) ) { |
|
542 | + if (!is_array($excluded_posts_ids)) { |
|
543 | 543 | $excluded_posts_ids = array(); |
544 | 544 | } |
545 | 545 | |
@@ -547,24 +547,24 @@ discard block |
||
547 | 547 | $our_pages = array(); |
548 | 548 | |
549 | 549 | // Checkout page. |
550 | - $our_pages[] = wpinv_get_option( 'checkout_page', false ); |
|
550 | + $our_pages[] = wpinv_get_option('checkout_page', false); |
|
551 | 551 | |
552 | 552 | // Success page. |
553 | - $our_pages[] = wpinv_get_option( 'success_page', false ); |
|
553 | + $our_pages[] = wpinv_get_option('success_page', false); |
|
554 | 554 | |
555 | 555 | // Failure page. |
556 | - $our_pages[] = wpinv_get_option( 'failure_page', false ); |
|
556 | + $our_pages[] = wpinv_get_option('failure_page', false); |
|
557 | 557 | |
558 | 558 | // History page. |
559 | - $our_pages[] = wpinv_get_option( 'invoice_history_page', false ); |
|
559 | + $our_pages[] = wpinv_get_option('invoice_history_page', false); |
|
560 | 560 | |
561 | 561 | // Subscriptions page. |
562 | - $our_pages[] = wpinv_get_option( 'invoice_subscription_page', false ); |
|
562 | + $our_pages[] = wpinv_get_option('invoice_subscription_page', false); |
|
563 | 563 | |
564 | - $our_pages = array_map( 'intval', array_filter( $our_pages ) ); |
|
564 | + $our_pages = array_map('intval', array_filter($our_pages)); |
|
565 | 565 | |
566 | 566 | $excluded_posts_ids = $excluded_posts_ids + $our_pages; |
567 | - return array_unique( $excluded_posts_ids ); |
|
567 | + return array_unique($excluded_posts_ids); |
|
568 | 568 | |
569 | 569 | } |
570 | 570 | |
@@ -574,7 +574,7 @@ discard block |
||
574 | 574 | * @since 2.0.0 |
575 | 575 | */ |
576 | 576 | public function wp_footer() { |
577 | - wpinv_get_template( 'frontend-footer.php' ); |
|
577 | + wpinv_get_template('frontend-footer.php'); |
|
578 | 578 | } |
579 | 579 | |
580 | 580 | /** |
@@ -583,14 +583,14 @@ discard block |
||
583 | 583 | * @since 2.0.0 |
584 | 584 | */ |
585 | 585 | public function wp_head() { |
586 | - wpinv_get_template( 'frontend-head.php' ); |
|
586 | + wpinv_get_template('frontend-head.php'); |
|
587 | 587 | } |
588 | 588 | |
589 | 589 | /** |
590 | 590 | * Custom query vars. |
591 | 591 | * |
592 | 592 | */ |
593 | - public function custom_query_vars( $vars ) { |
|
593 | + public function custom_query_vars($vars) { |
|
594 | 594 | $vars[] = 'getpaid-ipn'; |
595 | 595 | return $vars; |
596 | 596 | } |
@@ -601,28 +601,28 @@ discard block |
||
601 | 601 | */ |
602 | 602 | public function add_rewrite_rule() { |
603 | 603 | $tag = 'getpaid-ipn'; |
604 | - add_rewrite_tag( "%$tag%", '([^&]+)' ); |
|
605 | - add_rewrite_rule( "^$tag/([^/]*)/?", "index.php?$tag=\$matches[1]",'top' ); |
|
604 | + add_rewrite_tag("%$tag%", '([^&]+)'); |
|
605 | + add_rewrite_rule("^$tag/([^/]*)/?", "index.php?$tag=\$matches[1]", 'top'); |
|
606 | 606 | } |
607 | 607 | |
608 | 608 | /** |
609 | 609 | * Processes non-query string ipns. |
610 | 610 | * |
611 | 611 | */ |
612 | - public function maybe_process_new_ipn( $query ) { |
|
612 | + public function maybe_process_new_ipn($query) { |
|
613 | 613 | |
614 | - if ( is_admin() || ! $query->is_main_query() ) { |
|
614 | + if (is_admin() || !$query->is_main_query()) { |
|
615 | 615 | return; |
616 | 616 | } |
617 | 617 | |
618 | - $gateway = get_query_var( 'getpaid-ipn' ); |
|
618 | + $gateway = get_query_var('getpaid-ipn'); |
|
619 | 619 | |
620 | - if ( ! empty( $gateway ) ){ |
|
620 | + if (!empty($gateway)) { |
|
621 | 621 | |
622 | - $gateway = sanitize_text_field( $gateway ); |
|
622 | + $gateway = sanitize_text_field($gateway); |
|
623 | 623 | nocache_headers(); |
624 | - do_action( 'wpinv_verify_payment_ipn', $gateway ); |
|
625 | - do_action( "wpinv_verify_{$gateway}_ipn" ); |
|
624 | + do_action('wpinv_verify_payment_ipn', $gateway); |
|
625 | + do_action("wpinv_verify_{$gateway}_ipn"); |
|
626 | 626 | exit; |
627 | 627 | |
628 | 628 | } |
@@ -6,35 +6,35 @@ discard block |
||
6 | 6 | |
7 | 7 | class ComposerStaticInit8b6d4385c391849a80038f0b0e87c8b5 |
8 | 8 | { |
9 | - public static $files = array ( |
|
9 | + public static $files = array( |
|
10 | 10 | '24583d3588ebda5228dd453cfaa070da' => __DIR__ . '/..' . '/ayecode/wp-font-awesome-settings/wp-font-awesome-settings.php', |
11 | 11 | '42671a413efb740d7040437ff2a982cd' => __DIR__ . '/..' . '/ayecode/wp-super-duper/sd-functions.php', |
12 | 12 | 'e8d544c98e79f913e13eae1306ab635e' => __DIR__ . '/..' . '/ayecode/wp-ayecode-ui/ayecode-ui-loader.php', |
13 | 13 | ); |
14 | 14 | |
15 | - public static $prefixLengthsPsr4 = array ( |
|
15 | + public static $prefixLengthsPsr4 = array( |
|
16 | 16 | 'M' => |
17 | - array ( |
|
17 | + array( |
|
18 | 18 | 'MaxMind\\Db\\' => 11, |
19 | 19 | ), |
20 | 20 | 'C' => |
21 | - array ( |
|
21 | + array( |
|
22 | 22 | 'Composer\\Installers\\' => 20, |
23 | 23 | ), |
24 | 24 | ); |
25 | 25 | |
26 | - public static $prefixDirsPsr4 = array ( |
|
26 | + public static $prefixDirsPsr4 = array( |
|
27 | 27 | 'MaxMind\\Db\\' => |
28 | - array ( |
|
28 | + array( |
|
29 | 29 | 0 => __DIR__ . '/..' . '/maxmind-db/reader/src/MaxMind/Db', |
30 | 30 | ), |
31 | 31 | 'Composer\\Installers\\' => |
32 | - array ( |
|
32 | + array( |
|
33 | 33 | 0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers', |
34 | 34 | ), |
35 | 35 | ); |
36 | 36 | |
37 | - public static $classMap = array ( |
|
37 | + public static $classMap = array( |
|
38 | 38 | 'AyeCode_Connect_Helper' => __DIR__ . '/..' . '/ayecode/ayecode-connect-helper/ayecode-connect-helper.php', |
39 | 39 | 'AyeCode_Deactivation_Survey' => __DIR__ . '/..' . '/ayecode/wp-deactivation-survey/wp-deactivation-survey.php', |
40 | 40 | 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', |
@@ -43,7 +43,7 @@ discard block |
||
43 | 43 | |
44 | 44 | public static function getInitializer(ClassLoader $loader) |
45 | 45 | { |
46 | - return \Closure::bind(function () use ($loader) { |
|
46 | + return \Closure::bind(function() use ($loader) { |
|
47 | 47 | $loader->prefixLengthsPsr4 = ComposerStaticInit8b6d4385c391849a80038f0b0e87c8b5::$prefixLengthsPsr4; |
48 | 48 | $loader->prefixDirsPsr4 = ComposerStaticInit8b6d4385c391849a80038f0b0e87c8b5::$prefixDirsPsr4; |
49 | 49 | $loader->classMap = ComposerStaticInit8b6d4385c391849a80038f0b0e87c8b5::$classMap; |
@@ -1,103 +1,103 @@ |
||
1 | 1 | <?php |
2 | 2 | |
3 | 3 | if ( ! defined( 'ABSPATH' ) ) { |
4 | - exit; |
|
4 | + exit; |
|
5 | 5 | } |
6 | 6 | |
7 | 7 | if ( ! class_exists( 'AyeCode_Deactivation_Survey' ) ) { |
8 | 8 | |
9 | - class AyeCode_Deactivation_Survey { |
|
9 | + class AyeCode_Deactivation_Survey { |
|
10 | 10 | |
11 | - /** |
|
12 | - * AyeCode_Deactivation_Survey instance. |
|
13 | - * |
|
14 | - * @access private |
|
15 | - * @since 1.0.0 |
|
16 | - * @var AyeCode_Deactivation_Survey There can be only one! |
|
17 | - */ |
|
18 | - private static $instance = null; |
|
11 | + /** |
|
12 | + * AyeCode_Deactivation_Survey instance. |
|
13 | + * |
|
14 | + * @access private |
|
15 | + * @since 1.0.0 |
|
16 | + * @var AyeCode_Deactivation_Survey There can be only one! |
|
17 | + */ |
|
18 | + private static $instance = null; |
|
19 | 19 | |
20 | - public static $plugins; |
|
20 | + public static $plugins; |
|
21 | 21 | |
22 | - public $version = "1.0.4"; |
|
22 | + public $version = "1.0.4"; |
|
23 | 23 | |
24 | - public static function instance( $plugin = array() ) { |
|
25 | - if ( ! isset( self::$instance ) && ! ( self::$instance instanceof AyeCode_Deactivation_Survey ) ) { |
|
26 | - self::$instance = new AyeCode_Deactivation_Survey; |
|
27 | - self::$plugins = array(); |
|
24 | + public static function instance( $plugin = array() ) { |
|
25 | + if ( ! isset( self::$instance ) && ! ( self::$instance instanceof AyeCode_Deactivation_Survey ) ) { |
|
26 | + self::$instance = new AyeCode_Deactivation_Survey; |
|
27 | + self::$plugins = array(); |
|
28 | 28 | |
29 | - add_action( 'admin_enqueue_scripts', array( self::$instance, 'scripts' ) ); |
|
29 | + add_action( 'admin_enqueue_scripts', array( self::$instance, 'scripts' ) ); |
|
30 | 30 | |
31 | - do_action( 'ayecode_deactivation_survey_loaded' ); |
|
32 | - } |
|
31 | + do_action( 'ayecode_deactivation_survey_loaded' ); |
|
32 | + } |
|
33 | 33 | |
34 | - if(!empty($plugin)){ |
|
35 | - self::$plugins[] = (object)$plugin; |
|
36 | - } |
|
34 | + if(!empty($plugin)){ |
|
35 | + self::$plugins[] = (object)$plugin; |
|
36 | + } |
|
37 | 37 | |
38 | - return self::$instance; |
|
39 | - } |
|
38 | + return self::$instance; |
|
39 | + } |
|
40 | 40 | |
41 | - public function scripts() { |
|
42 | - global $pagenow; |
|
41 | + public function scripts() { |
|
42 | + global $pagenow; |
|
43 | 43 | |
44 | - // Bail if we are not on the plugins page |
|
45 | - if ( $pagenow != "plugins.php" ) { |
|
46 | - return; |
|
47 | - } |
|
44 | + // Bail if we are not on the plugins page |
|
45 | + if ( $pagenow != "plugins.php" ) { |
|
46 | + return; |
|
47 | + } |
|
48 | 48 | |
49 | - // Enqueue scripts |
|
50 | - add_thickbox(); |
|
51 | - wp_enqueue_script('ayecode-deactivation-survey', plugin_dir_url(__FILE__) . 'ayecode-ds.js'); |
|
49 | + // Enqueue scripts |
|
50 | + add_thickbox(); |
|
51 | + wp_enqueue_script('ayecode-deactivation-survey', plugin_dir_url(__FILE__) . 'ayecode-ds.js'); |
|
52 | 52 | |
53 | - /* |
|
53 | + /* |
|
54 | 54 | * Localized strings. Strings can be localised by plugins using this class. |
55 | 55 | * We deliberately don't add textdomains here so that double textdomain warning is not given in theme review. |
56 | 56 | */ |
57 | - wp_localize_script('ayecode-deactivation-survey', 'ayecodeds_deactivate_feedback_form_strings', array( |
|
58 | - 'quick_feedback' => 'Quick Feedback', |
|
59 | - 'foreword' => 'If you would be kind enough, please tell us why you\'re deactivating?', |
|
60 | - 'better_plugins_name' => 'Please tell us which plugin?', |
|
61 | - 'please_tell_us' => 'Please tell us the reason so we can improve the plugin', |
|
62 | - 'do_not_attach_email' => 'Do not send my e-mail address with this feedback', |
|
63 | - 'brief_description' => 'Please give us any feedback that could help us improve', |
|
64 | - 'cancel' => 'Cancel', |
|
65 | - 'skip_and_deactivate' => 'Skip & Deactivate', |
|
66 | - 'submit_and_deactivate' => 'Submit & Deactivate', |
|
67 | - 'please_wait' => 'Please wait', |
|
68 | - 'get_support' => 'Get Support', |
|
69 | - 'documentation' => 'Documentation', |
|
70 | - 'thank_you' => 'Thank you!', |
|
71 | - )); |
|
72 | - |
|
73 | - // Plugins |
|
74 | - $plugins = apply_filters('ayecode_deactivation_survey_plugins', self::$plugins); |
|
75 | - |
|
76 | - // Reasons |
|
77 | - $defaultReasons = array( |
|
78 | - 'suddenly-stopped-working' => 'The plugin suddenly stopped working', |
|
79 | - 'plugin-broke-site' => 'The plugin broke my site', |
|
80 | - 'plugin-setup-difficult' => 'Too difficult to setup', |
|
81 | - 'plugin-design-difficult' => 'Too difficult to get the design i want', |
|
82 | - 'no-longer-needed' => 'I don\'t need this plugin any more', |
|
83 | - 'found-better-plugin' => 'I found a better plugin', |
|
84 | - 'temporary-deactivation' => 'It\'s a temporary deactivation, I\'m troubleshooting', |
|
85 | - 'other' => 'Other', |
|
86 | - ); |
|
87 | - |
|
88 | - foreach($plugins as $plugin) |
|
89 | - { |
|
90 | - $plugin->reasons = apply_filters('ayecode_deactivation_survey_reasons', $defaultReasons, $plugin); |
|
91 | - $plugin->url = home_url(); |
|
92 | - $plugin->activated = 0; |
|
93 | - } |
|
94 | - |
|
95 | - // Send plugin data |
|
96 | - wp_localize_script('ayecode-deactivation-survey', 'ayecodeds_deactivate_feedback_form_plugins', $plugins); |
|
97 | - |
|
98 | - } |
|
57 | + wp_localize_script('ayecode-deactivation-survey', 'ayecodeds_deactivate_feedback_form_strings', array( |
|
58 | + 'quick_feedback' => 'Quick Feedback', |
|
59 | + 'foreword' => 'If you would be kind enough, please tell us why you\'re deactivating?', |
|
60 | + 'better_plugins_name' => 'Please tell us which plugin?', |
|
61 | + 'please_tell_us' => 'Please tell us the reason so we can improve the plugin', |
|
62 | + 'do_not_attach_email' => 'Do not send my e-mail address with this feedback', |
|
63 | + 'brief_description' => 'Please give us any feedback that could help us improve', |
|
64 | + 'cancel' => 'Cancel', |
|
65 | + 'skip_and_deactivate' => 'Skip & Deactivate', |
|
66 | + 'submit_and_deactivate' => 'Submit & Deactivate', |
|
67 | + 'please_wait' => 'Please wait', |
|
68 | + 'get_support' => 'Get Support', |
|
69 | + 'documentation' => 'Documentation', |
|
70 | + 'thank_you' => 'Thank you!', |
|
71 | + )); |
|
72 | + |
|
73 | + // Plugins |
|
74 | + $plugins = apply_filters('ayecode_deactivation_survey_plugins', self::$plugins); |
|
75 | + |
|
76 | + // Reasons |
|
77 | + $defaultReasons = array( |
|
78 | + 'suddenly-stopped-working' => 'The plugin suddenly stopped working', |
|
79 | + 'plugin-broke-site' => 'The plugin broke my site', |
|
80 | + 'plugin-setup-difficult' => 'Too difficult to setup', |
|
81 | + 'plugin-design-difficult' => 'Too difficult to get the design i want', |
|
82 | + 'no-longer-needed' => 'I don\'t need this plugin any more', |
|
83 | + 'found-better-plugin' => 'I found a better plugin', |
|
84 | + 'temporary-deactivation' => 'It\'s a temporary deactivation, I\'m troubleshooting', |
|
85 | + 'other' => 'Other', |
|
86 | + ); |
|
87 | + |
|
88 | + foreach($plugins as $plugin) |
|
89 | + { |
|
90 | + $plugin->reasons = apply_filters('ayecode_deactivation_survey_reasons', $defaultReasons, $plugin); |
|
91 | + $plugin->url = home_url(); |
|
92 | + $plugin->activated = 0; |
|
93 | + } |
|
94 | + |
|
95 | + // Send plugin data |
|
96 | + wp_localize_script('ayecode-deactivation-survey', 'ayecodeds_deactivate_feedback_form_plugins', $plugins); |
|
97 | + |
|
98 | + } |
|
99 | 99 | |
100 | 100 | |
101 | - } |
|
101 | + } |
|
102 | 102 | |
103 | 103 | } |
104 | 104 | \ No newline at end of file |
@@ -1,10 +1,10 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | |
3 | -if ( ! defined( 'ABSPATH' ) ) { |
|
3 | +if (!defined('ABSPATH')) { |
|
4 | 4 | exit; |
5 | 5 | } |
6 | 6 | |
7 | -if ( ! class_exists( 'AyeCode_Deactivation_Survey' ) ) { |
|
7 | +if (!class_exists('AyeCode_Deactivation_Survey')) { |
|
8 | 8 | |
9 | 9 | class AyeCode_Deactivation_Survey { |
10 | 10 | |
@@ -21,18 +21,18 @@ discard block |
||
21 | 21 | |
22 | 22 | public $version = "1.0.4"; |
23 | 23 | |
24 | - public static function instance( $plugin = array() ) { |
|
25 | - if ( ! isset( self::$instance ) && ! ( self::$instance instanceof AyeCode_Deactivation_Survey ) ) { |
|
24 | + public static function instance($plugin = array()) { |
|
25 | + if (!isset(self::$instance) && !(self::$instance instanceof AyeCode_Deactivation_Survey)) { |
|
26 | 26 | self::$instance = new AyeCode_Deactivation_Survey; |
27 | 27 | self::$plugins = array(); |
28 | 28 | |
29 | - add_action( 'admin_enqueue_scripts', array( self::$instance, 'scripts' ) ); |
|
29 | + add_action('admin_enqueue_scripts', array(self::$instance, 'scripts')); |
|
30 | 30 | |
31 | - do_action( 'ayecode_deactivation_survey_loaded' ); |
|
31 | + do_action('ayecode_deactivation_survey_loaded'); |
|
32 | 32 | } |
33 | 33 | |
34 | - if(!empty($plugin)){ |
|
35 | - self::$plugins[] = (object)$plugin; |
|
34 | + if (!empty($plugin)) { |
|
35 | + self::$plugins[] = (object) $plugin; |
|
36 | 36 | } |
37 | 37 | |
38 | 38 | return self::$instance; |
@@ -42,7 +42,7 @@ discard block |
||
42 | 42 | global $pagenow; |
43 | 43 | |
44 | 44 | // Bail if we are not on the plugins page |
45 | - if ( $pagenow != "plugins.php" ) { |
|
45 | + if ($pagenow != "plugins.php") { |
|
46 | 46 | return; |
47 | 47 | } |
48 | 48 | |
@@ -85,7 +85,7 @@ discard block |
||
85 | 85 | 'other' => 'Other', |
86 | 86 | ); |
87 | 87 | |
88 | - foreach($plugins as $plugin) |
|
88 | + foreach ($plugins as $plugin) |
|
89 | 89 | { |
90 | 90 | $plugin->reasons = apply_filters('ayecode_deactivation_survey_reasons', $defaultReasons, $plugin); |
91 | 91 | $plugin->url = home_url(); |
@@ -1,6 +1,6 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | if ( ! defined( 'ABSPATH' ) ) { |
3 | - exit; |
|
3 | + exit; |
|
4 | 4 | } |
5 | 5 | |
6 | 6 | /** |
@@ -10,67 +10,67 @@ discard block |
||
10 | 10 | class GetPaid_Form_Item extends WPInv_Item { |
11 | 11 | |
12 | 12 | /** |
13 | - * Stores a custom description for the item. |
|
14 | - * |
|
15 | - * @var string |
|
16 | - */ |
|
17 | - protected $custom_description = null; |
|
18 | - |
|
19 | - /** |
|
20 | - * Stores the item quantity. |
|
21 | - * |
|
22 | - * @var float |
|
23 | - */ |
|
24 | - protected $quantity = 1; |
|
25 | - |
|
26 | - /** |
|
27 | - * Stores the item meta. |
|
28 | - * |
|
29 | - * @var array |
|
30 | - */ |
|
31 | - protected $meta = array(); |
|
32 | - |
|
33 | - /** |
|
34 | - * Is this item required? |
|
35 | - * |
|
36 | - * @var int |
|
37 | - */ |
|
38 | - protected $is_required = true; |
|
39 | - |
|
40 | - /** |
|
41 | - * Are quantities allowed? |
|
42 | - * |
|
43 | - * @var int |
|
44 | - */ |
|
45 | - protected $allow_quantities = false; |
|
46 | - |
|
47 | - /** |
|
48 | - * Associated invoice. |
|
49 | - * |
|
50 | - * @var int |
|
51 | - */ |
|
52 | - public $invoice_id = 0; |
|
53 | - |
|
54 | - /** |
|
55 | - * Item discount. |
|
56 | - * |
|
57 | - * @var float |
|
58 | - */ |
|
59 | - public $item_discount = 0; |
|
60 | - |
|
61 | - /** |
|
62 | - * Recurring item discount. |
|
63 | - * |
|
64 | - * @var float |
|
65 | - */ |
|
66 | - public $recurring_item_discount = 0; |
|
67 | - |
|
68 | - /** |
|
69 | - * Item tax. |
|
70 | - * |
|
71 | - * @var float |
|
72 | - */ |
|
73 | - public $item_tax = 0; |
|
13 | + * Stores a custom description for the item. |
|
14 | + * |
|
15 | + * @var string |
|
16 | + */ |
|
17 | + protected $custom_description = null; |
|
18 | + |
|
19 | + /** |
|
20 | + * Stores the item quantity. |
|
21 | + * |
|
22 | + * @var float |
|
23 | + */ |
|
24 | + protected $quantity = 1; |
|
25 | + |
|
26 | + /** |
|
27 | + * Stores the item meta. |
|
28 | + * |
|
29 | + * @var array |
|
30 | + */ |
|
31 | + protected $meta = array(); |
|
32 | + |
|
33 | + /** |
|
34 | + * Is this item required? |
|
35 | + * |
|
36 | + * @var int |
|
37 | + */ |
|
38 | + protected $is_required = true; |
|
39 | + |
|
40 | + /** |
|
41 | + * Are quantities allowed? |
|
42 | + * |
|
43 | + * @var int |
|
44 | + */ |
|
45 | + protected $allow_quantities = false; |
|
46 | + |
|
47 | + /** |
|
48 | + * Associated invoice. |
|
49 | + * |
|
50 | + * @var int |
|
51 | + */ |
|
52 | + public $invoice_id = 0; |
|
53 | + |
|
54 | + /** |
|
55 | + * Item discount. |
|
56 | + * |
|
57 | + * @var float |
|
58 | + */ |
|
59 | + public $item_discount = 0; |
|
60 | + |
|
61 | + /** |
|
62 | + * Recurring item discount. |
|
63 | + * |
|
64 | + * @var float |
|
65 | + */ |
|
66 | + public $recurring_item_discount = 0; |
|
67 | + |
|
68 | + /** |
|
69 | + * Item tax. |
|
70 | + * |
|
71 | + * @var float |
|
72 | + */ |
|
73 | + public $item_tax = 0; |
|
74 | 74 | |
75 | 75 | /* |
76 | 76 | |-------------------------------------------------------------------------- |
@@ -88,230 +88,230 @@ discard block |
||
88 | 88 | */ |
89 | 89 | |
90 | 90 | /** |
91 | - * Get the item name. |
|
92 | - * |
|
93 | - * @since 1.0.19 |
|
94 | - * @param string $context View or edit context. |
|
95 | - * @return string |
|
96 | - */ |
|
97 | - public function get_name( $context = 'view' ) { |
|
98 | - $name = parent::get_name( $context ); |
|
99 | - return $name . wpinv_get_item_suffix( $this ); |
|
100 | - } |
|
101 | - |
|
102 | - /** |
|
103 | - * Get the item name without a suffix. |
|
104 | - * |
|
105 | - * @since 1.0.19 |
|
106 | - * @param string $context View or edit context. |
|
107 | - * @return string |
|
108 | - */ |
|
109 | - public function get_raw_name( $context = 'view' ) { |
|
110 | - return parent::get_name( $context ); |
|
111 | - } |
|
112 | - |
|
113 | - /** |
|
114 | - * Get the item description. |
|
115 | - * |
|
116 | - * @since 1.0.19 |
|
117 | - * @param string $context View or edit context. |
|
118 | - * @return string |
|
119 | - */ |
|
120 | - public function get_description( $context = 'view' ) { |
|
121 | - |
|
122 | - if ( isset( $this->custom_description ) ) { |
|
123 | - return $this->custom_description; |
|
124 | - } |
|
125 | - |
|
126 | - return parent::get_description( $context ); |
|
127 | - } |
|
128 | - |
|
129 | - /** |
|
130 | - * Returns the sub total. |
|
131 | - * |
|
132 | - * @since 1.0.19 |
|
133 | - * @param string $context View or edit context. |
|
134 | - * @return float |
|
135 | - */ |
|
136 | - public function get_sub_total( $context = 'view' ) { |
|
137 | - return $this->get_quantity( $context ) * $this->get_initial_price( $context ); |
|
138 | - } |
|
139 | - |
|
140 | - /** |
|
141 | - * Returns the recurring sub total. |
|
142 | - * |
|
143 | - * @since 1.0.19 |
|
144 | - * @param string $context View or edit context. |
|
145 | - * @return float |
|
146 | - */ |
|
147 | - public function get_recurring_sub_total( $context = 'view' ) { |
|
148 | - |
|
149 | - if ( $this->is_recurring() ) { |
|
150 | - return $this->get_quantity( $context ) * $this->get_price( $context ); |
|
151 | - } |
|
152 | - |
|
153 | - return 0; |
|
154 | - } |
|
155 | - |
|
156 | - /** |
|
157 | - * @deprecated |
|
158 | - */ |
|
159 | - public function get_qantity( $context = 'view' ) { |
|
160 | - return $this->get_quantity( $context ); |
|
161 | - } |
|
162 | - |
|
163 | - /** |
|
164 | - * Get the item quantity. |
|
165 | - * |
|
166 | - * @since 1.0.19 |
|
167 | - * @param string $context View or edit context. |
|
168 | - * @return float |
|
169 | - */ |
|
170 | - public function get_quantity( $context = 'view' ) { |
|
171 | - $quantity = (float) $this->quantity; |
|
172 | - |
|
173 | - if ( 'view' == $context ) { |
|
174 | - return apply_filters( 'getpaid_payment_form_item_quantity', $quantity, $this ); |
|
175 | - } |
|
176 | - |
|
177 | - return $quantity; |
|
178 | - |
|
179 | - } |
|
180 | - |
|
181 | - /** |
|
182 | - * Get the item meta data. |
|
183 | - * |
|
184 | - * @since 1.0.19 |
|
185 | - * @param string $context View or edit context. |
|
186 | - * @return meta |
|
187 | - */ |
|
188 | - public function get_item_meta( $context = 'view' ) { |
|
189 | - $meta = $this->meta; |
|
190 | - |
|
191 | - if ( 'view' == $context ) { |
|
192 | - return apply_filters( 'getpaid_payment_form_item_meta', $meta, $this ); |
|
193 | - } |
|
194 | - |
|
195 | - return $meta; |
|
196 | - |
|
197 | - } |
|
198 | - |
|
199 | - /** |
|
200 | - * Returns whether or not customers can update the item quantity. |
|
201 | - * |
|
202 | - * @since 1.0.19 |
|
203 | - * @param string $context View or edit context. |
|
204 | - * @return bool |
|
205 | - */ |
|
206 | - public function get_allow_quantities( $context = 'view' ) { |
|
207 | - $allow_quantities = (bool) $this->allow_quantities; |
|
208 | - |
|
209 | - if ( 'view' == $context ) { |
|
210 | - return apply_filters( 'getpaid_payment_form_item_allow_quantities', $allow_quantities, $this ); |
|
211 | - } |
|
212 | - |
|
213 | - return $allow_quantities; |
|
214 | - |
|
215 | - } |
|
216 | - |
|
217 | - /** |
|
218 | - * Returns whether or not the item is required. |
|
219 | - * |
|
220 | - * @since 1.0.19 |
|
221 | - * @param string $context View or edit context. |
|
222 | - * @return bool |
|
223 | - */ |
|
224 | - public function get_is_required( $context = 'view' ) { |
|
225 | - $is_required = (bool) $this->is_required; |
|
226 | - |
|
227 | - if ( 'view' == $context ) { |
|
228 | - return apply_filters( 'getpaid_payment_form_item_is_required', $is_required, $this ); |
|
229 | - } |
|
230 | - |
|
231 | - return $is_required; |
|
232 | - |
|
233 | - } |
|
234 | - |
|
235 | - /** |
|
236 | - * Prepares form data for use. |
|
237 | - * |
|
238 | - * @since 1.0.19 |
|
239 | - * @return array |
|
240 | - */ |
|
241 | - public function prepare_data_for_use( $required = null ) { |
|
242 | - |
|
243 | - $required = is_null( $required ) ? $this->is_required() : $required; |
|
244 | - return array( |
|
245 | - 'title' => strip_tags( $this->get_name() ), |
|
246 | - 'id' => $this->get_id(), |
|
247 | - 'price' => $this->get_price(), |
|
248 | - 'recurring' => $this->is_recurring(), |
|
249 | - 'description' => $this->get_description(), |
|
250 | - 'allow_quantities' => $this->allows_quantities(), |
|
251 | - 'required' => $required, |
|
252 | - ); |
|
253 | - |
|
254 | - } |
|
255 | - |
|
256 | - /** |
|
257 | - * Prepares form data for ajax use. |
|
258 | - * |
|
259 | - * @since 1.0.19 |
|
260 | - * @return array |
|
261 | - */ |
|
262 | - public function prepare_data_for_invoice_edit_ajax( $currency = '', $is_renewal = false ) { |
|
263 | - |
|
264 | - $description = getpaid_item_recurring_price_help_text( $this, $currency ); |
|
265 | - |
|
266 | - if ( $description ) { |
|
267 | - $description = "<div class='getpaid-subscription-help-text'>$description</div>"; |
|
268 | - } |
|
269 | - |
|
270 | - $price = ! $is_renewal ? $this->get_price() : $this->get_recurring_price(); |
|
271 | - $subtotal = ! $is_renewal ? $this->get_sub_total() : $this->get_recurring_sub_total(); |
|
272 | - return array( |
|
273 | - 'id' => $this->get_id(), |
|
274 | - 'texts' => array( |
|
275 | - 'item-name' => sanitize_text_field( $this->get_name() ), |
|
276 | - 'item-description' => wp_kses_post( $this->get_description() ) . $description, |
|
277 | - 'item-quantity' => floatval( $this->get_quantity() ), |
|
278 | - 'item-price' => wpinv_price( $price, $currency ), |
|
279 | - 'item-total' => wpinv_price( $subtotal, $currency ), |
|
280 | - ), |
|
281 | - 'inputs' => array( |
|
282 | - 'item-id' => $this->get_id(), |
|
283 | - 'item-name' => sanitize_text_field( $this->get_name() ), |
|
284 | - 'item-description' => wp_kses_post( $this->get_description() ), |
|
285 | - 'item-quantity' => floatval( $this->get_quantity() ), |
|
286 | - 'item-price' => $price, |
|
287 | - ) |
|
288 | - ); |
|
289 | - |
|
290 | - } |
|
291 | - |
|
292 | - /** |
|
293 | - * Prepares form data for saving (cart_details). |
|
294 | - * |
|
295 | - * @since 1.0.19 |
|
296 | - * @return array |
|
297 | - */ |
|
298 | - public function prepare_data_for_saving() { |
|
299 | - |
|
300 | - return array( |
|
301 | - 'post_id' => $this->invoice_id, |
|
302 | - 'item_id' => $this->get_id(), |
|
303 | - 'item_name' => sanitize_text_field( $this->get_raw_name( 'edit' ) ), |
|
304 | - 'item_description' => $this->get_description( 'edit' ), |
|
305 | - 'tax' => $this->item_tax, |
|
306 | - 'item_price' => $this->get_price( 'edit' ), |
|
307 | - 'quantity' => (float) $this->get_quantity( 'edit' ), |
|
308 | - 'discount' => $this->item_discount, |
|
309 | - 'subtotal' => $this->get_sub_total( 'edit' ), |
|
310 | - 'price' => $this->get_sub_total( 'edit' ) + $this->item_tax - $this->item_discount, |
|
311 | - 'meta' => $this->get_item_meta( 'edit' ), |
|
312 | - ); |
|
313 | - |
|
314 | - } |
|
91 | + * Get the item name. |
|
92 | + * |
|
93 | + * @since 1.0.19 |
|
94 | + * @param string $context View or edit context. |
|
95 | + * @return string |
|
96 | + */ |
|
97 | + public function get_name( $context = 'view' ) { |
|
98 | + $name = parent::get_name( $context ); |
|
99 | + return $name . wpinv_get_item_suffix( $this ); |
|
100 | + } |
|
101 | + |
|
102 | + /** |
|
103 | + * Get the item name without a suffix. |
|
104 | + * |
|
105 | + * @since 1.0.19 |
|
106 | + * @param string $context View or edit context. |
|
107 | + * @return string |
|
108 | + */ |
|
109 | + public function get_raw_name( $context = 'view' ) { |
|
110 | + return parent::get_name( $context ); |
|
111 | + } |
|
112 | + |
|
113 | + /** |
|
114 | + * Get the item description. |
|
115 | + * |
|
116 | + * @since 1.0.19 |
|
117 | + * @param string $context View or edit context. |
|
118 | + * @return string |
|
119 | + */ |
|
120 | + public function get_description( $context = 'view' ) { |
|
121 | + |
|
122 | + if ( isset( $this->custom_description ) ) { |
|
123 | + return $this->custom_description; |
|
124 | + } |
|
125 | + |
|
126 | + return parent::get_description( $context ); |
|
127 | + } |
|
128 | + |
|
129 | + /** |
|
130 | + * Returns the sub total. |
|
131 | + * |
|
132 | + * @since 1.0.19 |
|
133 | + * @param string $context View or edit context. |
|
134 | + * @return float |
|
135 | + */ |
|
136 | + public function get_sub_total( $context = 'view' ) { |
|
137 | + return $this->get_quantity( $context ) * $this->get_initial_price( $context ); |
|
138 | + } |
|
139 | + |
|
140 | + /** |
|
141 | + * Returns the recurring sub total. |
|
142 | + * |
|
143 | + * @since 1.0.19 |
|
144 | + * @param string $context View or edit context. |
|
145 | + * @return float |
|
146 | + */ |
|
147 | + public function get_recurring_sub_total( $context = 'view' ) { |
|
148 | + |
|
149 | + if ( $this->is_recurring() ) { |
|
150 | + return $this->get_quantity( $context ) * $this->get_price( $context ); |
|
151 | + } |
|
152 | + |
|
153 | + return 0; |
|
154 | + } |
|
155 | + |
|
156 | + /** |
|
157 | + * @deprecated |
|
158 | + */ |
|
159 | + public function get_qantity( $context = 'view' ) { |
|
160 | + return $this->get_quantity( $context ); |
|
161 | + } |
|
162 | + |
|
163 | + /** |
|
164 | + * Get the item quantity. |
|
165 | + * |
|
166 | + * @since 1.0.19 |
|
167 | + * @param string $context View or edit context. |
|
168 | + * @return float |
|
169 | + */ |
|
170 | + public function get_quantity( $context = 'view' ) { |
|
171 | + $quantity = (float) $this->quantity; |
|
172 | + |
|
173 | + if ( 'view' == $context ) { |
|
174 | + return apply_filters( 'getpaid_payment_form_item_quantity', $quantity, $this ); |
|
175 | + } |
|
176 | + |
|
177 | + return $quantity; |
|
178 | + |
|
179 | + } |
|
180 | + |
|
181 | + /** |
|
182 | + * Get the item meta data. |
|
183 | + * |
|
184 | + * @since 1.0.19 |
|
185 | + * @param string $context View or edit context. |
|
186 | + * @return meta |
|
187 | + */ |
|
188 | + public function get_item_meta( $context = 'view' ) { |
|
189 | + $meta = $this->meta; |
|
190 | + |
|
191 | + if ( 'view' == $context ) { |
|
192 | + return apply_filters( 'getpaid_payment_form_item_meta', $meta, $this ); |
|
193 | + } |
|
194 | + |
|
195 | + return $meta; |
|
196 | + |
|
197 | + } |
|
198 | + |
|
199 | + /** |
|
200 | + * Returns whether or not customers can update the item quantity. |
|
201 | + * |
|
202 | + * @since 1.0.19 |
|
203 | + * @param string $context View or edit context. |
|
204 | + * @return bool |
|
205 | + */ |
|
206 | + public function get_allow_quantities( $context = 'view' ) { |
|
207 | + $allow_quantities = (bool) $this->allow_quantities; |
|
208 | + |
|
209 | + if ( 'view' == $context ) { |
|
210 | + return apply_filters( 'getpaid_payment_form_item_allow_quantities', $allow_quantities, $this ); |
|
211 | + } |
|
212 | + |
|
213 | + return $allow_quantities; |
|
214 | + |
|
215 | + } |
|
216 | + |
|
217 | + /** |
|
218 | + * Returns whether or not the item is required. |
|
219 | + * |
|
220 | + * @since 1.0.19 |
|
221 | + * @param string $context View or edit context. |
|
222 | + * @return bool |
|
223 | + */ |
|
224 | + public function get_is_required( $context = 'view' ) { |
|
225 | + $is_required = (bool) $this->is_required; |
|
226 | + |
|
227 | + if ( 'view' == $context ) { |
|
228 | + return apply_filters( 'getpaid_payment_form_item_is_required', $is_required, $this ); |
|
229 | + } |
|
230 | + |
|
231 | + return $is_required; |
|
232 | + |
|
233 | + } |
|
234 | + |
|
235 | + /** |
|
236 | + * Prepares form data for use. |
|
237 | + * |
|
238 | + * @since 1.0.19 |
|
239 | + * @return array |
|
240 | + */ |
|
241 | + public function prepare_data_for_use( $required = null ) { |
|
242 | + |
|
243 | + $required = is_null( $required ) ? $this->is_required() : $required; |
|
244 | + return array( |
|
245 | + 'title' => strip_tags( $this->get_name() ), |
|
246 | + 'id' => $this->get_id(), |
|
247 | + 'price' => $this->get_price(), |
|
248 | + 'recurring' => $this->is_recurring(), |
|
249 | + 'description' => $this->get_description(), |
|
250 | + 'allow_quantities' => $this->allows_quantities(), |
|
251 | + 'required' => $required, |
|
252 | + ); |
|
253 | + |
|
254 | + } |
|
255 | + |
|
256 | + /** |
|
257 | + * Prepares form data for ajax use. |
|
258 | + * |
|
259 | + * @since 1.0.19 |
|
260 | + * @return array |
|
261 | + */ |
|
262 | + public function prepare_data_for_invoice_edit_ajax( $currency = '', $is_renewal = false ) { |
|
263 | + |
|
264 | + $description = getpaid_item_recurring_price_help_text( $this, $currency ); |
|
265 | + |
|
266 | + if ( $description ) { |
|
267 | + $description = "<div class='getpaid-subscription-help-text'>$description</div>"; |
|
268 | + } |
|
269 | + |
|
270 | + $price = ! $is_renewal ? $this->get_price() : $this->get_recurring_price(); |
|
271 | + $subtotal = ! $is_renewal ? $this->get_sub_total() : $this->get_recurring_sub_total(); |
|
272 | + return array( |
|
273 | + 'id' => $this->get_id(), |
|
274 | + 'texts' => array( |
|
275 | + 'item-name' => sanitize_text_field( $this->get_name() ), |
|
276 | + 'item-description' => wp_kses_post( $this->get_description() ) . $description, |
|
277 | + 'item-quantity' => floatval( $this->get_quantity() ), |
|
278 | + 'item-price' => wpinv_price( $price, $currency ), |
|
279 | + 'item-total' => wpinv_price( $subtotal, $currency ), |
|
280 | + ), |
|
281 | + 'inputs' => array( |
|
282 | + 'item-id' => $this->get_id(), |
|
283 | + 'item-name' => sanitize_text_field( $this->get_name() ), |
|
284 | + 'item-description' => wp_kses_post( $this->get_description() ), |
|
285 | + 'item-quantity' => floatval( $this->get_quantity() ), |
|
286 | + 'item-price' => $price, |
|
287 | + ) |
|
288 | + ); |
|
289 | + |
|
290 | + } |
|
291 | + |
|
292 | + /** |
|
293 | + * Prepares form data for saving (cart_details). |
|
294 | + * |
|
295 | + * @since 1.0.19 |
|
296 | + * @return array |
|
297 | + */ |
|
298 | + public function prepare_data_for_saving() { |
|
299 | + |
|
300 | + return array( |
|
301 | + 'post_id' => $this->invoice_id, |
|
302 | + 'item_id' => $this->get_id(), |
|
303 | + 'item_name' => sanitize_text_field( $this->get_raw_name( 'edit' ) ), |
|
304 | + 'item_description' => $this->get_description( 'edit' ), |
|
305 | + 'tax' => $this->item_tax, |
|
306 | + 'item_price' => $this->get_price( 'edit' ), |
|
307 | + 'quantity' => (float) $this->get_quantity( 'edit' ), |
|
308 | + 'discount' => $this->item_discount, |
|
309 | + 'subtotal' => $this->get_sub_total( 'edit' ), |
|
310 | + 'price' => $this->get_sub_total( 'edit' ) + $this->item_tax - $this->item_discount, |
|
311 | + 'meta' => $this->get_item_meta( 'edit' ), |
|
312 | + ); |
|
313 | + |
|
314 | + } |
|
315 | 315 | |
316 | 316 | /* |
317 | 317 | |-------------------------------------------------------------------------- |
@@ -323,70 +323,70 @@ discard block |
||
323 | 323 | | object. |
324 | 324 | */ |
325 | 325 | |
326 | - /** |
|
327 | - * Set the item qantity. |
|
328 | - * |
|
329 | - * @since 1.0.19 |
|
330 | - * @param float $quantity The item quantity. |
|
331 | - */ |
|
332 | - public function set_quantity( $quantity ) { |
|
333 | - |
|
334 | - if ( ! is_numeric( $quantity ) ) { |
|
335 | - $quantity = 1; |
|
336 | - } |
|
337 | - |
|
338 | - $this->quantity = (float) $quantity; |
|
339 | - |
|
340 | - } |
|
341 | - |
|
342 | - /** |
|
343 | - * Set the item meta data. |
|
344 | - * |
|
345 | - * @since 1.0.19 |
|
346 | - * @param array $meta The item meta data. |
|
347 | - */ |
|
348 | - public function set_item_meta( $meta ) { |
|
349 | - $this->meta = maybe_unserialize( $meta ); |
|
350 | - } |
|
351 | - |
|
352 | - /** |
|
353 | - * Set whether or not the quantities are allowed. |
|
354 | - * |
|
355 | - * @since 1.0.19 |
|
356 | - * @param bool $allow_quantities |
|
357 | - */ |
|
358 | - public function set_allow_quantities( $allow_quantities ) { |
|
359 | - $this->allow_quantities = (bool) $allow_quantities; |
|
360 | - } |
|
361 | - |
|
362 | - /** |
|
363 | - * Set whether or not the item is required. |
|
364 | - * |
|
365 | - * @since 1.0.19 |
|
366 | - * @param bool $is_required |
|
367 | - */ |
|
368 | - public function set_is_required( $is_required ) { |
|
369 | - $this->is_required = (bool) $is_required; |
|
370 | - } |
|
371 | - |
|
372 | - /** |
|
373 | - * Sets the custom item description. |
|
374 | - * |
|
375 | - * @since 1.0.19 |
|
376 | - * @param string $description |
|
377 | - */ |
|
378 | - public function set_custom_description( $description ) { |
|
379 | - $this->custom_description = $description; |
|
380 | - } |
|
326 | + /** |
|
327 | + * Set the item qantity. |
|
328 | + * |
|
329 | + * @since 1.0.19 |
|
330 | + * @param float $quantity The item quantity. |
|
331 | + */ |
|
332 | + public function set_quantity( $quantity ) { |
|
333 | + |
|
334 | + if ( ! is_numeric( $quantity ) ) { |
|
335 | + $quantity = 1; |
|
336 | + } |
|
337 | + |
|
338 | + $this->quantity = (float) $quantity; |
|
339 | + |
|
340 | + } |
|
341 | + |
|
342 | + /** |
|
343 | + * Set the item meta data. |
|
344 | + * |
|
345 | + * @since 1.0.19 |
|
346 | + * @param array $meta The item meta data. |
|
347 | + */ |
|
348 | + public function set_item_meta( $meta ) { |
|
349 | + $this->meta = maybe_unserialize( $meta ); |
|
350 | + } |
|
351 | + |
|
352 | + /** |
|
353 | + * Set whether or not the quantities are allowed. |
|
354 | + * |
|
355 | + * @since 1.0.19 |
|
356 | + * @param bool $allow_quantities |
|
357 | + */ |
|
358 | + public function set_allow_quantities( $allow_quantities ) { |
|
359 | + $this->allow_quantities = (bool) $allow_quantities; |
|
360 | + } |
|
361 | + |
|
362 | + /** |
|
363 | + * Set whether or not the item is required. |
|
364 | + * |
|
365 | + * @since 1.0.19 |
|
366 | + * @param bool $is_required |
|
367 | + */ |
|
368 | + public function set_is_required( $is_required ) { |
|
369 | + $this->is_required = (bool) $is_required; |
|
370 | + } |
|
371 | + |
|
372 | + /** |
|
373 | + * Sets the custom item description. |
|
374 | + * |
|
375 | + * @since 1.0.19 |
|
376 | + * @param string $description |
|
377 | + */ |
|
378 | + public function set_custom_description( $description ) { |
|
379 | + $this->custom_description = $description; |
|
380 | + } |
|
381 | 381 | |
382 | 382 | /** |
383 | 383 | * We do not want to save items to the database. |
384 | 384 | * |
385 | - * @return int item id |
|
385 | + * @return int item id |
|
386 | 386 | */ |
387 | 387 | public function save( $data = array() ) { |
388 | 388 | return $this->get_id(); |
389 | - } |
|
389 | + } |
|
390 | 390 | |
391 | 391 | /* |
392 | 392 | |-------------------------------------------------------------------------- |
@@ -398,23 +398,23 @@ discard block |
||
398 | 398 | */ |
399 | 399 | |
400 | 400 | /** |
401 | - * Checks whether the item has enabled dynamic pricing. |
|
402 | - * |
|
403 | - * @since 1.0.19 |
|
404 | - * @return bool |
|
405 | - */ |
|
406 | - public function is_required() { |
|
401 | + * Checks whether the item has enabled dynamic pricing. |
|
402 | + * |
|
403 | + * @since 1.0.19 |
|
404 | + * @return bool |
|
405 | + */ |
|
406 | + public function is_required() { |
|
407 | 407 | return (bool) $this->get_is_required(); |
408 | - } |
|
409 | - |
|
410 | - /** |
|
411 | - * Checks whether users can edit the quantities. |
|
412 | - * |
|
413 | - * @since 1.0.19 |
|
414 | - * @return bool |
|
415 | - */ |
|
416 | - public function allows_quantities() { |
|
408 | + } |
|
409 | + |
|
410 | + /** |
|
411 | + * Checks whether users can edit the quantities. |
|
412 | + * |
|
413 | + * @since 1.0.19 |
|
414 | + * @return bool |
|
415 | + */ |
|
416 | + public function allows_quantities() { |
|
417 | 417 | return (bool) $this->get_allow_quantities(); |
418 | - } |
|
418 | + } |
|
419 | 419 | |
420 | 420 | } |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
2 | +if (!defined('ABSPATH')) { |
|
3 | 3 | exit; |
4 | 4 | } |
5 | 5 | |
@@ -94,9 +94,9 @@ discard block |
||
94 | 94 | * @param string $context View or edit context. |
95 | 95 | * @return string |
96 | 96 | */ |
97 | - public function get_name( $context = 'view' ) { |
|
98 | - $name = parent::get_name( $context ); |
|
99 | - return $name . wpinv_get_item_suffix( $this ); |
|
97 | + public function get_name($context = 'view') { |
|
98 | + $name = parent::get_name($context); |
|
99 | + return $name . wpinv_get_item_suffix($this); |
|
100 | 100 | } |
101 | 101 | |
102 | 102 | /** |
@@ -106,8 +106,8 @@ discard block |
||
106 | 106 | * @param string $context View or edit context. |
107 | 107 | * @return string |
108 | 108 | */ |
109 | - public function get_raw_name( $context = 'view' ) { |
|
110 | - return parent::get_name( $context ); |
|
109 | + public function get_raw_name($context = 'view') { |
|
110 | + return parent::get_name($context); |
|
111 | 111 | } |
112 | 112 | |
113 | 113 | /** |
@@ -117,13 +117,13 @@ discard block |
||
117 | 117 | * @param string $context View or edit context. |
118 | 118 | * @return string |
119 | 119 | */ |
120 | - public function get_description( $context = 'view' ) { |
|
120 | + public function get_description($context = 'view') { |
|
121 | 121 | |
122 | - if ( isset( $this->custom_description ) ) { |
|
122 | + if (isset($this->custom_description)) { |
|
123 | 123 | return $this->custom_description; |
124 | 124 | } |
125 | 125 | |
126 | - return parent::get_description( $context ); |
|
126 | + return parent::get_description($context); |
|
127 | 127 | } |
128 | 128 | |
129 | 129 | /** |
@@ -133,8 +133,8 @@ discard block |
||
133 | 133 | * @param string $context View or edit context. |
134 | 134 | * @return float |
135 | 135 | */ |
136 | - public function get_sub_total( $context = 'view' ) { |
|
137 | - return $this->get_quantity( $context ) * $this->get_initial_price( $context ); |
|
136 | + public function get_sub_total($context = 'view') { |
|
137 | + return $this->get_quantity($context) * $this->get_initial_price($context); |
|
138 | 138 | } |
139 | 139 | |
140 | 140 | /** |
@@ -144,10 +144,10 @@ discard block |
||
144 | 144 | * @param string $context View or edit context. |
145 | 145 | * @return float |
146 | 146 | */ |
147 | - public function get_recurring_sub_total( $context = 'view' ) { |
|
147 | + public function get_recurring_sub_total($context = 'view') { |
|
148 | 148 | |
149 | - if ( $this->is_recurring() ) { |
|
150 | - return $this->get_quantity( $context ) * $this->get_price( $context ); |
|
149 | + if ($this->is_recurring()) { |
|
150 | + return $this->get_quantity($context) * $this->get_price($context); |
|
151 | 151 | } |
152 | 152 | |
153 | 153 | return 0; |
@@ -156,8 +156,8 @@ discard block |
||
156 | 156 | /** |
157 | 157 | * @deprecated |
158 | 158 | */ |
159 | - public function get_qantity( $context = 'view' ) { |
|
160 | - return $this->get_quantity( $context ); |
|
159 | + public function get_qantity($context = 'view') { |
|
160 | + return $this->get_quantity($context); |
|
161 | 161 | } |
162 | 162 | |
163 | 163 | /** |
@@ -167,11 +167,11 @@ discard block |
||
167 | 167 | * @param string $context View or edit context. |
168 | 168 | * @return float |
169 | 169 | */ |
170 | - public function get_quantity( $context = 'view' ) { |
|
170 | + public function get_quantity($context = 'view') { |
|
171 | 171 | $quantity = (float) $this->quantity; |
172 | 172 | |
173 | - if ( 'view' == $context ) { |
|
174 | - return apply_filters( 'getpaid_payment_form_item_quantity', $quantity, $this ); |
|
173 | + if ('view' == $context) { |
|
174 | + return apply_filters('getpaid_payment_form_item_quantity', $quantity, $this); |
|
175 | 175 | } |
176 | 176 | |
177 | 177 | return $quantity; |
@@ -185,11 +185,11 @@ discard block |
||
185 | 185 | * @param string $context View or edit context. |
186 | 186 | * @return meta |
187 | 187 | */ |
188 | - public function get_item_meta( $context = 'view' ) { |
|
188 | + public function get_item_meta($context = 'view') { |
|
189 | 189 | $meta = $this->meta; |
190 | 190 | |
191 | - if ( 'view' == $context ) { |
|
192 | - return apply_filters( 'getpaid_payment_form_item_meta', $meta, $this ); |
|
191 | + if ('view' == $context) { |
|
192 | + return apply_filters('getpaid_payment_form_item_meta', $meta, $this); |
|
193 | 193 | } |
194 | 194 | |
195 | 195 | return $meta; |
@@ -203,11 +203,11 @@ discard block |
||
203 | 203 | * @param string $context View or edit context. |
204 | 204 | * @return bool |
205 | 205 | */ |
206 | - public function get_allow_quantities( $context = 'view' ) { |
|
206 | + public function get_allow_quantities($context = 'view') { |
|
207 | 207 | $allow_quantities = (bool) $this->allow_quantities; |
208 | 208 | |
209 | - if ( 'view' == $context ) { |
|
210 | - return apply_filters( 'getpaid_payment_form_item_allow_quantities', $allow_quantities, $this ); |
|
209 | + if ('view' == $context) { |
|
210 | + return apply_filters('getpaid_payment_form_item_allow_quantities', $allow_quantities, $this); |
|
211 | 211 | } |
212 | 212 | |
213 | 213 | return $allow_quantities; |
@@ -221,11 +221,11 @@ discard block |
||
221 | 221 | * @param string $context View or edit context. |
222 | 222 | * @return bool |
223 | 223 | */ |
224 | - public function get_is_required( $context = 'view' ) { |
|
224 | + public function get_is_required($context = 'view') { |
|
225 | 225 | $is_required = (bool) $this->is_required; |
226 | 226 | |
227 | - if ( 'view' == $context ) { |
|
228 | - return apply_filters( 'getpaid_payment_form_item_is_required', $is_required, $this ); |
|
227 | + if ('view' == $context) { |
|
228 | + return apply_filters('getpaid_payment_form_item_is_required', $is_required, $this); |
|
229 | 229 | } |
230 | 230 | |
231 | 231 | return $is_required; |
@@ -238,11 +238,11 @@ discard block |
||
238 | 238 | * @since 1.0.19 |
239 | 239 | * @return array |
240 | 240 | */ |
241 | - public function prepare_data_for_use( $required = null ) { |
|
241 | + public function prepare_data_for_use($required = null) { |
|
242 | 242 | |
243 | - $required = is_null( $required ) ? $this->is_required() : $required; |
|
243 | + $required = is_null($required) ? $this->is_required() : $required; |
|
244 | 244 | return array( |
245 | - 'title' => strip_tags( $this->get_name() ), |
|
245 | + 'title' => strip_tags($this->get_name()), |
|
246 | 246 | 'id' => $this->get_id(), |
247 | 247 | 'price' => $this->get_price(), |
248 | 248 | 'recurring' => $this->is_recurring(), |
@@ -259,30 +259,30 @@ discard block |
||
259 | 259 | * @since 1.0.19 |
260 | 260 | * @return array |
261 | 261 | */ |
262 | - public function prepare_data_for_invoice_edit_ajax( $currency = '', $is_renewal = false ) { |
|
262 | + public function prepare_data_for_invoice_edit_ajax($currency = '', $is_renewal = false) { |
|
263 | 263 | |
264 | - $description = getpaid_item_recurring_price_help_text( $this, $currency ); |
|
264 | + $description = getpaid_item_recurring_price_help_text($this, $currency); |
|
265 | 265 | |
266 | - if ( $description ) { |
|
266 | + if ($description) { |
|
267 | 267 | $description = "<div class='getpaid-subscription-help-text'>$description</div>"; |
268 | 268 | } |
269 | 269 | |
270 | - $price = ! $is_renewal ? $this->get_price() : $this->get_recurring_price(); |
|
271 | - $subtotal = ! $is_renewal ? $this->get_sub_total() : $this->get_recurring_sub_total(); |
|
270 | + $price = !$is_renewal ? $this->get_price() : $this->get_recurring_price(); |
|
271 | + $subtotal = !$is_renewal ? $this->get_sub_total() : $this->get_recurring_sub_total(); |
|
272 | 272 | return array( |
273 | 273 | 'id' => $this->get_id(), |
274 | 274 | 'texts' => array( |
275 | - 'item-name' => sanitize_text_field( $this->get_name() ), |
|
276 | - 'item-description' => wp_kses_post( $this->get_description() ) . $description, |
|
277 | - 'item-quantity' => floatval( $this->get_quantity() ), |
|
278 | - 'item-price' => wpinv_price( $price, $currency ), |
|
279 | - 'item-total' => wpinv_price( $subtotal, $currency ), |
|
275 | + 'item-name' => sanitize_text_field($this->get_name()), |
|
276 | + 'item-description' => wp_kses_post($this->get_description()) . $description, |
|
277 | + 'item-quantity' => floatval($this->get_quantity()), |
|
278 | + 'item-price' => wpinv_price($price, $currency), |
|
279 | + 'item-total' => wpinv_price($subtotal, $currency), |
|
280 | 280 | ), |
281 | 281 | 'inputs' => array( |
282 | 282 | 'item-id' => $this->get_id(), |
283 | - 'item-name' => sanitize_text_field( $this->get_name() ), |
|
284 | - 'item-description' => wp_kses_post( $this->get_description() ), |
|
285 | - 'item-quantity' => floatval( $this->get_quantity() ), |
|
283 | + 'item-name' => sanitize_text_field($this->get_name()), |
|
284 | + 'item-description' => wp_kses_post($this->get_description()), |
|
285 | + 'item-quantity' => floatval($this->get_quantity()), |
|
286 | 286 | 'item-price' => $price, |
287 | 287 | ) |
288 | 288 | ); |
@@ -300,15 +300,15 @@ discard block |
||
300 | 300 | return array( |
301 | 301 | 'post_id' => $this->invoice_id, |
302 | 302 | 'item_id' => $this->get_id(), |
303 | - 'item_name' => sanitize_text_field( $this->get_raw_name( 'edit' ) ), |
|
304 | - 'item_description' => $this->get_description( 'edit' ), |
|
303 | + 'item_name' => sanitize_text_field($this->get_raw_name('edit')), |
|
304 | + 'item_description' => $this->get_description('edit'), |
|
305 | 305 | 'tax' => $this->item_tax, |
306 | - 'item_price' => $this->get_price( 'edit' ), |
|
307 | - 'quantity' => (float) $this->get_quantity( 'edit' ), |
|
306 | + 'item_price' => $this->get_price('edit'), |
|
307 | + 'quantity' => (float) $this->get_quantity('edit'), |
|
308 | 308 | 'discount' => $this->item_discount, |
309 | - 'subtotal' => $this->get_sub_total( 'edit' ), |
|
310 | - 'price' => $this->get_sub_total( 'edit' ) + $this->item_tax - $this->item_discount, |
|
311 | - 'meta' => $this->get_item_meta( 'edit' ), |
|
309 | + 'subtotal' => $this->get_sub_total('edit'), |
|
310 | + 'price' => $this->get_sub_total('edit') + $this->item_tax - $this->item_discount, |
|
311 | + 'meta' => $this->get_item_meta('edit'), |
|
312 | 312 | ); |
313 | 313 | |
314 | 314 | } |
@@ -329,9 +329,9 @@ discard block |
||
329 | 329 | * @since 1.0.19 |
330 | 330 | * @param float $quantity The item quantity. |
331 | 331 | */ |
332 | - public function set_quantity( $quantity ) { |
|
332 | + public function set_quantity($quantity) { |
|
333 | 333 | |
334 | - if ( ! is_numeric( $quantity ) ) { |
|
334 | + if (!is_numeric($quantity)) { |
|
335 | 335 | $quantity = 1; |
336 | 336 | } |
337 | 337 | |
@@ -345,8 +345,8 @@ discard block |
||
345 | 345 | * @since 1.0.19 |
346 | 346 | * @param array $meta The item meta data. |
347 | 347 | */ |
348 | - public function set_item_meta( $meta ) { |
|
349 | - $this->meta = maybe_unserialize( $meta ); |
|
348 | + public function set_item_meta($meta) { |
|
349 | + $this->meta = maybe_unserialize($meta); |
|
350 | 350 | } |
351 | 351 | |
352 | 352 | /** |
@@ -355,7 +355,7 @@ discard block |
||
355 | 355 | * @since 1.0.19 |
356 | 356 | * @param bool $allow_quantities |
357 | 357 | */ |
358 | - public function set_allow_quantities( $allow_quantities ) { |
|
358 | + public function set_allow_quantities($allow_quantities) { |
|
359 | 359 | $this->allow_quantities = (bool) $allow_quantities; |
360 | 360 | } |
361 | 361 | |
@@ -365,7 +365,7 @@ discard block |
||
365 | 365 | * @since 1.0.19 |
366 | 366 | * @param bool $is_required |
367 | 367 | */ |
368 | - public function set_is_required( $is_required ) { |
|
368 | + public function set_is_required($is_required) { |
|
369 | 369 | $this->is_required = (bool) $is_required; |
370 | 370 | } |
371 | 371 | |
@@ -375,7 +375,7 @@ discard block |
||
375 | 375 | * @since 1.0.19 |
376 | 376 | * @param string $description |
377 | 377 | */ |
378 | - public function set_custom_description( $description ) { |
|
378 | + public function set_custom_description($description) { |
|
379 | 379 | $this->custom_description = $description; |
380 | 380 | } |
381 | 381 | |
@@ -384,7 +384,7 @@ discard block |
||
384 | 384 | * |
385 | 385 | * @return int item id |
386 | 386 | */ |
387 | - public function save( $data = array() ) { |
|
387 | + public function save($data = array()) { |
|
388 | 388 | return $this->get_id(); |
389 | 389 | } |
390 | 390 |
@@ -7,31 +7,31 @@ discard block |
||
7 | 7 | * @version 1.0.19 |
8 | 8 | */ |
9 | 9 | |
10 | -defined( 'ABSPATH' ) || exit; |
|
10 | +defined('ABSPATH') || exit; |
|
11 | 11 | |
12 | 12 | ?> |
13 | 13 | |
14 | 14 | <div class='form-group'> |
15 | 15 | <label class="d-block"> |
16 | - <span><?php esc_html_e( 'Field Label', 'invoicing' ); ?></span> |
|
16 | + <span><?php esc_html_e('Field Label', 'invoicing'); ?></span> |
|
17 | 17 | <input v-model="active_form_element.label" class="form-control" type="text"/> |
18 | 18 | </label> |
19 | 19 | </div> |
20 | 20 | |
21 | 21 | <div class='form-group'> |
22 | 22 | <label class="d-block"> |
23 | - <span><?php esc_html_e( 'Max File Number', 'invoicing' ); ?></span> |
|
23 | + <span><?php esc_html_e('Max File Number', 'invoicing'); ?></span> |
|
24 | 24 | <input v-model="active_form_element.max_file_num" class="form-control" min="1" type="number" /> |
25 | - <small class="form-text text-muted"><?php _e( 'How many files can be uploaded?', 'invoicing' ); ?></small> |
|
25 | + <small class="form-text text-muted"><?php _e('How many files can be uploaded?', 'invoicing'); ?></small> |
|
26 | 26 | </label> |
27 | 27 | </div> |
28 | 28 | |
29 | 29 | <div class='form-group'> |
30 | 30 | <label class="d-block"> |
31 | - <span><?php esc_html_e( 'Allowed File types', 'invoicing' ); ?></span> |
|
31 | + <span><?php esc_html_e('Allowed File types', 'invoicing'); ?></span> |
|
32 | 32 | <gpselect2 class='form-control custom-select' v-model='active_form_element.file_types' multiple> |
33 | - <?php foreach ( getpaid_get_allowed_mime_types() as $ext_regex => $mime_type ) : ?> |
|
34 | - <option value="<?php echo esc_attr( $ext_regex ); ?>"><?php echo esc_html( "$mime_type" ) ?></option> |
|
33 | + <?php foreach (getpaid_get_allowed_mime_types() as $ext_regex => $mime_type) : ?> |
|
34 | + <option value="<?php echo esc_attr($ext_regex); ?>"><?php echo esc_html("$mime_type") ?></option> |
|
35 | 35 | <?php endforeach; ?> |
36 | 36 | </gpselect2> |
37 | 37 | </label> |
@@ -39,9 +39,9 @@ discard block |
||
39 | 39 | |
40 | 40 | <div class='form-group'> |
41 | 41 | <label class="d-block"> |
42 | - <span><?php esc_html_e( 'Help Text', 'invoicing' ); ?></span> |
|
43 | - <textarea placeholder='<?php esc_attr_e( 'Add some help text for this field', 'invoicing' ); ?>' v-model='active_form_element.description' class='form-control' rows='3'></textarea> |
|
44 | - <small class="form-text text-muted"><?php _e( 'HTML is allowed', 'invoicing' ); ?></small> |
|
42 | + <span><?php esc_html_e('Help Text', 'invoicing'); ?></span> |
|
43 | + <textarea placeholder='<?php esc_attr_e('Add some help text for this field', 'invoicing'); ?>' v-model='active_form_element.description' class='form-control' rows='3'></textarea> |
|
44 | + <small class="form-text text-muted"><?php _e('HTML is allowed', 'invoicing'); ?></small> |
|
45 | 45 | </label> |
46 | 46 | </div> |
47 | 47 | |
@@ -49,20 +49,20 @@ discard block |
||
49 | 49 | |
50 | 50 | <div class='form-group form-check'> |
51 | 51 | <input :id="active_form_element.id + '_edit'" v-model='active_form_element.required' type='checkbox' class='form-check-input' /> |
52 | - <label class='form-check-label' :for="active_form_element.id + '_edit'"><?php esc_html_e( 'Is this field required?', 'invoicing' ); ?></label> |
|
52 | + <label class='form-check-label' :for="active_form_element.id + '_edit'"><?php esc_html_e('Is this field required?', 'invoicing'); ?></label> |
|
53 | 53 | </div> |
54 | 54 | |
55 | 55 | <div class='form-group form-check'> |
56 | 56 | <input :id="active_form_element.id + '_add_meta'" v-model='active_form_element.add_meta' type='checkbox' class='form-check-input' /> |
57 | - <label class='form-check-label' :for="active_form_element.id + '_add_meta'"><?php esc_html_e( 'Show this field in receipts and emails?', 'invoicing' ); ?></label> |
|
57 | + <label class='form-check-label' :for="active_form_element.id + '_add_meta'"><?php esc_html_e('Show this field in receipts and emails?', 'invoicing'); ?></label> |
|
58 | 58 | </div> |
59 | 59 | |
60 | 60 | <hr class='featurette-divider mt-4'> |
61 | 61 | |
62 | 62 | <div class='form-group'> |
63 | 63 | <label class="d-block"> |
64 | - <span><?php esc_html_e( 'Email Merge Tag', 'invoicing' ); ?></span> |
|
64 | + <span><?php esc_html_e('Email Merge Tag', 'invoicing'); ?></span> |
|
65 | 65 | <input :value='active_form_element.label | formatMergeTag' class='form-control bg-white' type="text" readonly onclick="this.select()" /> |
66 | - <span class="form-text text-muted"><?php esc_html_e( 'You can use this merge tag in notification emails', 'invoicing' ); ?></span> |
|
66 | + <span class="form-text text-muted"><?php esc_html_e('You can use this merge tag in notification emails', 'invoicing'); ?></span> |
|
67 | 67 | </label> |
68 | 68 | </div> |
@@ -7,15 +7,15 @@ |
||
7 | 7 | * @version 1.0.19 |
8 | 8 | */ |
9 | 9 | |
10 | -defined( 'ABSPATH' ) || exit; |
|
10 | +defined('ABSPATH') || exit; |
|
11 | 11 | |
12 | 12 | ?> |
13 | 13 | |
14 | 14 | <label><span v-html="form_element.label"></span></label> |
15 | 15 | <div class="d-flex w-100 flex-column align-items-center justify-content-center p-2" style="height: 200px; border: 3px dashed rgb(136, 136, 136); cursor: pointer;"> |
16 | 16 | <div class="h5 text-dark"> |
17 | - <span v-if="form_element.max_file_num > 1"><?php _e( 'Drag files to this area or click to upload', 'invoicing' ); ?></span> |
|
18 | - <span v-if="form_element.max_file_num < 2"><?php _e( 'Drag your file to this area or click to upload', 'invoicing' ); ?></span> |
|
17 | + <span v-if="form_element.max_file_num > 1"><?php _e('Drag files to this area or click to upload', 'invoicing'); ?></span> |
|
18 | + <span v-if="form_element.max_file_num < 2"><?php _e('Drag your file to this area or click to upload', 'invoicing'); ?></span> |
|
19 | 19 | </div> |
20 | 20 | <small v-if='form_element.description' class='form-text text-muted' v-html='form_element.description'></small> |
21 | 21 | </div> |
@@ -21,22 +21,22 @@ |
||
21 | 21 | |
22 | 22 | foreach ( $file_types as $file_type ) { |
23 | 23 | |
24 | - if ( isset( $all_types[ $file_type ] ) ) { |
|
25 | - $types[] = $all_types[ $file_type ]; |
|
26 | - $file_type = explode( '|', $file_type ); |
|
24 | + if ( isset( $all_types[ $file_type ] ) ) { |
|
25 | + $types[] = $all_types[ $file_type ]; |
|
26 | + $file_type = explode( '|', $file_type ); |
|
27 | 27 | |
28 | - foreach ( $file_type as $type ) { |
|
29 | - $type = trim( $type ); |
|
30 | - $types[] = ".$type"; |
|
31 | - $_types[] = $type; |
|
32 | - } |
|
28 | + foreach ( $file_type as $type ) { |
|
29 | + $type = trim( $type ); |
|
30 | + $types[] = ".$type"; |
|
31 | + $_types[] = $type; |
|
32 | + } |
|
33 | 33 | |
34 | - } |
|
34 | + } |
|
35 | 35 | |
36 | 36 | } |
37 | 37 | |
38 | 38 | if ( ! empty( $required ) ) { |
39 | - $label .= "<span class='text-danger'> *</span>"; |
|
39 | + $label .= "<span class='text-danger'> *</span>"; |
|
40 | 40 | } |
41 | 41 | |
42 | 42 | ?> |
@@ -7,26 +7,26 @@ discard block |
||
7 | 7 | * @version 1.0.19 |
8 | 8 | */ |
9 | 9 | |
10 | -defined( 'ABSPATH' ) || exit; |
|
11 | - |
|
12 | -$label = empty( $label ) ? '' : wp_kses_post( $label ); |
|
13 | -$label_class = sanitize_key( preg_replace( '/[^A-Za-z0-9_-]/', '-', $label ) ); |
|
14 | -$id = esc_attr( $id ); |
|
15 | -$_id = $id . uniqid( '_' ); |
|
16 | -$max_file_num = empty( $max_file_num ) ? 1 : absint( $max_file_num ); |
|
17 | -$file_types = empty( $file_types ) ? array( 'jpg|jpeg|jpe', 'gif', 'png' ) : $file_types; |
|
10 | +defined('ABSPATH') || exit; |
|
11 | + |
|
12 | +$label = empty($label) ? '' : wp_kses_post($label); |
|
13 | +$label_class = sanitize_key(preg_replace('/[^A-Za-z0-9_-]/', '-', $label)); |
|
14 | +$id = esc_attr($id); |
|
15 | +$_id = $id . uniqid('_'); |
|
16 | +$max_file_num = empty($max_file_num) ? 1 : absint($max_file_num); |
|
17 | +$file_types = empty($file_types) ? array('jpg|jpeg|jpe', 'gif', 'png') : $file_types; |
|
18 | 18 | $all_types = getpaid_get_allowed_mime_types(); |
19 | 19 | $types = array(); |
20 | 20 | $_types = array(); |
21 | 21 | |
22 | -foreach ( $file_types as $file_type ) { |
|
22 | +foreach ($file_types as $file_type) { |
|
23 | 23 | |
24 | - if ( isset( $all_types[ $file_type ] ) ) { |
|
25 | - $types[] = $all_types[ $file_type ]; |
|
26 | - $file_type = explode( '|', $file_type ); |
|
24 | + if (isset($all_types[$file_type])) { |
|
25 | + $types[] = $all_types[$file_type]; |
|
26 | + $file_type = explode('|', $file_type); |
|
27 | 27 | |
28 | - foreach ( $file_type as $type ) { |
|
29 | - $type = trim( $type ); |
|
28 | + foreach ($file_type as $type) { |
|
29 | + $type = trim($type); |
|
30 | 30 | $types[] = ".$type"; |
31 | 31 | $_types[] = $type; |
32 | 32 | } |
@@ -35,7 +35,7 @@ discard block |
||
35 | 35 | |
36 | 36 | } |
37 | 37 | |
38 | -if ( ! empty( $required ) ) { |
|
38 | +if (!empty($required)) { |
|
39 | 39 | $label .= "<span class='text-danger'> *</span>"; |
40 | 40 | } |
41 | 41 | |
@@ -43,16 +43,16 @@ discard block |
||
43 | 43 | |
44 | 44 | <label><span v-html="form_element.label"></span></label> |
45 | 45 | |
46 | -<div class="form-group <?php echo sanitize_html_class( $label_class ); ?>" data-name="<?php echo esc_attr( $id ); ?>" data-max="<?php echo esc_attr( $max_file_num ); ?>"> |
|
47 | - <label for="<?php echo esc_attr( $id ); ?>"><?php echo wp_kses_post( $label ); ?></label> |
|
48 | - <input type="file" class="sr-only getpaid-files-input" id="<?php echo esc_attr( $id ); ?>" accept="<?php echo esc_attr( implode( ', ', $types ) ); ?>" data-extensions="<?php echo esc_attr( wp_json_encode( $_types ) ); ?>" <?php echo $max_file_num == 1 ? '' : 'multiple="multiple"'; ?>> |
|
46 | +<div class="form-group <?php echo sanitize_html_class($label_class); ?>" data-name="<?php echo esc_attr($id); ?>" data-max="<?php echo esc_attr($max_file_num); ?>"> |
|
47 | + <label for="<?php echo esc_attr($id); ?>"><?php echo wp_kses_post($label); ?></label> |
|
48 | + <input type="file" class="sr-only getpaid-files-input" id="<?php echo esc_attr($id); ?>" accept="<?php echo esc_attr(implode(', ', $types)); ?>" data-extensions="<?php echo esc_attr(wp_json_encode($_types)); ?>" <?php echo $max_file_num == 1 ? '' : 'multiple="multiple"'; ?>> |
|
49 | 49 | |
50 | - <label for="<?php echo esc_attr( $id ); ?>" class="getpaid-file-upload-element d-flex w-100 flex-column align-items-center justify-content-center p-2 mb-2"> |
|
50 | + <label for="<?php echo esc_attr($id); ?>" class="getpaid-file-upload-element d-flex w-100 flex-column align-items-center justify-content-center p-2 mb-2"> |
|
51 | 51 | <div class="h5 text-dark"> |
52 | - <?php echo _n( 'Drag your file to this area or click to upload', 'Drag files to this area or click to upload', $max_file_num, 'invoicing' ); ?> |
|
52 | + <?php echo _n('Drag your file to this area or click to upload', 'Drag files to this area or click to upload', $max_file_num, 'invoicing'); ?> |
|
53 | 53 | </div> |
54 | - <?php if ( ! empty( $description ) ) : ?> |
|
55 | - <small class="form-text text-muted"><?php echo wp_kses_post( $description ); ?></small> |
|
54 | + <?php if (!empty($description)) : ?> |
|
55 | + <small class="form-text text-muted"><?php echo wp_kses_post($description); ?></small> |
|
56 | 56 | <?php endif; ?> |
57 | 57 | </label> |
58 | 58 | |
@@ -61,7 +61,7 @@ discard block |
||
61 | 61 | <div class="form-row mb-3 d-none getpaid-progress-template"> |
62 | 62 | |
63 | 63 | <div class="overflow-hidden text-nowrap col-7 col-sm-4"> |
64 | - <a href="" class="close float-none" title="<?php esc_attr_e( 'Remove File', 'invoicing' ); ?>">×<span class="sr-only"><?php _e( 'Close', 'invoicing' ); ?></span></a> |
|
64 | + <a href="" class="close float-none" title="<?php esc_attr_e('Remove File', 'invoicing'); ?>">×<span class="sr-only"><?php _e('Close', 'invoicing'); ?></span></a> |
|
65 | 65 | <i class="fa fa-file" aria-hidden="true"></i> <span class="getpaid-progress-file-name"></span> |
66 | 66 | </div> |
67 | 67 |
@@ -14,70 +14,70 @@ discard block |
||
14 | 14 | class WPInv_Ajax { |
15 | 15 | |
16 | 16 | /** |
17 | - * Hook in ajax handlers. |
|
18 | - */ |
|
19 | - public static function init() { |
|
20 | - add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 ); |
|
21 | - add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 ); |
|
22 | - self::add_ajax_events(); |
|
17 | + * Hook in ajax handlers. |
|
18 | + */ |
|
19 | + public static function init() { |
|
20 | + add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 ); |
|
21 | + add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 ); |
|
22 | + self::add_ajax_events(); |
|
23 | 23 | } |
24 | 24 | |
25 | 25 | /** |
26 | - * Set GetPaid AJAX constant and headers. |
|
27 | - */ |
|
28 | - public static function define_ajax() { |
|
29 | - |
|
30 | - if ( ! empty( $_GET['wpinv-ajax'] ) ) { |
|
31 | - getpaid_maybe_define_constant( 'DOING_AJAX', true ); |
|
32 | - getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true ); |
|
33 | - if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) { |
|
34 | - /** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 ); |
|
35 | - } |
|
36 | - $GLOBALS['wpdb']->hide_errors(); |
|
37 | - } |
|
26 | + * Set GetPaid AJAX constant and headers. |
|
27 | + */ |
|
28 | + public static function define_ajax() { |
|
29 | + |
|
30 | + if ( ! empty( $_GET['wpinv-ajax'] ) ) { |
|
31 | + getpaid_maybe_define_constant( 'DOING_AJAX', true ); |
|
32 | + getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true ); |
|
33 | + if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) { |
|
34 | + /** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 ); |
|
35 | + } |
|
36 | + $GLOBALS['wpdb']->hide_errors(); |
|
37 | + } |
|
38 | 38 | |
39 | 39 | } |
40 | 40 | |
41 | 41 | /** |
42 | - * Send headers for GetPaid Ajax Requests. |
|
43 | - * |
|
44 | - * @since 1.0.18 |
|
45 | - */ |
|
46 | - private static function wpinv_ajax_headers() { |
|
47 | - if ( ! headers_sent() ) { |
|
48 | - send_origin_headers(); |
|
49 | - send_nosniff_header(); |
|
50 | - nocache_headers(); |
|
51 | - header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) ); |
|
52 | - header( 'X-Robots-Tag: noindex' ); |
|
53 | - status_header( 200 ); |
|
54 | - } |
|
42 | + * Send headers for GetPaid Ajax Requests. |
|
43 | + * |
|
44 | + * @since 1.0.18 |
|
45 | + */ |
|
46 | + private static function wpinv_ajax_headers() { |
|
47 | + if ( ! headers_sent() ) { |
|
48 | + send_origin_headers(); |
|
49 | + send_nosniff_header(); |
|
50 | + nocache_headers(); |
|
51 | + header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) ); |
|
52 | + header( 'X-Robots-Tag: noindex' ); |
|
53 | + status_header( 200 ); |
|
54 | + } |
|
55 | 55 | } |
56 | 56 | |
57 | 57 | /** |
58 | - * Check for GetPaid Ajax request and fire action. |
|
59 | - */ |
|
60 | - public static function do_wpinv_ajax() { |
|
61 | - global $wp_query; |
|
58 | + * Check for GetPaid Ajax request and fire action. |
|
59 | + */ |
|
60 | + public static function do_wpinv_ajax() { |
|
61 | + global $wp_query; |
|
62 | 62 | |
63 | - if ( ! empty( $_GET['wpinv-ajax'] ) ) { |
|
64 | - $wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) ); |
|
65 | - } |
|
63 | + if ( ! empty( $_GET['wpinv-ajax'] ) ) { |
|
64 | + $wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) ); |
|
65 | + } |
|
66 | 66 | |
67 | - $action = $wp_query->get( 'wpinv-ajax' ); |
|
67 | + $action = $wp_query->get( 'wpinv-ajax' ); |
|
68 | 68 | |
69 | - if ( $action ) { |
|
70 | - self::wpinv_ajax_headers(); |
|
71 | - $action = sanitize_text_field( $action ); |
|
72 | - do_action( 'wpinv_ajax_' . $action ); |
|
73 | - wp_die(); |
|
74 | - } |
|
69 | + if ( $action ) { |
|
70 | + self::wpinv_ajax_headers(); |
|
71 | + $action = sanitize_text_field( $action ); |
|
72 | + do_action( 'wpinv_ajax_' . $action ); |
|
73 | + wp_die(); |
|
74 | + } |
|
75 | 75 | |
76 | 76 | } |
77 | 77 | |
78 | 78 | /** |
79 | - * Hook in ajax methods. |
|
80 | - */ |
|
79 | + * Hook in ajax methods. |
|
80 | + */ |
|
81 | 81 | public static function add_ajax_events() { |
82 | 82 | |
83 | 83 | // array( 'event' => is_frontend ) |
@@ -261,18 +261,18 @@ discard block |
||
261 | 261 | check_ajax_referer( 'getpaid_form_nonce' ); |
262 | 262 | |
263 | 263 | // Is the request set up correctly? |
264 | - if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) && empty( $_GET['invoice'] ) ) { |
|
265 | - echo aui()->alert( |
|
266 | - array( |
|
267 | - 'type' => 'warning', |
|
268 | - 'content' => __( 'No payment form or item provided', 'invoicing' ), |
|
269 | - ) |
|
264 | + if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) && empty( $_GET['invoice'] ) ) { |
|
265 | + echo aui()->alert( |
|
266 | + array( |
|
267 | + 'type' => 'warning', |
|
268 | + 'content' => __( 'No payment form or item provided', 'invoicing' ), |
|
269 | + ) |
|
270 | 270 | ); |
271 | 271 | exit; |
272 | 272 | } |
273 | 273 | |
274 | 274 | // Payment form or button? |
275 | - if ( ! empty( $_GET['form'] ) ) { |
|
275 | + if ( ! empty( $_GET['form'] ) ) { |
|
276 | 276 | $form = urldecode( $_GET['form'] ); |
277 | 277 | |
278 | 278 | if ( false !== strpos( $form, '|' ) ) { |
@@ -326,11 +326,11 @@ discard block |
||
326 | 326 | getpaid_display_payment_form( $form ); |
327 | 327 | } |
328 | 328 | |
329 | - } else if( ! empty( $_GET['invoice'] ) ) { |
|
330 | - getpaid_display_invoice_payment_form( urldecode( $_GET['invoice'] ) ); |
|
329 | + } else if( ! empty( $_GET['invoice'] ) ) { |
|
330 | + getpaid_display_invoice_payment_form( urldecode( $_GET['invoice'] ) ); |
|
331 | 331 | } else { |
332 | - $items = getpaid_convert_items_to_array( urldecode( $_GET['item'] ) ); |
|
333 | - getpaid_display_item_payment_form( $items ); |
|
332 | + $items = getpaid_convert_items_to_array( urldecode( $_GET['item'] ) ); |
|
333 | + getpaid_display_item_payment_form( $items ); |
|
334 | 334 | } |
335 | 335 | |
336 | 336 | exit; |
@@ -651,7 +651,7 @@ discard block |
||
651 | 651 | if ( is_wp_error( $error ) ) { |
652 | 652 | $alert = $error->get_error_message(); |
653 | 653 | wp_send_json_success( compact( 'alert' ) ); |
654 | - } |
|
654 | + } |
|
655 | 655 | |
656 | 656 | // Update totals. |
657 | 657 | $invoice->recalculate_total(); |
@@ -1085,12 +1085,12 @@ discard block |
||
1085 | 1085 | } |
1086 | 1086 | |
1087 | 1087 | /** |
1088 | - * Handles file uploads. |
|
1089 | - * |
|
1090 | - * @since 1.0.0 |
|
1091 | - * @return void |
|
1092 | - */ |
|
1093 | - public static function file_upload() { |
|
1088 | + * Handles file uploads. |
|
1089 | + * |
|
1090 | + * @since 1.0.0 |
|
1091 | + * @return void |
|
1092 | + */ |
|
1093 | + public static function file_upload() { |
|
1094 | 1094 | |
1095 | 1095 | // Check nonce. |
1096 | 1096 | check_ajax_referer( 'getpaid_form_nonce' ); |
@@ -1151,7 +1151,7 @@ discard block |
||
1151 | 1151 | |
1152 | 1152 | wp_send_json_success( $response ); |
1153 | 1153 | |
1154 | - } |
|
1154 | + } |
|
1155 | 1155 | |
1156 | 1156 | } |
1157 | 1157 |
@@ -6,7 +6,7 @@ discard block |
||
6 | 6 | * @package Invoicing |
7 | 7 | */ |
8 | 8 | |
9 | -defined( 'ABSPATH' ) || exit; |
|
9 | +defined('ABSPATH') || exit; |
|
10 | 10 | |
11 | 11 | /** |
12 | 12 | * WPInv_Ajax class. |
@@ -17,8 +17,8 @@ discard block |
||
17 | 17 | * Hook in ajax handlers. |
18 | 18 | */ |
19 | 19 | public static function init() { |
20 | - add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 ); |
|
21 | - add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 ); |
|
20 | + add_action('init', array(__CLASS__, 'define_ajax'), 0); |
|
21 | + add_action('template_redirect', array(__CLASS__, 'do_wpinv_ajax'), 0); |
|
22 | 22 | self::add_ajax_events(); |
23 | 23 | } |
24 | 24 | |
@@ -27,11 +27,11 @@ discard block |
||
27 | 27 | */ |
28 | 28 | public static function define_ajax() { |
29 | 29 | |
30 | - if ( ! empty( $_GET['wpinv-ajax'] ) ) { |
|
31 | - getpaid_maybe_define_constant( 'DOING_AJAX', true ); |
|
32 | - getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true ); |
|
33 | - if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) { |
|
34 | - /** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 ); |
|
30 | + if (!empty($_GET['wpinv-ajax'])) { |
|
31 | + getpaid_maybe_define_constant('DOING_AJAX', true); |
|
32 | + getpaid_maybe_define_constant('WPInv_DOING_AJAX', true); |
|
33 | + if (!WP_DEBUG || (WP_DEBUG && !WP_DEBUG_DISPLAY)) { |
|
34 | + /** @scrutinizer ignore-unhandled */ @ini_set('display_errors', 0); |
|
35 | 35 | } |
36 | 36 | $GLOBALS['wpdb']->hide_errors(); |
37 | 37 | } |
@@ -44,13 +44,13 @@ discard block |
||
44 | 44 | * @since 1.0.18 |
45 | 45 | */ |
46 | 46 | private static function wpinv_ajax_headers() { |
47 | - if ( ! headers_sent() ) { |
|
47 | + if (!headers_sent()) { |
|
48 | 48 | send_origin_headers(); |
49 | 49 | send_nosniff_header(); |
50 | 50 | nocache_headers(); |
51 | - header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) ); |
|
52 | - header( 'X-Robots-Tag: noindex' ); |
|
53 | - status_header( 200 ); |
|
51 | + header('Content-Type: text/html; charset=' . get_option('blog_charset')); |
|
52 | + header('X-Robots-Tag: noindex'); |
|
53 | + status_header(200); |
|
54 | 54 | } |
55 | 55 | } |
56 | 56 | |
@@ -60,16 +60,16 @@ discard block |
||
60 | 60 | public static function do_wpinv_ajax() { |
61 | 61 | global $wp_query; |
62 | 62 | |
63 | - if ( ! empty( $_GET['wpinv-ajax'] ) ) { |
|
64 | - $wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) ); |
|
63 | + if (!empty($_GET['wpinv-ajax'])) { |
|
64 | + $wp_query->set('wpinv-ajax', sanitize_text_field(wp_unslash($_GET['wpinv-ajax']))); |
|
65 | 65 | } |
66 | 66 | |
67 | - $action = $wp_query->get( 'wpinv-ajax' ); |
|
67 | + $action = $wp_query->get('wpinv-ajax'); |
|
68 | 68 | |
69 | - if ( $action ) { |
|
69 | + if ($action) { |
|
70 | 70 | self::wpinv_ajax_headers(); |
71 | - $action = sanitize_text_field( $action ); |
|
72 | - do_action( 'wpinv_ajax_' . $action ); |
|
71 | + $action = sanitize_text_field($action); |
|
72 | + do_action('wpinv_ajax_' . $action); |
|
73 | 73 | wp_die(); |
74 | 74 | } |
75 | 75 | |
@@ -106,36 +106,36 @@ discard block |
||
106 | 106 | 'file_upload' => true, |
107 | 107 | ); |
108 | 108 | |
109 | - foreach ( $ajax_events as $ajax_event => $nopriv ) { |
|
110 | - add_action( 'wp_ajax_wpinv_' . $ajax_event, array( __CLASS__, $ajax_event ) ); |
|
111 | - add_action( 'wp_ajax_getpaid_' . $ajax_event, array( __CLASS__, $ajax_event ) ); |
|
109 | + foreach ($ajax_events as $ajax_event => $nopriv) { |
|
110 | + add_action('wp_ajax_wpinv_' . $ajax_event, array(__CLASS__, $ajax_event)); |
|
111 | + add_action('wp_ajax_getpaid_' . $ajax_event, array(__CLASS__, $ajax_event)); |
|
112 | 112 | |
113 | - if ( $nopriv ) { |
|
114 | - add_action( 'wp_ajax_nopriv_wpinv_' . $ajax_event, array( __CLASS__, $ajax_event ) ); |
|
115 | - add_action( 'wp_ajax_nopriv_getpaid_' . $ajax_event, array( __CLASS__, $ajax_event ) ); |
|
116 | - add_action( 'wpinv_ajax_' . $ajax_event, array( __CLASS__, $ajax_event ) ); |
|
113 | + if ($nopriv) { |
|
114 | + add_action('wp_ajax_nopriv_wpinv_' . $ajax_event, array(__CLASS__, $ajax_event)); |
|
115 | + add_action('wp_ajax_nopriv_getpaid_' . $ajax_event, array(__CLASS__, $ajax_event)); |
|
116 | + add_action('wpinv_ajax_' . $ajax_event, array(__CLASS__, $ajax_event)); |
|
117 | 117 | } |
118 | 118 | } |
119 | 119 | } |
120 | 120 | |
121 | 121 | public static function add_note() { |
122 | - check_ajax_referer( 'add-invoice-note', '_nonce' ); |
|
122 | + check_ajax_referer('add-invoice-note', '_nonce'); |
|
123 | 123 | |
124 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
124 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
125 | 125 | die(-1); |
126 | 126 | } |
127 | 127 | |
128 | - $post_id = absint( $_POST['post_id'] ); |
|
129 | - $note = wp_kses_post( trim( stripslashes( $_POST['note'] ) ) ); |
|
130 | - $note_type = sanitize_text_field( $_POST['note_type'] ); |
|
128 | + $post_id = absint($_POST['post_id']); |
|
129 | + $note = wp_kses_post(trim(stripslashes($_POST['note']))); |
|
130 | + $note_type = sanitize_text_field($_POST['note_type']); |
|
131 | 131 | |
132 | 132 | $is_customer_note = $note_type == 'customer' ? 1 : 0; |
133 | 133 | |
134 | - if ( $post_id > 0 ) { |
|
135 | - $note_id = wpinv_insert_payment_note( $post_id, $note, $is_customer_note ); |
|
134 | + if ($post_id > 0) { |
|
135 | + $note_id = wpinv_insert_payment_note($post_id, $note, $is_customer_note); |
|
136 | 136 | |
137 | - if ( $note_id > 0 && !is_wp_error( $note_id ) ) { |
|
138 | - wpinv_get_invoice_note_line_item( $note_id ); |
|
137 | + if ($note_id > 0 && !is_wp_error($note_id)) { |
|
138 | + wpinv_get_invoice_note_line_item($note_id); |
|
139 | 139 | } |
140 | 140 | } |
141 | 141 | |
@@ -143,16 +143,16 @@ discard block |
||
143 | 143 | } |
144 | 144 | |
145 | 145 | public static function delete_note() { |
146 | - check_ajax_referer( 'delete-invoice-note', '_nonce' ); |
|
146 | + check_ajax_referer('delete-invoice-note', '_nonce'); |
|
147 | 147 | |
148 | - if ( !wpinv_current_user_can_manage_invoicing() ) { |
|
148 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
149 | 149 | die(-1); |
150 | 150 | } |
151 | 151 | |
152 | - $note_id = (int)$_POST['note_id']; |
|
152 | + $note_id = (int) $_POST['note_id']; |
|
153 | 153 | |
154 | - if ( $note_id > 0 ) { |
|
155 | - wp_delete_comment( $note_id, true ); |
|
154 | + if ($note_id > 0) { |
|
155 | + wp_delete_comment($note_id, true); |
|
156 | 156 | } |
157 | 157 | |
158 | 158 | die(); |
@@ -170,34 +170,34 @@ discard block |
||
170 | 170 | public static function get_billing_details() { |
171 | 171 | |
172 | 172 | // Verify nonce. |
173 | - check_ajax_referer( 'wpinv-nonce' ); |
|
173 | + check_ajax_referer('wpinv-nonce'); |
|
174 | 174 | |
175 | 175 | // Can the user manage the plugin? |
176 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
176 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
177 | 177 | die(-1); |
178 | 178 | } |
179 | 179 | |
180 | 180 | // Do we have a user id? |
181 | 181 | $user_id = $_GET['user_id']; |
182 | 182 | |
183 | - if ( empty( $user_id ) || ! is_numeric( $user_id ) ) { |
|
183 | + if (empty($user_id) || !is_numeric($user_id)) { |
|
184 | 184 | die(-1); |
185 | 185 | } |
186 | 186 | |
187 | 187 | // Fetch the billing details. |
188 | - $billing_details = wpinv_get_user_address( $user_id ); |
|
189 | - $billing_details = apply_filters( 'wpinv_ajax_billing_details', $billing_details, $user_id ); |
|
188 | + $billing_details = wpinv_get_user_address($user_id); |
|
189 | + $billing_details = apply_filters('wpinv_ajax_billing_details', $billing_details, $user_id); |
|
190 | 190 | |
191 | 191 | // unset the user id and email. |
192 | - $to_ignore = array( 'user_id', 'email' ); |
|
192 | + $to_ignore = array('user_id', 'email'); |
|
193 | 193 | |
194 | - foreach ( $to_ignore as $key ) { |
|
195 | - if ( isset( $billing_details[ $key ] ) ) { |
|
196 | - unset( $billing_details[ $key ] ); |
|
194 | + foreach ($to_ignore as $key) { |
|
195 | + if (isset($billing_details[$key])) { |
|
196 | + unset($billing_details[$key]); |
|
197 | 197 | } |
198 | 198 | } |
199 | 199 | |
200 | - wp_send_json_success( $billing_details ); |
|
200 | + wp_send_json_success($billing_details); |
|
201 | 201 | |
202 | 202 | } |
203 | 203 | |
@@ -207,47 +207,47 @@ discard block |
||
207 | 207 | public static function check_new_user_email() { |
208 | 208 | |
209 | 209 | // Verify nonce. |
210 | - check_ajax_referer( 'wpinv-nonce' ); |
|
210 | + check_ajax_referer('wpinv-nonce'); |
|
211 | 211 | |
212 | 212 | // Can the user manage the plugin? |
213 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
213 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
214 | 214 | die(-1); |
215 | 215 | } |
216 | 216 | |
217 | 217 | // We need an email address. |
218 | - if ( empty( $_GET['email'] ) ) { |
|
219 | - _e( "Provide the new user's email address", 'invoicing' ); |
|
218 | + if (empty($_GET['email'])) { |
|
219 | + _e("Provide the new user's email address", 'invoicing'); |
|
220 | 220 | exit; |
221 | 221 | } |
222 | 222 | |
223 | 223 | // Ensure the email is valid. |
224 | - $email = sanitize_text_field( $_GET['email'] ); |
|
225 | - if ( ! is_email( $email ) ) { |
|
226 | - _e( 'Invalid email address', 'invoicing' ); |
|
224 | + $email = sanitize_text_field($_GET['email']); |
|
225 | + if (!is_email($email)) { |
|
226 | + _e('Invalid email address', 'invoicing'); |
|
227 | 227 | exit; |
228 | 228 | } |
229 | 229 | |
230 | 230 | // And it does not exist. |
231 | - $id = email_exists( $email ); |
|
232 | - if ( $id ) { |
|
233 | - wp_send_json_success( compact( 'id' ) ); |
|
231 | + $id = email_exists($email); |
|
232 | + if ($id) { |
|
233 | + wp_send_json_success(compact('id')); |
|
234 | 234 | } |
235 | 235 | |
236 | - wp_send_json_success( true ); |
|
236 | + wp_send_json_success(true); |
|
237 | 237 | } |
238 | 238 | |
239 | 239 | public static function run_tool() { |
240 | - check_ajax_referer( 'wpinv-nonce', '_nonce' ); |
|
241 | - if ( !wpinv_current_user_can_manage_invoicing() ) { |
|
240 | + check_ajax_referer('wpinv-nonce', '_nonce'); |
|
241 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
242 | 242 | die(-1); |
243 | 243 | } |
244 | 244 | |
245 | - $tool = sanitize_text_field( $_POST['tool'] ); |
|
245 | + $tool = sanitize_text_field($_POST['tool']); |
|
246 | 246 | |
247 | - do_action( 'wpinv_run_tool' ); |
|
247 | + do_action('wpinv_run_tool'); |
|
248 | 248 | |
249 | - if ( !empty( $tool ) ) { |
|
250 | - do_action( 'wpinv_tool_' . $tool ); |
|
249 | + if (!empty($tool)) { |
|
250 | + do_action('wpinv_tool_' . $tool); |
|
251 | 251 | } |
252 | 252 | } |
253 | 253 | |
@@ -258,43 +258,43 @@ discard block |
||
258 | 258 | global $getpaid_force_checkbox; |
259 | 259 | |
260 | 260 | // Check nonce. |
261 | - check_ajax_referer( 'getpaid_form_nonce' ); |
|
261 | + check_ajax_referer('getpaid_form_nonce'); |
|
262 | 262 | |
263 | 263 | // Is the request set up correctly? |
264 | - if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) && empty( $_GET['invoice'] ) ) { |
|
264 | + if (empty($_GET['form']) && empty($_GET['item']) && empty($_GET['invoice'])) { |
|
265 | 265 | echo aui()->alert( |
266 | 266 | array( |
267 | 267 | 'type' => 'warning', |
268 | - 'content' => __( 'No payment form or item provided', 'invoicing' ), |
|
268 | + 'content' => __('No payment form or item provided', 'invoicing'), |
|
269 | 269 | ) |
270 | 270 | ); |
271 | 271 | exit; |
272 | 272 | } |
273 | 273 | |
274 | 274 | // Payment form or button? |
275 | - if ( ! empty( $_GET['form'] ) ) { |
|
276 | - $form = urldecode( $_GET['form'] ); |
|
275 | + if (!empty($_GET['form'])) { |
|
276 | + $form = urldecode($_GET['form']); |
|
277 | 277 | |
278 | - if ( false !== strpos( $form, '|' ) ) { |
|
279 | - $form_pos = strpos( $form, '|' ); |
|
280 | - $_items = getpaid_convert_items_to_array( substr( $form, $form_pos + 1 ) ); |
|
281 | - $form = substr( $form, 0, $form_pos ); |
|
278 | + if (false !== strpos($form, '|')) { |
|
279 | + $form_pos = strpos($form, '|'); |
|
280 | + $_items = getpaid_convert_items_to_array(substr($form, $form_pos + 1)); |
|
281 | + $form = substr($form, 0, $form_pos); |
|
282 | 282 | |
283 | 283 | // Retrieve appropriate payment form. |
284 | - $payment_form = new GetPaid_Payment_Form( $form ); |
|
285 | - $payment_form = $payment_form->exists() ? $payment_form : new GetPaid_Payment_Form( wpinv_get_default_payment_form() ); |
|
284 | + $payment_form = new GetPaid_Payment_Form($form); |
|
285 | + $payment_form = $payment_form->exists() ? $payment_form : new GetPaid_Payment_Form(wpinv_get_default_payment_form()); |
|
286 | 286 | |
287 | 287 | $items = array(); |
288 | 288 | $item_ids = array(); |
289 | 289 | |
290 | - foreach ( $_items as $item_id => $qty ) { |
|
291 | - if ( ! in_array( $item_id, $item_ids ) ) { |
|
292 | - $item = new GetPaid_Form_Item( $item_id ); |
|
293 | - $item->set_quantity( $qty ); |
|
290 | + foreach ($_items as $item_id => $qty) { |
|
291 | + if (!in_array($item_id, $item_ids)) { |
|
292 | + $item = new GetPaid_Form_Item($item_id); |
|
293 | + $item->set_quantity($qty); |
|
294 | 294 | |
295 | - if ( 0 == $qty ) { |
|
296 | - $item->set_allow_quantities( true ); |
|
297 | - $item->set_is_required( false ); |
|
295 | + if (0 == $qty) { |
|
296 | + $item->set_allow_quantities(true); |
|
297 | + $item->set_is_required(false); |
|
298 | 298 | $getpaid_force_checkbox = true; |
299 | 299 | } |
300 | 300 | |
@@ -303,10 +303,10 @@ discard block |
||
303 | 303 | } |
304 | 304 | } |
305 | 305 | |
306 | - if ( ! $payment_form->is_default() ) { |
|
306 | + if (!$payment_form->is_default()) { |
|
307 | 307 | |
308 | - foreach ( $payment_form->get_items() as $item ) { |
|
309 | - if ( ! in_array( $item->get_id(), $item_ids ) ) { |
|
308 | + foreach ($payment_form->get_items() as $item) { |
|
309 | + if (!in_array($item->get_id(), $item_ids)) { |
|
310 | 310 | $item_ids[] = $item->get_id(); |
311 | 311 | $items[] = $item; |
312 | 312 | } |
@@ -314,23 +314,23 @@ discard block |
||
314 | 314 | |
315 | 315 | } |
316 | 316 | |
317 | - $payment_form->set_items( $items ); |
|
318 | - $extra_items = esc_attr( getpaid_convert_items_to_string( $_items ) ); |
|
319 | - $extra_items_key = md5( NONCE_KEY . AUTH_KEY . $extra_items ); |
|
317 | + $payment_form->set_items($items); |
|
318 | + $extra_items = esc_attr(getpaid_convert_items_to_string($_items)); |
|
319 | + $extra_items_key = md5(NONCE_KEY . AUTH_KEY . $extra_items); |
|
320 | 320 | $extra_items = "<input type='hidden' name='getpaid-form-items' value='$extra_items' />"; |
321 | 321 | $extra_items .= "<input type='hidden' name='getpaid-form-items-key' value='$extra_items_key' />"; |
322 | - $payment_form->display( $extra_items ); |
|
322 | + $payment_form->display($extra_items); |
|
323 | 323 | $getpaid_force_checkbox = false; |
324 | 324 | |
325 | 325 | } else { |
326 | - getpaid_display_payment_form( $form ); |
|
326 | + getpaid_display_payment_form($form); |
|
327 | 327 | } |
328 | 328 | |
329 | - } else if( ! empty( $_GET['invoice'] ) ) { |
|
330 | - getpaid_display_invoice_payment_form( urldecode( $_GET['invoice'] ) ); |
|
329 | + } else if (!empty($_GET['invoice'])) { |
|
330 | + getpaid_display_invoice_payment_form(urldecode($_GET['invoice'])); |
|
331 | 331 | } else { |
332 | - $items = getpaid_convert_items_to_array( urldecode( $_GET['item'] ) ); |
|
333 | - getpaid_display_item_payment_form( $items ); |
|
332 | + $items = getpaid_convert_items_to_array(urldecode($_GET['item'])); |
|
333 | + getpaid_display_item_payment_form($items); |
|
334 | 334 | } |
335 | 335 | |
336 | 336 | exit; |
@@ -345,17 +345,17 @@ discard block |
||
345 | 345 | public static function payment_form() { |
346 | 346 | |
347 | 347 | // Check nonce. |
348 | - check_ajax_referer( 'getpaid_form_nonce' ); |
|
348 | + check_ajax_referer('getpaid_form_nonce'); |
|
349 | 349 | |
350 | 350 | // ... form fields... |
351 | - if ( empty( $_POST['getpaid_payment_form_submission'] ) ) { |
|
352 | - _e( 'Error: Reload the page and try again.', 'invoicing' ); |
|
351 | + if (empty($_POST['getpaid_payment_form_submission'])) { |
|
352 | + _e('Error: Reload the page and try again.', 'invoicing'); |
|
353 | 353 | exit; |
354 | 354 | } |
355 | 355 | |
356 | 356 | // Process the payment form. |
357 | - $checkout_class = apply_filters( 'getpaid_checkout_class', 'GetPaid_Checkout' ); |
|
358 | - $checkout = new $checkout_class( new GetPaid_Payment_Form_Submission() ); |
|
357 | + $checkout_class = apply_filters('getpaid_checkout_class', 'GetPaid_Checkout'); |
|
358 | + $checkout = new $checkout_class(new GetPaid_Payment_Form_Submission()); |
|
359 | 359 | $checkout->process_checkout(); |
360 | 360 | |
361 | 361 | exit; |
@@ -368,55 +368,55 @@ discard block |
||
368 | 368 | */ |
369 | 369 | public static function get_payment_form_states_field() { |
370 | 370 | |
371 | - if ( empty( $_GET['country'] ) || empty( $_GET['form'] ) ) { |
|
371 | + if (empty($_GET['country']) || empty($_GET['form'])) { |
|
372 | 372 | exit; |
373 | 373 | } |
374 | 374 | |
375 | - $elements = getpaid_get_payment_form_elements( $_GET['form'] ); |
|
375 | + $elements = getpaid_get_payment_form_elements($_GET['form']); |
|
376 | 376 | |
377 | - if ( empty( $elements ) ) { |
|
377 | + if (empty($elements)) { |
|
378 | 378 | exit; |
379 | 379 | } |
380 | 380 | |
381 | 381 | $address_fields = array(); |
382 | - foreach ( $elements as $element ) { |
|
383 | - if ( 'address' === $element['type'] ) { |
|
382 | + foreach ($elements as $element) { |
|
383 | + if ('address' === $element['type']) { |
|
384 | 384 | $address_fields = $element; |
385 | 385 | break; |
386 | 386 | } |
387 | 387 | } |
388 | 388 | |
389 | - if ( empty( $address_fields ) ) { |
|
389 | + if (empty($address_fields)) { |
|
390 | 390 | exit; |
391 | 391 | } |
392 | 392 | |
393 | - foreach ( $address_fields['fields'] as $address_field ) { |
|
393 | + foreach ($address_fields['fields'] as $address_field) { |
|
394 | 394 | |
395 | - if ( 'wpinv_state' == $address_field['name'] ) { |
|
395 | + if ('wpinv_state' == $address_field['name']) { |
|
396 | 396 | |
397 | - $wrap_class = getpaid_get_form_element_grid_class( $address_field ); |
|
398 | - $wrap_class = esc_attr( "$wrap_class getpaid-address-field-wrapper" ); |
|
399 | - $placeholder = empty( $address_field['placeholder'] ) ? '' : esc_attr( $address_field['placeholder'] ); |
|
400 | - $description = empty( $address_field['description'] ) ? '' : wp_kses_post( $address_field['description'] ); |
|
401 | - $value = is_user_logged_in() ? get_user_meta( get_current_user_id(), '_wpinv_state', true ) : ''; |
|
402 | - $label = empty( $address_field['label'] ) ? '' : wp_kses_post( $address_field['label'] ); |
|
397 | + $wrap_class = getpaid_get_form_element_grid_class($address_field); |
|
398 | + $wrap_class = esc_attr("$wrap_class getpaid-address-field-wrapper"); |
|
399 | + $placeholder = empty($address_field['placeholder']) ? '' : esc_attr($address_field['placeholder']); |
|
400 | + $description = empty($address_field['description']) ? '' : wp_kses_post($address_field['description']); |
|
401 | + $value = is_user_logged_in() ? get_user_meta(get_current_user_id(), '_wpinv_state', true) : ''; |
|
402 | + $label = empty($address_field['label']) ? '' : wp_kses_post($address_field['label']); |
|
403 | 403 | |
404 | - if ( ! empty( $address_field['required'] ) ) { |
|
404 | + if (!empty($address_field['required'])) { |
|
405 | 405 | $label .= "<span class='text-danger'> *</span>"; |
406 | 406 | } |
407 | 407 | |
408 | - $html = getpaid_get_states_select_markup ( |
|
409 | - sanitize_text_field( $_GET['country'] ), |
|
408 | + $html = getpaid_get_states_select_markup( |
|
409 | + sanitize_text_field($_GET['country']), |
|
410 | 410 | $value, |
411 | 411 | $placeholder, |
412 | 412 | $label, |
413 | 413 | $description, |
414 | - ! empty( $address_field['required'] ), |
|
414 | + !empty($address_field['required']), |
|
415 | 415 | $wrap_class, |
416 | - wpinv_clean( $_GET['name'] ) |
|
416 | + wpinv_clean($_GET['name']) |
|
417 | 417 | ); |
418 | 418 | |
419 | - wp_send_json_success( $html ); |
|
419 | + wp_send_json_success($html); |
|
420 | 420 | exit; |
421 | 421 | |
422 | 422 | } |
@@ -432,66 +432,66 @@ discard block |
||
432 | 432 | public static function recalculate_invoice_totals() { |
433 | 433 | |
434 | 434 | // Verify nonce. |
435 | - check_ajax_referer( 'wpinv-nonce' ); |
|
435 | + check_ajax_referer('wpinv-nonce'); |
|
436 | 436 | |
437 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
437 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
438 | 438 | exit; |
439 | 439 | } |
440 | 440 | |
441 | 441 | // We need an invoice. |
442 | - if ( empty( $_POST['post_id'] ) ) { |
|
442 | + if (empty($_POST['post_id'])) { |
|
443 | 443 | exit; |
444 | 444 | } |
445 | 445 | |
446 | 446 | // Fetch the invoice. |
447 | - $invoice = new WPInv_Invoice( wpinv_clean( $_POST['post_id'] ) ); |
|
447 | + $invoice = new WPInv_Invoice(wpinv_clean($_POST['post_id'])); |
|
448 | 448 | |
449 | 449 | // Ensure it exists. |
450 | - if ( ! $invoice->get_id() ) { |
|
450 | + if (!$invoice->get_id()) { |
|
451 | 451 | exit; |
452 | 452 | } |
453 | 453 | |
454 | 454 | // Maybe set the country, state, currency. |
455 | - foreach ( array( 'country', 'state', 'currency', 'vat_number', 'discount_code' ) as $key ) { |
|
456 | - if ( isset( $_POST[ $key ] ) ) { |
|
455 | + foreach (array('country', 'state', 'currency', 'vat_number', 'discount_code') as $key) { |
|
456 | + if (isset($_POST[$key])) { |
|
457 | 457 | $method = "set_$key"; |
458 | - $invoice->$method( sanitize_text_field( $_POST[ $key ] ) ); |
|
458 | + $invoice->$method(sanitize_text_field($_POST[$key])); |
|
459 | 459 | } |
460 | 460 | } |
461 | 461 | |
462 | 462 | // Maybe disable taxes. |
463 | - $invoice->set_disable_taxes( ! empty( $_POST['taxes'] ) ); |
|
463 | + $invoice->set_disable_taxes(!empty($_POST['taxes'])); |
|
464 | 464 | |
465 | 465 | // Discount code. |
466 | - if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) { |
|
467 | - $discount = new WPInv_Discount( $invoice->get_discount_code() ); |
|
468 | - if ( $discount->exists() ) { |
|
469 | - $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) ); |
|
466 | + if (!$invoice->is_paid() && !$invoice->is_refunded()) { |
|
467 | + $discount = new WPInv_Discount($invoice->get_discount_code()); |
|
468 | + if ($discount->exists()) { |
|
469 | + $invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount)); |
|
470 | 470 | } else { |
471 | - $invoice->remove_discount( 'discount_code' ); |
|
471 | + $invoice->remove_discount('discount_code'); |
|
472 | 472 | } |
473 | 473 | } |
474 | 474 | |
475 | 475 | // Recalculate totals. |
476 | 476 | $invoice->recalculate_total(); |
477 | 477 | |
478 | - $total = wpinv_price( $invoice->get_total(), $invoice->get_currency() ); |
|
479 | - $suscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
480 | - if ( is_a( $suscriptions, 'WPInv_Subscription' ) && $invoice->is_recurring() && $invoice->is_parent() && $invoice->get_total() != $invoice->get_recurring_total() ) { |
|
481 | - $recurring_total = wpinv_price( $invoice->get_recurring_total(), $invoice->get_currency() ); |
|
482 | - $total .= '<small class="form-text text-muted">' . sprintf( __( 'Recurring Price: %s', 'invoicing' ), $recurring_total ) . '</small>'; |
|
478 | + $total = wpinv_price($invoice->get_total(), $invoice->get_currency()); |
|
479 | + $suscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
480 | + if (is_a($suscriptions, 'WPInv_Subscription') && $invoice->is_recurring() && $invoice->is_parent() && $invoice->get_total() != $invoice->get_recurring_total()) { |
|
481 | + $recurring_total = wpinv_price($invoice->get_recurring_total(), $invoice->get_currency()); |
|
482 | + $total .= '<small class="form-text text-muted">' . sprintf(__('Recurring Price: %s', 'invoicing'), $recurring_total) . '</small>'; |
|
483 | 483 | } |
484 | 484 | |
485 | 485 | $totals = array( |
486 | - 'subtotal' => wpinv_price( $invoice->get_subtotal(), $invoice->get_currency() ), |
|
487 | - 'discount' => wpinv_price( $invoice->get_total_discount(), $invoice->get_currency() ), |
|
488 | - 'tax' => wpinv_price( $invoice->get_total_tax(), $invoice->get_currency() ), |
|
486 | + 'subtotal' => wpinv_price($invoice->get_subtotal(), $invoice->get_currency()), |
|
487 | + 'discount' => wpinv_price($invoice->get_total_discount(), $invoice->get_currency()), |
|
488 | + 'tax' => wpinv_price($invoice->get_total_tax(), $invoice->get_currency()), |
|
489 | 489 | 'total' => $total, |
490 | 490 | ); |
491 | 491 | |
492 | - $totals = apply_filters( 'getpaid_invoice_totals', $totals, $invoice ); |
|
492 | + $totals = apply_filters('getpaid_invoice_totals', $totals, $invoice); |
|
493 | 493 | |
494 | - wp_send_json_success( compact( 'totals' ) ); |
|
494 | + wp_send_json_success(compact('totals')); |
|
495 | 495 | } |
496 | 496 | |
497 | 497 | /** |
@@ -500,33 +500,33 @@ discard block |
||
500 | 500 | public static function get_invoice_items() { |
501 | 501 | |
502 | 502 | // Verify nonce. |
503 | - check_ajax_referer( 'wpinv-nonce' ); |
|
503 | + check_ajax_referer('wpinv-nonce'); |
|
504 | 504 | |
505 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
505 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
506 | 506 | exit; |
507 | 507 | } |
508 | 508 | |
509 | 509 | // We need an invoice and items. |
510 | - if ( empty( $_POST['post_id'] ) ) { |
|
510 | + if (empty($_POST['post_id'])) { |
|
511 | 511 | exit; |
512 | 512 | } |
513 | 513 | |
514 | 514 | // Fetch the invoice. |
515 | - $invoice = new WPInv_Invoice( wpinv_clean( $_POST['post_id'] ) ); |
|
515 | + $invoice = new WPInv_Invoice(wpinv_clean($_POST['post_id'])); |
|
516 | 516 | |
517 | 517 | // Ensure it exists. |
518 | - if ( ! $invoice->get_id() ) { |
|
518 | + if (!$invoice->get_id()) { |
|
519 | 519 | exit; |
520 | 520 | } |
521 | 521 | |
522 | 522 | // Return an array of invoice items. |
523 | 523 | $items = array(); |
524 | 524 | |
525 | - foreach ( $invoice->get_items() as $item ) { |
|
526 | - $items[] = $item->prepare_data_for_invoice_edit_ajax( $invoice->get_currency(), $invoice->is_renewal() ); |
|
525 | + foreach ($invoice->get_items() as $item) { |
|
526 | + $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency(), $invoice->is_renewal()); |
|
527 | 527 | } |
528 | 528 | |
529 | - wp_send_json_success( compact( 'items' ) ); |
|
529 | + wp_send_json_success(compact('items')); |
|
530 | 530 | } |
531 | 531 | |
532 | 532 | /** |
@@ -535,50 +535,50 @@ discard block |
||
535 | 535 | public static function edit_invoice_item() { |
536 | 536 | |
537 | 537 | // Verify nonce. |
538 | - check_ajax_referer( 'wpinv-nonce' ); |
|
538 | + check_ajax_referer('wpinv-nonce'); |
|
539 | 539 | |
540 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
540 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
541 | 541 | exit; |
542 | 542 | } |
543 | 543 | |
544 | 544 | // We need an invoice and item details. |
545 | - if ( empty( $_POST['post_id'] ) || empty( $_POST['data'] ) ) { |
|
545 | + if (empty($_POST['post_id']) || empty($_POST['data'])) { |
|
546 | 546 | exit; |
547 | 547 | } |
548 | 548 | |
549 | 549 | // Fetch the invoice. |
550 | - $invoice = new WPInv_Invoice( wpinv_clean( $_POST['post_id'] ) ); |
|
550 | + $invoice = new WPInv_Invoice(wpinv_clean($_POST['post_id'])); |
|
551 | 551 | |
552 | 552 | // Ensure it exists and its not been paid for. |
553 | - if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) { |
|
553 | + if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) { |
|
554 | 554 | exit; |
555 | 555 | } |
556 | 556 | |
557 | 557 | // Format the data. |
558 | - $data = wp_kses_post_deep( wp_unslash( wp_list_pluck( $_POST['data'], 'value', 'field' ) ) ); |
|
558 | + $data = wp_kses_post_deep(wp_unslash(wp_list_pluck($_POST['data'], 'value', 'field'))); |
|
559 | 559 | |
560 | 560 | // Ensure that we have an item id. |
561 | - if ( empty( $data['id'] ) ) { |
|
561 | + if (empty($data['id'])) { |
|
562 | 562 | exit; |
563 | 563 | } |
564 | 564 | |
565 | 565 | // Abort if the invoice does not have the specified item. |
566 | - $item = $invoice->get_item( (int) $data['id'] ); |
|
566 | + $item = $invoice->get_item((int) $data['id']); |
|
567 | 567 | |
568 | - if ( empty( $item ) ) { |
|
568 | + if (empty($item)) { |
|
569 | 569 | exit; |
570 | 570 | } |
571 | 571 | |
572 | 572 | // Update the item. |
573 | - $item->set_price( getpaid_standardize_amount( $data['price'] ) ); |
|
574 | - $item->set_name( sanitize_text_field( $data['name'] ) ); |
|
575 | - $item->set_description( wp_kses_post( $data['description'] ) ); |
|
576 | - $item->set_quantity( floatval( $data['quantity'] ) ); |
|
573 | + $item->set_price(getpaid_standardize_amount($data['price'])); |
|
574 | + $item->set_name(sanitize_text_field($data['name'])); |
|
575 | + $item->set_description(wp_kses_post($data['description'])); |
|
576 | + $item->set_quantity(floatval($data['quantity'])); |
|
577 | 577 | |
578 | 578 | // Add it to the invoice. |
579 | - $error = $invoice->add_item( $item ); |
|
579 | + $error = $invoice->add_item($item); |
|
580 | 580 | $alert = false; |
581 | - if ( is_wp_error( $error ) ) { |
|
581 | + if (is_wp_error($error)) { |
|
582 | 582 | $alert = $error->get_error_message(); |
583 | 583 | } |
584 | 584 | |
@@ -591,11 +591,11 @@ discard block |
||
591 | 591 | // Return an array of invoice items. |
592 | 592 | $items = array(); |
593 | 593 | |
594 | - foreach ( $invoice->get_items() as $item ) { |
|
595 | - $items[] = $item->prepare_data_for_invoice_edit_ajax( $invoice->get_currency() ); |
|
594 | + foreach ($invoice->get_items() as $item) { |
|
595 | + $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency()); |
|
596 | 596 | } |
597 | 597 | |
598 | - wp_send_json_success( compact( 'items', 'alert' ) ); |
|
598 | + wp_send_json_success(compact('items', 'alert')); |
|
599 | 599 | } |
600 | 600 | |
601 | 601 | /** |
@@ -604,53 +604,53 @@ discard block |
||
604 | 604 | public static function create_invoice_item() { |
605 | 605 | |
606 | 606 | // Verify nonce. |
607 | - check_ajax_referer( 'wpinv-nonce' ); |
|
607 | + check_ajax_referer('wpinv-nonce'); |
|
608 | 608 | |
609 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
609 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
610 | 610 | exit; |
611 | 611 | } |
612 | 612 | |
613 | 613 | // We need an invoice and item details. |
614 | - if ( empty( $_POST['invoice_id'] ) || empty( $_POST['_wpinv_quick'] ) ) { |
|
614 | + if (empty($_POST['invoice_id']) || empty($_POST['_wpinv_quick'])) { |
|
615 | 615 | exit; |
616 | 616 | } |
617 | 617 | |
618 | 618 | // Fetch the invoice. |
619 | - $invoice = new WPInv_Invoice( wpinv_clean( $_POST['invoice_id'] ) ); |
|
619 | + $invoice = new WPInv_Invoice(wpinv_clean($_POST['invoice_id'])); |
|
620 | 620 | |
621 | 621 | // Ensure it exists and its not been paid for. |
622 | - if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) { |
|
622 | + if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) { |
|
623 | 623 | exit; |
624 | 624 | } |
625 | 625 | |
626 | 626 | // Format the data. |
627 | - $data = wp_unslash( $_POST['_wpinv_quick'] ); |
|
627 | + $data = wp_unslash($_POST['_wpinv_quick']); |
|
628 | 628 | |
629 | 629 | $item = new WPInv_Item(); |
630 | - $item->set_price( getpaid_standardize_amount( $data['price'] ) ); |
|
631 | - $item->set_name( sanitize_text_field( $data['name'] ) ); |
|
632 | - $item->set_description( wp_kses_post( $data['description'] ) ); |
|
633 | - $item->set_type( sanitize_text_field( $data['type'] ) ); |
|
634 | - $item->set_vat_rule( sanitize_text_field( $data['vat_rule'] ) ); |
|
635 | - $item->set_vat_class( sanitize_text_field( $data['vat_class'] ) ); |
|
636 | - $item->set_status( 'publish' ); |
|
630 | + $item->set_price(getpaid_standardize_amount($data['price'])); |
|
631 | + $item->set_name(sanitize_text_field($data['name'])); |
|
632 | + $item->set_description(wp_kses_post($data['description'])); |
|
633 | + $item->set_type(sanitize_text_field($data['type'])); |
|
634 | + $item->set_vat_rule(sanitize_text_field($data['vat_rule'])); |
|
635 | + $item->set_vat_class(sanitize_text_field($data['vat_class'])); |
|
636 | + $item->set_status('publish'); |
|
637 | 637 | $item->save(); |
638 | 638 | |
639 | - if ( ! $item->exists() ) { |
|
640 | - $alert = __( 'Could not create invoice item. Please try again.', 'invoicing' ); |
|
641 | - wp_send_json_success( compact( 'alert' ) ); |
|
639 | + if (!$item->exists()) { |
|
640 | + $alert = __('Could not create invoice item. Please try again.', 'invoicing'); |
|
641 | + wp_send_json_success(compact('alert')); |
|
642 | 642 | } |
643 | 643 | |
644 | - $item = new GetPaid_Form_Item( $item->get_id() ); |
|
645 | - $item->set_quantity( floatval( $data['qty'] ) ); |
|
644 | + $item = new GetPaid_Form_Item($item->get_id()); |
|
645 | + $item->set_quantity(floatval($data['qty'])); |
|
646 | 646 | |
647 | 647 | // Add it to the invoice. |
648 | - $error = $invoice->add_item( $item ); |
|
648 | + $error = $invoice->add_item($item); |
|
649 | 649 | $alert = false; |
650 | 650 | |
651 | - if ( is_wp_error( $error ) ) { |
|
651 | + if (is_wp_error($error)) { |
|
652 | 652 | $alert = $error->get_error_message(); |
653 | - wp_send_json_success( compact( 'alert' ) ); |
|
653 | + wp_send_json_success(compact('alert')); |
|
654 | 654 | } |
655 | 655 | |
656 | 656 | // Update totals. |
@@ -663,9 +663,9 @@ discard block |
||
663 | 663 | $invoice->recalculate_total(); |
664 | 664 | $invoice->save(); |
665 | 665 | ob_start(); |
666 | - GetPaid_Meta_Box_Invoice_Items::output_row( GetPaid_Meta_Box_Invoice_Items::get_columns( $invoice ), $item, $invoice ); |
|
666 | + GetPaid_Meta_Box_Invoice_Items::output_row(GetPaid_Meta_Box_Invoice_Items::get_columns($invoice), $item, $invoice); |
|
667 | 667 | $row = ob_get_clean(); |
668 | - wp_send_json_success( compact( 'row' ) ); |
|
668 | + wp_send_json_success(compact('row')); |
|
669 | 669 | } |
670 | 670 | |
671 | 671 | /** |
@@ -674,33 +674,33 @@ discard block |
||
674 | 674 | public static function remove_invoice_item() { |
675 | 675 | |
676 | 676 | // Verify nonce. |
677 | - check_ajax_referer( 'wpinv-nonce' ); |
|
677 | + check_ajax_referer('wpinv-nonce'); |
|
678 | 678 | |
679 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
679 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
680 | 680 | exit; |
681 | 681 | } |
682 | 682 | |
683 | 683 | // We need an invoice and an item. |
684 | - if ( empty( $_POST['post_id'] ) || empty( $_POST['item_id'] ) ) { |
|
684 | + if (empty($_POST['post_id']) || empty($_POST['item_id'])) { |
|
685 | 685 | exit; |
686 | 686 | } |
687 | 687 | |
688 | 688 | // Fetch the invoice. |
689 | - $invoice = new WPInv_Invoice( wpinv_clean( $_POST['post_id'] ) ); |
|
689 | + $invoice = new WPInv_Invoice(wpinv_clean($_POST['post_id'])); |
|
690 | 690 | |
691 | 691 | // Ensure it exists and its not been paid for. |
692 | - if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) { |
|
692 | + if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) { |
|
693 | 693 | exit; |
694 | 694 | } |
695 | 695 | |
696 | 696 | // Abort if the invoice does not have the specified item. |
697 | - $item = $invoice->get_item( (int) $_POST['item_id'] ); |
|
697 | + $item = $invoice->get_item((int) $_POST['item_id']); |
|
698 | 698 | |
699 | - if ( empty( $item ) ) { |
|
699 | + if (empty($item)) { |
|
700 | 700 | exit; |
701 | 701 | } |
702 | 702 | |
703 | - $invoice->remove_item( (int) $_POST['item_id'] ); |
|
703 | + $invoice->remove_item((int) $_POST['item_id']); |
|
704 | 704 | |
705 | 705 | // Update totals. |
706 | 706 | $invoice->recalculate_total(); |
@@ -711,11 +711,11 @@ discard block |
||
711 | 711 | // Return an array of invoice items. |
712 | 712 | $items = array(); |
713 | 713 | |
714 | - foreach ( $invoice->get_items() as $item ) { |
|
715 | - $items[] = $item->prepare_data_for_invoice_edit_ajax( $invoice->get_currency() ); |
|
714 | + foreach ($invoice->get_items() as $item) { |
|
715 | + $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency()); |
|
716 | 716 | } |
717 | 717 | |
718 | - wp_send_json_success( compact( 'items' ) ); |
|
718 | + wp_send_json_success(compact('items')); |
|
719 | 719 | } |
720 | 720 | |
721 | 721 | /** |
@@ -724,69 +724,69 @@ discard block |
||
724 | 724 | public static function recalculate_full_prices() { |
725 | 725 | |
726 | 726 | // Verify nonce. |
727 | - check_ajax_referer( 'wpinv-nonce' ); |
|
727 | + check_ajax_referer('wpinv-nonce'); |
|
728 | 728 | |
729 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
729 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
730 | 730 | exit; |
731 | 731 | } |
732 | 732 | |
733 | 733 | // We need an invoice and item. |
734 | - if ( empty( $_POST['post_id'] ) ) { |
|
734 | + if (empty($_POST['post_id'])) { |
|
735 | 735 | exit; |
736 | 736 | } |
737 | 737 | |
738 | 738 | // Fetch the invoice. |
739 | - $invoice = new WPInv_Invoice( wpinv_clean( $_POST['post_id'] ) ); |
|
739 | + $invoice = new WPInv_Invoice(wpinv_clean($_POST['post_id'])); |
|
740 | 740 | $alert = false; |
741 | 741 | |
742 | 742 | // Ensure it exists and its not been paid for. |
743 | - if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) { |
|
743 | + if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) { |
|
744 | 744 | exit; |
745 | 745 | } |
746 | 746 | |
747 | - $invoice->set_items( array() ); |
|
747 | + $invoice->set_items(array()); |
|
748 | 748 | |
749 | - if ( ! empty( $_POST['getpaid_items'] ) ) { |
|
749 | + if (!empty($_POST['getpaid_items'])) { |
|
750 | 750 | |
751 | - foreach ( $_POST['getpaid_items'] as $item_id => $args ) { |
|
752 | - $item = new GetPaid_Form_Item( $item_id ); |
|
751 | + foreach ($_POST['getpaid_items'] as $item_id => $args) { |
|
752 | + $item = new GetPaid_Form_Item($item_id); |
|
753 | 753 | |
754 | - if ( $item->exists() ) { |
|
755 | - $item->set_price( getpaid_standardize_amount( $args['price'] ) ); |
|
756 | - $item->set_quantity( floatval( $args['quantity'] ) ); |
|
757 | - $item->set_name( sanitize_text_field( $args['name'] ) ); |
|
758 | - $item->set_description( wp_kses_post( $args['description'] ) ); |
|
759 | - $invoice->add_item( $item ); |
|
754 | + if ($item->exists()) { |
|
755 | + $item->set_price(getpaid_standardize_amount($args['price'])); |
|
756 | + $item->set_quantity(floatval($args['quantity'])); |
|
757 | + $item->set_name(sanitize_text_field($args['name'])); |
|
758 | + $item->set_description(wp_kses_post($args['description'])); |
|
759 | + $invoice->add_item($item); |
|
760 | 760 | } |
761 | 761 | } |
762 | 762 | |
763 | 763 | } |
764 | 764 | |
765 | - $invoice->set_disable_taxes( ! empty( $_POST['disable_taxes'] ) ); |
|
765 | + $invoice->set_disable_taxes(!empty($_POST['disable_taxes'])); |
|
766 | 766 | |
767 | 767 | // Maybe set the country, state, currency. |
768 | - foreach ( array( 'wpinv_country', 'wpinv_state', 'wpinv_currency', 'wpinv_vat_number', 'wpinv_discount_code' ) as $key ) { |
|
769 | - if ( isset( $_POST[ $key ] ) ) { |
|
770 | - $_key = str_replace( 'wpinv_', '', $key ); |
|
768 | + foreach (array('wpinv_country', 'wpinv_state', 'wpinv_currency', 'wpinv_vat_number', 'wpinv_discount_code') as $key) { |
|
769 | + if (isset($_POST[$key])) { |
|
770 | + $_key = str_replace('wpinv_', '', $key); |
|
771 | 771 | $method = "set_$_key"; |
772 | - $invoice->$method( sanitize_text_field( $_POST[ $key ] ) ); |
|
772 | + $invoice->$method(sanitize_text_field($_POST[$key])); |
|
773 | 773 | } |
774 | 774 | } |
775 | 775 | |
776 | - $discount = new WPInv_Discount( $invoice->get_discount_code() ); |
|
777 | - if ( $discount->exists() ) { |
|
778 | - $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) ); |
|
776 | + $discount = new WPInv_Discount($invoice->get_discount_code()); |
|
777 | + if ($discount->exists()) { |
|
778 | + $invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount)); |
|
779 | 779 | } else { |
780 | - $invoice->remove_discount( 'discount_code' ); |
|
780 | + $invoice->remove_discount('discount_code'); |
|
781 | 781 | } |
782 | 782 | |
783 | 783 | // Save the invoice. |
784 | 784 | $invoice->recalculate_total(); |
785 | 785 | $invoice->save(); |
786 | 786 | ob_start(); |
787 | - GetPaid_Meta_Box_Invoice_Items::output( get_post( $invoice->get_id() ), $invoice ); |
|
787 | + GetPaid_Meta_Box_Invoice_Items::output(get_post($invoice->get_id()), $invoice); |
|
788 | 788 | $table = ob_get_clean(); |
789 | - wp_send_json_success( compact( 'table' ) ); |
|
789 | + wp_send_json_success(compact('table')); |
|
790 | 790 | } |
791 | 791 | |
792 | 792 | /** |
@@ -795,42 +795,42 @@ discard block |
||
795 | 795 | public static function admin_add_invoice_item() { |
796 | 796 | |
797 | 797 | // Verify nonce. |
798 | - check_ajax_referer( 'wpinv-nonce' ); |
|
798 | + check_ajax_referer('wpinv-nonce'); |
|
799 | 799 | |
800 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
800 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
801 | 801 | exit; |
802 | 802 | } |
803 | 803 | |
804 | 804 | // We need an invoice and item. |
805 | - if ( empty( $_POST['post_id'] ) || empty( $_POST['item_id'] ) ) { |
|
805 | + if (empty($_POST['post_id']) || empty($_POST['item_id'])) { |
|
806 | 806 | exit; |
807 | 807 | } |
808 | 808 | |
809 | 809 | // Fetch the invoice. |
810 | - $invoice = new WPInv_Invoice( wpinv_clean( $_POST['post_id'] ) ); |
|
810 | + $invoice = new WPInv_Invoice(wpinv_clean($_POST['post_id'])); |
|
811 | 811 | $alert = false; |
812 | 812 | |
813 | 813 | // Ensure it exists and its not been paid for. |
814 | - if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) { |
|
814 | + if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) { |
|
815 | 815 | exit; |
816 | 816 | } |
817 | 817 | |
818 | 818 | // Add the item. |
819 | - $item = new GetPaid_Form_Item( (int) $_POST['item_id'] ); |
|
820 | - $error = $invoice->add_item( $item ); |
|
819 | + $item = new GetPaid_Form_Item((int) $_POST['item_id']); |
|
820 | + $error = $invoice->add_item($item); |
|
821 | 821 | |
822 | - if ( is_wp_error( $error ) ) { |
|
822 | + if (is_wp_error($error)) { |
|
823 | 823 | $alert = $error->get_error_message(); |
824 | - wp_send_json_success( compact( 'alert' ) ); |
|
824 | + wp_send_json_success(compact('alert')); |
|
825 | 825 | } |
826 | 826 | |
827 | 827 | // Save the invoice. |
828 | 828 | $invoice->recalculate_total(); |
829 | 829 | $invoice->save(); |
830 | 830 | ob_start(); |
831 | - GetPaid_Meta_Box_Invoice_Items::output_row( GetPaid_Meta_Box_Invoice_Items::get_columns( $invoice ), $item, $invoice ); |
|
831 | + GetPaid_Meta_Box_Invoice_Items::output_row(GetPaid_Meta_Box_Invoice_Items::get_columns($invoice), $item, $invoice); |
|
832 | 832 | $row = ob_get_clean(); |
833 | - wp_send_json_success( compact( 'row' ) ); |
|
833 | + wp_send_json_success(compact('row')); |
|
834 | 834 | } |
835 | 835 | |
836 | 836 | /** |
@@ -839,39 +839,39 @@ discard block |
||
839 | 839 | public static function add_invoice_items() { |
840 | 840 | |
841 | 841 | // Verify nonce. |
842 | - check_ajax_referer( 'wpinv-nonce' ); |
|
842 | + check_ajax_referer('wpinv-nonce'); |
|
843 | 843 | |
844 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
844 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
845 | 845 | exit; |
846 | 846 | } |
847 | 847 | |
848 | 848 | // We need an invoice and items. |
849 | - if ( empty( $_POST['post_id'] ) || empty( $_POST['items'] ) ) { |
|
849 | + if (empty($_POST['post_id']) || empty($_POST['items'])) { |
|
850 | 850 | exit; |
851 | 851 | } |
852 | 852 | |
853 | 853 | // Fetch the invoice. |
854 | - $invoice = new WPInv_Invoice( wpinv_clean( $_POST['post_id'] ) ); |
|
854 | + $invoice = new WPInv_Invoice(wpinv_clean($_POST['post_id'])); |
|
855 | 855 | $alert = false; |
856 | 856 | |
857 | 857 | // Ensure it exists and its not been paid for. |
858 | - if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) { |
|
858 | + if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) { |
|
859 | 859 | exit; |
860 | 860 | } |
861 | 861 | |
862 | 862 | // Add the items. |
863 | - foreach ( $_POST['items'] as $data ) { |
|
863 | + foreach ($_POST['items'] as $data) { |
|
864 | 864 | |
865 | - $item = new GetPaid_Form_Item( (int) $data[ 'id' ] ); |
|
865 | + $item = new GetPaid_Form_Item((int) $data['id']); |
|
866 | 866 | |
867 | - if ( is_numeric( $data[ 'qty' ] ) && (float) $data[ 'qty' ] > 0 ) { |
|
868 | - $item->set_quantity( floatval( $data[ 'qty' ] ) ); |
|
867 | + if (is_numeric($data['qty']) && (float) $data['qty'] > 0) { |
|
868 | + $item->set_quantity(floatval($data['qty'])); |
|
869 | 869 | } |
870 | 870 | |
871 | - if ( $item->get_id() > 0 ) { |
|
872 | - $error = $invoice->add_item( $item ); |
|
871 | + if ($item->get_id() > 0) { |
|
872 | + $error = $invoice->add_item($item); |
|
873 | 873 | |
874 | - if ( is_wp_error( $error ) ) { |
|
874 | + if (is_wp_error($error)) { |
|
875 | 875 | $alert = $error->get_error_message(); |
876 | 876 | } |
877 | 877 | |
@@ -886,11 +886,11 @@ discard block |
||
886 | 886 | // Return an array of invoice items. |
887 | 887 | $items = array(); |
888 | 888 | |
889 | - foreach ( $invoice->get_items() as $item ) { |
|
890 | - $items[] = $item->prepare_data_for_invoice_edit_ajax( $invoice->get_currency() ); |
|
889 | + foreach ($invoice->get_items() as $item) { |
|
890 | + $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency()); |
|
891 | 891 | } |
892 | 892 | |
893 | - wp_send_json_success( compact( 'items', 'alert' ) ); |
|
893 | + wp_send_json_success(compact('items', 'alert')); |
|
894 | 894 | } |
895 | 895 | |
896 | 896 | /** |
@@ -899,15 +899,15 @@ discard block |
||
899 | 899 | public static function get_invoicing_items() { |
900 | 900 | |
901 | 901 | // Verify nonce. |
902 | - check_ajax_referer( 'wpinv-nonce' ); |
|
902 | + check_ajax_referer('wpinv-nonce'); |
|
903 | 903 | |
904 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
904 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
905 | 905 | exit; |
906 | 906 | } |
907 | 907 | |
908 | 908 | // We need a search term. |
909 | - if ( empty( $_GET['search'] ) ) { |
|
910 | - wp_send_json_success( array() ); |
|
909 | + if (empty($_GET['search'])) { |
|
910 | + wp_send_json_success(array()); |
|
911 | 911 | } |
912 | 912 | |
913 | 913 | // Retrieve items. |
@@ -916,8 +916,8 @@ discard block |
||
916 | 916 | 'orderby' => 'title', |
917 | 917 | 'order' => 'ASC', |
918 | 918 | 'posts_per_page' => -1, |
919 | - 'post_status' => array( 'publish' ), |
|
920 | - 's' => trim( $_GET['search'] ), |
|
919 | + 'post_status' => array('publish'), |
|
920 | + 's' => trim($_GET['search']), |
|
921 | 921 | 'meta_query' => array( |
922 | 922 | array( |
923 | 923 | 'key' => '_wpinv_type', |
@@ -927,25 +927,25 @@ discard block |
||
927 | 927 | ) |
928 | 928 | ); |
929 | 929 | |
930 | - if ( ! empty( $_GET['ignore'] ) ) { |
|
931 | - $item_args['exclude'] = wp_parse_id_list( $_GET['ignore'] ); |
|
930 | + if (!empty($_GET['ignore'])) { |
|
931 | + $item_args['exclude'] = wp_parse_id_list($_GET['ignore']); |
|
932 | 932 | } |
933 | 933 | |
934 | - $items = get_posts( apply_filters( 'getpaid_ajax_invoice_items_query_args', $item_args ) ); |
|
934 | + $items = get_posts(apply_filters('getpaid_ajax_invoice_items_query_args', $item_args)); |
|
935 | 935 | $data = array(); |
936 | 936 | |
937 | - $is_payment_form = ( ! empty( $_GET['post_id'] ) && 'wpi_payment_form' == get_post_type( $_GET['post_id'] ) ); |
|
937 | + $is_payment_form = (!empty($_GET['post_id']) && 'wpi_payment_form' == get_post_type($_GET['post_id'])); |
|
938 | 938 | |
939 | - foreach ( $items as $item ) { |
|
940 | - $item = new GetPaid_Form_Item( $item ); |
|
939 | + foreach ($items as $item) { |
|
940 | + $item = new GetPaid_Form_Item($item); |
|
941 | 941 | $data[] = array( |
942 | 942 | 'id' => (int) $item->get_id(), |
943 | - 'text' => strip_tags( $item->get_name() ), |
|
944 | - 'form_data' => $is_payment_form ? $item->prepare_data_for_use( false ) : '', |
|
943 | + 'text' => strip_tags($item->get_name()), |
|
944 | + 'form_data' => $is_payment_form ? $item->prepare_data_for_use(false) : '', |
|
945 | 945 | ); |
946 | 946 | } |
947 | 947 | |
948 | - wp_send_json_success( $data ); |
|
948 | + wp_send_json_success($data); |
|
949 | 949 | |
950 | 950 | } |
951 | 951 | |
@@ -955,37 +955,37 @@ discard block |
||
955 | 955 | public static function get_customers() { |
956 | 956 | |
957 | 957 | // Verify nonce. |
958 | - check_ajax_referer( 'wpinv-nonce' ); |
|
958 | + check_ajax_referer('wpinv-nonce'); |
|
959 | 959 | |
960 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
960 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
961 | 961 | exit; |
962 | 962 | } |
963 | 963 | |
964 | 964 | // We need a search term. |
965 | - if ( empty( $_GET['search'] ) ) { |
|
966 | - wp_send_json_success( array() ); |
|
965 | + if (empty($_GET['search'])) { |
|
966 | + wp_send_json_success(array()); |
|
967 | 967 | } |
968 | 968 | |
969 | 969 | // Retrieve customers. |
970 | 970 | |
971 | 971 | $customer_args = array( |
972 | - 'fields' => array( 'ID', 'user_email', 'display_name' ), |
|
972 | + 'fields' => array('ID', 'user_email', 'display_name'), |
|
973 | 973 | 'orderby' => 'display_name', |
974 | - 'search' => '*' . sanitize_text_field( $_GET['search'] ) . '*', |
|
975 | - 'search_columns' => array( 'user_login', 'user_email', 'display_name' ), |
|
974 | + 'search' => '*' . sanitize_text_field($_GET['search']) . '*', |
|
975 | + 'search_columns' => array('user_login', 'user_email', 'display_name'), |
|
976 | 976 | ); |
977 | 977 | |
978 | - $customers = get_users( apply_filters( 'getpaid_ajax_invoice_customers_query_args', $customer_args ) ); |
|
978 | + $customers = get_users(apply_filters('getpaid_ajax_invoice_customers_query_args', $customer_args)); |
|
979 | 979 | $data = array(); |
980 | 980 | |
981 | - foreach ( $customers as $customer ) { |
|
981 | + foreach ($customers as $customer) { |
|
982 | 982 | $data[] = array( |
983 | 983 | 'id' => (int) $customer->ID, |
984 | - 'text' => strip_tags( sprintf( _x( '%1$s (%2$s)', 'user dropdown', 'invoicing' ), $customer->display_name, $customer->user_email ) ), |
|
984 | + 'text' => strip_tags(sprintf(_x('%1$s (%2$s)', 'user dropdown', 'invoicing'), $customer->display_name, $customer->user_email)), |
|
985 | 985 | ); |
986 | 986 | } |
987 | 987 | |
988 | - wp_send_json_success( $data ); |
|
988 | + wp_send_json_success($data); |
|
989 | 989 | |
990 | 990 | } |
991 | 991 | |
@@ -995,28 +995,28 @@ discard block |
||
995 | 995 | public static function get_aui_states_field() { |
996 | 996 | |
997 | 997 | // Verify nonce. |
998 | - check_ajax_referer( 'wpinv-nonce' ); |
|
998 | + check_ajax_referer('wpinv-nonce'); |
|
999 | 999 | |
1000 | 1000 | // We need a country. |
1001 | - if ( empty( $_GET['country'] ) ) { |
|
1001 | + if (empty($_GET['country'])) { |
|
1002 | 1002 | exit; |
1003 | 1003 | } |
1004 | 1004 | |
1005 | - $states = wpinv_get_country_states( sanitize_text_field( $_GET['country'] ) ); |
|
1006 | - $state = isset( $_GET['state'] ) ? sanitize_text_field( $_GET['state'] ) : wpinv_get_default_state(); |
|
1007 | - $name = isset( $_GET['name'] ) ? sanitize_text_field( $_GET['name'] ) : 'wpinv_state'; |
|
1008 | - $class = isset( $_GET['class'] ) ? sanitize_text_field( $_GET['class'] ) : 'form-control-sm'; |
|
1005 | + $states = wpinv_get_country_states(sanitize_text_field($_GET['country'])); |
|
1006 | + $state = isset($_GET['state']) ? sanitize_text_field($_GET['state']) : wpinv_get_default_state(); |
|
1007 | + $name = isset($_GET['name']) ? sanitize_text_field($_GET['name']) : 'wpinv_state'; |
|
1008 | + $class = isset($_GET['class']) ? sanitize_text_field($_GET['class']) : 'form-control-sm'; |
|
1009 | 1009 | |
1010 | - if ( empty( $states ) ) { |
|
1010 | + if (empty($states)) { |
|
1011 | 1011 | |
1012 | 1012 | $html = aui()->input( |
1013 | 1013 | array( |
1014 | 1014 | 'type' => 'text', |
1015 | 1015 | 'id' => 'wpinv_state', |
1016 | 1016 | 'name' => $name, |
1017 | - 'label' => __( 'State', 'invoicing' ), |
|
1017 | + 'label' => __('State', 'invoicing'), |
|
1018 | 1018 | 'label_type' => 'vertical', |
1019 | - 'placeholder' => __( 'State', 'invoicing' ), |
|
1019 | + 'placeholder' => __('State', 'invoicing'), |
|
1020 | 1020 | 'class' => $class, |
1021 | 1021 | 'value' => $state, |
1022 | 1022 | ) |
@@ -1028,9 +1028,9 @@ discard block |
||
1028 | 1028 | array( |
1029 | 1029 | 'id' => 'wpinv_state', |
1030 | 1030 | 'name' => $name, |
1031 | - 'label' => __( 'State', 'invoicing' ), |
|
1031 | + 'label' => __('State', 'invoicing'), |
|
1032 | 1032 | 'label_type' => 'vertical', |
1033 | - 'placeholder' => __( 'Select a state', 'invoicing' ), |
|
1033 | + 'placeholder' => __('Select a state', 'invoicing'), |
|
1034 | 1034 | 'class' => $class, |
1035 | 1035 | 'value' => $state, |
1036 | 1036 | 'options' => $states, |
@@ -1044,7 +1044,7 @@ discard block |
||
1044 | 1044 | wp_send_json_success( |
1045 | 1045 | array( |
1046 | 1046 | 'html' => $html, |
1047 | - 'select' => ! empty ( $states ) |
|
1047 | + 'select' => !empty ($states) |
|
1048 | 1048 | ) |
1049 | 1049 | ); |
1050 | 1050 | |
@@ -1058,11 +1058,11 @@ discard block |
||
1058 | 1058 | public static function payment_form_refresh_prices() { |
1059 | 1059 | |
1060 | 1060 | // Check nonce. |
1061 | - check_ajax_referer( 'getpaid_form_nonce' ); |
|
1061 | + check_ajax_referer('getpaid_form_nonce'); |
|
1062 | 1062 | |
1063 | 1063 | // ... form fields... |
1064 | - if ( empty( $_POST['getpaid_payment_form_submission'] ) ) { |
|
1065 | - _e( 'Error: Reload the page and try again.', 'invoicing' ); |
|
1064 | + if (empty($_POST['getpaid_payment_form_submission'])) { |
|
1065 | + _e('Error: Reload the page and try again.', 'invoicing'); |
|
1066 | 1066 | exit; |
1067 | 1067 | } |
1068 | 1068 | |
@@ -1070,7 +1070,7 @@ discard block |
||
1070 | 1070 | $submission = new GetPaid_Payment_Form_Submission(); |
1071 | 1071 | |
1072 | 1072 | // Do we have an error? |
1073 | - if ( ! empty( $submission->last_error ) ) { |
|
1073 | + if (!empty($submission->last_error)) { |
|
1074 | 1074 | wp_send_json_error( |
1075 | 1075 | array( |
1076 | 1076 | 'code' => $submission->last_error_code, |
@@ -1080,12 +1080,12 @@ discard block |
||
1080 | 1080 | } |
1081 | 1081 | |
1082 | 1082 | // Prepare the response. |
1083 | - $response = new GetPaid_Payment_Form_Submission_Refresh_Prices( $submission ); |
|
1083 | + $response = new GetPaid_Payment_Form_Submission_Refresh_Prices($submission); |
|
1084 | 1084 | |
1085 | 1085 | // Filter the response. |
1086 | - $response = apply_filters( 'getpaid_payment_form_ajax_refresh_prices', $response->response, $submission ); |
|
1086 | + $response = apply_filters('getpaid_payment_form_ajax_refresh_prices', $response->response, $submission); |
|
1087 | 1087 | |
1088 | - wp_send_json_success( $response ); |
|
1088 | + wp_send_json_success($response); |
|
1089 | 1089 | } |
1090 | 1090 | |
1091 | 1091 | /** |
@@ -1097,63 +1097,63 @@ discard block |
||
1097 | 1097 | public static function file_upload() { |
1098 | 1098 | |
1099 | 1099 | // Check nonce. |
1100 | - check_ajax_referer( 'getpaid_form_nonce' ); |
|
1100 | + check_ajax_referer('getpaid_form_nonce'); |
|
1101 | 1101 | |
1102 | - if ( empty( $_POST['form_id'] ) || empty( $_POST['field_name'] ) || empty( $_FILES['file'] ) ) { |
|
1103 | - wp_die( __( 'Bad Request', 'invoicing' ), 400 ); |
|
1102 | + if (empty($_POST['form_id']) || empty($_POST['field_name']) || empty($_FILES['file'])) { |
|
1103 | + wp_die(__('Bad Request', 'invoicing'), 400); |
|
1104 | 1104 | } |
1105 | 1105 | |
1106 | 1106 | // Fetch form. |
1107 | - $form = new GetPaid_Payment_Form( intval( $_POST['form_id'] ) ); |
|
1107 | + $form = new GetPaid_Payment_Form(intval($_POST['form_id'])); |
|
1108 | 1108 | |
1109 | - if ( ! $form->is_active() ) { |
|
1110 | - wp_send_json_error( __( 'Payment form not active', 'invoicing' ) ); |
|
1109 | + if (!$form->is_active()) { |
|
1110 | + wp_send_json_error(__('Payment form not active', 'invoicing')); |
|
1111 | 1111 | } |
1112 | 1112 | |
1113 | 1113 | // Fetch appropriate field. |
1114 | - $upload_field = current( wp_list_filter( $form->get_elements(), array( 'id' => sanitize_text_field( $_POST['field_name'] ) ) ) ); |
|
1115 | - if ( empty( $upload_field ) ) { |
|
1116 | - wp_send_json_error( __( 'Invalid upload field.', 'invoicing' ) ); |
|
1114 | + $upload_field = current(wp_list_filter($form->get_elements(), array('id' => sanitize_text_field($_POST['field_name'])))); |
|
1115 | + if (empty($upload_field)) { |
|
1116 | + wp_send_json_error(__('Invalid upload field.', 'invoicing')); |
|
1117 | 1117 | } |
1118 | 1118 | |
1119 | 1119 | // Prepare allowed file types. |
1120 | - $file_types = isset( $upload_field['file_types'] ) ? $upload_field['file_types'] : array( 'jpg|jpeg|jpe', 'gif', 'png' ); |
|
1120 | + $file_types = isset($upload_field['file_types']) ? $upload_field['file_types'] : array('jpg|jpeg|jpe', 'gif', 'png'); |
|
1121 | 1121 | $all_types = getpaid_get_allowed_mime_types(); |
1122 | 1122 | $mime_types = array(); |
1123 | 1123 | |
1124 | - foreach ( $file_types as $file_type ) { |
|
1125 | - if ( isset( $all_types[ $file_type ] ) ) { |
|
1126 | - $mime_types[] = $all_types[ $file_type ]; |
|
1124 | + foreach ($file_types as $file_type) { |
|
1125 | + if (isset($all_types[$file_type])) { |
|
1126 | + $mime_types[] = $all_types[$file_type]; |
|
1127 | 1127 | } |
1128 | 1128 | } |
1129 | 1129 | |
1130 | - if ( ! in_array( $_FILES['file']['type'], $mime_types ) ) { |
|
1131 | - wp_send_json_error( __( 'Unsupported file type.', 'invoicing' ) ); |
|
1130 | + if (!in_array($_FILES['file']['type'], $mime_types)) { |
|
1131 | + wp_send_json_error(__('Unsupported file type.', 'invoicing')); |
|
1132 | 1132 | } |
1133 | 1133 | |
1134 | 1134 | // Upload file. |
1135 | - $file_name = explode( '.', strtolower( $_FILES['file']['name'] ) ); |
|
1136 | - $file_name = uniqid( 'getpaid-' ) . '.' . array_pop( $file_name ); |
|
1135 | + $file_name = explode('.', strtolower($_FILES['file']['name'])); |
|
1136 | + $file_name = uniqid('getpaid-') . '.' . array_pop($file_name); |
|
1137 | 1137 | |
1138 | 1138 | $uploaded = wp_upload_bits( |
1139 | 1139 | $file_name, |
1140 | 1140 | null, |
1141 | - file_get_contents( $_FILES["file"]["tmp_name"] ) |
|
1141 | + file_get_contents($_FILES["file"]["tmp_name"]) |
|
1142 | 1142 | ); |
1143 | 1143 | |
1144 | - if ( ! empty( $uploaded['error'] ) ) { |
|
1145 | - wp_send_json_error( $uploaded['error'] ); |
|
1144 | + if (!empty($uploaded['error'])) { |
|
1145 | + wp_send_json_error($uploaded['error']); |
|
1146 | 1146 | } |
1147 | 1147 | |
1148 | 1148 | // Retrieve response. |
1149 | 1149 | $response = sprintf( |
1150 | 1150 | '<input type="hidden" name="%s[%s]" value="%s" />', |
1151 | - esc_attr( $_POST['field_name'] ), |
|
1152 | - esc_attr( $uploaded['url'] ), |
|
1153 | - esc_attr( strtolower( $_FILES['file']['name'] ) ) |
|
1151 | + esc_attr($_POST['field_name']), |
|
1152 | + esc_attr($uploaded['url']), |
|
1153 | + esc_attr(strtolower($_FILES['file']['name'])) |
|
1154 | 1154 | ); |
1155 | 1155 | |
1156 | - wp_send_json_success( $response ); |
|
1156 | + wp_send_json_success($response); |
|
1157 | 1157 | |
1158 | 1158 | } |
1159 | 1159 |