@@ -7,50 +7,50 @@ |
||
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 | - <?php do_action( 'getpaid_before_invoice_meta', $invoice ); ?> |
|
14 | + <?php do_action('getpaid_before_invoice_meta', $invoice); ?> |
|
15 | 15 | <div class="getpaid-invoice-meta-data"> |
16 | 16 | |
17 | 17 | |
18 | - <?php do_action( 'getpaid_before_invoice_meta_table', $invoice ); ?> |
|
18 | + <?php do_action('getpaid_before_invoice_meta_table', $invoice); ?> |
|
19 | 19 | <table class="table table-bordered"> |
20 | 20 | <tbody> |
21 | 21 | |
22 | - <?php do_action( "getpaid_before_invoice_meta_rows", $invoice ); ?> |
|
23 | - <?php foreach ( $meta as $key => $data ) : ?> |
|
22 | + <?php do_action("getpaid_before_invoice_meta_rows", $invoice); ?> |
|
23 | + <?php foreach ($meta as $key => $data) : ?> |
|
24 | 24 | |
25 | - <?php if ( ! empty( $data['value'] ) ) : ?> |
|
25 | + <?php if (!empty($data['value'])) : ?> |
|
26 | 26 | |
27 | - <?php do_action( "getpaid_before_invoice_meta_$key", $invoice, $data ); ?> |
|
27 | + <?php do_action("getpaid_before_invoice_meta_$key", $invoice, $data); ?> |
|
28 | 28 | |
29 | - <tr class="getpaid-invoice-meta-<?php echo sanitize_html_class( $key ); ?>"> |
|
29 | + <tr class="getpaid-invoice-meta-<?php echo sanitize_html_class($key); ?>"> |
|
30 | 30 | |
31 | 31 | <th> |
32 | - <?php echo sanitize_text_field( $data['label'] ); ?> |
|
32 | + <?php echo sanitize_text_field($data['label']); ?> |
|
33 | 33 | </th> |
34 | 34 | |
35 | 35 | <td> |
36 | - <span class="getpaid-invoice-meta-<?php echo sanitize_html_class( $key ); ?>-value"><?php echo wp_kses_post( $data['value'] ); ?></span> |
|
36 | + <span class="getpaid-invoice-meta-<?php echo sanitize_html_class($key); ?>-value"><?php echo wp_kses_post($data['value']); ?></span> |
|
37 | 37 | </td> |
38 | 38 | |
39 | 39 | </tr> |
40 | 40 | |
41 | - <?php do_action( "getpaid_after_invoice_meta_$key", $invoice, $data ); ?> |
|
41 | + <?php do_action("getpaid_after_invoice_meta_$key", $invoice, $data); ?> |
|
42 | 42 | |
43 | 43 | <?php endif; ?> |
44 | 44 | |
45 | 45 | <?php endforeach; ?> |
46 | - <?php do_action( "getpaid_after_invoice_meta_rows", $invoice ); ?> |
|
46 | + <?php do_action("getpaid_after_invoice_meta_rows", $invoice); ?> |
|
47 | 47 | |
48 | 48 | </tbody> |
49 | 49 | </table> |
50 | - <?php do_action( 'getpaid_after_invoice_meta_table', $invoice ); ?> |
|
50 | + <?php do_action('getpaid_after_invoice_meta_table', $invoice); ?> |
|
51 | 51 | |
52 | 52 | |
53 | 53 | </div> |
54 | - <?php do_action( 'getpaid_after_invoice_meta', $invoice ); ?> |
|
54 | + <?php do_action('getpaid_after_invoice_meta', $invoice); ?> |
|
55 | 55 | |
56 | 56 | <?php |
@@ -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. |
@@ -32,14 +32,14 @@ discard block |
||
32 | 32 | public function __construct() { |
33 | 33 | parent::__construct(); |
34 | 34 | |
35 | - $this->title = __( 'Direct bank transfer', 'invoicing' ); |
|
36 | - $this->method_title = __( 'Bank transfer', 'invoicing' ); |
|
37 | - $this->checkout_button_text = __( 'Proceed', 'invoicing' ); |
|
38 | - $this->instructions = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) ); |
|
35 | + $this->title = __('Direct bank transfer', 'invoicing'); |
|
36 | + $this->method_title = __('Bank transfer', 'invoicing'); |
|
37 | + $this->checkout_button_text = __('Proceed', 'invoicing'); |
|
38 | + $this->instructions = apply_filters('wpinv_bank_instructions', $this->get_option('info')); |
|
39 | 39 | |
40 | - add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
41 | - add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
42 | - add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
40 | + add_action('wpinv_receipt_end', array($this, 'thankyou_page')); |
|
41 | + add_action('getpaid_invoice_line_items', array($this, 'thankyou_page'), 40); |
|
42 | + add_action('wpinv_email_invoice_details', array($this, 'email_instructions'), 10, 3); |
|
43 | 43 | |
44 | 44 | } |
45 | 45 | |
@@ -52,23 +52,23 @@ discard block |
||
52 | 52 | * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
53 | 53 | * @return array |
54 | 54 | */ |
55 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
55 | + public function process_payment($invoice, $submission_data, $submission) { |
|
56 | 56 | |
57 | 57 | // Add a transaction id. |
58 | - $invoice->set_transaction_id( $invoice->generate_key('trans_') ); |
|
58 | + $invoice->set_transaction_id($invoice->generate_key('trans_')); |
|
59 | 59 | |
60 | 60 | // Set it as pending payment. |
61 | - if ( ! $invoice->needs_payment() ) { |
|
61 | + if (!$invoice->needs_payment()) { |
|
62 | 62 | $invoice->mark_paid(); |
63 | - } else if ( ! $invoice->is_paid() ) { |
|
64 | - $invoice->set_status( 'wpi-onhold' ); |
|
63 | + } else if (!$invoice->is_paid()) { |
|
64 | + $invoice->set_status('wpi-onhold'); |
|
65 | 65 | } |
66 | 66 | |
67 | 67 | // Save it. |
68 | 68 | $invoice->save(); |
69 | 69 | |
70 | 70 | // Send to the success page. |
71 | - wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
|
71 | + wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key())); |
|
72 | 72 | |
73 | 73 | } |
74 | 74 | |
@@ -77,17 +77,17 @@ discard block |
||
77 | 77 | * |
78 | 78 | * @param WPInv_Invoice $invoice Invoice. |
79 | 79 | */ |
80 | - public function thankyou_page( $invoice ) { |
|
80 | + public function thankyou_page($invoice) { |
|
81 | 81 | |
82 | - if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
82 | + if ('bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment()) { |
|
83 | 83 | |
84 | 84 | echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
85 | 85 | |
86 | - if ( ! empty( $this->instructions ) ) { |
|
87 | - echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) ); |
|
86 | + if (!empty($this->instructions)) { |
|
87 | + echo wp_kses_post(wpautop(wptexturize($this->instructions))); |
|
88 | 88 | } |
89 | 89 | |
90 | - $this->bank_details( $invoice ); |
|
90 | + $this->bank_details($invoice); |
|
91 | 91 | |
92 | 92 | echo '</div>'; |
93 | 93 | |
@@ -102,17 +102,17 @@ discard block |
||
102 | 102 | * @param string $email_type Email format: plain text or HTML. |
103 | 103 | * @param bool $sent_to_admin Sent to admin. |
104 | 104 | */ |
105 | - public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
105 | + public function email_instructions($invoice, $email_type, $sent_to_admin) { |
|
106 | 106 | |
107 | - if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
107 | + if (!$sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment()) { |
|
108 | 108 | |
109 | 109 | echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
110 | 110 | |
111 | - if ( $this->instructions ) { |
|
112 | - echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
111 | + if ($this->instructions) { |
|
112 | + echo wp_kses_post(wpautop(wptexturize($this->instructions)) . PHP_EOL); |
|
113 | 113 | } |
114 | 114 | |
115 | - $this->bank_details( $invoice ); |
|
115 | + $this->bank_details($invoice); |
|
116 | 116 | |
117 | 117 | echo '</div>'; |
118 | 118 | |
@@ -125,51 +125,51 @@ discard block |
||
125 | 125 | * |
126 | 126 | * @param WPInv_Invoice $invoice Invoice. |
127 | 127 | */ |
128 | - protected function bank_details( $invoice ) { |
|
128 | + protected function bank_details($invoice) { |
|
129 | 129 | |
130 | 130 | // Get the invoice country and country $locale. |
131 | 131 | $country = $invoice->get_country(); |
132 | 132 | $locale = $this->get_country_locale(); |
133 | 133 | |
134 | 134 | // Get sortcode label in the $locale array and use appropriate one. |
135 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
135 | + $sortcode = isset($locale[$country]['sortcode']['label']) ? $locale[$country]['sortcode']['label'] : __('Sort code', 'invoicing'); |
|
136 | 136 | |
137 | 137 | $bank_fields = array( |
138 | - 'ac_name' => __( 'Account Name', 'invoicing' ), |
|
139 | - 'ac_no' => __( 'Account Number', 'invoicing' ), |
|
140 | - 'bank_name' => __( 'Bank Name', 'invoicing' ), |
|
141 | - 'ifsc' => __( 'IFSC code', 'invoicing' ), |
|
142 | - 'iban' => __( 'IBAN', 'invoicing' ), |
|
143 | - 'bic' => __( 'BIC/Swift code', 'invoicing' ), |
|
138 | + 'ac_name' => __('Account Name', 'invoicing'), |
|
139 | + 'ac_no' => __('Account Number', 'invoicing'), |
|
140 | + 'bank_name' => __('Bank Name', 'invoicing'), |
|
141 | + 'ifsc' => __('IFSC code', 'invoicing'), |
|
142 | + 'iban' => __('IBAN', 'invoicing'), |
|
143 | + 'bic' => __('BIC/Swift code', 'invoicing'), |
|
144 | 144 | 'sort_code' => $sortcode, |
145 | 145 | ); |
146 | 146 | |
147 | 147 | $bank_info = array(); |
148 | 148 | |
149 | - foreach ( $bank_fields as $field => $label ) { |
|
150 | - $value = $this->get_option( $field ); |
|
149 | + foreach ($bank_fields as $field => $label) { |
|
150 | + $value = $this->get_option($field); |
|
151 | 151 | |
152 | - if ( ! empty( $value ) ) { |
|
153 | - $bank_info[$field] = array( 'label' => $label, 'value' => $value ); |
|
152 | + if (!empty($value)) { |
|
153 | + $bank_info[$field] = array('label' => $label, 'value' => $value); |
|
154 | 154 | } |
155 | 155 | |
156 | 156 | } |
157 | 157 | |
158 | - $bank_info = apply_filters( 'wpinv_bank_info', $bank_info ); |
|
158 | + $bank_info = apply_filters('wpinv_bank_info', $bank_info); |
|
159 | 159 | |
160 | - if ( empty( $bank_info ) ) { |
|
160 | + if (empty($bank_info)) { |
|
161 | 161 | return; |
162 | 162 | } |
163 | 163 | |
164 | - echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) . '</h3>' . PHP_EOL; |
|
164 | + echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters('wpinv_receipt_bank_details_title', __('Bank Details', 'invoicing')) . '</h3>' . PHP_EOL; |
|
165 | 165 | |
166 | 166 | echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
167 | 167 | |
168 | - foreach ( $bank_info as $key => $data ) { |
|
168 | + foreach ($bank_info as $key => $data) { |
|
169 | 169 | |
170 | - $key = sanitize_html_class( $key ); |
|
171 | - $label = wp_kses_post( $data['label'] ); |
|
172 | - $value = wp_kses_post( wptexturize( $data['value'] ) ); |
|
170 | + $key = sanitize_html_class($key); |
|
171 | + $label = wp_kses_post($data['label']); |
|
172 | + $value = wp_kses_post(wptexturize($data['value'])); |
|
173 | 173 | |
174 | 174 | echo "<tr class='getpaid-bank-transfer-$key'><th>$label</th><td>$value</td></tr>" . PHP_EOL; |
175 | 175 | } |
@@ -185,7 +185,7 @@ discard block |
||
185 | 185 | */ |
186 | 186 | public function get_country_locale() { |
187 | 187 | |
188 | - if ( empty( $this->locale ) ) { |
|
188 | + if (empty($this->locale)) { |
|
189 | 189 | |
190 | 190 | // Locale information to be used - only those that are not 'Sort Code'. |
191 | 191 | $this->locale = apply_filters( |
@@ -193,42 +193,42 @@ discard block |
||
193 | 193 | array( |
194 | 194 | 'AU' => array( |
195 | 195 | 'sortcode' => array( |
196 | - 'label' => __( 'BSB', 'invoicing' ), |
|
196 | + 'label' => __('BSB', 'invoicing'), |
|
197 | 197 | ), |
198 | 198 | ), |
199 | 199 | 'CA' => array( |
200 | 200 | 'sortcode' => array( |
201 | - 'label' => __( 'Bank transit number', 'invoicing' ), |
|
201 | + 'label' => __('Bank transit number', 'invoicing'), |
|
202 | 202 | ), |
203 | 203 | ), |
204 | 204 | 'IN' => array( |
205 | 205 | 'sortcode' => array( |
206 | - 'label' => __( 'IFSC', 'invoicing' ), |
|
206 | + 'label' => __('IFSC', 'invoicing'), |
|
207 | 207 | ), |
208 | 208 | ), |
209 | 209 | 'IT' => array( |
210 | 210 | 'sortcode' => array( |
211 | - 'label' => __( 'Branch sort', 'invoicing' ), |
|
211 | + 'label' => __('Branch sort', 'invoicing'), |
|
212 | 212 | ), |
213 | 213 | ), |
214 | 214 | 'NZ' => array( |
215 | 215 | 'sortcode' => array( |
216 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
216 | + 'label' => __('Bank code', 'invoicing'), |
|
217 | 217 | ), |
218 | 218 | ), |
219 | 219 | 'SE' => array( |
220 | 220 | 'sortcode' => array( |
221 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
221 | + 'label' => __('Bank code', 'invoicing'), |
|
222 | 222 | ), |
223 | 223 | ), |
224 | 224 | 'US' => array( |
225 | 225 | 'sortcode' => array( |
226 | - 'label' => __( 'Routing number', 'invoicing' ), |
|
226 | + 'label' => __('Routing number', 'invoicing'), |
|
227 | 227 | ), |
228 | 228 | ), |
229 | 229 | 'ZA' => array( |
230 | 230 | 'sortcode' => array( |
231 | - 'label' => __( 'Branch code', 'invoicing' ), |
|
231 | + 'label' => __('Branch code', 'invoicing'), |
|
232 | 232 | ), |
233 | 233 | ), |
234 | 234 | ) |
@@ -245,51 +245,51 @@ discard block |
||
245 | 245 | * |
246 | 246 | * @param array $admin_settings |
247 | 247 | */ |
248 | - public function admin_settings( $admin_settings ) { |
|
248 | + public function admin_settings($admin_settings) { |
|
249 | 249 | |
250 | - $admin_settings['worldpay_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' ); |
|
251 | - $admin_settings['worldpay_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
250 | + $admin_settings['worldpay_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'); |
|
251 | + $admin_settings['worldpay_active']['desc'] = __('Enable bank transfer', 'invoicing'); |
|
252 | 252 | |
253 | - $locale = $this->get_country_locale(); |
|
253 | + $locale = $this->get_country_locale(); |
|
254 | 254 | |
255 | 255 | // Get sortcode label in the $locale array and use appropriate one. |
256 | 256 | $country = wpinv_default_billing_country(); |
257 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
257 | + $sortcode = isset($locale[$country]['sortcode']['label']) ? $locale[$country]['sortcode']['label'] : __('Sort code', 'invoicing'); |
|
258 | 258 | |
259 | 259 | $admin_settings['bank_transfer_ac_name'] = array( |
260 | 260 | 'type' => 'text', |
261 | 261 | 'id' => 'bank_transfer_ac_name', |
262 | - 'name' => __( 'Account Name', 'invoicing' ), |
|
262 | + 'name' => __('Account Name', 'invoicing'), |
|
263 | 263 | ); |
264 | 264 | |
265 | 265 | $admin_settings['bank_transfer_ac_no'] = array( |
266 | 266 | 'type' => 'text', |
267 | 267 | 'id' => 'bank_transfer_ac_no', |
268 | - 'name' => __( 'Account Number', 'invoicing' ), |
|
268 | + 'name' => __('Account Number', 'invoicing'), |
|
269 | 269 | ); |
270 | 270 | |
271 | 271 | $admin_settings['bank_transfer_bank_name'] = array( |
272 | 272 | 'type' => 'text', |
273 | 273 | 'id' => 'bank_transfer_bank_name', |
274 | - 'name' => __( 'Bank Name', 'invoicing' ), |
|
274 | + 'name' => __('Bank Name', 'invoicing'), |
|
275 | 275 | ); |
276 | 276 | |
277 | 277 | $admin_settings['bank_transfer_ifsc'] = array( |
278 | 278 | 'type' => 'text', |
279 | 279 | 'id' => 'bank_transfer_ifsc', |
280 | - 'name' => __( 'IFSC Code', 'invoicing' ), |
|
280 | + 'name' => __('IFSC Code', 'invoicing'), |
|
281 | 281 | ); |
282 | 282 | |
283 | 283 | $admin_settings['bank_transfer_iban'] = array( |
284 | 284 | 'type' => 'text', |
285 | 285 | 'id' => 'bank_transfer_iban', |
286 | - 'name' => __( 'IBAN', 'invoicing' ), |
|
286 | + 'name' => __('IBAN', 'invoicing'), |
|
287 | 287 | ); |
288 | 288 | |
289 | 289 | $admin_settings['bank_transfer_bic'] = array( |
290 | 290 | 'type' => 'text', |
291 | 291 | 'id' => 'bank_transfer_bic', |
292 | - 'name' => __( 'BIC/Swift Code', 'invoicing' ), |
|
292 | + 'name' => __('BIC/Swift Code', 'invoicing'), |
|
293 | 293 | ); |
294 | 294 | |
295 | 295 | $admin_settings['bank_transfer_sort_code'] = array( |
@@ -300,10 +300,10 @@ discard block |
||
300 | 300 | |
301 | 301 | $admin_settings['bank_transfer_info'] = array( |
302 | 302 | 'id' => 'bank_transfer_info', |
303 | - 'name' => __( 'Instructions', 'invoicing' ), |
|
304 | - 'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ), |
|
303 | + 'name' => __('Instructions', 'invoicing'), |
|
304 | + 'desc' => __('Instructions that will be added to the thank you page and emails.', 'invoicing'), |
|
305 | 305 | 'type' => 'textarea', |
306 | - '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' ), |
|
306 | + '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'), |
|
307 | 307 | 'cols' => 50, |
308 | 308 | 'rows' => 5 |
309 | 309 | ); |
@@ -13,23 +13,23 @@ 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 | 22 | /** |
23 | - * Payment method order. |
|
24 | - * |
|
25 | - * @var int |
|
26 | - */ |
|
27 | - public $order = 8; |
|
23 | + * Payment method order. |
|
24 | + * |
|
25 | + * @var int |
|
26 | + */ |
|
27 | + public $order = 8; |
|
28 | 28 | |
29 | 29 | /** |
30 | - * Class constructor. |
|
31 | - */ |
|
32 | - public function __construct() { |
|
30 | + * Class constructor. |
|
31 | + */ |
|
32 | + public function __construct() { |
|
33 | 33 | parent::__construct(); |
34 | 34 | |
35 | 35 | $this->title = __( 'Direct bank transfer', 'invoicing' ); |
@@ -37,22 +37,22 @@ discard block |
||
37 | 37 | $this->checkout_button_text = __( 'Proceed', 'invoicing' ); |
38 | 38 | $this->instructions = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) ); |
39 | 39 | |
40 | - add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
41 | - add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
42 | - add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
40 | + add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
41 | + add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
42 | + add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
43 | 43 | |
44 | 44 | } |
45 | 45 | |
46 | 46 | /** |
47 | - * Process Payment. |
|
48 | - * |
|
49 | - * |
|
50 | - * @param WPInv_Invoice $invoice Invoice. |
|
51 | - * @param array $submission_data Posted checkout fields. |
|
52 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
53 | - * @return array |
|
54 | - */ |
|
55 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
47 | + * Process Payment. |
|
48 | + * |
|
49 | + * |
|
50 | + * @param WPInv_Invoice $invoice Invoice. |
|
51 | + * @param array $submission_data Posted checkout fields. |
|
52 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
53 | + * @return array |
|
54 | + */ |
|
55 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
56 | 56 | |
57 | 57 | // Add a transaction id. |
58 | 58 | $invoice->set_transaction_id( $invoice->generate_key('trans_') ); |
@@ -73,66 +73,66 @@ discard block |
||
73 | 73 | } |
74 | 74 | |
75 | 75 | /** |
76 | - * Output for the order received page. |
|
77 | - * |
|
78 | - * @param WPInv_Invoice $invoice Invoice. |
|
79 | - */ |
|
80 | - public function thankyou_page( $invoice ) { |
|
76 | + * Output for the order received page. |
|
77 | + * |
|
78 | + * @param WPInv_Invoice $invoice Invoice. |
|
79 | + */ |
|
80 | + public function thankyou_page( $invoice ) { |
|
81 | 81 | |
82 | 82 | if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
83 | 83 | |
84 | - echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
84 | + echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
85 | 85 | |
86 | 86 | if ( ! empty( $this->instructions ) ) { |
87 | 87 | echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) ); |
88 | - } |
|
88 | + } |
|
89 | 89 | |
90 | - $this->bank_details( $invoice ); |
|
90 | + $this->bank_details( $invoice ); |
|
91 | 91 | |
92 | - echo '</div>'; |
|
92 | + echo '</div>'; |
|
93 | 93 | |
94 | 94 | } |
95 | 95 | |
96 | - } |
|
96 | + } |
|
97 | 97 | |
98 | 98 | /** |
99 | - * Add content to the WPI emails. |
|
100 | - * |
|
101 | - * @param WPInv_Invoice $invoice Invoice. |
|
102 | - * @param string $email_type Email format: plain text or HTML. |
|
103 | - * @param bool $sent_to_admin Sent to admin. |
|
104 | - */ |
|
105 | - public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
99 | + * Add content to the WPI emails. |
|
100 | + * |
|
101 | + * @param WPInv_Invoice $invoice Invoice. |
|
102 | + * @param string $email_type Email format: plain text or HTML. |
|
103 | + * @param bool $sent_to_admin Sent to admin. |
|
104 | + */ |
|
105 | + public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
106 | 106 | |
107 | - if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
107 | + if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
108 | 108 | |
109 | - echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
109 | + echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
110 | 110 | |
111 | - if ( $this->instructions ) { |
|
112 | - echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
111 | + if ( $this->instructions ) { |
|
112 | + echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
113 | 113 | } |
114 | 114 | |
115 | - $this->bank_details( $invoice ); |
|
115 | + $this->bank_details( $invoice ); |
|
116 | 116 | |
117 | - echo '</div>'; |
|
117 | + echo '</div>'; |
|
118 | 118 | |
119 | - } |
|
119 | + } |
|
120 | 120 | |
121 | 121 | } |
122 | 122 | |
123 | 123 | /** |
124 | - * Get bank details and place into a list format. |
|
125 | - * |
|
126 | - * @param WPInv_Invoice $invoice Invoice. |
|
127 | - */ |
|
128 | - protected function bank_details( $invoice ) { |
|
124 | + * Get bank details and place into a list format. |
|
125 | + * |
|
126 | + * @param WPInv_Invoice $invoice Invoice. |
|
127 | + */ |
|
128 | + protected function bank_details( $invoice ) { |
|
129 | 129 | |
130 | - // Get the invoice country and country $locale. |
|
131 | - $country = $invoice->get_country(); |
|
132 | - $locale = $this->get_country_locale(); |
|
130 | + // Get the invoice country and country $locale. |
|
131 | + $country = $invoice->get_country(); |
|
132 | + $locale = $this->get_country_locale(); |
|
133 | 133 | |
134 | - // Get sortcode label in the $locale array and use appropriate one. |
|
135 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
134 | + // Get sortcode label in the $locale array and use appropriate one. |
|
135 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
136 | 136 | |
137 | 137 | $bank_fields = array( |
138 | 138 | 'ac_name' => __( 'Account Name', 'invoicing' ), |
@@ -161,144 +161,144 @@ discard block |
||
161 | 161 | return; |
162 | 162 | } |
163 | 163 | |
164 | - echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) . '</h3>' . PHP_EOL; |
|
164 | + echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) . '</h3>' . PHP_EOL; |
|
165 | 165 | |
166 | - echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
166 | + echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
167 | 167 | |
168 | - foreach ( $bank_info as $key => $data ) { |
|
168 | + foreach ( $bank_info as $key => $data ) { |
|
169 | 169 | |
170 | - $key = sanitize_html_class( $key ); |
|
171 | - $label = wp_kses_post( $data['label'] ); |
|
172 | - $value = wp_kses_post( wptexturize( $data['value'] ) ); |
|
170 | + $key = sanitize_html_class( $key ); |
|
171 | + $label = wp_kses_post( $data['label'] ); |
|
172 | + $value = wp_kses_post( wptexturize( $data['value'] ) ); |
|
173 | 173 | |
174 | - echo "<tr class='getpaid-bank-transfer-$key'><th>$label</th><td>$value</td></tr>" . PHP_EOL; |
|
175 | - } |
|
174 | + echo "<tr class='getpaid-bank-transfer-$key'><th>$label</th><td>$value</td></tr>" . PHP_EOL; |
|
175 | + } |
|
176 | 176 | |
177 | - echo '</table>'; |
|
177 | + echo '</table>'; |
|
178 | 178 | |
179 | 179 | } |
180 | 180 | |
181 | 181 | /** |
182 | - * Get country locale if localized. |
|
183 | - * |
|
184 | - * @return array |
|
185 | - */ |
|
186 | - public function get_country_locale() { |
|
187 | - |
|
188 | - if ( empty( $this->locale ) ) { |
|
189 | - |
|
190 | - // Locale information to be used - only those that are not 'Sort Code'. |
|
191 | - $this->locale = apply_filters( |
|
192 | - 'getpaid_get_bank_transfer_locale', |
|
193 | - array( |
|
194 | - 'AU' => array( |
|
195 | - 'sortcode' => array( |
|
196 | - 'label' => __( 'BSB', 'invoicing' ), |
|
197 | - ), |
|
198 | - ), |
|
199 | - 'CA' => array( |
|
200 | - 'sortcode' => array( |
|
201 | - 'label' => __( 'Bank transit number', 'invoicing' ), |
|
202 | - ), |
|
203 | - ), |
|
204 | - 'IN' => array( |
|
205 | - 'sortcode' => array( |
|
206 | - 'label' => __( 'IFSC', 'invoicing' ), |
|
207 | - ), |
|
208 | - ), |
|
209 | - 'IT' => array( |
|
210 | - 'sortcode' => array( |
|
211 | - 'label' => __( 'Branch sort', 'invoicing' ), |
|
212 | - ), |
|
213 | - ), |
|
214 | - 'NZ' => array( |
|
215 | - 'sortcode' => array( |
|
216 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
217 | - ), |
|
218 | - ), |
|
219 | - 'SE' => array( |
|
220 | - 'sortcode' => array( |
|
221 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
222 | - ), |
|
223 | - ), |
|
224 | - 'US' => array( |
|
225 | - 'sortcode' => array( |
|
226 | - 'label' => __( 'Routing number', 'invoicing' ), |
|
227 | - ), |
|
228 | - ), |
|
229 | - 'ZA' => array( |
|
230 | - 'sortcode' => array( |
|
231 | - 'label' => __( 'Branch code', 'invoicing' ), |
|
232 | - ), |
|
233 | - ), |
|
234 | - ) |
|
235 | - ); |
|
236 | - |
|
237 | - } |
|
238 | - |
|
239 | - return $this->locale; |
|
240 | - |
|
241 | - } |
|
242 | - |
|
243 | - /** |
|
244 | - * Filters the gateway settings. |
|
245 | - * |
|
246 | - * @param array $admin_settings |
|
247 | - */ |
|
248 | - public function admin_settings( $admin_settings ) { |
|
182 | + * Get country locale if localized. |
|
183 | + * |
|
184 | + * @return array |
|
185 | + */ |
|
186 | + public function get_country_locale() { |
|
187 | + |
|
188 | + if ( empty( $this->locale ) ) { |
|
189 | + |
|
190 | + // Locale information to be used - only those that are not 'Sort Code'. |
|
191 | + $this->locale = apply_filters( |
|
192 | + 'getpaid_get_bank_transfer_locale', |
|
193 | + array( |
|
194 | + 'AU' => array( |
|
195 | + 'sortcode' => array( |
|
196 | + 'label' => __( 'BSB', 'invoicing' ), |
|
197 | + ), |
|
198 | + ), |
|
199 | + 'CA' => array( |
|
200 | + 'sortcode' => array( |
|
201 | + 'label' => __( 'Bank transit number', 'invoicing' ), |
|
202 | + ), |
|
203 | + ), |
|
204 | + 'IN' => array( |
|
205 | + 'sortcode' => array( |
|
206 | + 'label' => __( 'IFSC', 'invoicing' ), |
|
207 | + ), |
|
208 | + ), |
|
209 | + 'IT' => array( |
|
210 | + 'sortcode' => array( |
|
211 | + 'label' => __( 'Branch sort', 'invoicing' ), |
|
212 | + ), |
|
213 | + ), |
|
214 | + 'NZ' => array( |
|
215 | + 'sortcode' => array( |
|
216 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
217 | + ), |
|
218 | + ), |
|
219 | + 'SE' => array( |
|
220 | + 'sortcode' => array( |
|
221 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
222 | + ), |
|
223 | + ), |
|
224 | + 'US' => array( |
|
225 | + 'sortcode' => array( |
|
226 | + 'label' => __( 'Routing number', 'invoicing' ), |
|
227 | + ), |
|
228 | + ), |
|
229 | + 'ZA' => array( |
|
230 | + 'sortcode' => array( |
|
231 | + 'label' => __( 'Branch code', 'invoicing' ), |
|
232 | + ), |
|
233 | + ), |
|
234 | + ) |
|
235 | + ); |
|
236 | + |
|
237 | + } |
|
238 | + |
|
239 | + return $this->locale; |
|
240 | + |
|
241 | + } |
|
242 | + |
|
243 | + /** |
|
244 | + * Filters the gateway settings. |
|
245 | + * |
|
246 | + * @param array $admin_settings |
|
247 | + */ |
|
248 | + public function admin_settings( $admin_settings ) { |
|
249 | 249 | |
250 | 250 | $admin_settings['worldpay_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' ); |
251 | - $admin_settings['worldpay_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
251 | + $admin_settings['worldpay_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
252 | 252 | |
253 | - $locale = $this->get_country_locale(); |
|
253 | + $locale = $this->get_country_locale(); |
|
254 | 254 | |
255 | - // Get sortcode label in the $locale array and use appropriate one. |
|
256 | - $country = wpinv_default_billing_country(); |
|
257 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
255 | + // Get sortcode label in the $locale array and use appropriate one. |
|
256 | + $country = wpinv_default_billing_country(); |
|
257 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
258 | 258 | |
259 | - $admin_settings['bank_transfer_ac_name'] = array( |
|
259 | + $admin_settings['bank_transfer_ac_name'] = array( |
|
260 | 260 | 'type' => 'text', |
261 | 261 | 'id' => 'bank_transfer_ac_name', |
262 | 262 | 'name' => __( 'Account Name', 'invoicing' ), |
263 | - ); |
|
263 | + ); |
|
264 | 264 | |
265 | - $admin_settings['bank_transfer_ac_no'] = array( |
|
265 | + $admin_settings['bank_transfer_ac_no'] = array( |
|
266 | 266 | 'type' => 'text', |
267 | 267 | 'id' => 'bank_transfer_ac_no', |
268 | 268 | 'name' => __( 'Account Number', 'invoicing' ), |
269 | - ); |
|
269 | + ); |
|
270 | 270 | |
271 | - $admin_settings['bank_transfer_bank_name'] = array( |
|
271 | + $admin_settings['bank_transfer_bank_name'] = array( |
|
272 | 272 | 'type' => 'text', |
273 | 273 | 'id' => 'bank_transfer_bank_name', |
274 | 274 | 'name' => __( 'Bank Name', 'invoicing' ), |
275 | - ); |
|
275 | + ); |
|
276 | 276 | |
277 | - $admin_settings['bank_transfer_ifsc'] = array( |
|
277 | + $admin_settings['bank_transfer_ifsc'] = array( |
|
278 | 278 | 'type' => 'text', |
279 | 279 | 'id' => 'bank_transfer_ifsc', |
280 | 280 | 'name' => __( 'IFSC Code', 'invoicing' ), |
281 | - ); |
|
281 | + ); |
|
282 | 282 | |
283 | - $admin_settings['bank_transfer_iban'] = array( |
|
283 | + $admin_settings['bank_transfer_iban'] = array( |
|
284 | 284 | 'type' => 'text', |
285 | 285 | 'id' => 'bank_transfer_iban', |
286 | 286 | 'name' => __( 'IBAN', 'invoicing' ), |
287 | - ); |
|
287 | + ); |
|
288 | 288 | |
289 | - $admin_settings['bank_transfer_bic'] = array( |
|
289 | + $admin_settings['bank_transfer_bic'] = array( |
|
290 | 290 | 'type' => 'text', |
291 | 291 | 'id' => 'bank_transfer_bic', |
292 | 292 | 'name' => __( 'BIC/Swift Code', 'invoicing' ), |
293 | - ); |
|
293 | + ); |
|
294 | 294 | |
295 | - $admin_settings['bank_transfer_sort_code'] = array( |
|
296 | - 'type' => 'text', |
|
297 | - 'id' => 'bank_transfer_sort_code', |
|
298 | - 'name' => $sortcode, |
|
299 | - ); |
|
295 | + $admin_settings['bank_transfer_sort_code'] = array( |
|
296 | + 'type' => 'text', |
|
297 | + 'id' => 'bank_transfer_sort_code', |
|
298 | + 'name' => $sortcode, |
|
299 | + ); |
|
300 | 300 | |
301 | - $admin_settings['bank_transfer_info'] = array( |
|
301 | + $admin_settings['bank_transfer_info'] = array( |
|
302 | 302 | 'id' => 'bank_transfer_info', |
303 | 303 | 'name' => __( 'Instructions', 'invoicing' ), |
304 | 304 | 'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ), |
@@ -308,7 +308,7 @@ discard block |
||
308 | 308 | 'rows' => 5 |
309 | 309 | ); |
310 | 310 | |
311 | - return $admin_settings; |
|
312 | - } |
|
311 | + return $admin_settings; |
|
312 | + } |
|
313 | 313 | |
314 | 314 | } |
@@ -13,72 +13,72 @@ discard block |
||
13 | 13 | class GetPaid_Paypal_Gateway extends GetPaid_Payment_Gateway { |
14 | 14 | |
15 | 15 | /** |
16 | - * Payment method id. |
|
17 | - * |
|
18 | - * @var string |
|
19 | - */ |
|
16 | + * Payment method id. |
|
17 | + * |
|
18 | + * @var string |
|
19 | + */ |
|
20 | 20 | public $id = 'paypal'; |
21 | 21 | |
22 | 22 | /** |
23 | - * An array of features that this gateway supports. |
|
24 | - * |
|
25 | - * @var array |
|
26 | - */ |
|
23 | + * An array of features that this gateway supports. |
|
24 | + * |
|
25 | + * @var array |
|
26 | + */ |
|
27 | 27 | protected $supports = array( 'subscription', 'sandbox' ); |
28 | 28 | |
29 | 29 | /** |
30 | - * Payment method order. |
|
31 | - * |
|
32 | - * @var int |
|
33 | - */ |
|
30 | + * Payment method order. |
|
31 | + * |
|
32 | + * @var int |
|
33 | + */ |
|
34 | 34 | public $order = 1; |
35 | 35 | |
36 | 36 | /** |
37 | - * Stores line items to send to PayPal. |
|
38 | - * |
|
39 | - * @var array |
|
40 | - */ |
|
37 | + * Stores line items to send to PayPal. |
|
38 | + * |
|
39 | + * @var array |
|
40 | + */ |
|
41 | 41 | protected $line_items = array(); |
42 | 42 | |
43 | 43 | /** |
44 | - * Endpoint for requests from PayPal. |
|
45 | - * |
|
46 | - * @var string |
|
47 | - */ |
|
48 | - protected $notify_url; |
|
44 | + * Endpoint for requests from PayPal. |
|
45 | + * |
|
46 | + * @var string |
|
47 | + */ |
|
48 | + protected $notify_url; |
|
49 | 49 | |
50 | - /** |
|
51 | - * Endpoint for requests to PayPal. |
|
52 | - * |
|
53 | - * @var string |
|
54 | - */ |
|
50 | + /** |
|
51 | + * Endpoint for requests to PayPal. |
|
52 | + * |
|
53 | + * @var string |
|
54 | + */ |
|
55 | 55 | protected $endpoint; |
56 | 56 | |
57 | 57 | /** |
58 | - * Currencies this gateway is allowed for. |
|
59 | - * |
|
60 | - * @var array |
|
61 | - */ |
|
62 | - public $currencies = array( 'AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR' ); |
|
58 | + * Currencies this gateway is allowed for. |
|
59 | + * |
|
60 | + * @var array |
|
61 | + */ |
|
62 | + public $currencies = array( 'AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR' ); |
|
63 | 63 | |
64 | 64 | /** |
65 | - * URL to view a transaction. |
|
66 | - * |
|
67 | - * @var string |
|
68 | - */ |
|
65 | + * URL to view a transaction. |
|
66 | + * |
|
67 | + * @var string |
|
68 | + */ |
|
69 | 69 | public $view_transaction_url = 'https://www.{sandbox}paypal.com/activity/payment/%s'; |
70 | 70 | |
71 | 71 | /** |
72 | - * URL to view a subscription. |
|
73 | - * |
|
74 | - * @var string |
|
75 | - */ |
|
76 | - public $view_subscription_url = 'https://www.{sandbox}paypal.com/cgi-bin/webscr?cmd=_profile-recurring-payments&encrypted_profile_id=%s'; |
|
72 | + * URL to view a subscription. |
|
73 | + * |
|
74 | + * @var string |
|
75 | + */ |
|
76 | + public $view_subscription_url = 'https://www.{sandbox}paypal.com/cgi-bin/webscr?cmd=_profile-recurring-payments&encrypted_profile_id=%s'; |
|
77 | 77 | |
78 | 78 | /** |
79 | - * Class constructor. |
|
80 | - */ |
|
81 | - public function __construct() { |
|
79 | + * Class constructor. |
|
80 | + */ |
|
81 | + public function __construct() { |
|
82 | 82 | |
83 | 83 | $this->title = __( 'PayPal Standard', 'invoicing' ); |
84 | 84 | $this->method_title = __( 'PayPal Standard', 'invoicing' ); |
@@ -92,15 +92,15 @@ discard block |
||
92 | 92 | } |
93 | 93 | |
94 | 94 | /** |
95 | - * Process Payment. |
|
96 | - * |
|
97 | - * |
|
98 | - * @param WPInv_Invoice $invoice Invoice. |
|
99 | - * @param array $submission_data Posted checkout fields. |
|
100 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
101 | - * @return array |
|
102 | - */ |
|
103 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
95 | + * Process Payment. |
|
96 | + * |
|
97 | + * |
|
98 | + * @param WPInv_Invoice $invoice Invoice. |
|
99 | + * @param array $submission_data Posted checkout fields. |
|
100 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
101 | + * @return array |
|
102 | + */ |
|
103 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
104 | 104 | |
105 | 105 | // Get redirect url. |
106 | 106 | $paypal_redirect = $this->get_request_url( $invoice ); |
@@ -123,15 +123,15 @@ discard block |
||
123 | 123 | } |
124 | 124 | |
125 | 125 | /** |
126 | - * Get the PayPal request URL for an invoice. |
|
127 | - * |
|
128 | - * @param WPInv_Invoice $invoice Invoice object. |
|
129 | - * @return string |
|
130 | - */ |
|
131 | - public function get_request_url( $invoice ) { |
|
126 | + * Get the PayPal request URL for an invoice. |
|
127 | + * |
|
128 | + * @param WPInv_Invoice $invoice Invoice object. |
|
129 | + * @return string |
|
130 | + */ |
|
131 | + public function get_request_url( $invoice ) { |
|
132 | 132 | |
133 | 133 | // Endpoint for this request |
134 | - $this->endpoint = $this->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?'; |
|
134 | + $this->endpoint = $this->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?'; |
|
135 | 135 | |
136 | 136 | // Retrieve paypal args. |
137 | 137 | $paypal_args = map_deep( $this->get_paypal_args( $invoice ), 'urlencode' ); |
@@ -144,44 +144,44 @@ discard block |
||
144 | 144 | |
145 | 145 | return add_query_arg( $paypal_args, $this->endpoint ); |
146 | 146 | |
147 | - } |
|
147 | + } |
|
148 | 148 | |
149 | 149 | /** |
150 | - * Get PayPal Args for passing to PP. |
|
151 | - * |
|
152 | - * @param WPInv_Invoice $invoice Invoice object. |
|
153 | - * @return array |
|
154 | - */ |
|
155 | - protected function get_paypal_args( $invoice ) { |
|
150 | + * Get PayPal Args for passing to PP. |
|
151 | + * |
|
152 | + * @param WPInv_Invoice $invoice Invoice object. |
|
153 | + * @return array |
|
154 | + */ |
|
155 | + protected function get_paypal_args( $invoice ) { |
|
156 | 156 | |
157 | 157 | // Whether or not to send the line items as one item. |
158 | - $force_one_line_item = apply_filters( 'getpaid_paypal_force_one_line_item', false, $invoice ); |
|
159 | - |
|
160 | - if ( $invoice->is_recurring() || ( wpinv_use_taxes() && wpinv_prices_include_tax() ) ) { |
|
161 | - $force_one_line_item = true; |
|
162 | - } |
|
163 | - |
|
164 | - $paypal_args = apply_filters( |
|
165 | - 'getpaid_paypal_args', |
|
166 | - array_merge( |
|
167 | - $this->get_transaction_args( $invoice ), |
|
168 | - $this->get_line_item_args( $invoice, $force_one_line_item ) |
|
169 | - ), |
|
170 | - $invoice |
|
171 | - ); |
|
172 | - |
|
173 | - return $this->fix_request_length( $invoice, $paypal_args ); |
|
158 | + $force_one_line_item = apply_filters( 'getpaid_paypal_force_one_line_item', false, $invoice ); |
|
159 | + |
|
160 | + if ( $invoice->is_recurring() || ( wpinv_use_taxes() && wpinv_prices_include_tax() ) ) { |
|
161 | + $force_one_line_item = true; |
|
162 | + } |
|
163 | + |
|
164 | + $paypal_args = apply_filters( |
|
165 | + 'getpaid_paypal_args', |
|
166 | + array_merge( |
|
167 | + $this->get_transaction_args( $invoice ), |
|
168 | + $this->get_line_item_args( $invoice, $force_one_line_item ) |
|
169 | + ), |
|
170 | + $invoice |
|
171 | + ); |
|
172 | + |
|
173 | + return $this->fix_request_length( $invoice, $paypal_args ); |
|
174 | 174 | } |
175 | 175 | |
176 | 176 | /** |
177 | - * Get transaction args for paypal request. |
|
178 | - * |
|
179 | - * @param WPInv_Invoice $invoice Invoice object. |
|
180 | - * @return array |
|
181 | - */ |
|
182 | - protected function get_transaction_args( $invoice ) { |
|
177 | + * Get transaction args for paypal request. |
|
178 | + * |
|
179 | + * @param WPInv_Invoice $invoice Invoice object. |
|
180 | + * @return array |
|
181 | + */ |
|
182 | + protected function get_transaction_args( $invoice ) { |
|
183 | 183 | |
184 | - return array( |
|
184 | + return array( |
|
185 | 185 | 'cmd' => '_cart', |
186 | 186 | 'business' => wpinv_get_option( 'paypal_email', false ), |
187 | 187 | 'no_shipping' => '1', |
@@ -206,16 +206,16 @@ discard block |
||
206 | 206 | } |
207 | 207 | |
208 | 208 | /** |
209 | - * Get line item args for paypal request. |
|
210 | - * |
|
211 | - * @param WPInv_Invoice $invoice Invoice object. |
|
212 | - * @param bool $force_one_line_item Create only one item for this invoice. |
|
213 | - * @return array |
|
214 | - */ |
|
215 | - protected function get_line_item_args( $invoice, $force_one_line_item = false ) { |
|
209 | + * Get line item args for paypal request. |
|
210 | + * |
|
211 | + * @param WPInv_Invoice $invoice Invoice object. |
|
212 | + * @param bool $force_one_line_item Create only one item for this invoice. |
|
213 | + * @return array |
|
214 | + */ |
|
215 | + protected function get_line_item_args( $invoice, $force_one_line_item = false ) { |
|
216 | 216 | |
217 | 217 | // Maybe send invoice as a single item. |
218 | - if ( $force_one_line_item ) { |
|
218 | + if ( $force_one_line_item ) { |
|
219 | 219 | return $this->get_line_item_args_single_item( $invoice ); |
220 | 220 | } |
221 | 221 | |
@@ -235,129 +235,129 @@ discard block |
||
235 | 235 | $line_item_args['discount_amount_cart'] = wpinv_sanitize_amount( (float) $invoice->get_total_discount(), 2 ); |
236 | 236 | } |
237 | 237 | |
238 | - return array_merge( $line_item_args, $this->get_line_items() ); |
|
238 | + return array_merge( $line_item_args, $this->get_line_items() ); |
|
239 | 239 | |
240 | 240 | } |
241 | 241 | |
242 | 242 | /** |
243 | - * Get line item args for paypal request as a single line item. |
|
244 | - * |
|
245 | - * @param WPInv_Invoice $invoice Invoice object. |
|
246 | - * @return array |
|
247 | - */ |
|
248 | - protected function get_line_item_args_single_item( $invoice ) { |
|
249 | - $this->delete_line_items(); |
|
243 | + * Get line item args for paypal request as a single line item. |
|
244 | + * |
|
245 | + * @param WPInv_Invoice $invoice Invoice object. |
|
246 | + * @return array |
|
247 | + */ |
|
248 | + protected function get_line_item_args_single_item( $invoice ) { |
|
249 | + $this->delete_line_items(); |
|
250 | 250 | |
251 | 251 | $item_name = sprintf( __( 'Invoice #%s', 'invoicing' ), $invoice->get_number() ); |
252 | - $this->add_line_item( $item_name, 1, wpinv_sanitize_amount( (float) $invoice->get_total(), 2 ), $invoice->get_id() ); |
|
252 | + $this->add_line_item( $item_name, 1, wpinv_sanitize_amount( (float) $invoice->get_total(), 2 ), $invoice->get_id() ); |
|
253 | 253 | |
254 | - return $this->get_line_items(); |
|
254 | + return $this->get_line_items(); |
|
255 | 255 | } |
256 | 256 | |
257 | 257 | /** |
258 | - * Return all line items. |
|
259 | - */ |
|
260 | - protected function get_line_items() { |
|
261 | - return $this->line_items; |
|
262 | - } |
|
258 | + * Return all line items. |
|
259 | + */ |
|
260 | + protected function get_line_items() { |
|
261 | + return $this->line_items; |
|
262 | + } |
|
263 | 263 | |
264 | 264 | /** |
265 | - * Remove all line items. |
|
266 | - */ |
|
267 | - protected function delete_line_items() { |
|
268 | - $this->line_items = array(); |
|
265 | + * Remove all line items. |
|
266 | + */ |
|
267 | + protected function delete_line_items() { |
|
268 | + $this->line_items = array(); |
|
269 | 269 | } |
270 | 270 | |
271 | 271 | /** |
272 | - * Prepare line items to send to paypal. |
|
273 | - * |
|
274 | - * @param WPInv_Invoice $invoice Invoice object. |
|
275 | - */ |
|
276 | - protected function prepare_line_items( $invoice ) { |
|
277 | - $this->delete_line_items(); |
|
278 | - |
|
279 | - // Items. |
|
280 | - foreach ( $invoice->get_items() as $item ) { |
|
281 | - $amount = $invoice->get_template() == 'amount' ? $item->get_price() : $item->get_sub_total(); |
|
282 | - $quantity = $invoice->get_template() == 'amount' ? 1 : $item->get_quantity(); |
|
283 | - $this->add_line_item( $item->get_raw_name(), $quantity, $amount, $item->get_id() ); |
|
272 | + * Prepare line items to send to paypal. |
|
273 | + * |
|
274 | + * @param WPInv_Invoice $invoice Invoice object. |
|
275 | + */ |
|
276 | + protected function prepare_line_items( $invoice ) { |
|
277 | + $this->delete_line_items(); |
|
278 | + |
|
279 | + // Items. |
|
280 | + foreach ( $invoice->get_items() as $item ) { |
|
281 | + $amount = $invoice->get_template() == 'amount' ? $item->get_price() : $item->get_sub_total(); |
|
282 | + $quantity = $invoice->get_template() == 'amount' ? 1 : $item->get_quantity(); |
|
283 | + $this->add_line_item( $item->get_raw_name(), $quantity, $amount, $item->get_id() ); |
|
284 | 284 | } |
285 | 285 | |
286 | 286 | // Fees. |
287 | - foreach ( $invoice->get_fees() as $fee => $data ) { |
|
287 | + foreach ( $invoice->get_fees() as $fee => $data ) { |
|
288 | 288 | $this->add_line_item( $fee, 1, $data['amount'] ); |
289 | 289 | } |
290 | 290 | |
291 | 291 | } |
292 | 292 | |
293 | 293 | /** |
294 | - * Add PayPal Line Item. |
|
295 | - * |
|
296 | - * @param string $item_name Item name. |
|
297 | - * @param int $quantity Item quantity. |
|
298 | - * @param float $amount Amount. |
|
299 | - * @param string $item_number Item number. |
|
300 | - */ |
|
301 | - protected function add_line_item( $item_name, $quantity = 1, $amount = 0.0, $item_number = '' ) { |
|
302 | - $index = ( count( $this->line_items ) / 4 ) + 1; |
|
303 | - |
|
304 | - $item = apply_filters( |
|
305 | - 'getpaid_paypal_line_item', |
|
306 | - array( |
|
307 | - 'item_name' => html_entity_decode( getpaid_limit_length( $item_name ? wp_strip_all_tags( $item_name ) : __( 'Item', 'invoicing' ), 127 ), ENT_NOQUOTES, 'UTF-8' ), |
|
308 | - 'quantity' => (int) $quantity, |
|
309 | - 'amount' => wpinv_sanitize_amount( (float) $amount, 2 ), |
|
310 | - 'item_number' => $item_number, |
|
311 | - ), |
|
312 | - $item_name, |
|
313 | - $quantity, |
|
314 | - $amount, |
|
315 | - $item_number |
|
316 | - ); |
|
317 | - |
|
318 | - $this->line_items[ 'item_name_' . $index ] = getpaid_limit_length( $item['item_name'], 127 ); |
|
294 | + * Add PayPal Line Item. |
|
295 | + * |
|
296 | + * @param string $item_name Item name. |
|
297 | + * @param int $quantity Item quantity. |
|
298 | + * @param float $amount Amount. |
|
299 | + * @param string $item_number Item number. |
|
300 | + */ |
|
301 | + protected function add_line_item( $item_name, $quantity = 1, $amount = 0.0, $item_number = '' ) { |
|
302 | + $index = ( count( $this->line_items ) / 4 ) + 1; |
|
303 | + |
|
304 | + $item = apply_filters( |
|
305 | + 'getpaid_paypal_line_item', |
|
306 | + array( |
|
307 | + 'item_name' => html_entity_decode( getpaid_limit_length( $item_name ? wp_strip_all_tags( $item_name ) : __( 'Item', 'invoicing' ), 127 ), ENT_NOQUOTES, 'UTF-8' ), |
|
308 | + 'quantity' => (int) $quantity, |
|
309 | + 'amount' => wpinv_sanitize_amount( (float) $amount, 2 ), |
|
310 | + 'item_number' => $item_number, |
|
311 | + ), |
|
312 | + $item_name, |
|
313 | + $quantity, |
|
314 | + $amount, |
|
315 | + $item_number |
|
316 | + ); |
|
317 | + |
|
318 | + $this->line_items[ 'item_name_' . $index ] = getpaid_limit_length( $item['item_name'], 127 ); |
|
319 | 319 | $this->line_items[ 'quantity_' . $index ] = $item['quantity']; |
320 | 320 | |
321 | 321 | // The price or amount of the product, service, or contribution, not including shipping, handling, or tax. |
322 | - $this->line_items[ 'amount_' . $index ] = $item['amount']; |
|
323 | - $this->line_items[ 'item_number_' . $index ] = getpaid_limit_length( $item['item_number'], 127 ); |
|
322 | + $this->line_items[ 'amount_' . $index ] = $item['amount']; |
|
323 | + $this->line_items[ 'item_number_' . $index ] = getpaid_limit_length( $item['item_number'], 127 ); |
|
324 | 324 | } |
325 | 325 | |
326 | 326 | /** |
327 | - * If the default request with line items is too long, generate a new one with only one line item. |
|
328 | - * |
|
329 | - * https://support.microsoft.com/en-us/help/208427/maximum-url-length-is-2-083-characters-in-internet-explorer. |
|
330 | - * |
|
331 | - * @param WPInv_Invoice $invoice Invoice to be sent to Paypal. |
|
332 | - * @param array $paypal_args Arguments sent to Paypal in the request. |
|
333 | - * @return array |
|
334 | - */ |
|
335 | - protected function fix_request_length( $invoice, $paypal_args ) { |
|
336 | - $max_paypal_length = 2083; |
|
337 | - $query_candidate = http_build_query( $paypal_args, '', '&' ); |
|
338 | - |
|
339 | - if ( strlen( $this->endpoint . $query_candidate ) <= $max_paypal_length ) { |
|
340 | - return $paypal_args; |
|
341 | - } |
|
342 | - |
|
343 | - return apply_filters( |
|
344 | - 'getpaid_paypal_args', |
|
345 | - array_merge( |
|
346 | - $this->get_transaction_args( $invoice ), |
|
347 | - $this->get_line_item_args( $invoice, true ) |
|
348 | - ), |
|
349 | - $invoice |
|
350 | - ); |
|
327 | + * If the default request with line items is too long, generate a new one with only one line item. |
|
328 | + * |
|
329 | + * https://support.microsoft.com/en-us/help/208427/maximum-url-length-is-2-083-characters-in-internet-explorer. |
|
330 | + * |
|
331 | + * @param WPInv_Invoice $invoice Invoice to be sent to Paypal. |
|
332 | + * @param array $paypal_args Arguments sent to Paypal in the request. |
|
333 | + * @return array |
|
334 | + */ |
|
335 | + protected function fix_request_length( $invoice, $paypal_args ) { |
|
336 | + $max_paypal_length = 2083; |
|
337 | + $query_candidate = http_build_query( $paypal_args, '', '&' ); |
|
338 | + |
|
339 | + if ( strlen( $this->endpoint . $query_candidate ) <= $max_paypal_length ) { |
|
340 | + return $paypal_args; |
|
341 | + } |
|
342 | + |
|
343 | + return apply_filters( |
|
344 | + 'getpaid_paypal_args', |
|
345 | + array_merge( |
|
346 | + $this->get_transaction_args( $invoice ), |
|
347 | + $this->get_line_item_args( $invoice, true ) |
|
348 | + ), |
|
349 | + $invoice |
|
350 | + ); |
|
351 | 351 | |
352 | 352 | } |
353 | 353 | |
354 | 354 | /** |
355 | - * Processes recurring invoices. |
|
356 | - * |
|
357 | - * @param array $paypal_args PayPal args. |
|
358 | - * @param WPInv_Invoice $invoice Invoice object. |
|
359 | - */ |
|
360 | - public function process_subscription( $paypal_args, $invoice ) { |
|
355 | + * Processes recurring invoices. |
|
356 | + * |
|
357 | + * @param array $paypal_args PayPal args. |
|
358 | + * @param WPInv_Invoice $invoice Invoice object. |
|
359 | + */ |
|
360 | + public function process_subscription( $paypal_args, $invoice ) { |
|
361 | 361 | |
362 | 362 | // Make sure this is a subscription. |
363 | 363 | if ( ! $invoice->is_recurring() || ! $subscription = wpinv_get_subscription( $invoice ) ) { |
@@ -382,11 +382,11 @@ discard block |
||
382 | 382 | |
383 | 383 | $paypal_args['a1'] = 0 == $initial_amount ? 0 : $initial_amount; |
384 | 384 | |
385 | - // Trial period length. |
|
386 | - $paypal_args['p1'] = $subscription_item->get_trial_interval(); |
|
385 | + // Trial period length. |
|
386 | + $paypal_args['p1'] = $subscription_item->get_trial_interval(); |
|
387 | 387 | |
388 | - // Trial period. |
|
389 | - $paypal_args['t1'] = $subscription_item->get_trial_period(); |
|
388 | + // Trial period. |
|
389 | + $paypal_args['t1'] = $subscription_item->get_trial_period(); |
|
390 | 390 | |
391 | 391 | } else if ( $initial_amount != $recurring_amount ) { |
392 | 392 | |
@@ -409,40 +409,40 @@ discard block |
||
409 | 409 | } |
410 | 410 | |
411 | 411 | // We have a recurring payment |
412 | - if ( ! isset( $param_number ) || 1 == $param_number ) { |
|
412 | + if ( ! isset( $param_number ) || 1 == $param_number ) { |
|
413 | 413 | |
414 | - // Subscription price |
|
415 | - $paypal_args['a3'] = $recurring_amount; |
|
414 | + // Subscription price |
|
415 | + $paypal_args['a3'] = $recurring_amount; |
|
416 | 416 | |
417 | - // Subscription duration |
|
418 | - $paypal_args['p3'] = $interval; |
|
417 | + // Subscription duration |
|
418 | + $paypal_args['p3'] = $interval; |
|
419 | 419 | |
420 | - // Subscription period |
|
421 | - $paypal_args['t3'] = $period; |
|
420 | + // Subscription period |
|
421 | + $paypal_args['t3'] = $period; |
|
422 | 422 | |
423 | 423 | } |
424 | 424 | |
425 | 425 | // Recurring payments |
426 | - if ( 1 == $bill_times || ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() && 2 == $bill_times ) ) { |
|
426 | + if ( 1 == $bill_times || ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() && 2 == $bill_times ) ) { |
|
427 | 427 | |
428 | - // Non-recurring payments |
|
429 | - $paypal_args['src'] = 0; |
|
428 | + // Non-recurring payments |
|
429 | + $paypal_args['src'] = 0; |
|
430 | 430 | |
431 | - } else { |
|
431 | + } else { |
|
432 | 432 | |
433 | - $paypal_args['src'] = 1; |
|
433 | + $paypal_args['src'] = 1; |
|
434 | 434 | |
435 | - if ( $bill_times > 0 ) { |
|
435 | + if ( $bill_times > 0 ) { |
|
436 | 436 | |
437 | - // An initial period is being used to charge a sign-up fee |
|
438 | - if ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() ) { |
|
439 | - $bill_times--; |
|
440 | - } |
|
437 | + // An initial period is being used to charge a sign-up fee |
|
438 | + if ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() ) { |
|
439 | + $bill_times--; |
|
440 | + } |
|
441 | 441 | |
442 | 442 | // Make sure it's not over the max of 52 |
443 | 443 | $paypal_args['srt'] = ( $bill_times <= 52 ? absint( $bill_times ) : 52 ); |
444 | 444 | |
445 | - } |
|
445 | + } |
|
446 | 446 | } |
447 | 447 | |
448 | 448 | // Force return URL so that order description & instructions display |
@@ -458,24 +458,24 @@ discard block |
||
458 | 458 | } |
459 | 459 | |
460 | 460 | return apply_filters( |
461 | - 'getpaid_paypal_subscription_args', |
|
462 | - $paypal_args, |
|
463 | - $invoice |
|
461 | + 'getpaid_paypal_subscription_args', |
|
462 | + $paypal_args, |
|
463 | + $invoice |
|
464 | 464 | ); |
465 | 465 | |
466 | 466 | } |
467 | 467 | |
468 | 468 | /** |
469 | - * Processes ipns and marks payments as complete. |
|
470 | - * |
|
471 | - * @return void |
|
472 | - */ |
|
473 | - public function verify_ipn() { |
|
469 | + * Processes ipns and marks payments as complete. |
|
470 | + * |
|
471 | + * @return void |
|
472 | + */ |
|
473 | + public function verify_ipn() { |
|
474 | 474 | |
475 | 475 | // Validate the IPN. |
476 | 476 | if ( empty( $_POST ) || ! $this->validate_ipn() ) { |
477 | - wp_die( 'PayPal IPN Request Failure', 'PayPal IPN', array( 'response' => 500 ) ); |
|
478 | - } |
|
477 | + wp_die( 'PayPal IPN Request Failure', 'PayPal IPN', array( 'response' => 500 ) ); |
|
478 | + } |
|
479 | 479 | |
480 | 480 | // Process the IPN. |
481 | 481 | $posted = wp_unslash( $_POST ); |
@@ -483,13 +483,13 @@ discard block |
||
483 | 483 | |
484 | 484 | if ( $invoice && $this->id == $invoice->get_gateway() ) { |
485 | 485 | |
486 | - $posted['payment_status'] = strtolower( $posted['payment_status'] ); |
|
486 | + $posted['payment_status'] = strtolower( $posted['payment_status'] ); |
|
487 | 487 | |
488 | 488 | wpinv_error_log( 'Found invoice #' . $invoice->get_number() ); |
489 | 489 | wpinv_error_log( 'Payment status:' . $posted['payment_status'] ); |
490 | 490 | |
491 | - if ( method_exists( $this, 'ipn_txn_' . $posted['txn_type'] ) ) { |
|
492 | - call_user_func( array( $this, 'ipn_txn_' . $posted['txn_type'] ), $invoice, $posted ); |
|
491 | + if ( method_exists( $this, 'ipn_txn_' . $posted['txn_type'] ) ) { |
|
492 | + call_user_func( array( $this, 'ipn_txn_' . $posted['txn_type'] ), $invoice, $posted ); |
|
493 | 493 | } else { |
494 | 494 | wpinv_error_log( 'Aborting, Invalid type:' . $posted['txn_type'] ); |
495 | 495 | } |
@@ -501,33 +501,33 @@ discard block |
||
501 | 501 | } |
502 | 502 | |
503 | 503 | /** |
504 | - * Check PayPal IPN validity. |
|
505 | - */ |
|
506 | - public function validate_ipn() { |
|
507 | - |
|
508 | - wpinv_error_log( 'Validating PayPal IPN response' ); |
|
509 | - |
|
510 | - // Get received values from post data. |
|
511 | - $validate_ipn = wp_unslash( $_POST ); |
|
512 | - $validate_ipn['cmd'] = '_notify-validate'; |
|
513 | - |
|
514 | - // Send back post vars to paypal. |
|
515 | - $params = array( |
|
516 | - 'body' => $validate_ipn, |
|
517 | - 'timeout' => 60, |
|
518 | - 'httpversion' => '1.1', |
|
519 | - 'compress' => false, |
|
520 | - 'decompress' => false, |
|
521 | - 'user-agent' => 'GetPaid/' . WPINV_VERSION, |
|
522 | - ); |
|
504 | + * Check PayPal IPN validity. |
|
505 | + */ |
|
506 | + public function validate_ipn() { |
|
507 | + |
|
508 | + wpinv_error_log( 'Validating PayPal IPN response' ); |
|
509 | + |
|
510 | + // Get received values from post data. |
|
511 | + $validate_ipn = wp_unslash( $_POST ); |
|
512 | + $validate_ipn['cmd'] = '_notify-validate'; |
|
513 | + |
|
514 | + // Send back post vars to paypal. |
|
515 | + $params = array( |
|
516 | + 'body' => $validate_ipn, |
|
517 | + 'timeout' => 60, |
|
518 | + 'httpversion' => '1.1', |
|
519 | + 'compress' => false, |
|
520 | + 'decompress' => false, |
|
521 | + 'user-agent' => 'GetPaid/' . WPINV_VERSION, |
|
522 | + ); |
|
523 | 523 | |
524 | - // Post back to get a response. |
|
525 | - $response = wp_safe_remote_post( $this->is_sandbox() ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params ); |
|
524 | + // Post back to get a response. |
|
525 | + $response = wp_safe_remote_post( $this->is_sandbox() ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params ); |
|
526 | 526 | |
527 | 527 | // Check to see if the request was valid. |
528 | - if ( ! is_wp_error( $response ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 && strstr( $response['body'], 'VERIFIED' ) ) { |
|
528 | + if ( ! is_wp_error( $response ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 && strstr( $response['body'], 'VERIFIED' ) ) { |
|
529 | 529 | wpinv_error_log( $response['body'], 'Received valid response from PayPal IPN' ); |
530 | - return true; |
|
530 | + return true; |
|
531 | 531 | } |
532 | 532 | |
533 | 533 | if ( is_wp_error( $response ) ) { |
@@ -541,63 +541,63 @@ discard block |
||
541 | 541 | } |
542 | 542 | |
543 | 543 | /** |
544 | - * Check currency from IPN matches the invoice. |
|
545 | - * |
|
546 | - * @param WPInv_Invoice $invoice Invoice object. |
|
547 | - * @param string $currency currency to validate. |
|
548 | - */ |
|
549 | - protected function validate_ipn_currency( $invoice, $currency ) { |
|
550 | - if ( strtolower( $invoice->get_currency() ) !== strtolower( $currency ) ) { |
|
544 | + * Check currency from IPN matches the invoice. |
|
545 | + * |
|
546 | + * @param WPInv_Invoice $invoice Invoice object. |
|
547 | + * @param string $currency currency to validate. |
|
548 | + */ |
|
549 | + protected function validate_ipn_currency( $invoice, $currency ) { |
|
550 | + if ( strtolower( $invoice->get_currency() ) !== strtolower( $currency ) ) { |
|
551 | 551 | wpinv_record_gateway_error( 'IPN Error', "Currencies do not match: {$currency} instead of {$invoice->get_currency()}" ); |
552 | 552 | |
553 | - /* translators: %s: currency code. */ |
|
554 | - $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal currencies do not match (code %s).', 'invoicing' ), $currency ) ); |
|
555 | - exit; |
|
556 | - } |
|
557 | - } |
|
558 | - |
|
559 | - /** |
|
560 | - * Check payment amount from IPN matches the invoice. |
|
561 | - * |
|
562 | - * @param WPInv_Invoice $invoice Invoice object. |
|
563 | - * @param float $amount amount to validate. |
|
564 | - */ |
|
565 | - protected function validate_ipn_amount( $invoice, $amount ) { |
|
566 | - if ( number_format( $invoice->get_total(), 2, '.', '' ) !== number_format( $amount, 2, '.', '' ) ) { |
|
553 | + /* translators: %s: currency code. */ |
|
554 | + $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal currencies do not match (code %s).', 'invoicing' ), $currency ) ); |
|
555 | + exit; |
|
556 | + } |
|
557 | + } |
|
558 | + |
|
559 | + /** |
|
560 | + * Check payment amount from IPN matches the invoice. |
|
561 | + * |
|
562 | + * @param WPInv_Invoice $invoice Invoice object. |
|
563 | + * @param float $amount amount to validate. |
|
564 | + */ |
|
565 | + protected function validate_ipn_amount( $invoice, $amount ) { |
|
566 | + if ( number_format( $invoice->get_total(), 2, '.', '' ) !== number_format( $amount, 2, '.', '' ) ) { |
|
567 | 567 | wpinv_record_gateway_error( 'IPN Error', "Amounts do not match: {$amount} instead of {$invoice->get_total()}" ); |
568 | 568 | |
569 | - /* translators: %s: Amount. */ |
|
570 | - $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'invoicing' ), $amount ) ); |
|
571 | - exit; |
|
572 | - } |
|
573 | - } |
|
574 | - |
|
575 | - /** |
|
576 | - * Verify receiver email from PayPal. |
|
577 | - * |
|
578 | - * @param WPInv_Invoice $invoice Invoice object. |
|
579 | - * @param string $receiver_email Email to validate. |
|
580 | - */ |
|
581 | - protected function validate_ipn_receiver_email( $invoice, $receiver_email ) { |
|
569 | + /* translators: %s: Amount. */ |
|
570 | + $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'invoicing' ), $amount ) ); |
|
571 | + exit; |
|
572 | + } |
|
573 | + } |
|
574 | + |
|
575 | + /** |
|
576 | + * Verify receiver email from PayPal. |
|
577 | + * |
|
578 | + * @param WPInv_Invoice $invoice Invoice object. |
|
579 | + * @param string $receiver_email Email to validate. |
|
580 | + */ |
|
581 | + protected function validate_ipn_receiver_email( $invoice, $receiver_email ) { |
|
582 | 582 | $paypal_email = wpinv_get_option( 'paypal_email' ); |
583 | 583 | |
584 | - if ( strcasecmp( trim( $receiver_email ), trim( $paypal_email ) ) !== 0 ) { |
|
584 | + if ( strcasecmp( trim( $receiver_email ), trim( $paypal_email ) ) !== 0 ) { |
|
585 | 585 | wpinv_record_gateway_error( 'IPN Error', "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}" ); |
586 | 586 | |
587 | - /* translators: %s: email address . */ |
|
588 | - $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s).', 'invoicing' ), $receiver_email ) ); |
|
589 | - exit; |
|
587 | + /* translators: %s: email address . */ |
|
588 | + $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s).', 'invoicing' ), $receiver_email ) ); |
|
589 | + exit; |
|
590 | 590 | } |
591 | 591 | |
592 | - } |
|
592 | + } |
|
593 | 593 | |
594 | 594 | /** |
595 | - * Handles one time payments. |
|
596 | - * |
|
597 | - * @param WPInv_Invoice $invoice Invoice object. |
|
598 | - * @param array $posted Posted data. |
|
599 | - */ |
|
600 | - protected function ipn_txn_web_accept( $invoice, $posted ) { |
|
595 | + * Handles one time payments. |
|
596 | + * |
|
597 | + * @param WPInv_Invoice $invoice Invoice object. |
|
598 | + * @param array $posted Posted data. |
|
599 | + */ |
|
600 | + protected function ipn_txn_web_accept( $invoice, $posted ) { |
|
601 | 601 | |
602 | 602 | // Collect payment details |
603 | 603 | $payment_status = strtolower( $posted['payment_status'] ); |
@@ -658,27 +658,27 @@ discard block |
||
658 | 658 | // Process failures. |
659 | 659 | |
660 | 660 | /* translators: %s: payment status. */ |
661 | - $invoice->update_status( 'wpi-failed', sprintf( __( 'Payment %s via IPN.', 'invoicing' ), wpinv_clean( $posted['payment_status'] ) ) ); |
|
662 | - |
|
663 | - } |
|
664 | - |
|
665 | - /** |
|
666 | - * Handles one time payments. |
|
667 | - * |
|
668 | - * @param WPInv_Invoice $invoice Invoice object. |
|
669 | - * @param array $posted Posted data. |
|
670 | - */ |
|
671 | - protected function ipn_txn_cart( $invoice, $posted ) { |
|
672 | - $this->ipn_txn_web_accept( $invoice, $posted ); |
|
661 | + $invoice->update_status( 'wpi-failed', sprintf( __( 'Payment %s via IPN.', 'invoicing' ), wpinv_clean( $posted['payment_status'] ) ) ); |
|
662 | + |
|
663 | + } |
|
664 | + |
|
665 | + /** |
|
666 | + * Handles one time payments. |
|
667 | + * |
|
668 | + * @param WPInv_Invoice $invoice Invoice object. |
|
669 | + * @param array $posted Posted data. |
|
670 | + */ |
|
671 | + protected function ipn_txn_cart( $invoice, $posted ) { |
|
672 | + $this->ipn_txn_web_accept( $invoice, $posted ); |
|
673 | 673 | } |
674 | 674 | |
675 | 675 | /** |
676 | - * Handles subscription sign ups. |
|
677 | - * |
|
678 | - * @param WPInv_Invoice $invoice Invoice object. |
|
679 | - * @param array $posted Posted data. |
|
680 | - */ |
|
681 | - protected function ipn_txn_subscr_signup( $invoice, $posted ) { |
|
676 | + * Handles subscription sign ups. |
|
677 | + * |
|
678 | + * @param WPInv_Invoice $invoice Invoice object. |
|
679 | + * @param array $posted Posted data. |
|
680 | + */ |
|
681 | + protected function ipn_txn_subscr_signup( $invoice, $posted ) { |
|
682 | 682 | |
683 | 683 | // Make sure the invoice has a subscription. |
684 | 684 | $subscription = wpinv_get_subscription( $invoice ); |
@@ -717,12 +717,12 @@ discard block |
||
717 | 717 | } |
718 | 718 | |
719 | 719 | /** |
720 | - * Handles subscription renewals. |
|
721 | - * |
|
722 | - * @param WPInv_Invoice $invoice Invoice object. |
|
723 | - * @param array $posted Posted data. |
|
724 | - */ |
|
725 | - protected function ipn_txn_subscr_payment( $invoice, $posted ) { |
|
720 | + * Handles subscription renewals. |
|
721 | + * |
|
722 | + * @param WPInv_Invoice $invoice Invoice object. |
|
723 | + * @param array $posted Posted data. |
|
724 | + */ |
|
725 | + protected function ipn_txn_subscr_payment( $invoice, $posted ) { |
|
726 | 726 | |
727 | 727 | // Make sure the invoice has a subscription. |
728 | 728 | $subscription = wpinv_get_subscription( $invoice ); |
@@ -765,12 +765,12 @@ discard block |
||
765 | 765 | } |
766 | 766 | |
767 | 767 | /** |
768 | - * Handles subscription cancelations. |
|
769 | - * |
|
770 | - * @param WPInv_Invoice $invoice Invoice object. |
|
771 | - * @param array $posted Posted data. |
|
772 | - */ |
|
773 | - protected function ipn_txn_subscr_cancel( $invoice, $posted ) { |
|
768 | + * Handles subscription cancelations. |
|
769 | + * |
|
770 | + * @param WPInv_Invoice $invoice Invoice object. |
|
771 | + * @param array $posted Posted data. |
|
772 | + */ |
|
773 | + protected function ipn_txn_subscr_cancel( $invoice, $posted ) { |
|
774 | 774 | |
775 | 775 | if ( $subscription = wpinv_get_subscription( $invoice ) ) { |
776 | 776 | $subscription->cancel(); |
@@ -779,12 +779,12 @@ discard block |
||
779 | 779 | } |
780 | 780 | |
781 | 781 | /** |
782 | - * Handles subscription completions. |
|
783 | - * |
|
784 | - * @param WPInv_Invoice $invoice Invoice object. |
|
785 | - * @param array $posted Posted data. |
|
786 | - */ |
|
787 | - protected function ipn_txn_subscr_eot( $invoice, $posted ) { |
|
782 | + * Handles subscription completions. |
|
783 | + * |
|
784 | + * @param WPInv_Invoice $invoice Invoice object. |
|
785 | + * @param array $posted Posted data. |
|
786 | + */ |
|
787 | + protected function ipn_txn_subscr_eot( $invoice, $posted ) { |
|
788 | 788 | |
789 | 789 | if ( $subscription = wpinv_get_subscription( $invoice ) ) { |
790 | 790 | $subscription->complete(); |
@@ -793,12 +793,12 @@ discard block |
||
793 | 793 | } |
794 | 794 | |
795 | 795 | /** |
796 | - * Handles subscription fails. |
|
797 | - * |
|
798 | - * @param WPInv_Invoice $invoice Invoice object. |
|
799 | - * @param array $posted Posted data. |
|
800 | - */ |
|
801 | - protected function ipn_txn_subscr_failed( $invoice, $posted ) { |
|
796 | + * Handles subscription fails. |
|
797 | + * |
|
798 | + * @param WPInv_Invoice $invoice Invoice object. |
|
799 | + * @param array $posted Posted data. |
|
800 | + */ |
|
801 | + protected function ipn_txn_subscr_failed( $invoice, $posted ) { |
|
802 | 802 | |
803 | 803 | if ( $subscription = wpinv_get_subscription( $invoice ) ) { |
804 | 804 | $subscription->failing(); |
@@ -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 | * Paypal Payment Gateway class. |
@@ -24,7 +24,7 @@ discard block |
||
24 | 24 | * |
25 | 25 | * @var array |
26 | 26 | */ |
27 | - protected $supports = array( 'subscription', 'sandbox' ); |
|
27 | + protected $supports = array('subscription', 'sandbox'); |
|
28 | 28 | |
29 | 29 | /** |
30 | 30 | * Payment method order. |
@@ -59,7 +59,7 @@ discard block |
||
59 | 59 | * |
60 | 60 | * @var array |
61 | 61 | */ |
62 | - public $currencies = array( 'AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR' ); |
|
62 | + public $currencies = array('AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR'); |
|
63 | 63 | |
64 | 64 | /** |
65 | 65 | * URL to view a transaction. |
@@ -80,13 +80,13 @@ discard block |
||
80 | 80 | */ |
81 | 81 | public function __construct() { |
82 | 82 | |
83 | - $this->title = __( 'PayPal Standard', 'invoicing' ); |
|
84 | - $this->method_title = __( 'PayPal Standard', 'invoicing' ); |
|
85 | - $this->checkout_button_text = __( 'Proceed to PayPal', 'invoicing' ); |
|
86 | - $this->notify_url = wpinv_get_ipn_url( $this->id ); |
|
83 | + $this->title = __('PayPal Standard', 'invoicing'); |
|
84 | + $this->method_title = __('PayPal Standard', 'invoicing'); |
|
85 | + $this->checkout_button_text = __('Proceed to PayPal', 'invoicing'); |
|
86 | + $this->notify_url = wpinv_get_ipn_url($this->id); |
|
87 | 87 | |
88 | - add_filter( 'getpaid_paypal_args', array( $this, 'process_subscription' ), 10, 2 ); |
|
89 | - add_filter( 'wpinv_gateway_description', array( $this, 'sandbox_notice' ), 10, 2 ); |
|
88 | + add_filter('getpaid_paypal_args', array($this, 'process_subscription'), 10, 2); |
|
89 | + add_filter('wpinv_gateway_description', array($this, 'sandbox_notice'), 10, 2); |
|
90 | 90 | |
91 | 91 | parent::__construct(); |
92 | 92 | } |
@@ -100,16 +100,16 @@ discard block |
||
100 | 100 | * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
101 | 101 | * @return array |
102 | 102 | */ |
103 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
103 | + public function process_payment($invoice, $submission_data, $submission) { |
|
104 | 104 | |
105 | 105 | // Get redirect url. |
106 | - $paypal_redirect = $this->get_request_url( $invoice ); |
|
106 | + $paypal_redirect = $this->get_request_url($invoice); |
|
107 | 107 | |
108 | 108 | // Add a note about the request url. |
109 | 109 | $invoice->add_note( |
110 | 110 | sprintf( |
111 | - __( 'Redirecting to PayPal: %s', 'invoicing' ), |
|
112 | - esc_url( $paypal_redirect ) |
|
111 | + __('Redirecting to PayPal: %s', 'invoicing'), |
|
112 | + esc_url($paypal_redirect) |
|
113 | 113 | ), |
114 | 114 | false, |
115 | 115 | false, |
@@ -117,7 +117,7 @@ discard block |
||
117 | 117 | ); |
118 | 118 | |
119 | 119 | // Redirect to PayPal |
120 | - wp_redirect( $paypal_redirect ); |
|
120 | + wp_redirect($paypal_redirect); |
|
121 | 121 | exit; |
122 | 122 | |
123 | 123 | } |
@@ -128,21 +128,21 @@ discard block |
||
128 | 128 | * @param WPInv_Invoice $invoice Invoice object. |
129 | 129 | * @return string |
130 | 130 | */ |
131 | - public function get_request_url( $invoice ) { |
|
131 | + public function get_request_url($invoice) { |
|
132 | 132 | |
133 | 133 | // Endpoint for this request |
134 | - $this->endpoint = $this->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?'; |
|
134 | + $this->endpoint = $this->is_sandbox($invoice) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?'; |
|
135 | 135 | |
136 | 136 | // Retrieve paypal args. |
137 | - $paypal_args = map_deep( $this->get_paypal_args( $invoice ), 'urlencode' ); |
|
137 | + $paypal_args = map_deep($this->get_paypal_args($invoice), 'urlencode'); |
|
138 | 138 | |
139 | - if ( $invoice->is_recurring() ) { |
|
139 | + if ($invoice->is_recurring()) { |
|
140 | 140 | $paypal_args['bn'] = 'GetPaid_Subscribe_WPS_US'; |
141 | 141 | } else { |
142 | 142 | $paypal_args['bn'] = 'GetPaid_ShoppingCart_WPS_US'; |
143 | 143 | } |
144 | 144 | |
145 | - return add_query_arg( $paypal_args, $this->endpoint ); |
|
145 | + return add_query_arg($paypal_args, $this->endpoint); |
|
146 | 146 | |
147 | 147 | } |
148 | 148 | |
@@ -152,25 +152,25 @@ discard block |
||
152 | 152 | * @param WPInv_Invoice $invoice Invoice object. |
153 | 153 | * @return array |
154 | 154 | */ |
155 | - protected function get_paypal_args( $invoice ) { |
|
155 | + protected function get_paypal_args($invoice) { |
|
156 | 156 | |
157 | 157 | // Whether or not to send the line items as one item. |
158 | - $force_one_line_item = apply_filters( 'getpaid_paypal_force_one_line_item', false, $invoice ); |
|
158 | + $force_one_line_item = apply_filters('getpaid_paypal_force_one_line_item', false, $invoice); |
|
159 | 159 | |
160 | - if ( $invoice->is_recurring() || ( wpinv_use_taxes() && wpinv_prices_include_tax() ) ) { |
|
160 | + if ($invoice->is_recurring() || (wpinv_use_taxes() && wpinv_prices_include_tax())) { |
|
161 | 161 | $force_one_line_item = true; |
162 | 162 | } |
163 | 163 | |
164 | 164 | $paypal_args = apply_filters( |
165 | 165 | 'getpaid_paypal_args', |
166 | 166 | array_merge( |
167 | - $this->get_transaction_args( $invoice ), |
|
168 | - $this->get_line_item_args( $invoice, $force_one_line_item ) |
|
167 | + $this->get_transaction_args($invoice), |
|
168 | + $this->get_line_item_args($invoice, $force_one_line_item) |
|
169 | 169 | ), |
170 | 170 | $invoice |
171 | 171 | ); |
172 | 172 | |
173 | - return $this->fix_request_length( $invoice, $paypal_args ); |
|
173 | + return $this->fix_request_length($invoice, $paypal_args); |
|
174 | 174 | } |
175 | 175 | |
176 | 176 | /** |
@@ -179,11 +179,11 @@ discard block |
||
179 | 179 | * @param WPInv_Invoice $invoice Invoice object. |
180 | 180 | * @return array |
181 | 181 | */ |
182 | - protected function get_transaction_args( $invoice ) { |
|
182 | + protected function get_transaction_args($invoice) { |
|
183 | 183 | |
184 | 184 | return array( |
185 | 185 | 'cmd' => '_cart', |
186 | - 'business' => wpinv_get_option( 'paypal_email', false ), |
|
186 | + 'business' => wpinv_get_option('paypal_email', false), |
|
187 | 187 | 'no_shipping' => '1', |
188 | 188 | 'shipping' => '0', |
189 | 189 | 'no_note' => '1', |
@@ -191,16 +191,16 @@ discard block |
||
191 | 191 | 'rm' => is_ssl() ? 2 : 1, |
192 | 192 | 'upload' => 1, |
193 | 193 | 'currency_code' => $invoice->get_currency(), // https://developer.paypal.com/docs/nvp-soap-api/currency-codes/#paypal |
194 | - 'return' => esc_url_raw( $this->get_return_url( $invoice ) ), |
|
195 | - 'cancel_return' => esc_url_raw( $invoice->get_checkout_payment_url() ), |
|
196 | - 'notify_url' => getpaid_limit_length( $this->notify_url, 255 ), |
|
197 | - 'invoice' => getpaid_limit_length( $invoice->get_number(), 127 ), |
|
194 | + 'return' => esc_url_raw($this->get_return_url($invoice)), |
|
195 | + 'cancel_return' => esc_url_raw($invoice->get_checkout_payment_url()), |
|
196 | + 'notify_url' => getpaid_limit_length($this->notify_url, 255), |
|
197 | + 'invoice' => getpaid_limit_length($invoice->get_number(), 127), |
|
198 | 198 | 'custom' => $invoice->get_id(), |
199 | - 'first_name' => getpaid_limit_length( $invoice->get_first_name(), 32 ), |
|
200 | - 'last_name' => getpaid_limit_length( $invoice->get_last_name(), 64 ), |
|
201 | - 'country' => getpaid_limit_length( $invoice->get_country(), 2 ), |
|
202 | - 'email' => getpaid_limit_length( $invoice->get_email(), 127 ), |
|
203 | - 'cbt' => get_bloginfo( 'name' ) |
|
199 | + 'first_name' => getpaid_limit_length($invoice->get_first_name(), 32), |
|
200 | + 'last_name' => getpaid_limit_length($invoice->get_last_name(), 64), |
|
201 | + 'country' => getpaid_limit_length($invoice->get_country(), 2), |
|
202 | + 'email' => getpaid_limit_length($invoice->get_email(), 127), |
|
203 | + 'cbt' => get_bloginfo('name') |
|
204 | 204 | ); |
205 | 205 | |
206 | 206 | } |
@@ -212,30 +212,30 @@ discard block |
||
212 | 212 | * @param bool $force_one_line_item Create only one item for this invoice. |
213 | 213 | * @return array |
214 | 214 | */ |
215 | - protected function get_line_item_args( $invoice, $force_one_line_item = false ) { |
|
215 | + protected function get_line_item_args($invoice, $force_one_line_item = false) { |
|
216 | 216 | |
217 | 217 | // Maybe send invoice as a single item. |
218 | - if ( $force_one_line_item ) { |
|
219 | - return $this->get_line_item_args_single_item( $invoice ); |
|
218 | + if ($force_one_line_item) { |
|
219 | + return $this->get_line_item_args_single_item($invoice); |
|
220 | 220 | } |
221 | 221 | |
222 | 222 | // Send each line item individually. |
223 | 223 | $line_item_args = array(); |
224 | 224 | |
225 | 225 | // Prepare line items. |
226 | - $this->prepare_line_items( $invoice ); |
|
226 | + $this->prepare_line_items($invoice); |
|
227 | 227 | |
228 | 228 | // Add taxes to the cart |
229 | - if ( wpinv_use_taxes() && $invoice->is_taxable() ) { |
|
230 | - $line_item_args['tax_cart'] = wpinv_sanitize_amount( (float) $invoice->get_total_tax(), 2 ); |
|
229 | + if (wpinv_use_taxes() && $invoice->is_taxable()) { |
|
230 | + $line_item_args['tax_cart'] = wpinv_sanitize_amount((float) $invoice->get_total_tax(), 2); |
|
231 | 231 | } |
232 | 232 | |
233 | 233 | // Add discount. |
234 | - if ( $invoice->get_total_discount() > 0 ) { |
|
235 | - $line_item_args['discount_amount_cart'] = wpinv_sanitize_amount( (float) $invoice->get_total_discount(), 2 ); |
|
234 | + if ($invoice->get_total_discount() > 0) { |
|
235 | + $line_item_args['discount_amount_cart'] = wpinv_sanitize_amount((float) $invoice->get_total_discount(), 2); |
|
236 | 236 | } |
237 | 237 | |
238 | - return array_merge( $line_item_args, $this->get_line_items() ); |
|
238 | + return array_merge($line_item_args, $this->get_line_items()); |
|
239 | 239 | |
240 | 240 | } |
241 | 241 | |
@@ -245,11 +245,11 @@ discard block |
||
245 | 245 | * @param WPInv_Invoice $invoice Invoice object. |
246 | 246 | * @return array |
247 | 247 | */ |
248 | - protected function get_line_item_args_single_item( $invoice ) { |
|
248 | + protected function get_line_item_args_single_item($invoice) { |
|
249 | 249 | $this->delete_line_items(); |
250 | 250 | |
251 | - $item_name = sprintf( __( 'Invoice #%s', 'invoicing' ), $invoice->get_number() ); |
|
252 | - $this->add_line_item( $item_name, 1, wpinv_sanitize_amount( (float) $invoice->get_total(), 2 ), $invoice->get_id() ); |
|
251 | + $item_name = sprintf(__('Invoice #%s', 'invoicing'), $invoice->get_number()); |
|
252 | + $this->add_line_item($item_name, 1, wpinv_sanitize_amount((float) $invoice->get_total(), 2), $invoice->get_id()); |
|
253 | 253 | |
254 | 254 | return $this->get_line_items(); |
255 | 255 | } |
@@ -273,19 +273,19 @@ discard block |
||
273 | 273 | * |
274 | 274 | * @param WPInv_Invoice $invoice Invoice object. |
275 | 275 | */ |
276 | - protected function prepare_line_items( $invoice ) { |
|
276 | + protected function prepare_line_items($invoice) { |
|
277 | 277 | $this->delete_line_items(); |
278 | 278 | |
279 | 279 | // Items. |
280 | - foreach ( $invoice->get_items() as $item ) { |
|
280 | + foreach ($invoice->get_items() as $item) { |
|
281 | 281 | $amount = $invoice->get_template() == 'amount' ? $item->get_price() : $item->get_sub_total(); |
282 | 282 | $quantity = $invoice->get_template() == 'amount' ? 1 : $item->get_quantity(); |
283 | - $this->add_line_item( $item->get_raw_name(), $quantity, $amount, $item->get_id() ); |
|
283 | + $this->add_line_item($item->get_raw_name(), $quantity, $amount, $item->get_id()); |
|
284 | 284 | } |
285 | 285 | |
286 | 286 | // Fees. |
287 | - foreach ( $invoice->get_fees() as $fee => $data ) { |
|
288 | - $this->add_line_item( $fee, 1, $data['amount'] ); |
|
287 | + foreach ($invoice->get_fees() as $fee => $data) { |
|
288 | + $this->add_line_item($fee, 1, $data['amount']); |
|
289 | 289 | } |
290 | 290 | |
291 | 291 | } |
@@ -298,15 +298,15 @@ discard block |
||
298 | 298 | * @param float $amount Amount. |
299 | 299 | * @param string $item_number Item number. |
300 | 300 | */ |
301 | - protected function add_line_item( $item_name, $quantity = 1, $amount = 0.0, $item_number = '' ) { |
|
302 | - $index = ( count( $this->line_items ) / 4 ) + 1; |
|
301 | + protected function add_line_item($item_name, $quantity = 1, $amount = 0.0, $item_number = '') { |
|
302 | + $index = (count($this->line_items) / 4) + 1; |
|
303 | 303 | |
304 | 304 | $item = apply_filters( |
305 | 305 | 'getpaid_paypal_line_item', |
306 | 306 | array( |
307 | - 'item_name' => html_entity_decode( getpaid_limit_length( $item_name ? wp_strip_all_tags( $item_name ) : __( 'Item', 'invoicing' ), 127 ), ENT_NOQUOTES, 'UTF-8' ), |
|
307 | + 'item_name' => html_entity_decode(getpaid_limit_length($item_name ? wp_strip_all_tags($item_name) : __('Item', 'invoicing'), 127), ENT_NOQUOTES, 'UTF-8'), |
|
308 | 308 | 'quantity' => (int) $quantity, |
309 | - 'amount' => wpinv_sanitize_amount( (float) $amount, 2 ), |
|
309 | + 'amount' => wpinv_sanitize_amount((float) $amount, 2), |
|
310 | 310 | 'item_number' => $item_number, |
311 | 311 | ), |
312 | 312 | $item_name, |
@@ -315,12 +315,12 @@ discard block |
||
315 | 315 | $item_number |
316 | 316 | ); |
317 | 317 | |
318 | - $this->line_items[ 'item_name_' . $index ] = getpaid_limit_length( $item['item_name'], 127 ); |
|
319 | - $this->line_items[ 'quantity_' . $index ] = $item['quantity']; |
|
318 | + $this->line_items['item_name_' . $index] = getpaid_limit_length($item['item_name'], 127); |
|
319 | + $this->line_items['quantity_' . $index] = $item['quantity']; |
|
320 | 320 | |
321 | 321 | // The price or amount of the product, service, or contribution, not including shipping, handling, or tax. |
322 | - $this->line_items[ 'amount_' . $index ] = $item['amount']; |
|
323 | - $this->line_items[ 'item_number_' . $index ] = getpaid_limit_length( $item['item_number'], 127 ); |
|
322 | + $this->line_items['amount_' . $index] = $item['amount']; |
|
323 | + $this->line_items['item_number_' . $index] = getpaid_limit_length($item['item_number'], 127); |
|
324 | 324 | } |
325 | 325 | |
326 | 326 | /** |
@@ -332,19 +332,19 @@ discard block |
||
332 | 332 | * @param array $paypal_args Arguments sent to Paypal in the request. |
333 | 333 | * @return array |
334 | 334 | */ |
335 | - protected function fix_request_length( $invoice, $paypal_args ) { |
|
335 | + protected function fix_request_length($invoice, $paypal_args) { |
|
336 | 336 | $max_paypal_length = 2083; |
337 | - $query_candidate = http_build_query( $paypal_args, '', '&' ); |
|
337 | + $query_candidate = http_build_query($paypal_args, '', '&'); |
|
338 | 338 | |
339 | - if ( strlen( $this->endpoint . $query_candidate ) <= $max_paypal_length ) { |
|
339 | + if (strlen($this->endpoint . $query_candidate) <= $max_paypal_length) { |
|
340 | 340 | return $paypal_args; |
341 | 341 | } |
342 | 342 | |
343 | 343 | return apply_filters( |
344 | 344 | 'getpaid_paypal_args', |
345 | 345 | array_merge( |
346 | - $this->get_transaction_args( $invoice ), |
|
347 | - $this->get_line_item_args( $invoice, true ) |
|
346 | + $this->get_transaction_args($invoice), |
|
347 | + $this->get_line_item_args($invoice, true) |
|
348 | 348 | ), |
349 | 349 | $invoice |
350 | 350 | ); |
@@ -357,10 +357,10 @@ discard block |
||
357 | 357 | * @param array $paypal_args PayPal args. |
358 | 358 | * @param WPInv_Invoice $invoice Invoice object. |
359 | 359 | */ |
360 | - public function process_subscription( $paypal_args, $invoice ) { |
|
360 | + public function process_subscription($paypal_args, $invoice) { |
|
361 | 361 | |
362 | 362 | // Make sure this is a subscription. |
363 | - if ( ! $invoice->is_recurring() || ! $subscription = wpinv_get_subscription( $invoice ) ) { |
|
363 | + if (!$invoice->is_recurring() || !$subscription = wpinv_get_subscription($invoice)) { |
|
364 | 364 | return $paypal_args; |
365 | 365 | } |
366 | 366 | |
@@ -368,17 +368,17 @@ discard block |
||
368 | 368 | $paypal_args['cmd'] = '_xclick-subscriptions'; |
369 | 369 | |
370 | 370 | // Subscription name. |
371 | - $paypal_args['item_name'] = sprintf( __( 'Invoice #%s', 'invoicing' ), $invoice->get_number() ); |
|
371 | + $paypal_args['item_name'] = sprintf(__('Invoice #%s', 'invoicing'), $invoice->get_number()); |
|
372 | 372 | |
373 | 373 | // Get subscription args. |
374 | - $period = strtoupper( substr( $subscription->period, 0, 1) ); |
|
374 | + $period = strtoupper(substr($subscription->period, 0, 1)); |
|
375 | 375 | $interval = (int) $subscription->frequency; |
376 | 376 | $bill_times = (int) $subscription->bill_times; |
377 | - $initial_amount = (float) wpinv_sanitize_amount( $invoice->get_initial_total(), 2 ); |
|
378 | - $recurring_amount = (float) wpinv_sanitize_amount( $invoice->get_recurring_total(), 2 ); |
|
379 | - $subscription_item = $invoice->get_recurring( true ); |
|
377 | + $initial_amount = (float) wpinv_sanitize_amount($invoice->get_initial_total(), 2); |
|
378 | + $recurring_amount = (float) wpinv_sanitize_amount($invoice->get_recurring_total(), 2); |
|
379 | + $subscription_item = $invoice->get_recurring(true); |
|
380 | 380 | |
381 | - if ( $subscription_item->has_free_trial() ) { |
|
381 | + if ($subscription_item->has_free_trial()) { |
|
382 | 382 | |
383 | 383 | $paypal_args['a1'] = 0 == $initial_amount ? 0 : $initial_amount; |
384 | 384 | |
@@ -388,28 +388,28 @@ discard block |
||
388 | 388 | // Trial period. |
389 | 389 | $paypal_args['t1'] = $subscription_item->get_trial_period(); |
390 | 390 | |
391 | - } else if ( $initial_amount != $recurring_amount ) { |
|
391 | + } else if ($initial_amount != $recurring_amount) { |
|
392 | 392 | |
393 | 393 | // No trial period, but initial amount includes a sign-up fee and/or other items, so charge it as a separate period. |
394 | 394 | |
395 | - if ( 1 == $bill_times ) { |
|
395 | + if (1 == $bill_times) { |
|
396 | 396 | $param_number = 3; |
397 | 397 | } else { |
398 | 398 | $param_number = 1; |
399 | 399 | } |
400 | 400 | |
401 | - $paypal_args[ 'a' . $param_number ] = $initial_amount ? 0 : $initial_amount; |
|
401 | + $paypal_args['a' . $param_number] = $initial_amount ? 0 : $initial_amount; |
|
402 | 402 | |
403 | 403 | // Sign Up interval |
404 | - $paypal_args[ 'p' . $param_number ] = $interval; |
|
404 | + $paypal_args['p' . $param_number] = $interval; |
|
405 | 405 | |
406 | 406 | // Sign Up unit of duration |
407 | - $paypal_args[ 't' . $param_number ] = $period; |
|
407 | + $paypal_args['t' . $param_number] = $period; |
|
408 | 408 | |
409 | 409 | } |
410 | 410 | |
411 | 411 | // We have a recurring payment |
412 | - if ( ! isset( $param_number ) || 1 == $param_number ) { |
|
412 | + if (!isset($param_number) || 1 == $param_number) { |
|
413 | 413 | |
414 | 414 | // Subscription price |
415 | 415 | $paypal_args['a3'] = $recurring_amount; |
@@ -423,7 +423,7 @@ discard block |
||
423 | 423 | } |
424 | 424 | |
425 | 425 | // Recurring payments |
426 | - if ( 1 == $bill_times || ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() && 2 == $bill_times ) ) { |
|
426 | + if (1 == $bill_times || ($initial_amount != $recurring_amount && !$subscription_item->has_free_trial() && 2 == $bill_times)) { |
|
427 | 427 | |
428 | 428 | // Non-recurring payments |
429 | 429 | $paypal_args['src'] = 0; |
@@ -432,15 +432,15 @@ discard block |
||
432 | 432 | |
433 | 433 | $paypal_args['src'] = 1; |
434 | 434 | |
435 | - if ( $bill_times > 0 ) { |
|
435 | + if ($bill_times > 0) { |
|
436 | 436 | |
437 | 437 | // An initial period is being used to charge a sign-up fee |
438 | - if ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() ) { |
|
438 | + if ($initial_amount != $recurring_amount && !$subscription_item->has_free_trial()) { |
|
439 | 439 | $bill_times--; |
440 | 440 | } |
441 | 441 | |
442 | 442 | // Make sure it's not over the max of 52 |
443 | - $paypal_args['srt'] = ( $bill_times <= 52 ? absint( $bill_times ) : 52 ); |
|
443 | + $paypal_args['srt'] = ($bill_times <= 52 ? absint($bill_times) : 52); |
|
444 | 444 | |
445 | 445 | } |
446 | 446 | } |
@@ -449,10 +449,10 @@ discard block |
||
449 | 449 | $paypal_args['rm'] = 2; |
450 | 450 | |
451 | 451 | // Get rid of redudant items. |
452 | - foreach ( array( 'item_name_1', 'quantity_1', 'amount_1', 'item_number_1' ) as $arg ) { |
|
452 | + foreach (array('item_name_1', 'quantity_1', 'amount_1', 'item_number_1') as $arg) { |
|
453 | 453 | |
454 | - if ( isset( $paypal_args[ $arg ] ) ) { |
|
455 | - unset( $paypal_args[ $arg ] ); |
|
454 | + if (isset($paypal_args[$arg])) { |
|
455 | + unset($paypal_args[$arg]); |
|
456 | 456 | } |
457 | 457 | |
458 | 458 | } |
@@ -473,25 +473,25 @@ discard block |
||
473 | 473 | public function verify_ipn() { |
474 | 474 | |
475 | 475 | // Validate the IPN. |
476 | - if ( empty( $_POST ) || ! $this->validate_ipn() ) { |
|
477 | - wp_die( 'PayPal IPN Request Failure', 'PayPal IPN', array( 'response' => 500 ) ); |
|
476 | + if (empty($_POST) || !$this->validate_ipn()) { |
|
477 | + wp_die('PayPal IPN Request Failure', 'PayPal IPN', array('response' => 500)); |
|
478 | 478 | } |
479 | 479 | |
480 | 480 | // Process the IPN. |
481 | - $posted = wp_unslash( $_POST ); |
|
482 | - $invoice = wpinv_get_invoice( $posted['custom'] ); |
|
481 | + $posted = wp_unslash($_POST); |
|
482 | + $invoice = wpinv_get_invoice($posted['custom']); |
|
483 | 483 | |
484 | - if ( $invoice && $this->id == $invoice->get_gateway() ) { |
|
484 | + if ($invoice && $this->id == $invoice->get_gateway()) { |
|
485 | 485 | |
486 | - $posted['payment_status'] = strtolower( $posted['payment_status'] ); |
|
486 | + $posted['payment_status'] = strtolower($posted['payment_status']); |
|
487 | 487 | |
488 | - wpinv_error_log( 'Found invoice #' . $invoice->get_number() ); |
|
489 | - wpinv_error_log( 'Payment status:' . $posted['payment_status'] ); |
|
488 | + wpinv_error_log('Found invoice #' . $invoice->get_number()); |
|
489 | + wpinv_error_log('Payment status:' . $posted['payment_status']); |
|
490 | 490 | |
491 | - if ( method_exists( $this, 'ipn_txn_' . $posted['txn_type'] ) ) { |
|
492 | - call_user_func( array( $this, 'ipn_txn_' . $posted['txn_type'] ), $invoice, $posted ); |
|
491 | + if (method_exists($this, 'ipn_txn_' . $posted['txn_type'])) { |
|
492 | + call_user_func(array($this, 'ipn_txn_' . $posted['txn_type']), $invoice, $posted); |
|
493 | 493 | } else { |
494 | - wpinv_error_log( 'Aborting, Invalid type:' . $posted['txn_type'] ); |
|
494 | + wpinv_error_log('Aborting, Invalid type:' . $posted['txn_type']); |
|
495 | 495 | } |
496 | 496 | |
497 | 497 | } |
@@ -505,10 +505,10 @@ discard block |
||
505 | 505 | */ |
506 | 506 | public function validate_ipn() { |
507 | 507 | |
508 | - wpinv_error_log( 'Validating PayPal IPN response' ); |
|
508 | + wpinv_error_log('Validating PayPal IPN response'); |
|
509 | 509 | |
510 | 510 | // Get received values from post data. |
511 | - $validate_ipn = wp_unslash( $_POST ); |
|
511 | + $validate_ipn = wp_unslash($_POST); |
|
512 | 512 | $validate_ipn['cmd'] = '_notify-validate'; |
513 | 513 | |
514 | 514 | // Send back post vars to paypal. |
@@ -522,18 +522,18 @@ discard block |
||
522 | 522 | ); |
523 | 523 | |
524 | 524 | // Post back to get a response. |
525 | - $response = wp_safe_remote_post( $this->is_sandbox() ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params ); |
|
525 | + $response = wp_safe_remote_post($this->is_sandbox() ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params); |
|
526 | 526 | |
527 | 527 | // Check to see if the request was valid. |
528 | - if ( ! is_wp_error( $response ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 && strstr( $response['body'], 'VERIFIED' ) ) { |
|
529 | - wpinv_error_log( $response['body'], 'Received valid response from PayPal IPN' ); |
|
528 | + if (!is_wp_error($response) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 && strstr($response['body'], 'VERIFIED')) { |
|
529 | + wpinv_error_log($response['body'], 'Received valid response from PayPal IPN'); |
|
530 | 530 | return true; |
531 | 531 | } |
532 | 532 | |
533 | - if ( is_wp_error( $response ) ) { |
|
534 | - wpinv_error_log( $response->get_error_message(), 'Received invalid response from PayPal IPN' ); |
|
533 | + if (is_wp_error($response)) { |
|
534 | + wpinv_error_log($response->get_error_message(), 'Received invalid response from PayPal IPN'); |
|
535 | 535 | } else { |
536 | - wpinv_error_log( $response['body'], 'Received invalid response from PayPal IPN' ); |
|
536 | + wpinv_error_log($response['body'], 'Received invalid response from PayPal IPN'); |
|
537 | 537 | } |
538 | 538 | |
539 | 539 | return false; |
@@ -546,12 +546,12 @@ discard block |
||
546 | 546 | * @param WPInv_Invoice $invoice Invoice object. |
547 | 547 | * @param string $currency currency to validate. |
548 | 548 | */ |
549 | - protected function validate_ipn_currency( $invoice, $currency ) { |
|
550 | - if ( strtolower( $invoice->get_currency() ) !== strtolower( $currency ) ) { |
|
551 | - wpinv_record_gateway_error( 'IPN Error', "Currencies do not match: {$currency} instead of {$invoice->get_currency()}" ); |
|
549 | + protected function validate_ipn_currency($invoice, $currency) { |
|
550 | + if (strtolower($invoice->get_currency()) !== strtolower($currency)) { |
|
551 | + wpinv_record_gateway_error('IPN Error', "Currencies do not match: {$currency} instead of {$invoice->get_currency()}"); |
|
552 | 552 | |
553 | 553 | /* translators: %s: currency code. */ |
554 | - $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal currencies do not match (code %s).', 'invoicing' ), $currency ) ); |
|
554 | + $invoice->update_status('wpi-processing', sprintf(__('Validation error: PayPal currencies do not match (code %s).', 'invoicing'), $currency)); |
|
555 | 555 | exit; |
556 | 556 | } |
557 | 557 | } |
@@ -562,12 +562,12 @@ discard block |
||
562 | 562 | * @param WPInv_Invoice $invoice Invoice object. |
563 | 563 | * @param float $amount amount to validate. |
564 | 564 | */ |
565 | - protected function validate_ipn_amount( $invoice, $amount ) { |
|
566 | - if ( number_format( $invoice->get_total(), 2, '.', '' ) !== number_format( $amount, 2, '.', '' ) ) { |
|
567 | - wpinv_record_gateway_error( 'IPN Error', "Amounts do not match: {$amount} instead of {$invoice->get_total()}" ); |
|
565 | + protected function validate_ipn_amount($invoice, $amount) { |
|
566 | + if (number_format($invoice->get_total(), 2, '.', '') !== number_format($amount, 2, '.', '')) { |
|
567 | + wpinv_record_gateway_error('IPN Error', "Amounts do not match: {$amount} instead of {$invoice->get_total()}"); |
|
568 | 568 | |
569 | 569 | /* translators: %s: Amount. */ |
570 | - $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'invoicing' ), $amount ) ); |
|
570 | + $invoice->update_status('wpi-processing', sprintf(__('Validation error: PayPal amounts do not match (gross %s).', 'invoicing'), $amount)); |
|
571 | 571 | exit; |
572 | 572 | } |
573 | 573 | } |
@@ -578,14 +578,14 @@ discard block |
||
578 | 578 | * @param WPInv_Invoice $invoice Invoice object. |
579 | 579 | * @param string $receiver_email Email to validate. |
580 | 580 | */ |
581 | - protected function validate_ipn_receiver_email( $invoice, $receiver_email ) { |
|
582 | - $paypal_email = wpinv_get_option( 'paypal_email' ); |
|
581 | + protected function validate_ipn_receiver_email($invoice, $receiver_email) { |
|
582 | + $paypal_email = wpinv_get_option('paypal_email'); |
|
583 | 583 | |
584 | - if ( strcasecmp( trim( $receiver_email ), trim( $paypal_email ) ) !== 0 ) { |
|
585 | - wpinv_record_gateway_error( 'IPN Error', "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}" ); |
|
584 | + if (strcasecmp(trim($receiver_email), trim($paypal_email)) !== 0) { |
|
585 | + wpinv_record_gateway_error('IPN Error', "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}"); |
|
586 | 586 | |
587 | 587 | /* translators: %s: email address . */ |
588 | - $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s).', 'invoicing' ), $receiver_email ) ); |
|
588 | + $invoice->update_status('wpi-processing', sprintf(__('Validation error: PayPal IPN response from a different email address (%s).', 'invoicing'), $receiver_email)); |
|
589 | 589 | exit; |
590 | 590 | } |
591 | 591 | |
@@ -597,57 +597,57 @@ discard block |
||
597 | 597 | * @param WPInv_Invoice $invoice Invoice object. |
598 | 598 | * @param array $posted Posted data. |
599 | 599 | */ |
600 | - protected function ipn_txn_web_accept( $invoice, $posted ) { |
|
600 | + protected function ipn_txn_web_accept($invoice, $posted) { |
|
601 | 601 | |
602 | 602 | // Collect payment details |
603 | - $payment_status = strtolower( $posted['payment_status'] ); |
|
604 | - $business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] ); |
|
603 | + $payment_status = strtolower($posted['payment_status']); |
|
604 | + $business_email = isset($posted['business']) && is_email($posted['business']) ? trim($posted['business']) : trim($posted['receiver_email']); |
|
605 | 605 | |
606 | - $this->validate_ipn_receiver_email( $invoice, $business_email ); |
|
607 | - $this->validate_ipn_currency( $invoice, $posted['mc_currency'] ); |
|
606 | + $this->validate_ipn_receiver_email($invoice, $business_email); |
|
607 | + $this->validate_ipn_currency($invoice, $posted['mc_currency']); |
|
608 | 608 | |
609 | 609 | // Update the transaction id. |
610 | - if ( ! empty( $posted['txn_id'] ) ) { |
|
611 | - $invoice->set_transaction_id( wpinv_clean( $posted['txn_id'] ) ); |
|
610 | + if (!empty($posted['txn_id'])) { |
|
611 | + $invoice->set_transaction_id(wpinv_clean($posted['txn_id'])); |
|
612 | 612 | $invoice->save(); |
613 | 613 | } |
614 | 614 | |
615 | 615 | // Process a refund. |
616 | - if ( $payment_status == 'refunded' || $payment_status == 'reversed' ) { |
|
616 | + if ($payment_status == 'refunded' || $payment_status == 'reversed') { |
|
617 | 617 | |
618 | - update_post_meta( $invoice->get_id(), 'refunded_remotely', 1 ); |
|
618 | + update_post_meta($invoice->get_id(), 'refunded_remotely', 1); |
|
619 | 619 | |
620 | - if ( ! $invoice->is_refunded() ) { |
|
621 | - $invoice->update_status( 'wpi-refunded', $posted['reason_code'] ); |
|
620 | + if (!$invoice->is_refunded()) { |
|
621 | + $invoice->update_status('wpi-refunded', $posted['reason_code']); |
|
622 | 622 | } |
623 | 623 | |
624 | 624 | exit; |
625 | 625 | } |
626 | 626 | |
627 | 627 | // Process payments. |
628 | - if ( $payment_status == 'completed' ) { |
|
628 | + if ($payment_status == 'completed') { |
|
629 | 629 | |
630 | - if ( $invoice->is_paid() && 'wpi_processing' != $invoice->get_status() ) { |
|
631 | - wpinv_error_log( 'Aborting, Invoice #' . $invoice->get_number() . ' is already complete.' ); |
|
630 | + if ($invoice->is_paid() && 'wpi_processing' != $invoice->get_status()) { |
|
631 | + wpinv_error_log('Aborting, Invoice #' . $invoice->get_number() . ' is already complete.'); |
|
632 | 632 | exit; |
633 | 633 | } |
634 | 634 | |
635 | - $this->validate_ipn_amount( $invoice, $posted['mc_gross'] ); |
|
635 | + $this->validate_ipn_amount($invoice, $posted['mc_gross']); |
|
636 | 636 | |
637 | - if ( 'completed' === $payment_status || 'pending' === $payment_status ) { |
|
637 | + if ('completed' === $payment_status || 'pending' === $payment_status) { |
|
638 | 638 | |
639 | 639 | $note = ''; |
640 | 640 | |
641 | - if ( ! empty( $posted['mc_fee'] ) ) { |
|
642 | - $note = sprintf( __( 'PayPal Transaction Fee %s', 'invoicing' ), wpinv_clean( $posted['mc_fee'] ) ); |
|
641 | + if (!empty($posted['mc_fee'])) { |
|
642 | + $note = sprintf(__('PayPal Transaction Fee %s', 'invoicing'), wpinv_clean($posted['mc_fee'])); |
|
643 | 643 | } |
644 | 644 | |
645 | - $invoice->mark_paid( ( ! empty( $posted['txn_id'] ) ? wpinv_clean( $posted['txn_id'] ) : '' ), $note ); |
|
645 | + $invoice->mark_paid((!empty($posted['txn_id']) ? wpinv_clean($posted['txn_id']) : ''), $note); |
|
646 | 646 | |
647 | 647 | } else { |
648 | 648 | |
649 | 649 | /* translators: %s: pending reason. */ |
650 | - $invoice->update_status( 'wpi_processing', sprintf( __( 'Payment pending (%s).', 'invoicing' ), $posted['pending_reason'] ) ); |
|
650 | + $invoice->update_status('wpi_processing', sprintf(__('Payment pending (%s).', 'invoicing'), $posted['pending_reason'])); |
|
651 | 651 | |
652 | 652 | } |
653 | 653 | |
@@ -658,7 +658,7 @@ discard block |
||
658 | 658 | // Process failures. |
659 | 659 | |
660 | 660 | /* translators: %s: payment status. */ |
661 | - $invoice->update_status( 'wpi-failed', sprintf( __( 'Payment %s via IPN.', 'invoicing' ), wpinv_clean( $posted['payment_status'] ) ) ); |
|
661 | + $invoice->update_status('wpi-failed', sprintf(__('Payment %s via IPN.', 'invoicing'), wpinv_clean($posted['payment_status']))); |
|
662 | 662 | |
663 | 663 | } |
664 | 664 | |
@@ -668,8 +668,8 @@ discard block |
||
668 | 668 | * @param WPInv_Invoice $invoice Invoice object. |
669 | 669 | * @param array $posted Posted data. |
670 | 670 | */ |
671 | - protected function ipn_txn_cart( $invoice, $posted ) { |
|
672 | - $this->ipn_txn_web_accept( $invoice, $posted ); |
|
671 | + protected function ipn_txn_cart($invoice, $posted) { |
|
672 | + $this->ipn_txn_web_accept($invoice, $posted); |
|
673 | 673 | } |
674 | 674 | |
675 | 675 | /** |
@@ -678,39 +678,39 @@ discard block |
||
678 | 678 | * @param WPInv_Invoice $invoice Invoice object. |
679 | 679 | * @param array $posted Posted data. |
680 | 680 | */ |
681 | - protected function ipn_txn_subscr_signup( $invoice, $posted ) { |
|
681 | + protected function ipn_txn_subscr_signup($invoice, $posted) { |
|
682 | 682 | |
683 | 683 | // Make sure the invoice has a subscription. |
684 | - $subscription = wpinv_get_subscription( $invoice ); |
|
684 | + $subscription = wpinv_get_subscription($invoice); |
|
685 | 685 | |
686 | - if ( empty( $subscription ) ) { |
|
687 | - wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found' ); |
|
686 | + if (empty($subscription)) { |
|
687 | + wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found'); |
|
688 | 688 | } |
689 | 689 | |
690 | 690 | // Update the subscription ids. |
691 | 691 | $subscription->update( |
692 | 692 | array( |
693 | - 'profile_id' => sanitize_text_field( $posted['subscr_id'] ), |
|
693 | + 'profile_id' => sanitize_text_field($posted['subscr_id']), |
|
694 | 694 | ) |
695 | 695 | ); |
696 | 696 | |
697 | 697 | // Set the transaction id. |
698 | - if ( ! empty( $posted['txn_id'] ) ) { |
|
699 | - $invoice->set_transaction_id( $posted['txn_id'] ); |
|
698 | + if (!empty($posted['txn_id'])) { |
|
699 | + $invoice->set_transaction_id($posted['txn_id']); |
|
700 | 700 | } |
701 | 701 | |
702 | 702 | // Update the payment status. |
703 | 703 | $invoice->mark_paid(); |
704 | 704 | |
705 | - $invoice->add_note( sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ) , $posted['subscr_id'] ), false, false, true ); |
|
705 | + $invoice->add_note(sprintf(__('PayPal Subscription ID: %s', 'invoicing'), $posted['subscr_id']), false, false, true); |
|
706 | 706 | |
707 | 707 | // Update the subscription duration. |
708 | - $duration = strtotime( $subscription->expiration ) - strtotime( $subscription->created ); |
|
708 | + $duration = strtotime($subscription->expiration) - strtotime($subscription->created); |
|
709 | 709 | $subscription->update( |
710 | 710 | array( |
711 | 711 | 'status' => 'trialling' == $subscription->status ? 'trialling' : 'active', |
712 | - 'created' => current_time( 'mysql' ), |
|
713 | - 'expiration' => date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ), |
|
712 | + 'created' => current_time('mysql'), |
|
713 | + 'expiration' => date('Y-m-d H:i:s', (current_time('timestamp') + $duration)), |
|
714 | 714 | ) |
715 | 715 | ); |
716 | 716 | |
@@ -722,25 +722,25 @@ discard block |
||
722 | 722 | * @param WPInv_Invoice $invoice Invoice object. |
723 | 723 | * @param array $posted Posted data. |
724 | 724 | */ |
725 | - protected function ipn_txn_subscr_payment( $invoice, $posted ) { |
|
725 | + protected function ipn_txn_subscr_payment($invoice, $posted) { |
|
726 | 726 | |
727 | 727 | // Make sure the invoice has a subscription. |
728 | - $subscription = wpinv_get_subscription( $invoice ); |
|
728 | + $subscription = wpinv_get_subscription($invoice); |
|
729 | 729 | |
730 | - if ( empty( $subscription ) ) { |
|
731 | - wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found' ); |
|
730 | + if (empty($subscription)) { |
|
731 | + wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found'); |
|
732 | 732 | } |
733 | 733 | |
734 | - $this->validate_ipn_currency( $invoice, $posted['mc_currency'] ); |
|
734 | + $this->validate_ipn_currency($invoice, $posted['mc_currency']); |
|
735 | 735 | |
736 | 736 | // Abort if the payment is already recorded. |
737 | - if ( wpinv_get_id_by_transaction_id( $posted['txn_id'] ) ) { |
|
737 | + if (wpinv_get_id_by_transaction_id($posted['txn_id'])) { |
|
738 | 738 | return; |
739 | 739 | } |
740 | 740 | |
741 | 741 | // Abort if this is the first payment. |
742 | - if ( date( 'Ynd', $subscription->created ) == date( 'Ynd', strtotime( $posted['payment_date'] ) ) ) { |
|
743 | - $invoice->set_transaction_id( $posted['txn_id'] ); |
|
742 | + if (date('Ynd', $subscription->created) == date('Ynd', strtotime($posted['payment_date']))) { |
|
743 | + $invoice->set_transaction_id($posted['txn_id']); |
|
744 | 744 | $invoice->save(); |
745 | 745 | return; |
746 | 746 | } |
@@ -751,14 +751,14 @@ discard block |
||
751 | 751 | 'gateway' => $this->id, |
752 | 752 | ); |
753 | 753 | |
754 | - $invoice = wpinv_get_invoice( $subscription->add_payment( $args ) ); |
|
754 | + $invoice = wpinv_get_invoice($subscription->add_payment($args)); |
|
755 | 755 | |
756 | - if ( empty( $invoice ) ) { |
|
756 | + if (empty($invoice)) { |
|
757 | 757 | return; |
758 | 758 | } |
759 | 759 | |
760 | - $invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ) , $posted['txn_id'] ), false, false, true ); |
|
761 | - $invoice->add_note( wp_sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ) , $posted['subscr_id'] ), false, false, true ); |
|
760 | + $invoice->add_note(wp_sprintf(__('PayPal Transaction ID: %s', 'invoicing'), $posted['txn_id']), false, false, true); |
|
761 | + $invoice->add_note(wp_sprintf(__('PayPal Subscription ID: %s', 'invoicing'), $posted['subscr_id']), false, false, true); |
|
762 | 762 | |
763 | 763 | $subscription->renew(); |
764 | 764 | |
@@ -770,9 +770,9 @@ discard block |
||
770 | 770 | * @param WPInv_Invoice $invoice Invoice object. |
771 | 771 | * @param array $posted Posted data. |
772 | 772 | */ |
773 | - protected function ipn_txn_subscr_cancel( $invoice, $posted ) { |
|
773 | + protected function ipn_txn_subscr_cancel($invoice, $posted) { |
|
774 | 774 | |
775 | - if ( $subscription = wpinv_get_subscription( $invoice ) ) { |
|
775 | + if ($subscription = wpinv_get_subscription($invoice)) { |
|
776 | 776 | $subscription->cancel(); |
777 | 777 | } |
778 | 778 | |
@@ -784,9 +784,9 @@ discard block |
||
784 | 784 | * @param WPInv_Invoice $invoice Invoice object. |
785 | 785 | * @param array $posted Posted data. |
786 | 786 | */ |
787 | - protected function ipn_txn_subscr_eot( $invoice, $posted ) { |
|
787 | + protected function ipn_txn_subscr_eot($invoice, $posted) { |
|
788 | 788 | |
789 | - if ( $subscription = wpinv_get_subscription( $invoice ) ) { |
|
789 | + if ($subscription = wpinv_get_subscription($invoice)) { |
|
790 | 790 | $subscription->complete(); |
791 | 791 | } |
792 | 792 | |
@@ -798,9 +798,9 @@ discard block |
||
798 | 798 | * @param WPInv_Invoice $invoice Invoice object. |
799 | 799 | * @param array $posted Posted data. |
800 | 800 | */ |
801 | - protected function ipn_txn_subscr_failed( $invoice, $posted ) { |
|
801 | + protected function ipn_txn_subscr_failed($invoice, $posted) { |
|
802 | 802 | |
803 | - if ( $subscription = wpinv_get_subscription( $invoice ) ) { |
|
803 | + if ($subscription = wpinv_get_subscription($invoice)) { |
|
804 | 804 | $subscription->failing(); |
805 | 805 | } |
806 | 806 | |
@@ -809,10 +809,10 @@ discard block |
||
809 | 809 | /** |
810 | 810 | * Displays a notice on the checkout page if sandbox is enabled. |
811 | 811 | */ |
812 | - public function sandbox_notice( $description, $gateway ) { |
|
813 | - if ( 'paypal' == $gateway && wpinv_is_test_mode( 'paypal' ) ) { |
|
812 | + public function sandbox_notice($description, $gateway) { |
|
813 | + if ('paypal' == $gateway && wpinv_is_test_mode('paypal')) { |
|
814 | 814 | $description .= '<br>' . sprintf( |
815 | - __( 'SANDBOX ENABLED. You can use sandbox testing accounts only. See the %sPayPal Sandbox Testing Guide%s for more details.', 'invoicing' ), |
|
815 | + __('SANDBOX ENABLED. You can use sandbox testing accounts only. See the %sPayPal Sandbox Testing Guide%s for more details.', 'invoicing'), |
|
816 | 816 | '<a href="https://developer.paypal.com/docs/classic/lifecycle/ug_sandbox/">', |
817 | 817 | '</a>' |
818 | 818 | ); |
@@ -13,65 +13,65 @@ discard block |
||
13 | 13 | class GetPaid_Worldpay_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 = 'worldpay'; |
21 | 21 | |
22 | 22 | /** |
23 | - * Payment method order. |
|
24 | - * |
|
25 | - * @var int |
|
26 | - */ |
|
23 | + * Payment method order. |
|
24 | + * |
|
25 | + * @var int |
|
26 | + */ |
|
27 | 27 | public $order = 5; |
28 | 28 | |
29 | 29 | /** |
30 | - * Endpoint for requests from Worldpay. |
|
31 | - * |
|
32 | - * @var string |
|
33 | - */ |
|
34 | - protected $notify_url; |
|
35 | - |
|
36 | - /** |
|
37 | - * Endpoint for requests to Worldpay. |
|
38 | - * |
|
39 | - * @var string |
|
40 | - */ |
|
30 | + * Endpoint for requests from Worldpay. |
|
31 | + * |
|
32 | + * @var string |
|
33 | + */ |
|
34 | + protected $notify_url; |
|
35 | + |
|
36 | + /** |
|
37 | + * Endpoint for requests to Worldpay. |
|
38 | + * |
|
39 | + * @var string |
|
40 | + */ |
|
41 | 41 | protected $endpoint; |
42 | 42 | |
43 | 43 | /** |
44 | - * An array of features that this gateway supports. |
|
45 | - * |
|
46 | - * @var array |
|
47 | - */ |
|
44 | + * An array of features that this gateway supports. |
|
45 | + * |
|
46 | + * @var array |
|
47 | + */ |
|
48 | 48 | protected $supports = array( 'sandbox' ); |
49 | 49 | |
50 | 50 | /** |
51 | - * Currencies this gateway is allowed for. |
|
52 | - * |
|
53 | - * @var array |
|
54 | - */ |
|
55 | - public $currencies = array( 'AUD', 'ARS', 'CAD', 'CHF', 'DKK', 'EUR', 'HKD', 'MYR', 'GBP', 'NZD', 'NOK', 'SGD', 'LKR', 'SEK', 'TRY', 'USD', 'ZAR' ); |
|
51 | + * Currencies this gateway is allowed for. |
|
52 | + * |
|
53 | + * @var array |
|
54 | + */ |
|
55 | + public $currencies = array( 'AUD', 'ARS', 'CAD', 'CHF', 'DKK', 'EUR', 'HKD', 'MYR', 'GBP', 'NZD', 'NOK', 'SGD', 'LKR', 'SEK', 'TRY', 'USD', 'ZAR' ); |
|
56 | 56 | |
57 | 57 | /** |
58 | - * URL to view a transaction. |
|
59 | - * |
|
60 | - * @var string |
|
61 | - */ |
|
58 | + * URL to view a transaction. |
|
59 | + * |
|
60 | + * @var string |
|
61 | + */ |
|
62 | 62 | public $view_transaction_url = 'https://www.{sandbox}paypal.com/activity/payment/%s'; |
63 | 63 | |
64 | 64 | /** |
65 | - * URL to view a subscription. |
|
66 | - * |
|
67 | - * @var string |
|
68 | - */ |
|
69 | - public $view_subscription_url = 'https://www.{sandbox}paypal.com/cgi-bin/webscr?cmd=_profile-recurring-payments&encrypted_profile_id=%s'; |
|
65 | + * URL to view a subscription. |
|
66 | + * |
|
67 | + * @var string |
|
68 | + */ |
|
69 | + public $view_subscription_url = 'https://www.{sandbox}paypal.com/cgi-bin/webscr?cmd=_profile-recurring-payments&encrypted_profile_id=%s'; |
|
70 | 70 | |
71 | 71 | /** |
72 | - * Class constructor. |
|
73 | - */ |
|
74 | - public function __construct() { |
|
72 | + * Class constructor. |
|
73 | + */ |
|
74 | + public function __construct() { |
|
75 | 75 | |
76 | 76 | $this->method_title = __( 'Worldpay', 'invoicing' ); |
77 | 77 | $this->title = __( 'Worldpay - Credit Card / Debit Card', 'invoicing' ); |
@@ -85,15 +85,15 @@ discard block |
||
85 | 85 | } |
86 | 86 | |
87 | 87 | /** |
88 | - * Process Payment. |
|
89 | - * |
|
90 | - * |
|
91 | - * @param WPInv_Invoice $invoice Invoice. |
|
92 | - * @param array $submission_data Posted checkout fields. |
|
93 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
94 | - * @return array |
|
95 | - */ |
|
96 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
88 | + * Process Payment. |
|
89 | + * |
|
90 | + * |
|
91 | + * @param WPInv_Invoice $invoice Invoice. |
|
92 | + * @param array $submission_data Posted checkout fields. |
|
93 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
94 | + * @return array |
|
95 | + */ |
|
96 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
97 | 97 | |
98 | 98 | // Get redirect url. |
99 | 99 | $worldpay_redirect = esc_url( $this->get_request_url( $invoice ) ); |
@@ -128,31 +128,31 @@ discard block |
||
128 | 128 | } |
129 | 129 | |
130 | 130 | /** |
131 | - * Get the Worldpay request URL for an invoice. |
|
132 | - * |
|
133 | - * @param WPInv_Invoice $invoice Invoice object. |
|
134 | - * @return string |
|
135 | - */ |
|
136 | - public function get_request_url( $invoice ) { |
|
131 | + * Get the Worldpay request URL for an invoice. |
|
132 | + * |
|
133 | + * @param WPInv_Invoice $invoice Invoice object. |
|
134 | + * @return string |
|
135 | + */ |
|
136 | + public function get_request_url( $invoice ) { |
|
137 | 137 | |
138 | 138 | // Endpoint for this request |
139 | - $this->endpoint = $this->is_sandbox( $invoice ) ? 'https://secure-test.worldpay.com/wcc/purchase' : 'https://secure.worldpay.com/wcc/purchase'; |
|
139 | + $this->endpoint = $this->is_sandbox( $invoice ) ? 'https://secure-test.worldpay.com/wcc/purchase' : 'https://secure.worldpay.com/wcc/purchase'; |
|
140 | 140 | |
141 | 141 | return $this->endpoint; |
142 | 142 | |
143 | - } |
|
143 | + } |
|
144 | 144 | |
145 | 145 | /** |
146 | - * Get Worldpay Args for passing to Worldpay. |
|
147 | - * |
|
148 | - * @param WPInv_Invoice $invoice Invoice object. |
|
149 | - * @return array |
|
150 | - */ |
|
151 | - protected function get_worldpay_args( $invoice ) { |
|
152 | - |
|
153 | - return apply_filters( |
|
154 | - 'getpaid_worldpay_args', |
|
155 | - array( |
|
146 | + * Get Worldpay Args for passing to Worldpay. |
|
147 | + * |
|
148 | + * @param WPInv_Invoice $invoice Invoice object. |
|
149 | + * @return array |
|
150 | + */ |
|
151 | + protected function get_worldpay_args( $invoice ) { |
|
152 | + |
|
153 | + return apply_filters( |
|
154 | + 'getpaid_worldpay_args', |
|
155 | + array( |
|
156 | 156 | 'amount' => wpinv_sanitize_amount( $invoice->get_total() ), // mandatory |
157 | 157 | 'cartId' => wpinv_clean( $invoice->get_number() ), // mandatory reference for the item purchased |
158 | 158 | 'currency' => wpinv_clean( $invoice->get_currency() ), // mandatory |
@@ -177,18 +177,18 @@ discard block |
||
177 | 177 | 'countryString' => wpinv_clean( wpinv_country_name( $invoice->get_country() ) ), |
178 | 178 | 'compName' => wpinv_clean( $invoice->get_company() ), |
179 | 179 | ), |
180 | - $invoice |
|
181 | - ); |
|
180 | + $invoice |
|
181 | + ); |
|
182 | 182 | |
183 | 183 | } |
184 | 184 | |
185 | 185 | /** |
186 | - * Secures worldpay args with an md5 hash. |
|
187 | - * |
|
188 | - * @param array $args Gateway args. |
|
189 | - * @return array |
|
190 | - */ |
|
191 | - public function hash_args( $args ) { |
|
186 | + * Secures worldpay args with an md5 hash. |
|
187 | + * |
|
188 | + * @param array $args Gateway args. |
|
189 | + * @return array |
|
190 | + */ |
|
191 | + public function hash_args( $args ) { |
|
192 | 192 | |
193 | 193 | $md5_secret = $this->get_option( 'md5_secret' ); |
194 | 194 | |
@@ -204,16 +204,16 @@ discard block |
||
204 | 204 | } |
205 | 205 | |
206 | 206 | /** |
207 | - * Processes ipns and marks payments as complete. |
|
208 | - * |
|
209 | - * @return void |
|
210 | - */ |
|
211 | - public function verify_ipn() { |
|
207 | + * Processes ipns and marks payments as complete. |
|
208 | + * |
|
209 | + * @return void |
|
210 | + */ |
|
211 | + public function verify_ipn() { |
|
212 | 212 | |
213 | 213 | // Validate the IPN. |
214 | 214 | if ( empty( $_POST ) || ! $this->validate_ipn() ) { |
215 | - wp_die( 'Worldpay IPN Request Failure', 'Worldpay IPN', array( 'response' => 500 ) ); |
|
216 | - } |
|
215 | + wp_die( 'Worldpay IPN Request Failure', 'Worldpay IPN', array( 'response' => 500 ) ); |
|
216 | + } |
|
217 | 217 | |
218 | 218 | // Process the IPN. |
219 | 219 | $posted = wp_unslash( $_POST ); |
@@ -229,8 +229,8 @@ discard block |
||
229 | 229 | $invoice->set_transaction_id( wpinv_clean( $posted['transId'] ) ); |
230 | 230 | } |
231 | 231 | |
232 | - // Update the ip address. |
|
233 | - if ( ! empty( $posted['ipAddress'] ) ) { |
|
232 | + // Update the ip address. |
|
233 | + if ( ! empty( $posted['ipAddress'] ) ) { |
|
234 | 234 | $invoice->set_ip( wpinv_clean( $posted['ipAddress'] ) ); |
235 | 235 | } |
236 | 236 | |
@@ -257,9 +257,9 @@ discard block |
||
257 | 257 | } |
258 | 258 | |
259 | 259 | /** |
260 | - * Check Worldpay IPN validity. |
|
261 | - */ |
|
262 | - public function validate_ipn() { |
|
260 | + * Check Worldpay IPN validity. |
|
261 | + */ |
|
262 | + public function validate_ipn() { |
|
263 | 263 | |
264 | 264 | wpinv_error_log( 'Validating Worldpay IPN response' ); |
265 | 265 | |
@@ -305,11 +305,11 @@ discard block |
||
305 | 305 | } |
306 | 306 | |
307 | 307 | /** |
308 | - * Filters the gateway settings. |
|
309 | - * |
|
310 | - * @param array $admin_settings |
|
311 | - */ |
|
312 | - public function admin_settings( $admin_settings ) { |
|
308 | + * Filters the gateway settings. |
|
309 | + * |
|
310 | + * @param array $admin_settings |
|
311 | + */ |
|
312 | + public function admin_settings( $admin_settings ) { |
|
313 | 313 | |
314 | 314 | $currencies = sprintf( |
315 | 315 | __( 'Supported Currencies: %s', 'invoicing' ), |
@@ -350,7 +350,7 @@ discard block |
||
350 | 350 | 'readonly' => true |
351 | 351 | ); |
352 | 352 | |
353 | - return $admin_settings; |
|
354 | - } |
|
353 | + return $admin_settings; |
|
354 | + } |
|
355 | 355 | |
356 | 356 | } |
@@ -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 | * Worldpay Payment Gateway class. |
@@ -45,14 +45,14 @@ discard block |
||
45 | 45 | * |
46 | 46 | * @var array |
47 | 47 | */ |
48 | - protected $supports = array( 'sandbox' ); |
|
48 | + protected $supports = array('sandbox'); |
|
49 | 49 | |
50 | 50 | /** |
51 | 51 | * Currencies this gateway is allowed for. |
52 | 52 | * |
53 | 53 | * @var array |
54 | 54 | */ |
55 | - public $currencies = array( 'AUD', 'ARS', 'CAD', 'CHF', 'DKK', 'EUR', 'HKD', 'MYR', 'GBP', 'NZD', 'NOK', 'SGD', 'LKR', 'SEK', 'TRY', 'USD', 'ZAR' ); |
|
55 | + public $currencies = array('AUD', 'ARS', 'CAD', 'CHF', 'DKK', 'EUR', 'HKD', 'MYR', 'GBP', 'NZD', 'NOK', 'SGD', 'LKR', 'SEK', 'TRY', 'USD', 'ZAR'); |
|
56 | 56 | |
57 | 57 | /** |
58 | 58 | * URL to view a transaction. |
@@ -73,13 +73,13 @@ discard block |
||
73 | 73 | */ |
74 | 74 | public function __construct() { |
75 | 75 | |
76 | - $this->method_title = __( 'Worldpay', 'invoicing' ); |
|
77 | - $this->title = __( 'Worldpay - Credit Card / Debit Card', 'invoicing' ); |
|
78 | - $this->checkout_button_text = __( 'Proceed to Worldpay', 'invoicing' ); |
|
79 | - $this->notify_url = wpinv_get_ipn_url( $this->id ); |
|
76 | + $this->method_title = __('Worldpay', 'invoicing'); |
|
77 | + $this->title = __('Worldpay - Credit Card / Debit Card', 'invoicing'); |
|
78 | + $this->checkout_button_text = __('Proceed to Worldpay', 'invoicing'); |
|
79 | + $this->notify_url = wpinv_get_ipn_url($this->id); |
|
80 | 80 | |
81 | - add_filter( 'wpinv_gateway_description', array( $this, 'sandbox_notice' ), 10, 2 ); |
|
82 | - add_filter( 'getpaid_worldpay_args', array( $this, 'hash_args' ) ); |
|
81 | + add_filter('wpinv_gateway_description', array($this, 'sandbox_notice'), 10, 2); |
|
82 | + add_filter('getpaid_worldpay_args', array($this, 'hash_args')); |
|
83 | 83 | |
84 | 84 | parent::__construct(); |
85 | 85 | } |
@@ -93,24 +93,24 @@ discard block |
||
93 | 93 | * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
94 | 94 | * @return array |
95 | 95 | */ |
96 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
96 | + public function process_payment($invoice, $submission_data, $submission) { |
|
97 | 97 | |
98 | 98 | // Get redirect url. |
99 | - $worldpay_redirect = esc_url( $this->get_request_url( $invoice ) ); |
|
99 | + $worldpay_redirect = esc_url($this->get_request_url($invoice)); |
|
100 | 100 | |
101 | 101 | // Get submission args. |
102 | - $worldpay_args = $this->get_worldpay_args( $invoice ); |
|
102 | + $worldpay_args = $this->get_worldpay_args($invoice); |
|
103 | 103 | |
104 | 104 | $form = "<form action='$worldpay_redirect' name='wpi_worldpay_form' method='POST'>"; |
105 | 105 | |
106 | - foreach ( $worldpay_args as $key => $value ) { |
|
106 | + foreach ($worldpay_args as $key => $value) { |
|
107 | 107 | |
108 | - if ( false === $value || '' === trim( $value ) ) { |
|
108 | + if (false === $value || '' === trim($value)) { |
|
109 | 109 | continue; |
110 | 110 | } |
111 | 111 | |
112 | - $value = esc_attr( $value ); |
|
113 | - $key = wpinv_clean( $key ); |
|
112 | + $value = esc_attr($value); |
|
113 | + $key = wpinv_clean($key); |
|
114 | 114 | $form .= "<input type='hidden' name='$key' value='$value'>"; |
115 | 115 | } |
116 | 116 | |
@@ -133,10 +133,10 @@ discard block |
||
133 | 133 | * @param WPInv_Invoice $invoice Invoice object. |
134 | 134 | * @return string |
135 | 135 | */ |
136 | - public function get_request_url( $invoice ) { |
|
136 | + public function get_request_url($invoice) { |
|
137 | 137 | |
138 | 138 | // Endpoint for this request |
139 | - $this->endpoint = $this->is_sandbox( $invoice ) ? 'https://secure-test.worldpay.com/wcc/purchase' : 'https://secure.worldpay.com/wcc/purchase'; |
|
139 | + $this->endpoint = $this->is_sandbox($invoice) ? 'https://secure-test.worldpay.com/wcc/purchase' : 'https://secure.worldpay.com/wcc/purchase'; |
|
140 | 140 | |
141 | 141 | return $this->endpoint; |
142 | 142 | |
@@ -148,34 +148,34 @@ discard block |
||
148 | 148 | * @param WPInv_Invoice $invoice Invoice object. |
149 | 149 | * @return array |
150 | 150 | */ |
151 | - protected function get_worldpay_args( $invoice ) { |
|
151 | + protected function get_worldpay_args($invoice) { |
|
152 | 152 | |
153 | 153 | return apply_filters( |
154 | 154 | 'getpaid_worldpay_args', |
155 | 155 | array( |
156 | - 'amount' => wpinv_sanitize_amount( $invoice->get_total() ), // mandatory |
|
157 | - 'cartId' => wpinv_clean( $invoice->get_number() ), // mandatory reference for the item purchased |
|
158 | - 'currency' => wpinv_clean( $invoice->get_currency() ), // mandatory |
|
159 | - 'instId' => wpinv_clean( $this->get_option( 'instId', '' ) ), // mandatory |
|
160 | - 'testMode' => $this->is_sandbox( $invoice ) ? 100 : 0, // mandatory |
|
161 | - 'name' => wpinv_clean( $invoice->get_full_name() ), |
|
162 | - 'address' => wpinv_clean( $invoice->get_address() ), |
|
163 | - 'postcode' => wpinv_clean( $invoice->get_zip() ), |
|
164 | - 'tel' => wpinv_clean( $invoice->get_phone() ), |
|
165 | - 'email' => sanitize_email( $invoice->get_email() ), |
|
166 | - 'country' => wpinv_clean( $invoice->get_country() ), |
|
167 | - 'desc' => sprintf( __( 'Payment for invoice %s.', 'invoicing' ), wpinv_clean( $invoice->get_number() ) ), |
|
168 | - 'MC_description' => sprintf( __( 'Payment for invoice %s.', 'invoicing' ), wpinv_clean( $invoice->get_number() ) ), |
|
169 | - 'MC_callback' => esc_url_raw( $this->notify_url ), |
|
170 | - 'resultfile' => esc_url_raw( $this->get_return_url( $invoice ) ), |
|
171 | - 'MC_key' => wpinv_clean( $invoice->get_key() ), |
|
156 | + 'amount' => wpinv_sanitize_amount($invoice->get_total()), // mandatory |
|
157 | + 'cartId' => wpinv_clean($invoice->get_number()), // mandatory reference for the item purchased |
|
158 | + 'currency' => wpinv_clean($invoice->get_currency()), // mandatory |
|
159 | + 'instId' => wpinv_clean($this->get_option('instId', '')), // mandatory |
|
160 | + 'testMode' => $this->is_sandbox($invoice) ? 100 : 0, // mandatory |
|
161 | + 'name' => wpinv_clean($invoice->get_full_name()), |
|
162 | + 'address' => wpinv_clean($invoice->get_address()), |
|
163 | + 'postcode' => wpinv_clean($invoice->get_zip()), |
|
164 | + 'tel' => wpinv_clean($invoice->get_phone()), |
|
165 | + 'email' => sanitize_email($invoice->get_email()), |
|
166 | + 'country' => wpinv_clean($invoice->get_country()), |
|
167 | + 'desc' => sprintf(__('Payment for invoice %s.', 'invoicing'), wpinv_clean($invoice->get_number())), |
|
168 | + 'MC_description' => sprintf(__('Payment for invoice %s.', 'invoicing'), wpinv_clean($invoice->get_number())), |
|
169 | + 'MC_callback' => esc_url_raw($this->notify_url), |
|
170 | + 'resultfile' => esc_url_raw($this->get_return_url($invoice)), |
|
171 | + 'MC_key' => wpinv_clean($invoice->get_key()), |
|
172 | 172 | 'MC_invoice_id' => $invoice->get_id(), |
173 | - 'address1' => wpinv_clean( $invoice->get_address() ), |
|
174 | - 'town' => wpinv_clean( $invoice->get_city() ), |
|
175 | - 'region' => wpinv_clean( $invoice->get_state() ), |
|
176 | - 'amountString' => wpinv_price( wpinv_format_amount( $invoice->get_total() ), $invoice->get_currency() ), |
|
177 | - 'countryString' => wpinv_clean( wpinv_country_name( $invoice->get_country() ) ), |
|
178 | - 'compName' => wpinv_clean( $invoice->get_company() ), |
|
173 | + 'address1' => wpinv_clean($invoice->get_address()), |
|
174 | + 'town' => wpinv_clean($invoice->get_city()), |
|
175 | + 'region' => wpinv_clean($invoice->get_state()), |
|
176 | + 'amountString' => wpinv_price(wpinv_format_amount($invoice->get_total()), $invoice->get_currency()), |
|
177 | + 'countryString' => wpinv_clean(wpinv_country_name($invoice->get_country())), |
|
178 | + 'compName' => wpinv_clean($invoice->get_company()), |
|
179 | 179 | ), |
180 | 180 | $invoice |
181 | 181 | ); |
@@ -188,17 +188,17 @@ discard block |
||
188 | 188 | * @param array $args Gateway args. |
189 | 189 | * @return array |
190 | 190 | */ |
191 | - public function hash_args( $args ) { |
|
191 | + public function hash_args($args) { |
|
192 | 192 | |
193 | - $md5_secret = $this->get_option( 'md5_secret' ); |
|
193 | + $md5_secret = $this->get_option('md5_secret'); |
|
194 | 194 | |
195 | 195 | // Abort if there is no secret. |
196 | - if ( empty( $md5_secret ) ) { |
|
196 | + if (empty($md5_secret)) { |
|
197 | 197 | return $args; |
198 | 198 | } |
199 | 199 | |
200 | 200 | // Hash the args. |
201 | - $args['signature'] = md5( "$md5_secret:{$args['instId']}:{$args['amount']}:{$args['currency']}:{$args['cartId']}" ); |
|
201 | + $args['signature'] = md5("$md5_secret:{$args['instId']}:{$args['amount']}:{$args['currency']}:{$args['cartId']}"); |
|
202 | 202 | |
203 | 203 | return $args; |
204 | 204 | } |
@@ -211,43 +211,43 @@ discard block |
||
211 | 211 | public function verify_ipn() { |
212 | 212 | |
213 | 213 | // Validate the IPN. |
214 | - if ( empty( $_POST ) || ! $this->validate_ipn() ) { |
|
215 | - wp_die( 'Worldpay IPN Request Failure', 'Worldpay IPN', array( 'response' => 500 ) ); |
|
214 | + if (empty($_POST) || !$this->validate_ipn()) { |
|
215 | + wp_die('Worldpay IPN Request Failure', 'Worldpay IPN', array('response' => 500)); |
|
216 | 216 | } |
217 | 217 | |
218 | 218 | // Process the IPN. |
219 | - $posted = wp_unslash( $_POST ); |
|
220 | - $invoice = wpinv_get_invoice( $posted['MC_invoice_id'] ); |
|
219 | + $posted = wp_unslash($_POST); |
|
220 | + $invoice = wpinv_get_invoice($posted['MC_invoice_id']); |
|
221 | 221 | |
222 | - if ( $invoice && $this->id == $invoice->get_gateway() ) { |
|
222 | + if ($invoice && $this->id == $invoice->get_gateway()) { |
|
223 | 223 | |
224 | - wpinv_error_log( 'Found invoice #' . $invoice->get_number() ); |
|
225 | - wpinv_error_log( 'Payment status:' . $posted['transStatus'] ); |
|
224 | + wpinv_error_log('Found invoice #' . $invoice->get_number()); |
|
225 | + wpinv_error_log('Payment status:' . $posted['transStatus']); |
|
226 | 226 | |
227 | 227 | // Update the transaction id. |
228 | - if ( ! empty( $posted['transId'] ) ) { |
|
229 | - $invoice->set_transaction_id( wpinv_clean( $posted['transId'] ) ); |
|
228 | + if (!empty($posted['transId'])) { |
|
229 | + $invoice->set_transaction_id(wpinv_clean($posted['transId'])); |
|
230 | 230 | } |
231 | 231 | |
232 | 232 | // Update the ip address. |
233 | - if ( ! empty( $posted['ipAddress'] ) ) { |
|
234 | - $invoice->set_ip( wpinv_clean( $posted['ipAddress'] ) ); |
|
233 | + if (!empty($posted['ipAddress'])) { |
|
234 | + $invoice->set_ip(wpinv_clean($posted['ipAddress'])); |
|
235 | 235 | } |
236 | 236 | |
237 | - if ( $posted['transStatus'] == 'Y' ) { |
|
238 | - $invoice->set_completed_date( date( 'Y-m-d H:i:s', $posted['transTime'] ) ); |
|
237 | + if ($posted['transStatus'] == 'Y') { |
|
238 | + $invoice->set_completed_date(date('Y-m-d H:i:s', $posted['transTime'])); |
|
239 | 239 | $invoice->mark_paid(); |
240 | 240 | return; |
241 | 241 | } |
242 | 242 | |
243 | - if ( $posted['transStatus'] == 'C' ) { |
|
244 | - $invoice->set_status( 'wpi-failed' ); |
|
245 | - $invoice->add_note( __( 'Payment transaction failed while processing Worldpay payment.', 'invoicing' ), false, false, true ); |
|
243 | + if ($posted['transStatus'] == 'C') { |
|
244 | + $invoice->set_status('wpi-failed'); |
|
245 | + $invoice->add_note(__('Payment transaction failed while processing Worldpay payment.', 'invoicing'), false, false, true); |
|
246 | 246 | $invoice->save(); |
247 | 247 | return; |
248 | 248 | } |
249 | 249 | |
250 | - wpinv_error_log( 'Aborting, Invalid transaction status:' . $posted['transStatus'] ); |
|
250 | + wpinv_error_log('Aborting, Invalid transaction status:' . $posted['transStatus']); |
|
251 | 251 | $invoice->save(); |
252 | 252 | |
253 | 253 | } |
@@ -261,27 +261,27 @@ discard block |
||
261 | 261 | */ |
262 | 262 | public function validate_ipn() { |
263 | 263 | |
264 | - wpinv_error_log( 'Validating Worldpay IPN response' ); |
|
264 | + wpinv_error_log('Validating Worldpay IPN response'); |
|
265 | 265 | |
266 | - $data = wp_unslash( $_POST ); |
|
266 | + $data = wp_unslash($_POST); |
|
267 | 267 | |
268 | 268 | // Verify installation. |
269 | - if ( empty( $data['instId'] ) || $data['instId'] != wpinv_clean( $this->get_option( 'instId', '' ) ) ) { |
|
270 | - wpinv_error_log( 'Received invalid installation ID from Worldpay IPN' ); |
|
269 | + if (empty($data['instId']) || $data['instId'] != wpinv_clean($this->get_option('instId', ''))) { |
|
270 | + wpinv_error_log('Received invalid installation ID from Worldpay IPN'); |
|
271 | 271 | return false; |
272 | 272 | } |
273 | 273 | |
274 | 274 | // Verify invoice. |
275 | - if ( empty( $data['cartId'] ) || ! wpinv_get_id_by_invoice_number( $data['cartId'] ) ) { |
|
276 | - wpinv_error_log( 'Received invalid invoice number from Worldpay IPN' ); |
|
275 | + if (empty($data['cartId']) || !wpinv_get_id_by_invoice_number($data['cartId'])) { |
|
276 | + wpinv_error_log('Received invalid invoice number from Worldpay IPN'); |
|
277 | 277 | return false; |
278 | 278 | } |
279 | 279 | |
280 | 280 | // (maybe) verify password. |
281 | - $password = $this->get_option( 'callback_password' ); |
|
281 | + $password = $this->get_option('callback_password'); |
|
282 | 282 | |
283 | - if ( ! empty( $password ) && ( empty( $data['callbackPW'] ) || $password != $data['callbackPW'] ) ) { |
|
284 | - wpinv_error_log( 'Received invalid invoice number from Worldpay IPN' ); |
|
283 | + if (!empty($password) && (empty($data['callbackPW']) || $password != $data['callbackPW'])) { |
|
284 | + wpinv_error_log('Received invalid invoice number from Worldpay IPN'); |
|
285 | 285 | return false; |
286 | 286 | } |
287 | 287 | |
@@ -292,10 +292,10 @@ discard block |
||
292 | 292 | /** |
293 | 293 | * Displays a notice on the checkout page if sandbox is enabled. |
294 | 294 | */ |
295 | - public function sandbox_notice( $description, $gateway ) { |
|
296 | - if ( 'worldpay' == $gateway && wpinv_is_test_mode( 'worldpay' ) ) { |
|
295 | + public function sandbox_notice($description, $gateway) { |
|
296 | + if ('worldpay' == $gateway && wpinv_is_test_mode('worldpay')) { |
|
297 | 297 | $description .= '<br>' . sprintf( |
298 | - __( 'SANDBOX ENABLED. See the %sWorldpay Sandbox Testing Guide%s for more details.', 'invoicing' ), |
|
298 | + __('SANDBOX ENABLED. See the %sWorldpay Sandbox Testing Guide%s for more details.', 'invoicing'), |
|
299 | 299 | '<a href="https://developer.worldpay.com/docs/wpg/directintegration/abouttesting">', |
300 | 300 | '</a>' |
301 | 301 | ); |
@@ -309,43 +309,43 @@ discard block |
||
309 | 309 | * |
310 | 310 | * @param array $admin_settings |
311 | 311 | */ |
312 | - public function admin_settings( $admin_settings ) { |
|
312 | + public function admin_settings($admin_settings) { |
|
313 | 313 | |
314 | 314 | $currencies = sprintf( |
315 | - __( 'Supported Currencies: %s', 'invoicing' ), |
|
316 | - implode( ', ', $this->currencies ) |
|
315 | + __('Supported Currencies: %s', 'invoicing'), |
|
316 | + implode(', ', $this->currencies) |
|
317 | 317 | ); |
318 | 318 | |
319 | 319 | $admin_settings['worldpay_active']['desc'] = $admin_settings['worldpay_active']['desc'] . " ($currencies)"; |
320 | - $admin_settings['worldpay_desc']['std'] = __( 'Pay securely via Worldpay using your PayPal account, credit or debit card.', 'invoicing' ); |
|
320 | + $admin_settings['worldpay_desc']['std'] = __('Pay securely via Worldpay using your PayPal account, credit or debit card.', 'invoicing'); |
|
321 | 321 | |
322 | 322 | $admin_settings['worldpay_instId'] = array( |
323 | 323 | 'type' => 'text', |
324 | 324 | 'id' => 'worldpay_instId', |
325 | - 'name' => __( 'Installation Id', 'invoicing' ), |
|
326 | - 'desc' => __( 'Your installation id. Ex: 211616', 'invoicing' ), |
|
325 | + 'name' => __('Installation Id', 'invoicing'), |
|
326 | + 'desc' => __('Your installation id. Ex: 211616', 'invoicing'), |
|
327 | 327 | ); |
328 | 328 | |
329 | 329 | $admin_settings['worldpay_md5_secret'] = array( |
330 | 330 | 'type' => 'text', |
331 | 331 | 'id' => 'worldpay_md5_secret', |
332 | - 'name' => __( 'MD5 secret', 'invoicing' ), |
|
333 | - 'desc' => __( 'Optionally enter your MD5 secret here. Next, open your installation settings and ensure that your SignatureFields parameter is set to ', 'invoicing' ) . '<code>instId:amount:currency:cartId</code>', |
|
332 | + 'name' => __('MD5 secret', 'invoicing'), |
|
333 | + 'desc' => __('Optionally enter your MD5 secret here. Next, open your installation settings and ensure that your SignatureFields parameter is set to ', 'invoicing') . '<code>instId:amount:currency:cartId</code>', |
|
334 | 334 | ); |
335 | 335 | |
336 | 336 | $admin_settings['worldpay_callbackPW'] = array( |
337 | 337 | 'type' => 'text', |
338 | 338 | 'id' => 'worldpay_callbackPW', |
339 | - 'name' => __( 'Payment Response password', 'invoicing' ), |
|
340 | - 'desc' => __( 'Recommended. Enter your WorldPay response password to validate payment notifications.', 'invoicing' ), |
|
339 | + 'name' => __('Payment Response password', 'invoicing'), |
|
340 | + 'desc' => __('Recommended. Enter your WorldPay response password to validate payment notifications.', 'invoicing'), |
|
341 | 341 | ); |
342 | 342 | |
343 | 343 | $admin_settings['worldpay_ipn_url'] = array( |
344 | 344 | 'type' => 'ipn_url', |
345 | 345 | 'id' => 'worldpay_ipn_url', |
346 | - 'name' => __( 'Payment Response URL', 'invoicing' ), |
|
346 | + 'name' => __('Payment Response URL', 'invoicing'), |
|
347 | 347 | 'std' => $this->notify_url, |
348 | - 'desc' => __( 'Login to your Worldpay Merchant Interface then enable Payment Response & Shopper Response. Next, go to the Payment Response URL field and enter the above URL.', 'invoicing' ), |
|
348 | + 'desc' => __('Login to your Worldpay Merchant Interface then enable Payment Response & Shopper Response. Next, go to the Payment Response URL field and enter the above URL.', 'invoicing'), |
|
349 | 349 | 'custom' => 'worldpay', |
350 | 350 | 'readonly' => true |
351 | 351 | ); |
@@ -283,8 +283,9 @@ |
||
283 | 283 | } |
284 | 284 | |
285 | 285 | function wpinv_remove_item_logs_on_delete( $item_id = 0 ) { |
286 | - if ( 'wpi_item' !== get_post_type( $item_id ) ) |
|
287 | - return; |
|
286 | + if ( 'wpi_item' !== get_post_type( $item_id ) ) { |
|
287 | + return; |
|
288 | + } |
|
288 | 289 | |
289 | 290 | global $wpinv_logs; |
290 | 291 |
@@ -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 | * Retrieves an item by it's ID. |
@@ -14,9 +14,9 @@ discard block |
||
14 | 14 | * @param int the item ID to retrieve. |
15 | 15 | * @return WPInv_Item|false |
16 | 16 | */ |
17 | -function wpinv_get_item_by_id( $id ) { |
|
18 | - $item = wpinv_get_item( $id ); |
|
19 | - return empty( $item ) || $id != $item->get_id() ? false : $item; |
|
17 | +function wpinv_get_item_by_id($id) { |
|
18 | + $item = wpinv_get_item($id); |
|
19 | + return empty($item) || $id != $item->get_id() ? false : $item; |
|
20 | 20 | } |
21 | 21 | |
22 | 22 | /** |
@@ -24,14 +24,14 @@ discard block |
||
24 | 24 | * |
25 | 25 | * @return WPInv_Item|false |
26 | 26 | */ |
27 | -function wpinv_get_item_by( $field = '', $value = '', $type = '' ) { |
|
27 | +function wpinv_get_item_by($field = '', $value = '', $type = '') { |
|
28 | 28 | |
29 | - if ( 'id' == strtolower( $field ) ) { |
|
30 | - return wpinv_get_item_by_id( $field ); |
|
29 | + if ('id' == strtolower($field)) { |
|
30 | + return wpinv_get_item_by_id($field); |
|
31 | 31 | } |
32 | 32 | |
33 | - $id = WPInv_Item::get_item_id_by_field( $value, strtolower( $field ), $type ); |
|
34 | - return $id ? wpinv_get_item( $id ) : false; |
|
33 | + $id = WPInv_Item::get_item_id_by_field($value, strtolower($field), $type); |
|
34 | + return $id ? wpinv_get_item($id) : false; |
|
35 | 35 | |
36 | 36 | } |
37 | 37 | |
@@ -41,22 +41,22 @@ discard block |
||
41 | 41 | * @param int|WPInv_Item the item to retrieve. |
42 | 42 | * @return WPInv_Item|false |
43 | 43 | */ |
44 | -function wpinv_get_item( $item = 0 ) { |
|
44 | +function wpinv_get_item($item = 0) { |
|
45 | 45 | |
46 | - if ( empty( $item ) ) { |
|
46 | + if (empty($item)) { |
|
47 | 47 | return false; |
48 | 48 | } |
49 | 49 | |
50 | - $item = new WPInv_Item( $item ); |
|
50 | + $item = new WPInv_Item($item); |
|
51 | 51 | return $item->get_id() ? $item : false; |
52 | 52 | |
53 | 53 | } |
54 | 54 | |
55 | -function wpinv_get_all_items( $args = array() ) { |
|
55 | +function wpinv_get_all_items($args = array()) { |
|
56 | 56 | |
57 | - $args = wp_parse_args( $args, array( |
|
58 | - 'status' => array( 'publish' ), |
|
59 | - 'limit' => get_option( 'posts_per_page' ), |
|
57 | + $args = wp_parse_args($args, array( |
|
58 | + 'status' => array('publish'), |
|
59 | + 'limit' => get_option('posts_per_page'), |
|
60 | 60 | 'page' => 1, |
61 | 61 | 'exclude' => array(), |
62 | 62 | 'orderby' => 'date', |
@@ -65,7 +65,7 @@ discard block |
||
65 | 65 | 'meta_query' => array(), |
66 | 66 | 'return' => 'objects', |
67 | 67 | 'paginate' => false, |
68 | - ) ); |
|
68 | + )); |
|
69 | 69 | |
70 | 70 | $wp_query_args = array( |
71 | 71 | 'post_type' => 'wpi_item', |
@@ -75,26 +75,26 @@ discard block |
||
75 | 75 | 'fields' => 'ids', |
76 | 76 | 'orderby' => $args['orderby'], |
77 | 77 | 'order' => $args['order'], |
78 | - 'paged' => absint( $args['page'] ), |
|
78 | + 'paged' => absint($args['page']), |
|
79 | 79 | ); |
80 | 80 | |
81 | - if ( ! empty( $args['exclude'] ) ) { |
|
82 | - $wp_query_args['post__not_in'] = array_map( 'absint', $args['exclude'] ); |
|
81 | + if (!empty($args['exclude'])) { |
|
82 | + $wp_query_args['post__not_in'] = array_map('absint', $args['exclude']); |
|
83 | 83 | } |
84 | 84 | |
85 | - if ( ! $args['paginate' ] ) { |
|
85 | + if (!$args['paginate']) { |
|
86 | 86 | $wp_query_args['no_found_rows'] = true; |
87 | 87 | } |
88 | 88 | |
89 | - if ( ! empty( $args['search'] ) ) { |
|
89 | + if (!empty($args['search'])) { |
|
90 | 90 | $wp_query_args['s'] = $args['search']; |
91 | 91 | } |
92 | 92 | |
93 | - if ( ! empty( $args['type'] ) && $args['type'] !== wpinv_item_types() ) { |
|
94 | - $types = wpinv_parse_list( $args['type'] ); |
|
93 | + if (!empty($args['type']) && $args['type'] !== wpinv_item_types()) { |
|
94 | + $types = wpinv_parse_list($args['type']); |
|
95 | 95 | $wp_query_args['meta_query'][] = array( |
96 | 96 | 'key' => '_wpinv_type', |
97 | - 'value' => implode( ',', $types ), |
|
97 | + 'value' => implode(',', $types), |
|
98 | 98 | 'compare' => 'IN', |
99 | 99 | ); |
100 | 100 | } |
@@ -102,17 +102,17 @@ discard block |
||
102 | 102 | $wp_query_args = apply_filters('wpinv_get_items_args', $wp_query_args, $args); |
103 | 103 | |
104 | 104 | // Get results. |
105 | - $items = new WP_Query( $wp_query_args ); |
|
105 | + $items = new WP_Query($wp_query_args); |
|
106 | 106 | |
107 | - if ( 'objects' === $args['return'] ) { |
|
108 | - $return = array_map( 'wpinv_get_item_by_id', $items->posts ); |
|
109 | - } elseif ( 'self' === $args['return'] ) { |
|
107 | + if ('objects' === $args['return']) { |
|
108 | + $return = array_map('wpinv_get_item_by_id', $items->posts); |
|
109 | + } elseif ('self' === $args['return']) { |
|
110 | 110 | return $items; |
111 | 111 | } else { |
112 | 112 | $return = $items->posts; |
113 | 113 | } |
114 | 114 | |
115 | - if ( $args['paginate' ] ) { |
|
115 | + if ($args['paginate']) { |
|
116 | 116 | return (object) array( |
117 | 117 | 'items' => $return, |
118 | 118 | 'total' => $items->found_posts, |
@@ -124,12 +124,12 @@ discard block |
||
124 | 124 | |
125 | 125 | } |
126 | 126 | |
127 | -function wpinv_is_free_item( $item_id = 0 ) { |
|
128 | - if( empty( $item_id ) ) { |
|
127 | +function wpinv_is_free_item($item_id = 0) { |
|
128 | + if (empty($item_id)) { |
|
129 | 129 | return false; |
130 | 130 | } |
131 | 131 | |
132 | - $item = new WPInv_Item( $item_id ); |
|
132 | + $item = new WPInv_Item($item_id); |
|
133 | 133 | |
134 | 134 | return $item->is_free(); |
135 | 135 | } |
@@ -139,128 +139,128 @@ discard block |
||
139 | 139 | * |
140 | 140 | * @param WP_Post|WPInv_Item|Int $item The item to check for. |
141 | 141 | */ |
142 | -function wpinv_item_is_editable( $item = 0 ) { |
|
142 | +function wpinv_item_is_editable($item = 0) { |
|
143 | 143 | |
144 | 144 | // Fetch the item. |
145 | - $item = new WPInv_Item( $item ); |
|
145 | + $item = new WPInv_Item($item); |
|
146 | 146 | |
147 | 147 | // Check if it is editable. |
148 | 148 | return $item->is_editable(); |
149 | 149 | } |
150 | 150 | |
151 | -function wpinv_get_item_price( $item_id = 0 ) { |
|
152 | - if( empty( $item_id ) ) { |
|
151 | +function wpinv_get_item_price($item_id = 0) { |
|
152 | + if (empty($item_id)) { |
|
153 | 153 | return false; |
154 | 154 | } |
155 | 155 | |
156 | - $item = new WPInv_Item( $item_id ); |
|
156 | + $item = new WPInv_Item($item_id); |
|
157 | 157 | |
158 | 158 | return $item->get_price(); |
159 | 159 | } |
160 | 160 | |
161 | -function wpinv_is_recurring_item( $item_id = 0 ) { |
|
162 | - if( empty( $item_id ) ) { |
|
161 | +function wpinv_is_recurring_item($item_id = 0) { |
|
162 | + if (empty($item_id)) { |
|
163 | 163 | return false; |
164 | 164 | } |
165 | 165 | |
166 | - $item = new WPInv_Item( $item_id ); |
|
166 | + $item = new WPInv_Item($item_id); |
|
167 | 167 | |
168 | 168 | return $item->is_recurring(); |
169 | 169 | } |
170 | 170 | |
171 | -function wpinv_item_price( $item_id = 0 ) { |
|
172 | - if( empty( $item_id ) ) { |
|
171 | +function wpinv_item_price($item_id = 0) { |
|
172 | + if (empty($item_id)) { |
|
173 | 173 | return false; |
174 | 174 | } |
175 | 175 | |
176 | - $price = wpinv_get_item_price( $item_id ); |
|
177 | - $price = wpinv_price( wpinv_format_amount( $price ) ); |
|
176 | + $price = wpinv_get_item_price($item_id); |
|
177 | + $price = wpinv_price(wpinv_format_amount($price)); |
|
178 | 178 | |
179 | - return apply_filters( 'wpinv_item_price', $price, $item_id ); |
|
179 | + return apply_filters('wpinv_item_price', $price, $item_id); |
|
180 | 180 | } |
181 | 181 | |
182 | -function wpinv_item_show_price( $item_id = 0, $echo = true ) { |
|
183 | - if ( empty( $item_id ) ) { |
|
182 | +function wpinv_item_show_price($item_id = 0, $echo = true) { |
|
183 | + if (empty($item_id)) { |
|
184 | 184 | $item_id = get_the_ID(); |
185 | 185 | } |
186 | 186 | |
187 | - $price = wpinv_item_price( $item_id ); |
|
187 | + $price = wpinv_item_price($item_id); |
|
188 | 188 | |
189 | - $price = apply_filters( 'wpinv_item_price', wpinv_sanitize_amount( $price ), $item_id ); |
|
189 | + $price = apply_filters('wpinv_item_price', wpinv_sanitize_amount($price), $item_id); |
|
190 | 190 | $formatted_price = '<span class="wpinv_price" id="wpinv_item_' . $item_id . '">' . $price . '</span>'; |
191 | - $formatted_price = apply_filters( 'wpinv_item_price_after_html', $formatted_price, $item_id, $price ); |
|
191 | + $formatted_price = apply_filters('wpinv_item_price_after_html', $formatted_price, $item_id, $price); |
|
192 | 192 | |
193 | - if ( $echo ) { |
|
193 | + if ($echo) { |
|
194 | 194 | echo $formatted_price; |
195 | 195 | } else { |
196 | 196 | return $formatted_price; |
197 | 197 | } |
198 | 198 | } |
199 | 199 | |
200 | -function wpinv_get_item_final_price( $item_id = 0, $amount_override = null ) { |
|
201 | - if ( is_null( $amount_override ) ) { |
|
202 | - $original_price = get_post_meta( $item_id, '_wpinv_price', true ); |
|
200 | +function wpinv_get_item_final_price($item_id = 0, $amount_override = null) { |
|
201 | + if (is_null($amount_override)) { |
|
202 | + $original_price = get_post_meta($item_id, '_wpinv_price', true); |
|
203 | 203 | } else { |
204 | 204 | $original_price = $amount_override; |
205 | 205 | } |
206 | 206 | |
207 | 207 | $price = $original_price; |
208 | 208 | |
209 | - return apply_filters( 'wpinv_get_item_final_price', $price, $item_id ); |
|
209 | + return apply_filters('wpinv_get_item_final_price', $price, $item_id); |
|
210 | 210 | } |
211 | 211 | |
212 | -function wpinv_item_custom_singular_name( $item_id ) { |
|
213 | - if( empty( $item_id ) ) { |
|
212 | +function wpinv_item_custom_singular_name($item_id) { |
|
213 | + if (empty($item_id)) { |
|
214 | 214 | return false; |
215 | 215 | } |
216 | 216 | |
217 | - $item = new WPInv_Item( $item_id ); |
|
217 | + $item = new WPInv_Item($item_id); |
|
218 | 218 | |
219 | 219 | return $item->get_custom_singular_name(); |
220 | 220 | } |
221 | 221 | |
222 | 222 | function wpinv_get_item_types() { |
223 | 223 | $item_types = array( |
224 | - 'custom' => __( 'Standard', 'invoicing' ), |
|
225 | - 'fee' => __( 'Fee', 'invoicing' ), |
|
224 | + 'custom' => __('Standard', 'invoicing'), |
|
225 | + 'fee' => __('Fee', 'invoicing'), |
|
226 | 226 | ); |
227 | - return apply_filters( 'wpinv_get_item_types', $item_types ); |
|
227 | + return apply_filters('wpinv_get_item_types', $item_types); |
|
228 | 228 | } |
229 | 229 | |
230 | 230 | function wpinv_item_types() { |
231 | 231 | $item_types = wpinv_get_item_types(); |
232 | 232 | |
233 | - return ( !empty( $item_types ) ? array_keys( $item_types ) : array() ); |
|
233 | + return (!empty($item_types) ? array_keys($item_types) : array()); |
|
234 | 234 | } |
235 | 235 | |
236 | -function wpinv_get_item_type( $item_id ) { |
|
237 | - if( empty( $item_id ) ) { |
|
236 | +function wpinv_get_item_type($item_id) { |
|
237 | + if (empty($item_id)) { |
|
238 | 238 | return false; |
239 | 239 | } |
240 | 240 | |
241 | - $item = new WPInv_Item( $item_id ); |
|
241 | + $item = new WPInv_Item($item_id); |
|
242 | 242 | |
243 | 243 | return $item->get_type(); |
244 | 244 | } |
245 | 245 | |
246 | -function wpinv_item_type( $item_id ) { |
|
246 | +function wpinv_item_type($item_id) { |
|
247 | 247 | $item_types = wpinv_get_item_types(); |
248 | 248 | |
249 | - $item_type = wpinv_get_item_type( $item_id ); |
|
249 | + $item_type = wpinv_get_item_type($item_id); |
|
250 | 250 | |
251 | - if ( empty( $item_type ) ) { |
|
251 | + if (empty($item_type)) { |
|
252 | 252 | $item_type = '-'; |
253 | 253 | } |
254 | 254 | |
255 | - $item_type = isset( $item_types[$item_type] ) ? $item_types[$item_type] : __( $item_type, 'invoicing' ); |
|
255 | + $item_type = isset($item_types[$item_type]) ? $item_types[$item_type] : __($item_type, 'invoicing'); |
|
256 | 256 | |
257 | - return apply_filters( 'wpinv_item_type', $item_type, $item_id ); |
|
257 | + return apply_filters('wpinv_item_type', $item_type, $item_id); |
|
258 | 258 | } |
259 | 259 | |
260 | -function wpinv_record_item_in_log( $item_id = 0, $file_id, $user_info, $ip, $invoice_id ) { |
|
260 | +function wpinv_record_item_in_log($item_id = 0, $file_id, $user_info, $ip, $invoice_id) { |
|
261 | 261 | global $wpinv_logs; |
262 | 262 | |
263 | - if ( empty( $wpinv_logs ) ) { |
|
263 | + if (empty($wpinv_logs)) { |
|
264 | 264 | return false; |
265 | 265 | } |
266 | 266 | |
@@ -269,278 +269,278 @@ discard block |
||
269 | 269 | 'log_type' => 'wpi_item' |
270 | 270 | ); |
271 | 271 | |
272 | - $user_id = isset( $user_info['user_id'] ) ? $user_info['user_id'] : (int) -1; |
|
272 | + $user_id = isset($user_info['user_id']) ? $user_info['user_id'] : (int) -1; |
|
273 | 273 | |
274 | 274 | $log_meta = array( |
275 | 275 | 'user_info' => $user_info, |
276 | 276 | 'user_id' => $user_id, |
277 | - 'file_id' => (int)$file_id, |
|
277 | + 'file_id' => (int) $file_id, |
|
278 | 278 | 'ip' => $ip, |
279 | 279 | 'invoice_id'=> $invoice_id, |
280 | 280 | ); |
281 | 281 | |
282 | - $wpinv_logs->insert_log( $log_data, $log_meta ); |
|
282 | + $wpinv_logs->insert_log($log_data, $log_meta); |
|
283 | 283 | } |
284 | 284 | |
285 | -function wpinv_remove_item_logs_on_delete( $item_id = 0 ) { |
|
286 | - if ( 'wpi_item' !== get_post_type( $item_id ) ) |
|
285 | +function wpinv_remove_item_logs_on_delete($item_id = 0) { |
|
286 | + if ('wpi_item' !== get_post_type($item_id)) |
|
287 | 287 | return; |
288 | 288 | |
289 | 289 | global $wpinv_logs; |
290 | 290 | |
291 | - if ( empty( $wpinv_logs ) ) { |
|
291 | + if (empty($wpinv_logs)) { |
|
292 | 292 | return false; |
293 | 293 | } |
294 | 294 | |
295 | 295 | // Remove all log entries related to this item |
296 | - $wpinv_logs->delete_logs( $item_id ); |
|
296 | + $wpinv_logs->delete_logs($item_id); |
|
297 | 297 | } |
298 | -add_action( 'delete_post', 'wpinv_remove_item_logs_on_delete' ); |
|
298 | +add_action('delete_post', 'wpinv_remove_item_logs_on_delete'); |
|
299 | 299 | |
300 | -function wpinv_get_random_item( $post_ids = true ) { |
|
301 | - wpinv_get_random_items( 1, $post_ids ); |
|
300 | +function wpinv_get_random_item($post_ids = true) { |
|
301 | + wpinv_get_random_items(1, $post_ids); |
|
302 | 302 | } |
303 | 303 | |
304 | -function wpinv_get_random_items( $num = 3, $post_ids = true ) { |
|
305 | - if ( $post_ids ) { |
|
306 | - $args = array( 'post_type' => 'wpi_item', 'orderby' => 'rand', 'post_count' => $num, 'fields' => 'ids' ); |
|
304 | +function wpinv_get_random_items($num = 3, $post_ids = true) { |
|
305 | + if ($post_ids) { |
|
306 | + $args = array('post_type' => 'wpi_item', 'orderby' => 'rand', 'post_count' => $num, 'fields' => 'ids'); |
|
307 | 307 | } else { |
308 | - $args = array( 'post_type' => 'wpi_item', 'orderby' => 'rand', 'post_count' => $num ); |
|
308 | + $args = array('post_type' => 'wpi_item', 'orderby' => 'rand', 'post_count' => $num); |
|
309 | 309 | } |
310 | 310 | |
311 | - $args = apply_filters( 'wpinv_get_random_items', $args ); |
|
311 | + $args = apply_filters('wpinv_get_random_items', $args); |
|
312 | 312 | |
313 | - return get_posts( $args ); |
|
313 | + return get_posts($args); |
|
314 | 314 | } |
315 | 315 | |
316 | -function wpinv_get_item_token( $url = '' ) { |
|
316 | +function wpinv_get_item_token($url = '') { |
|
317 | 317 | $args = array(); |
318 | - $hash = apply_filters( 'wpinv_get_url_token_algorithm', 'sha256' ); |
|
319 | - $secret = apply_filters( 'wpinv_get_url_token_secret', hash( $hash, wp_salt() ) ); |
|
318 | + $hash = apply_filters('wpinv_get_url_token_algorithm', 'sha256'); |
|
319 | + $secret = apply_filters('wpinv_get_url_token_secret', hash($hash, wp_salt())); |
|
320 | 320 | |
321 | - $parts = parse_url( $url ); |
|
321 | + $parts = parse_url($url); |
|
322 | 322 | $options = array(); |
323 | 323 | |
324 | - if ( isset( $parts['query'] ) ) { |
|
325 | - wp_parse_str( $parts['query'], $query_args ); |
|
324 | + if (isset($parts['query'])) { |
|
325 | + wp_parse_str($parts['query'], $query_args); |
|
326 | 326 | |
327 | - if ( ! empty( $query_args['o'] ) ) { |
|
328 | - $options = explode( ':', rawurldecode( $query_args['o'] ) ); |
|
327 | + if (!empty($query_args['o'])) { |
|
328 | + $options = explode(':', rawurldecode($query_args['o'])); |
|
329 | 329 | |
330 | - if ( in_array( 'ip', $options ) ) { |
|
330 | + if (in_array('ip', $options)) { |
|
331 | 331 | $args['ip'] = wpinv_get_ip(); |
332 | 332 | } |
333 | 333 | |
334 | - if ( in_array( 'ua', $options ) ) { |
|
334 | + if (in_array('ua', $options)) { |
|
335 | 335 | $ua = wpinv_get_user_agent(); |
336 | - $args['user_agent'] = rawurlencode( $ua ); |
|
336 | + $args['user_agent'] = rawurlencode($ua); |
|
337 | 337 | } |
338 | 338 | } |
339 | 339 | } |
340 | 340 | |
341 | - $args = apply_filters( 'wpinv_get_url_token_args', $args, $url, $options ); |
|
341 | + $args = apply_filters('wpinv_get_url_token_args', $args, $url, $options); |
|
342 | 342 | |
343 | 343 | $args['secret'] = $secret; |
344 | 344 | $args['token'] = false; |
345 | 345 | |
346 | - $url = add_query_arg( $args, $url ); |
|
347 | - $parts = parse_url( $url ); |
|
346 | + $url = add_query_arg($args, $url); |
|
347 | + $parts = parse_url($url); |
|
348 | 348 | |
349 | - if ( ! isset( $parts['path'] ) ) { |
|
349 | + if (!isset($parts['path'])) { |
|
350 | 350 | $parts['path'] = ''; |
351 | 351 | } |
352 | 352 | |
353 | - $token = md5( $parts['path'] . '?' . $parts['query'] ); |
|
353 | + $token = md5($parts['path'] . '?' . $parts['query']); |
|
354 | 354 | |
355 | 355 | return $token; |
356 | 356 | } |
357 | 357 | |
358 | -function wpinv_validate_url_token( $url = '' ) { |
|
358 | +function wpinv_validate_url_token($url = '') { |
|
359 | 359 | $ret = false; |
360 | - $parts = parse_url( $url ); |
|
360 | + $parts = parse_url($url); |
|
361 | 361 | |
362 | - if ( isset( $parts['query'] ) ) { |
|
363 | - wp_parse_str( $parts['query'], $query_args ); |
|
362 | + if (isset($parts['query'])) { |
|
363 | + wp_parse_str($parts['query'], $query_args); |
|
364 | 364 | |
365 | - $allowed = apply_filters( 'wpinv_url_token_allowed_params', array( |
|
365 | + $allowed = apply_filters('wpinv_url_token_allowed_params', array( |
|
366 | 366 | 'item', |
367 | 367 | 'ttl', |
368 | 368 | 'token' |
369 | - ) ); |
|
369 | + )); |
|
370 | 370 | |
371 | 371 | $remove = array(); |
372 | 372 | |
373 | - foreach( $query_args as $key => $value ) { |
|
374 | - if( false === in_array( $key, $allowed ) ) { |
|
373 | + foreach ($query_args as $key => $value) { |
|
374 | + if (false === in_array($key, $allowed)) { |
|
375 | 375 | $remove[] = $key; |
376 | 376 | } |
377 | 377 | } |
378 | 378 | |
379 | - if( ! empty( $remove ) ) { |
|
380 | - $url = remove_query_arg( $remove, $url ); |
|
379 | + if (!empty($remove)) { |
|
380 | + $url = remove_query_arg($remove, $url); |
|
381 | 381 | } |
382 | 382 | |
383 | - if ( isset( $query_args['ttl'] ) && current_time( 'timestamp' ) > $query_args['ttl'] ) { |
|
384 | - wp_die( apply_filters( 'wpinv_item_link_expired_text', __( 'Sorry but your item link has expired.', 'invoicing' ) ), __( 'Error', 'invoicing' ), array( 'response' => 403 ) ); |
|
383 | + if (isset($query_args['ttl']) && current_time('timestamp') > $query_args['ttl']) { |
|
384 | + wp_die(apply_filters('wpinv_item_link_expired_text', __('Sorry but your item link has expired.', 'invoicing')), __('Error', 'invoicing'), array('response' => 403)); |
|
385 | 385 | } |
386 | 386 | |
387 | - if ( isset( $query_args['token'] ) && $query_args['token'] == wpinv_get_item_token( $url ) ) { |
|
387 | + if (isset($query_args['token']) && $query_args['token'] == wpinv_get_item_token($url)) { |
|
388 | 388 | $ret = true; |
389 | 389 | } |
390 | 390 | |
391 | 391 | } |
392 | 392 | |
393 | - return apply_filters( 'wpinv_validate_url_token', $ret, $url, $query_args ); |
|
393 | + return apply_filters('wpinv_validate_url_token', $ret, $url, $query_args); |
|
394 | 394 | } |
395 | 395 | |
396 | -function wpinv_item_in_cart( $item_id = 0, $options = array() ) { |
|
396 | +function wpinv_item_in_cart($item_id = 0, $options = array()) { |
|
397 | 397 | $cart_items = wpinv_get_cart_contents(); |
398 | 398 | |
399 | 399 | $ret = false; |
400 | 400 | |
401 | - if ( is_array( $cart_items ) ) { |
|
402 | - foreach ( $cart_items as $item ) { |
|
403 | - if ( $item['id'] == $item_id ) { |
|
401 | + if (is_array($cart_items)) { |
|
402 | + foreach ($cart_items as $item) { |
|
403 | + if ($item['id'] == $item_id) { |
|
404 | 404 | $ret = true; |
405 | 405 | break; |
406 | 406 | } |
407 | 407 | } |
408 | 408 | } |
409 | 409 | |
410 | - return (bool) apply_filters( 'wpinv_item_in_cart', $ret, $item_id, $options ); |
|
410 | + return (bool) apply_filters('wpinv_item_in_cart', $ret, $item_id, $options); |
|
411 | 411 | } |
412 | 412 | |
413 | -function wpinv_get_cart_item_tax( $item_id = 0, $subtotal = '', $options = array() ) { |
|
413 | +function wpinv_get_cart_item_tax($item_id = 0, $subtotal = '', $options = array()) { |
|
414 | 414 | $tax = 0; |
415 | - if ( ! wpinv_item_is_tax_exclusive( $item_id ) ) { |
|
416 | - $country = !empty( $_POST['country'] ) ? $_POST['country'] : false; |
|
417 | - $state = isset( $_POST['state'] ) ? $_POST['state'] : ''; |
|
415 | + if (!wpinv_item_is_tax_exclusive($item_id)) { |
|
416 | + $country = !empty($_POST['country']) ? $_POST['country'] : false; |
|
417 | + $state = isset($_POST['state']) ? $_POST['state'] : ''; |
|
418 | 418 | |
419 | - $tax = wpinv_calculate_tax( $subtotal, $country, $state, $item_id ); |
|
419 | + $tax = wpinv_calculate_tax($subtotal, $country, $state, $item_id); |
|
420 | 420 | } |
421 | 421 | |
422 | - return apply_filters( 'wpinv_get_cart_item_tax', $tax, $item_id, $subtotal, $options ); |
|
422 | + return apply_filters('wpinv_get_cart_item_tax', $tax, $item_id, $subtotal, $options); |
|
423 | 423 | } |
424 | 424 | |
425 | -function wpinv_cart_item_price( $item, $currency = '' ) { |
|
425 | +function wpinv_cart_item_price($item, $currency = '') { |
|
426 | 426 | |
427 | - if( empty( $currency ) ) { |
|
427 | + if (empty($currency)) { |
|
428 | 428 | $currency = wpinv_get_currency(); |
429 | 429 | } |
430 | 430 | |
431 | - $item_id = isset( $item['id'] ) ? $item['id'] : 0; |
|
432 | - $price = isset( $item['item_price'] ) ? wpinv_round_amount( $item['item_price'] ) : 0; |
|
433 | - $tax = wpinv_price( wpinv_format_amount( $item['tax'] ) ); |
|
431 | + $item_id = isset($item['id']) ? $item['id'] : 0; |
|
432 | + $price = isset($item['item_price']) ? wpinv_round_amount($item['item_price']) : 0; |
|
433 | + $tax = wpinv_price(wpinv_format_amount($item['tax'])); |
|
434 | 434 | |
435 | - if ( !wpinv_is_free_item( $item_id ) && !wpinv_item_is_tax_exclusive( $item_id ) ) { |
|
436 | - if ( wpinv_prices_show_tax_on_checkout() && !wpinv_prices_include_tax() ) { |
|
435 | + if (!wpinv_is_free_item($item_id) && !wpinv_item_is_tax_exclusive($item_id)) { |
|
436 | + if (wpinv_prices_show_tax_on_checkout() && !wpinv_prices_include_tax()) { |
|
437 | 437 | $price += $tax; |
438 | 438 | } |
439 | 439 | |
440 | - if( !wpinv_prices_show_tax_on_checkout() && wpinv_prices_include_tax() ) { |
|
440 | + if (!wpinv_prices_show_tax_on_checkout() && wpinv_prices_include_tax()) { |
|
441 | 441 | $price -= $tax; |
442 | 442 | } |
443 | 443 | } |
444 | 444 | |
445 | - $price = wpinv_price( wpinv_format_amount( $price ), $currency ); |
|
445 | + $price = wpinv_price(wpinv_format_amount($price), $currency); |
|
446 | 446 | |
447 | - return apply_filters( 'wpinv_cart_item_price_label', $price, $item ); |
|
447 | + return apply_filters('wpinv_cart_item_price_label', $price, $item); |
|
448 | 448 | } |
449 | 449 | |
450 | -function wpinv_cart_item_subtotal( $item, $currency = '' ) { |
|
450 | +function wpinv_cart_item_subtotal($item, $currency = '') { |
|
451 | 451 | |
452 | - if( empty( $currency ) ) { |
|
452 | + if (empty($currency)) { |
|
453 | 453 | $currency = wpinv_get_currency(); |
454 | 454 | } |
455 | 455 | |
456 | - $subtotal = isset( $item['subtotal'] ) ? $item['subtotal'] : 0; |
|
457 | - $subtotal = wpinv_price( wpinv_format_amount( $subtotal ), $currency ); |
|
456 | + $subtotal = isset($item['subtotal']) ? $item['subtotal'] : 0; |
|
457 | + $subtotal = wpinv_price(wpinv_format_amount($subtotal), $currency); |
|
458 | 458 | |
459 | - return apply_filters( 'wpinv_cart_item_subtotal_label', $subtotal, $item ); |
|
459 | + return apply_filters('wpinv_cart_item_subtotal_label', $subtotal, $item); |
|
460 | 460 | } |
461 | 461 | |
462 | -function wpinv_cart_item_tax( $item, $currency = '' ) { |
|
462 | +function wpinv_cart_item_tax($item, $currency = '') { |
|
463 | 463 | $tax = ''; |
464 | 464 | $tax_rate = ''; |
465 | 465 | |
466 | - if( empty( $currency ) ) { |
|
466 | + if (empty($currency)) { |
|
467 | 467 | $currency = wpinv_get_currency(); |
468 | 468 | } |
469 | 469 | |
470 | - if ( isset( $item['tax'] ) && $item['tax'] > 0 && $item['subtotal'] > 0 ) { |
|
471 | - $tax = wpinv_price( wpinv_format_amount( $item['tax'] ), $currency ); |
|
472 | - $tax_rate = !empty( $item['vat_rate'] ) ? $item['vat_rate'] : ( $item['tax'] / $item['subtotal'] ) * 100; |
|
473 | - $tax_rate = $tax_rate > 0 ? (float)wpinv_round_amount( $tax_rate, 4 ) : ''; |
|
470 | + if (isset($item['tax']) && $item['tax'] > 0 && $item['subtotal'] > 0) { |
|
471 | + $tax = wpinv_price(wpinv_format_amount($item['tax']), $currency); |
|
472 | + $tax_rate = !empty($item['vat_rate']) ? $item['vat_rate'] : ($item['tax'] / $item['subtotal']) * 100; |
|
473 | + $tax_rate = $tax_rate > 0 ? (float) wpinv_round_amount($tax_rate, 4) : ''; |
|
474 | 474 | $tax_rate = $tax_rate != '' ? ' <small class="tax-rate normal small">(' . $tax_rate . '%)</small>' : ''; |
475 | 475 | } |
476 | 476 | |
477 | - $tax = $tax . $tax_rate; |
|
477 | + $tax = $tax . $tax_rate; |
|
478 | 478 | |
479 | - if ( $tax === '' ) { |
|
479 | + if ($tax === '') { |
|
480 | 480 | $tax = 0; // Zero tax |
481 | 481 | } |
482 | 482 | |
483 | - return apply_filters( 'wpinv_cart_item_tax_label', $tax, $item ); |
|
483 | + return apply_filters('wpinv_cart_item_tax_label', $tax, $item); |
|
484 | 484 | } |
485 | 485 | |
486 | -function wpinv_get_cart_item_price( $item_id = 0, $cart_item = array(), $options = array(), $remove_tax_from_inclusive = false ) { |
|
486 | +function wpinv_get_cart_item_price($item_id = 0, $cart_item = array(), $options = array(), $remove_tax_from_inclusive = false) { |
|
487 | 487 | $price = 0; |
488 | 488 | |
489 | 489 | // Set custom price |
490 | - if ( isset( $cart_item['custom_price'] ) && $cart_item['custom_price'] !== '' ) { |
|
490 | + if (isset($cart_item['custom_price']) && $cart_item['custom_price'] !== '') { |
|
491 | 491 | $price = $cart_item['custom_price']; |
492 | 492 | } else { |
493 | - $variable_prices = wpinv_has_variable_prices( $item_id ); |
|
493 | + $variable_prices = wpinv_has_variable_prices($item_id); |
|
494 | 494 | |
495 | - if ( $variable_prices ) { |
|
496 | - $prices = wpinv_get_variable_prices( $item_id ); |
|
495 | + if ($variable_prices) { |
|
496 | + $prices = wpinv_get_variable_prices($item_id); |
|
497 | 497 | |
498 | - if ( $prices ) { |
|
499 | - if( ! empty( $options ) ) { |
|
500 | - $price = isset( $prices[ $options['price_id'] ] ) ? $prices[ $options['price_id'] ]['amount'] : false; |
|
498 | + if ($prices) { |
|
499 | + if (!empty($options)) { |
|
500 | + $price = isset($prices[$options['price_id']]) ? $prices[$options['price_id']]['amount'] : false; |
|
501 | 501 | } else { |
502 | 502 | $price = false; |
503 | 503 | } |
504 | 504 | } |
505 | 505 | } |
506 | 506 | |
507 | - if( ! $variable_prices || false === $price ) { |
|
508 | - if($cart_item['item_price'] > 0){ |
|
507 | + if (!$variable_prices || false === $price) { |
|
508 | + if ($cart_item['item_price'] > 0) { |
|
509 | 509 | $price = $cart_item['item_price']; |
510 | 510 | } else { |
511 | 511 | // Get the standard Item price if not using variable prices |
512 | - $price = wpinv_get_item_price( $item_id ); |
|
512 | + $price = wpinv_get_item_price($item_id); |
|
513 | 513 | } |
514 | 514 | } |
515 | 515 | } |
516 | 516 | |
517 | - if ( $remove_tax_from_inclusive && wpinv_prices_include_tax() ) { |
|
518 | - $price -= wpinv_get_cart_item_tax( $item_id, $price, $options ); |
|
517 | + if ($remove_tax_from_inclusive && wpinv_prices_include_tax()) { |
|
518 | + $price -= wpinv_get_cart_item_tax($item_id, $price, $options); |
|
519 | 519 | } |
520 | 520 | |
521 | - return apply_filters( 'wpinv_cart_item_price', $price, $item_id, $cart_item, $options, $remove_tax_from_inclusive ); |
|
521 | + return apply_filters('wpinv_cart_item_price', $price, $item_id, $cart_item, $options, $remove_tax_from_inclusive); |
|
522 | 522 | } |
523 | 523 | |
524 | -function wpinv_get_cart_item_price_id( $item = array() ) { |
|
525 | - if( isset( $item['item_number'] ) ) { |
|
526 | - $price_id = isset( $item['item_number']['options']['price_id'] ) ? $item['item_number']['options']['price_id'] : null; |
|
524 | +function wpinv_get_cart_item_price_id($item = array()) { |
|
525 | + if (isset($item['item_number'])) { |
|
526 | + $price_id = isset($item['item_number']['options']['price_id']) ? $item['item_number']['options']['price_id'] : null; |
|
527 | 527 | } else { |
528 | - $price_id = isset( $item['options']['price_id'] ) ? $item['options']['price_id'] : null; |
|
528 | + $price_id = isset($item['options']['price_id']) ? $item['options']['price_id'] : null; |
|
529 | 529 | } |
530 | 530 | return $price_id; |
531 | 531 | } |
532 | 532 | |
533 | -function wpinv_get_cart_item_price_name( $item = array() ) { |
|
534 | - $price_id = (int)wpinv_get_cart_item_price_id( $item ); |
|
535 | - $prices = wpinv_get_variable_prices( $item['id'] ); |
|
536 | - $name = ! empty( $prices[ $price_id ] ) ? $prices[ $price_id ]['name'] : ''; |
|
537 | - return apply_filters( 'wpinv_get_cart_item_price_name', $name, $item['id'], $price_id, $item ); |
|
533 | +function wpinv_get_cart_item_price_name($item = array()) { |
|
534 | + $price_id = (int) wpinv_get_cart_item_price_id($item); |
|
535 | + $prices = wpinv_get_variable_prices($item['id']); |
|
536 | + $name = !empty($prices[$price_id]) ? $prices[$price_id]['name'] : ''; |
|
537 | + return apply_filters('wpinv_get_cart_item_price_name', $name, $item['id'], $price_id, $item); |
|
538 | 538 | } |
539 | 539 | |
540 | -function wpinv_get_cart_item_name( $item = array() ) { |
|
541 | - $item_title = !empty( $item['name'] ) ? $item['name'] : get_the_title( $item['id'] ); |
|
540 | +function wpinv_get_cart_item_name($item = array()) { |
|
541 | + $item_title = !empty($item['name']) ? $item['name'] : get_the_title($item['id']); |
|
542 | 542 | |
543 | - if ( empty( $item_title ) ) { |
|
543 | + if (empty($item_title)) { |
|
544 | 544 | $item_title = $item['id']; |
545 | 545 | } |
546 | 546 | |
@@ -550,23 +550,23 @@ discard block |
||
550 | 550 | } |
551 | 551 | */ |
552 | 552 | |
553 | - return apply_filters( 'wpinv_get_cart_item_name', $item_title, $item['id'], $item ); |
|
553 | + return apply_filters('wpinv_get_cart_item_name', $item_title, $item['id'], $item); |
|
554 | 554 | } |
555 | 555 | |
556 | -function wpinv_has_variable_prices( $item_id = 0 ) { |
|
556 | +function wpinv_has_variable_prices($item_id = 0) { |
|
557 | 557 | return false; |
558 | 558 | } |
559 | 559 | |
560 | -function wpinv_get_item_position_in_cart( $item_id = 0, $options = array() ) { |
|
560 | +function wpinv_get_item_position_in_cart($item_id = 0, $options = array()) { |
|
561 | 561 | $cart_items = wpinv_get_cart_contents(); |
562 | 562 | |
563 | - if ( !is_array( $cart_items ) ) { |
|
563 | + if (!is_array($cart_items)) { |
|
564 | 564 | return false; // Empty cart |
565 | 565 | } else { |
566 | - foreach ( $cart_items as $position => $item ) { |
|
567 | - if ( $item['id'] == $item_id ) { |
|
568 | - if ( isset( $options['price_id'] ) && isset( $item['options']['price_id'] ) ) { |
|
569 | - if ( (int) $options['price_id'] == (int) $item['options']['price_id'] ) { |
|
566 | + foreach ($cart_items as $position => $item) { |
|
567 | + if ($item['id'] == $item_id) { |
|
568 | + if (isset($options['price_id']) && isset($item['options']['price_id'])) { |
|
569 | + if ((int) $options['price_id'] == (int) $item['options']['price_id']) { |
|
570 | 570 | return $position; |
571 | 571 | } |
572 | 572 | } else { |
@@ -579,80 +579,80 @@ discard block |
||
579 | 579 | return false; // Not found |
580 | 580 | } |
581 | 581 | |
582 | -function wpinv_get_cart_item_quantity( $item ) { |
|
583 | - if ( wpinv_item_quantities_enabled() ) { |
|
584 | - $quantity = !empty( $item['quantity'] ) && (int)$item['quantity'] > 0 ? absint( $item['quantity'] ) : 1; |
|
582 | +function wpinv_get_cart_item_quantity($item) { |
|
583 | + if (wpinv_item_quantities_enabled()) { |
|
584 | + $quantity = !empty($item['quantity']) && (int) $item['quantity'] > 0 ? absint($item['quantity']) : 1; |
|
585 | 585 | } else { |
586 | 586 | $quantity = 1; |
587 | 587 | } |
588 | 588 | |
589 | - if ( $quantity < 1 ) { |
|
589 | + if ($quantity < 1) { |
|
590 | 590 | $quantity = 1; |
591 | 591 | } |
592 | 592 | |
593 | - return apply_filters( 'wpinv_get_cart_item_quantity', $quantity, $item ); |
|
593 | + return apply_filters('wpinv_get_cart_item_quantity', $quantity, $item); |
|
594 | 594 | } |
595 | 595 | |
596 | -function wpinv_get_item_suffix( $item, $html = true ) { |
|
597 | - if ( empty( $item ) ) { |
|
596 | +function wpinv_get_item_suffix($item, $html = true) { |
|
597 | + if (empty($item)) { |
|
598 | 598 | return NULL; |
599 | 599 | } |
600 | 600 | |
601 | - if ( is_int( $item ) ) { |
|
602 | - $item = new WPInv_Item( $item ); |
|
601 | + if (is_int($item)) { |
|
602 | + $item = new WPInv_Item($item); |
|
603 | 603 | } |
604 | 604 | |
605 | - if ( !( is_object( $item ) && is_a( $item, 'WPInv_Item' ) ) ) { |
|
605 | + if (!(is_object($item) && is_a($item, 'WPInv_Item'))) { |
|
606 | 606 | return NULL; |
607 | 607 | } |
608 | 608 | |
609 | - $suffix = $item->is_recurring() ? ' <span class="wpi-suffix">' . __( '(r)', 'invoicing' ) . '</span>' : ''; |
|
609 | + $suffix = $item->is_recurring() ? ' <span class="wpi-suffix">' . __('(r)', 'invoicing') . '</span>' : ''; |
|
610 | 610 | |
611 | - if ( !$html && $suffix ) { |
|
612 | - $suffix = strip_tags( $suffix ); |
|
611 | + if (!$html && $suffix) { |
|
612 | + $suffix = strip_tags($suffix); |
|
613 | 613 | } |
614 | 614 | |
615 | - return apply_filters( 'wpinv_get_item_suffix', $suffix, $item, $html ); |
|
615 | + return apply_filters('wpinv_get_item_suffix', $suffix, $item, $html); |
|
616 | 616 | } |
617 | 617 | |
618 | -function wpinv_remove_item( $item = 0, $force_delete = false ) { |
|
619 | - if ( empty( $item ) ) { |
|
618 | +function wpinv_remove_item($item = 0, $force_delete = false) { |
|
619 | + if (empty($item)) { |
|
620 | 620 | return NULL; |
621 | 621 | } |
622 | 622 | |
623 | - if ( is_int( $item ) ) { |
|
624 | - $item = new WPInv_Item( $item ); |
|
623 | + if (is_int($item)) { |
|
624 | + $item = new WPInv_Item($item); |
|
625 | 625 | } |
626 | 626 | |
627 | - if ( !( is_object( $item ) && is_a( $item, 'WPInv_Item' ) ) ) { |
|
627 | + if (!(is_object($item) && is_a($item, 'WPInv_Item'))) { |
|
628 | 628 | return NULL; |
629 | 629 | } |
630 | 630 | |
631 | - do_action( 'wpinv_pre_delete_item', $item ); |
|
631 | + do_action('wpinv_pre_delete_item', $item); |
|
632 | 632 | |
633 | - wp_delete_post( $item->ID, $force_delete ); |
|
633 | + wp_delete_post($item->ID, $force_delete); |
|
634 | 634 | |
635 | - do_action( 'wpinv_post_delete_item', $item ); |
|
635 | + do_action('wpinv_post_delete_item', $item); |
|
636 | 636 | } |
637 | 637 | |
638 | -function wpinv_can_delete_item( $post_id ) { |
|
638 | +function wpinv_can_delete_item($post_id) { |
|
639 | 639 | $return = wpinv_current_user_can_manage_invoicing() ? true : false; |
640 | 640 | |
641 | - if ( $return && wpinv_item_in_use( $post_id ) ) { |
|
641 | + if ($return && wpinv_item_in_use($post_id)) { |
|
642 | 642 | $return = false; // Don't delete item already use in invoices. |
643 | 643 | } |
644 | 644 | |
645 | - return apply_filters( 'wpinv_can_delete_item', $return, $post_id ); |
|
645 | + return apply_filters('wpinv_can_delete_item', $return, $post_id); |
|
646 | 646 | } |
647 | 647 | |
648 | 648 | function wpinv_admin_action_delete() { |
649 | 649 | $screen = get_current_screen(); |
650 | 650 | |
651 | - if ( !empty( $screen->post_type ) && $screen->post_type == 'wpi_item' && !empty( $_REQUEST['post'] ) && is_array( $_REQUEST['post'] ) ) { |
|
651 | + if (!empty($screen->post_type) && $screen->post_type == 'wpi_item' && !empty($_REQUEST['post']) && is_array($_REQUEST['post'])) { |
|
652 | 652 | $post_ids = array(); |
653 | 653 | |
654 | - foreach ( $_REQUEST['post'] as $post_id ) { |
|
655 | - if ( !wpinv_can_delete_item( $post_id ) ) { |
|
654 | + foreach ($_REQUEST['post'] as $post_id) { |
|
655 | + if (!wpinv_can_delete_item($post_id)) { |
|
656 | 656 | continue; |
657 | 657 | } |
658 | 658 | |
@@ -662,39 +662,39 @@ discard block |
||
662 | 662 | $_REQUEST['post'] = $post_ids; |
663 | 663 | } |
664 | 664 | } |
665 | -add_action( 'admin_action_trash', 'wpinv_admin_action_delete', -10 ); |
|
666 | -add_action( 'admin_action_delete', 'wpinv_admin_action_delete', -10 ); |
|
665 | +add_action('admin_action_trash', 'wpinv_admin_action_delete', -10); |
|
666 | +add_action('admin_action_delete', 'wpinv_admin_action_delete', -10); |
|
667 | 667 | |
668 | -function wpinv_check_delete_item( $check, $post, $force_delete ) { |
|
669 | - if ( $post->post_type == 'wpi_item' ) { |
|
670 | - if ( $force_delete && !wpinv_can_delete_item( $post->ID ) ) { |
|
668 | +function wpinv_check_delete_item($check, $post, $force_delete) { |
|
669 | + if ($post->post_type == 'wpi_item') { |
|
670 | + if ($force_delete && !wpinv_can_delete_item($post->ID)) { |
|
671 | 671 | return true; |
672 | 672 | } |
673 | 673 | } |
674 | 674 | |
675 | 675 | return $check; |
676 | 676 | } |
677 | -add_filter( 'pre_delete_post', 'wpinv_check_delete_item', 10, 3 ); |
|
677 | +add_filter('pre_delete_post', 'wpinv_check_delete_item', 10, 3); |
|
678 | 678 | |
679 | -function wpinv_item_in_use( $item_id ) { |
|
679 | +function wpinv_item_in_use($item_id) { |
|
680 | 680 | global $wpdb, $wpi_items_in_use; |
681 | 681 | |
682 | - if ( !$item_id > 0 ) { |
|
682 | + if (!$item_id > 0) { |
|
683 | 683 | return false; |
684 | 684 | } |
685 | 685 | |
686 | - if ( !empty( $wpi_items_in_use ) ) { |
|
687 | - if ( isset( $wpi_items_in_use[$item_id] ) ) { |
|
686 | + if (!empty($wpi_items_in_use)) { |
|
687 | + if (isset($wpi_items_in_use[$item_id])) { |
|
688 | 688 | return $wpi_items_in_use[$item_id]; |
689 | 689 | } |
690 | 690 | } else { |
691 | 691 | $wpi_items_in_use = array(); |
692 | 692 | } |
693 | 693 | |
694 | - $statuses = array_keys( wpinv_get_invoice_statuses( true, true ) ); |
|
694 | + $statuses = array_keys(wpinv_get_invoice_statuses(true, true)); |
|
695 | 695 | |
696 | - $query = "SELECT p.ID FROM " . $wpdb->posts . " AS p INNER JOIN " . $wpdb->postmeta . " AS pm ON p.ID = pm.post_id WHERE p.post_type = 'wpi_invoice' AND p.post_status IN( '" . implode( "','", $statuses ) . "' ) AND pm.meta_key = '_wpinv_item_ids' AND FIND_IN_SET( '" . (int)$item_id . "', pm.meta_value )"; |
|
697 | - $in_use = $wpdb->get_var( $query ) > 0 ? true : false; |
|
696 | + $query = "SELECT p.ID FROM " . $wpdb->posts . " AS p INNER JOIN " . $wpdb->postmeta . " AS pm ON p.ID = pm.post_id WHERE p.post_type = 'wpi_invoice' AND p.post_status IN( '" . implode("','", $statuses) . "' ) AND pm.meta_key = '_wpinv_item_ids' AND FIND_IN_SET( '" . (int) $item_id . "', pm.meta_value )"; |
|
697 | + $in_use = $wpdb->get_var($query) > 0 ? true : false; |
|
698 | 698 | |
699 | 699 | $wpi_items_in_use[$item_id] = $in_use; |
700 | 700 | |
@@ -737,45 +737,45 @@ discard block |
||
737 | 737 | * @param bool $wp_error whether or not to return a WP_Error on failure. |
738 | 738 | * @return bool|WP_Error|WPInv_Item |
739 | 739 | */ |
740 | -function wpinv_create_item( $args = array(), $wp_error = false ) { |
|
740 | +function wpinv_create_item($args = array(), $wp_error = false) { |
|
741 | 741 | |
742 | 742 | // Prepare the item. |
743 | - if ( ! empty( $args['custom_id'] ) && empty( $args['ID'] ) ) { |
|
744 | - $type = empty( $args['type'] ) ? 'custom' : $args['type']; |
|
745 | - $item = wpinv_get_item_by( 'custom_id', $args['custom_id'], $type ); |
|
743 | + if (!empty($args['custom_id']) && empty($args['ID'])) { |
|
744 | + $type = empty($args['type']) ? 'custom' : $args['type']; |
|
745 | + $item = wpinv_get_item_by('custom_id', $args['custom_id'], $type); |
|
746 | 746 | |
747 | - if ( ! empty( $item ) ) { |
|
747 | + if (!empty($item)) { |
|
748 | 748 | $args['ID'] = $item->get_id(); |
749 | 749 | } |
750 | 750 | |
751 | 751 | } |
752 | 752 | |
753 | 753 | // Do we have an item? |
754 | - if ( ! empty( $args['ID'] ) ) { |
|
755 | - $item = new WPInv_Item( $args['ID'] ); |
|
754 | + if (!empty($args['ID'])) { |
|
755 | + $item = new WPInv_Item($args['ID']); |
|
756 | 756 | } else { |
757 | 757 | $item = new WPInv_Item(); |
758 | 758 | } |
759 | 759 | |
760 | 760 | // Do we have an error? |
761 | - if ( ! empty( $item->last_error ) ) { |
|
762 | - return $wp_error ? new WP_Error( 'invalid_item', $item->last_error ) : false; |
|
761 | + if (!empty($item->last_error)) { |
|
762 | + return $wp_error ? new WP_Error('invalid_item', $item->last_error) : false; |
|
763 | 763 | } |
764 | 764 | |
765 | 765 | // Update item props. |
766 | - $item->set_props( $args ); |
|
766 | + $item->set_props($args); |
|
767 | 767 | |
768 | 768 | // Save the item. |
769 | 769 | $item->save(); |
770 | 770 | |
771 | 771 | // Do we have an error? |
772 | - if ( ! empty( $item->last_error ) ) { |
|
773 | - return $wp_error ? new WP_Error( 'not_saved', $item->last_error ) : false; |
|
772 | + if (!empty($item->last_error)) { |
|
773 | + return $wp_error ? new WP_Error('not_saved', $item->last_error) : false; |
|
774 | 774 | } |
775 | 775 | |
776 | 776 | // Was the item saved? |
777 | - if ( ! $item->get_id() ) { |
|
778 | - return $wp_error ? new WP_Error( 'not_saved', __( 'An error occured while saving the item', 'invoicing' ) ) : false; |
|
777 | + if (!$item->get_id()) { |
|
778 | + return $wp_error ? new WP_Error('not_saved', __('An error occured while saving the item', 'invoicing')) : false; |
|
779 | 779 | } |
780 | 780 | |
781 | 781 | return $item; |
@@ -787,14 +787,14 @@ discard block |
||
787 | 787 | * |
788 | 788 | * @see wpinv_create_item() |
789 | 789 | */ |
790 | -function wpinv_update_item( $args = array(), $wp_error = false ) { |
|
791 | - return wpinv_create_item( $args, $wp_error ); |
|
790 | +function wpinv_update_item($args = array(), $wp_error = false) { |
|
791 | + return wpinv_create_item($args, $wp_error); |
|
792 | 792 | } |
793 | 793 | |
794 | 794 | /** |
795 | 795 | * Sanitizes a recurring period |
796 | 796 | */ |
797 | -function getpaid_sanitize_recurring_period( $period, $full = false ) { |
|
797 | +function getpaid_sanitize_recurring_period($period, $full = false) { |
|
798 | 798 | |
799 | 799 | $periods = array( |
800 | 800 | 'D' => 'day', |
@@ -803,11 +803,11 @@ discard block |
||
803 | 803 | 'Y' => 'year', |
804 | 804 | ); |
805 | 805 | |
806 | - if ( ! isset( $periods[ $period ] ) ) { |
|
806 | + if (!isset($periods[$period])) { |
|
807 | 807 | $period = 'D'; |
808 | 808 | } |
809 | 809 | |
810 | - return $full ? $periods[ $period ] : $period; |
|
810 | + return $full ? $periods[$period] : $period; |
|
811 | 811 | |
812 | 812 | } |
813 | 813 | |
@@ -816,27 +816,27 @@ discard block |
||
816 | 816 | * |
817 | 817 | * @param WPInv_Item $item |
818 | 818 | */ |
819 | -function getpaid_item_recurring_price_help_text( $item, $currency = '' ) { |
|
819 | +function getpaid_item_recurring_price_help_text($item, $currency = '') { |
|
820 | 820 | |
821 | 821 | // Abort if it is not recurring. |
822 | - if ( ! $item->is_recurring() ) { |
|
822 | + if (!$item->is_recurring()) { |
|
823 | 823 | return ''; |
824 | 824 | } |
825 | 825 | |
826 | - $initial_price = wpinv_price( wpinv_sanitize_amount( $item->get_initial_price() ), $currency ); |
|
827 | - $recurring_price = wpinv_price( wpinv_sanitize_amount( $item->get_recurring_price() ), $currency ); |
|
828 | - $period = getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' ); |
|
826 | + $initial_price = wpinv_price(wpinv_sanitize_amount($item->get_initial_price()), $currency); |
|
827 | + $recurring_price = wpinv_price(wpinv_sanitize_amount($item->get_recurring_price()), $currency); |
|
828 | + $period = getpaid_get_subscription_period_label($item->get_recurring_period(), $item->get_recurring_interval(), ''); |
|
829 | 829 | |
830 | 830 | // For free trial items. |
831 | - if ( $item->has_free_trial() ) { |
|
832 | - $trial_period = getpaid_get_subscription_period_label( $item->get_trial_period(), $item->get_trial_interval() ); |
|
831 | + if ($item->has_free_trial()) { |
|
832 | + $trial_period = getpaid_get_subscription_period_label($item->get_trial_period(), $item->get_trial_interval()); |
|
833 | 833 | |
834 | - if ( 0 == $item->get_initial_price() ) { |
|
834 | + if (0 == $item->get_initial_price()) { |
|
835 | 835 | |
836 | 836 | return sprintf( |
837 | 837 | |
838 | 838 | // translators: $1: is the trial period, $2: is the recurring price, $3: is the susbcription period |
839 | - _x( 'Free for %1$s then %2$s / %3$s', 'Item subscription amount. (e.g.: Free for 1 month then $120 / year)', 'invoicing' ), |
|
839 | + _x('Free for %1$s then %2$s / %3$s', 'Item subscription amount. (e.g.: Free for 1 month then $120 / year)', 'invoicing'), |
|
840 | 840 | $trial_period, |
841 | 841 | $recurring_price, |
842 | 842 | $period |
@@ -848,7 +848,7 @@ discard block |
||
848 | 848 | return sprintf( |
849 | 849 | |
850 | 850 | // translators: $1: is the initial price, $2: is the trial period, $3: is the recurring price, $4: is the susbcription period |
851 | - _x( '%1$s for %2$s then %3$s / %4$s', 'Item subscription amount. (e.g.: $7 for 1 month then $120 / year)', 'invoicing' ), |
|
851 | + _x('%1$s for %2$s then %3$s / %4$s', 'Item subscription amount. (e.g.: $7 for 1 month then $120 / year)', 'invoicing'), |
|
852 | 852 | $initial_price, |
853 | 853 | $trial_period, |
854 | 854 | $recurring_price, |
@@ -858,12 +858,12 @@ discard block |
||
858 | 858 | |
859 | 859 | } |
860 | 860 | |
861 | - if ( $initial_price == $recurring_price ) { |
|
861 | + if ($initial_price == $recurring_price) { |
|
862 | 862 | |
863 | 863 | return sprintf( |
864 | 864 | |
865 | 865 | // translators: $1: is the recurring price, $2: is the susbcription period |
866 | - _x( '%1$s / %2$s', 'Item subscription amount. (e.g.: $120 / year)', 'invoicing' ), |
|
866 | + _x('%1$s / %2$s', 'Item subscription amount. (e.g.: $120 / year)', 'invoicing'), |
|
867 | 867 | $recurring_price, |
868 | 868 | $period |
869 | 869 | |
@@ -874,7 +874,7 @@ discard block |
||
874 | 874 | return sprintf( |
875 | 875 | |
876 | 876 | // translators: $1: is the initial price, $2: is the recurring price, $3: is the susbcription period |
877 | - _x( 'Initial payment of %1$s then %2$s / %3$s', 'Item subscription amount. (e.g.: Initial payment of $7 then $120 / year)', 'invoicing' ), |
|
877 | + _x('Initial payment of %1$s then %2$s / %3$s', 'Item subscription amount. (e.g.: Initial payment of $7 then $120 / year)', 'invoicing'), |
|
878 | 878 | $initial_price, |
879 | 879 | $recurring_price, |
880 | 880 | $period |
@@ -13,629 +13,629 @@ |
||
13 | 13 | |
14 | 14 | return array( |
15 | 15 | |
16 | - 'id' => array( |
|
17 | - 'description' => __( 'Unique identifier for the invoice.', 'invoicing' ), |
|
18 | - 'type' => 'integer', |
|
19 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
20 | - 'readonly' => true, |
|
21 | - ), |
|
22 | - |
|
23 | - 'parent_id' => array( |
|
24 | - 'description' => __( 'Parent invoice ID.', 'invoicing' ), |
|
25 | - 'type' => 'integer', |
|
26 | - 'minimum' => 0, |
|
27 | - 'default' => 0, |
|
28 | - 'context' => array( 'view', 'edit' ), |
|
29 | - ), |
|
30 | - |
|
31 | - 'key' => array( |
|
32 | - 'description' => __( 'A unique key for the invoice.', 'invoicing' ), |
|
33 | - 'type' => 'string', |
|
34 | - 'context' => array( 'view', 'edit' ), |
|
35 | - 'readonly' => true, |
|
36 | - ), |
|
37 | - |
|
38 | - 'number' => array( |
|
39 | - 'description' => __( 'A unique number for the invoice.', 'invoicing' ), |
|
40 | - 'type' => 'string', |
|
41 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
42 | - ), |
|
43 | - |
|
44 | - 'type' => array( |
|
45 | - 'description' => __( 'Get the invoice type (e.g invoice, quote etc).', 'invoicing' ), |
|
46 | - 'type' => 'string', |
|
47 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
48 | - 'readonly' => true, |
|
49 | - ), |
|
50 | - |
|
51 | - 'post_type' => array( |
|
52 | - 'description' => __( 'Get the invoice post type (e.g wpi_invoice, wpi_quote etc).', 'invoicing' ), |
|
53 | - 'type' => 'string', |
|
54 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
55 | - 'readonly' => true, |
|
56 | - ), |
|
57 | - |
|
58 | - 'version' => array( |
|
59 | - 'description' => __( 'Version of GetPaid/Invoicing which last updated the invoice.', 'invoicing' ), |
|
60 | - 'type' => 'integer', |
|
61 | - 'context' => array( 'view', 'edit' ), |
|
62 | - 'readonly' => true, |
|
63 | - ), |
|
64 | - |
|
65 | - 'template' => array( |
|
66 | - 'description' => __( 'The invoice template.', 'invoicing' ), |
|
67 | - 'type' => 'string', |
|
68 | - 'default' => 'quantity', |
|
69 | - 'enum' => array( 'quantity', 'hours', 'amount' ), |
|
70 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
71 | - ), |
|
72 | - |
|
73 | - 'status' => array( |
|
74 | - 'description' => __( 'Invoice status.', 'invoicing' ), |
|
75 | - 'type' => 'string', |
|
76 | - 'default' => 'wpi-pending', |
|
77 | - 'enum' => array_keys( wpinv_get_invoice_statuses( true ) ), |
|
78 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
79 | - ), |
|
80 | - |
|
81 | - 'status_nicename' => array( |
|
82 | - 'description' => __( 'A human readable name for the invoice status.', 'invoicing' ), |
|
83 | - 'type' => 'string', |
|
84 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
85 | - 'readonly' => true, |
|
86 | - ), |
|
87 | - |
|
88 | - 'currency' => array( |
|
89 | - 'description' => __( 'The invoice currency in ISO format.', 'invoicing' ), |
|
90 | - 'type' => 'string', |
|
91 | - 'default' => wpinv_get_currency(), |
|
92 | - 'enum' => array_keys( wpinv_get_currencies() ), |
|
93 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
94 | - ), |
|
95 | - |
|
96 | - 'date_created' => array( |
|
97 | - 'description' => __( "The date the invoice was created, in the site's timezone.", 'invoicing' ), |
|
98 | - 'type' => 'string', |
|
99 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
100 | - ), |
|
101 | - |
|
102 | - 'date_created_gmt' => array( |
|
103 | - 'description' => __( 'The GMT date the invoice was created.', 'invoicing' ), |
|
104 | - 'type' => 'string', |
|
105 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
106 | - 'readonly' => true, |
|
107 | - ), |
|
108 | - |
|
109 | - 'date_modified' => array( |
|
110 | - 'description' => __( "The date the invoice was last modified, in the site's timezone.", 'invoicing' ), |
|
111 | - 'type' => 'string', |
|
112 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
113 | - 'readonly' => true, |
|
114 | - ), |
|
115 | - |
|
116 | - 'date_modified_gmt' => array( |
|
117 | - 'description' => __( 'The GMT date the invoice was last modified.', 'invoicing' ), |
|
118 | - 'type' => 'string', |
|
119 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
120 | - 'readonly' => true, |
|
121 | - ), |
|
122 | - |
|
123 | - 'due_date' => array( |
|
124 | - 'description' => __( "The invoice's due date, in the site's timezone.", 'invoicing' ), |
|
125 | - 'type' => 'string', |
|
126 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
127 | - ), |
|
128 | - |
|
129 | - 'due_date_gmt' => array( |
|
130 | - 'description' => __( 'The GMT date the invoice is/was due.', 'invoicing' ), |
|
131 | - 'type' => 'string', |
|
132 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
133 | - 'readonly' => true, |
|
134 | - ), |
|
135 | - |
|
136 | - 'completed_date' => array( |
|
137 | - 'description' => __( "The date the invoice was paid, in the site's timezone.", 'invoicing' ), |
|
138 | - 'type' => 'string', |
|
139 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
140 | - 'readonly' => true, |
|
141 | - ), |
|
142 | - |
|
143 | - 'completed_date_gmt' => array( |
|
144 | - 'description' => __( 'The GMT date the invoice was paid.', 'invoicing' ), |
|
145 | - 'type' => 'string', |
|
146 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
147 | - 'readonly' => true, |
|
148 | - ), |
|
149 | - |
|
150 | - 'total_discount' => array( |
|
151 | - 'description' => __( 'Total discount amount for the invoice.', 'invoicing' ), |
|
152 | - 'type' => 'number', |
|
153 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
154 | - 'readonly' => true, |
|
155 | - ), |
|
156 | - |
|
157 | - 'total_tax' => array( |
|
158 | - 'description' => __( 'Total tax amount for the invoice.', 'invoicing' ), |
|
159 | - 'type' => 'number', |
|
160 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
161 | - 'readonly' => true, |
|
162 | - ), |
|
163 | - |
|
164 | - 'total_fees' => array( |
|
165 | - 'description' => __( 'Total fees amount for the invoice.', 'invoicing' ), |
|
166 | - 'type' => 'number', |
|
167 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
168 | - 'readonly' => true, |
|
169 | - ), |
|
170 | - |
|
171 | - 'subtotal' => array( |
|
172 | - 'description' => __( 'Invoice subtotal.', 'invoicing' ), |
|
173 | - 'type' => 'number', |
|
174 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
175 | - 'readonly' => true, |
|
176 | - ), |
|
177 | - |
|
178 | - 'total' => array( |
|
179 | - 'description' => __( 'Grand total.', 'invoicing' ), |
|
180 | - 'type' => 'number', |
|
181 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
182 | - 'readonly' => true, |
|
183 | - ), |
|
184 | - |
|
185 | - 'initial_total' => array( |
|
186 | - 'description' => __( 'Initial total (for recurring invoices).', 'invoicing' ), |
|
187 | - 'type' => 'number', |
|
188 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
189 | - 'readonly' => true, |
|
190 | - ), |
|
191 | - |
|
192 | - 'recurring_total' => array( |
|
193 | - 'description' => __( 'Recurring total (for recurring invoices).', 'invoicing' ), |
|
194 | - 'type' => 'number', |
|
195 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
196 | - 'readonly' => true, |
|
197 | - ), |
|
198 | - |
|
199 | - 'totals' => array( |
|
200 | - 'description' => __( 'Invoice totals.', 'invoicing' ), |
|
201 | - 'type' => 'object', |
|
202 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
203 | - 'readonly' => true, |
|
204 | - ), |
|
205 | - |
|
206 | - 'fees' => array( |
|
207 | - 'description' => __( 'Invoice fees (Name => properties).', 'invoicing' ), |
|
208 | - 'type' => 'object', |
|
209 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
210 | - 'items' => array( |
|
211 | - 'type' => 'object', |
|
212 | - 'required' => array( 'amount' ), |
|
213 | - 'properties' => array( |
|
214 | - 'amount' => array( |
|
215 | - 'description' => __( 'Fee amount.', 'invoicing' ), |
|
216 | - 'type' => 'string', |
|
217 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
218 | - ), |
|
219 | - 'recurring' => array( |
|
220 | - 'description' => __( 'Whether this is a recurring or one-time fee.', 'invoicing' ), |
|
221 | - 'type' => array( 'boolean', 'integer' ), |
|
222 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
223 | - ), |
|
224 | - ), |
|
225 | - ), |
|
226 | - ), |
|
227 | - |
|
228 | - 'discounts' => array( |
|
229 | - 'description' => __( 'Invoice discounts (Name => properties).', 'invoicing' ), |
|
230 | - 'type' => 'object', |
|
231 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
232 | - 'items' => array( |
|
233 | - 'type' => 'object', |
|
234 | - 'required' => array( 'amount' ), |
|
235 | - 'properties' => array( |
|
236 | - 'amount' => array( |
|
237 | - 'description' => __( 'Fee amount.', 'invoicing' ), |
|
238 | - 'type' => 'string', |
|
239 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
240 | - ), |
|
241 | - 'recurring' => array( |
|
242 | - 'description' => __( 'Whether this is a recurring or one-time discount.', 'invoicing' ), |
|
243 | - 'type' => array( 'boolean', 'integer' ), |
|
244 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
245 | - ), |
|
246 | - ), |
|
247 | - ), |
|
248 | - ), |
|
249 | - |
|
250 | - 'taxes' => array( |
|
251 | - 'description' => __( 'Invoice taxes (Name => properties).', 'invoicing' ), |
|
252 | - 'type' => 'object', |
|
253 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
254 | - 'items' => array( |
|
255 | - 'type' => 'object', |
|
256 | - 'required' => array( 'amount' ), |
|
257 | - 'properties' => array( |
|
258 | - 'amount' => array( |
|
259 | - 'description' => __( 'Fee amount.', 'invoicing' ), |
|
260 | - 'type' => 'string', |
|
261 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
262 | - ), |
|
263 | - 'recurring' => array( |
|
264 | - 'description' => __( 'Whether this is a recurring or one-time tax.', 'invoicing' ), |
|
265 | - 'type' => array( 'boolean', 'integer' ), |
|
266 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
267 | - ), |
|
268 | - ), |
|
269 | - ), |
|
270 | - ), |
|
271 | - |
|
272 | - 'items' => array( |
|
273 | - 'description' => __( 'Invoice items.', 'invoicing' ), |
|
274 | - 'type' => 'array', |
|
275 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
276 | - 'items' => array( |
|
277 | - 'type' => 'object', |
|
278 | - 'required' => array( 'item_id' ), |
|
279 | - 'properties' => array( |
|
280 | - 'item_id' => array( |
|
281 | - 'description' => __( 'Item ID.', 'invoicing' ), |
|
282 | - 'type' => 'integer', |
|
283 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
284 | - ), |
|
285 | - 'item_name' => array( |
|
286 | - 'description' => __( 'Item Name.', 'invoicing' ), |
|
287 | - 'type' => 'string', |
|
288 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
289 | - ), |
|
290 | - 'item_description' => array( |
|
291 | - 'description' => __( 'Item Description.', 'invoicing' ), |
|
292 | - 'type' => 'string', |
|
293 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
294 | - ), |
|
295 | - 'item_price' => array( |
|
296 | - 'description' => __( 'Item Price.', 'invoicing' ), |
|
297 | - 'type' => 'number', |
|
298 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
299 | - ), |
|
300 | - 'quantity' => array( |
|
301 | - 'description' => __( 'Item Quantity.', 'invoicing' ), |
|
302 | - 'type' => 'integer', |
|
303 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
304 | - ), |
|
305 | - 'subtotal' => array( |
|
306 | - 'description' => __( 'Item Subtotal.', 'invoicing' ), |
|
307 | - 'type' => 'number', |
|
308 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
309 | - 'readonly' => true, |
|
310 | - ), |
|
311 | - 'meta' => array( |
|
312 | - 'description' => __( 'Item Meta.', 'invoicing' ), |
|
313 | - 'type' => 'object', |
|
314 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
315 | - ), |
|
316 | - ), |
|
317 | - ), |
|
318 | - ), |
|
319 | - |
|
320 | - 'mode' => array( |
|
321 | - 'description' => __( 'The invoice transaction mode.', 'invoicing' ), |
|
322 | - 'type' => 'string', |
|
323 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
324 | - 'enum' => array( 'live', 'test' ), |
|
325 | - 'readonly' => true, |
|
326 | - ), |
|
16 | + 'id' => array( |
|
17 | + 'description' => __( 'Unique identifier for the invoice.', 'invoicing' ), |
|
18 | + 'type' => 'integer', |
|
19 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
20 | + 'readonly' => true, |
|
21 | + ), |
|
22 | + |
|
23 | + 'parent_id' => array( |
|
24 | + 'description' => __( 'Parent invoice ID.', 'invoicing' ), |
|
25 | + 'type' => 'integer', |
|
26 | + 'minimum' => 0, |
|
27 | + 'default' => 0, |
|
28 | + 'context' => array( 'view', 'edit' ), |
|
29 | + ), |
|
30 | + |
|
31 | + 'key' => array( |
|
32 | + 'description' => __( 'A unique key for the invoice.', 'invoicing' ), |
|
33 | + 'type' => 'string', |
|
34 | + 'context' => array( 'view', 'edit' ), |
|
35 | + 'readonly' => true, |
|
36 | + ), |
|
37 | + |
|
38 | + 'number' => array( |
|
39 | + 'description' => __( 'A unique number for the invoice.', 'invoicing' ), |
|
40 | + 'type' => 'string', |
|
41 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
42 | + ), |
|
43 | + |
|
44 | + 'type' => array( |
|
45 | + 'description' => __( 'Get the invoice type (e.g invoice, quote etc).', 'invoicing' ), |
|
46 | + 'type' => 'string', |
|
47 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
48 | + 'readonly' => true, |
|
49 | + ), |
|
50 | + |
|
51 | + 'post_type' => array( |
|
52 | + 'description' => __( 'Get the invoice post type (e.g wpi_invoice, wpi_quote etc).', 'invoicing' ), |
|
53 | + 'type' => 'string', |
|
54 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
55 | + 'readonly' => true, |
|
56 | + ), |
|
57 | + |
|
58 | + 'version' => array( |
|
59 | + 'description' => __( 'Version of GetPaid/Invoicing which last updated the invoice.', 'invoicing' ), |
|
60 | + 'type' => 'integer', |
|
61 | + 'context' => array( 'view', 'edit' ), |
|
62 | + 'readonly' => true, |
|
63 | + ), |
|
64 | + |
|
65 | + 'template' => array( |
|
66 | + 'description' => __( 'The invoice template.', 'invoicing' ), |
|
67 | + 'type' => 'string', |
|
68 | + 'default' => 'quantity', |
|
69 | + 'enum' => array( 'quantity', 'hours', 'amount' ), |
|
70 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
71 | + ), |
|
72 | + |
|
73 | + 'status' => array( |
|
74 | + 'description' => __( 'Invoice status.', 'invoicing' ), |
|
75 | + 'type' => 'string', |
|
76 | + 'default' => 'wpi-pending', |
|
77 | + 'enum' => array_keys( wpinv_get_invoice_statuses( true ) ), |
|
78 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
79 | + ), |
|
80 | + |
|
81 | + 'status_nicename' => array( |
|
82 | + 'description' => __( 'A human readable name for the invoice status.', 'invoicing' ), |
|
83 | + 'type' => 'string', |
|
84 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
85 | + 'readonly' => true, |
|
86 | + ), |
|
87 | + |
|
88 | + 'currency' => array( |
|
89 | + 'description' => __( 'The invoice currency in ISO format.', 'invoicing' ), |
|
90 | + 'type' => 'string', |
|
91 | + 'default' => wpinv_get_currency(), |
|
92 | + 'enum' => array_keys( wpinv_get_currencies() ), |
|
93 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
94 | + ), |
|
95 | + |
|
96 | + 'date_created' => array( |
|
97 | + 'description' => __( "The date the invoice was created, in the site's timezone.", 'invoicing' ), |
|
98 | + 'type' => 'string', |
|
99 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
100 | + ), |
|
101 | + |
|
102 | + 'date_created_gmt' => array( |
|
103 | + 'description' => __( 'The GMT date the invoice was created.', 'invoicing' ), |
|
104 | + 'type' => 'string', |
|
105 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
106 | + 'readonly' => true, |
|
107 | + ), |
|
108 | + |
|
109 | + 'date_modified' => array( |
|
110 | + 'description' => __( "The date the invoice was last modified, in the site's timezone.", 'invoicing' ), |
|
111 | + 'type' => 'string', |
|
112 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
113 | + 'readonly' => true, |
|
114 | + ), |
|
115 | + |
|
116 | + 'date_modified_gmt' => array( |
|
117 | + 'description' => __( 'The GMT date the invoice was last modified.', 'invoicing' ), |
|
118 | + 'type' => 'string', |
|
119 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
120 | + 'readonly' => true, |
|
121 | + ), |
|
122 | + |
|
123 | + 'due_date' => array( |
|
124 | + 'description' => __( "The invoice's due date, in the site's timezone.", 'invoicing' ), |
|
125 | + 'type' => 'string', |
|
126 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
127 | + ), |
|
128 | + |
|
129 | + 'due_date_gmt' => array( |
|
130 | + 'description' => __( 'The GMT date the invoice is/was due.', 'invoicing' ), |
|
131 | + 'type' => 'string', |
|
132 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
133 | + 'readonly' => true, |
|
134 | + ), |
|
135 | + |
|
136 | + 'completed_date' => array( |
|
137 | + 'description' => __( "The date the invoice was paid, in the site's timezone.", 'invoicing' ), |
|
138 | + 'type' => 'string', |
|
139 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
140 | + 'readonly' => true, |
|
141 | + ), |
|
142 | + |
|
143 | + 'completed_date_gmt' => array( |
|
144 | + 'description' => __( 'The GMT date the invoice was paid.', 'invoicing' ), |
|
145 | + 'type' => 'string', |
|
146 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
147 | + 'readonly' => true, |
|
148 | + ), |
|
149 | + |
|
150 | + 'total_discount' => array( |
|
151 | + 'description' => __( 'Total discount amount for the invoice.', 'invoicing' ), |
|
152 | + 'type' => 'number', |
|
153 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
154 | + 'readonly' => true, |
|
155 | + ), |
|
156 | + |
|
157 | + 'total_tax' => array( |
|
158 | + 'description' => __( 'Total tax amount for the invoice.', 'invoicing' ), |
|
159 | + 'type' => 'number', |
|
160 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
161 | + 'readonly' => true, |
|
162 | + ), |
|
163 | + |
|
164 | + 'total_fees' => array( |
|
165 | + 'description' => __( 'Total fees amount for the invoice.', 'invoicing' ), |
|
166 | + 'type' => 'number', |
|
167 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
168 | + 'readonly' => true, |
|
169 | + ), |
|
170 | + |
|
171 | + 'subtotal' => array( |
|
172 | + 'description' => __( 'Invoice subtotal.', 'invoicing' ), |
|
173 | + 'type' => 'number', |
|
174 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
175 | + 'readonly' => true, |
|
176 | + ), |
|
177 | + |
|
178 | + 'total' => array( |
|
179 | + 'description' => __( 'Grand total.', 'invoicing' ), |
|
180 | + 'type' => 'number', |
|
181 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
182 | + 'readonly' => true, |
|
183 | + ), |
|
184 | + |
|
185 | + 'initial_total' => array( |
|
186 | + 'description' => __( 'Initial total (for recurring invoices).', 'invoicing' ), |
|
187 | + 'type' => 'number', |
|
188 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
189 | + 'readonly' => true, |
|
190 | + ), |
|
191 | + |
|
192 | + 'recurring_total' => array( |
|
193 | + 'description' => __( 'Recurring total (for recurring invoices).', 'invoicing' ), |
|
194 | + 'type' => 'number', |
|
195 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
196 | + 'readonly' => true, |
|
197 | + ), |
|
198 | + |
|
199 | + 'totals' => array( |
|
200 | + 'description' => __( 'Invoice totals.', 'invoicing' ), |
|
201 | + 'type' => 'object', |
|
202 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
203 | + 'readonly' => true, |
|
204 | + ), |
|
205 | + |
|
206 | + 'fees' => array( |
|
207 | + 'description' => __( 'Invoice fees (Name => properties).', 'invoicing' ), |
|
208 | + 'type' => 'object', |
|
209 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
210 | + 'items' => array( |
|
211 | + 'type' => 'object', |
|
212 | + 'required' => array( 'amount' ), |
|
213 | + 'properties' => array( |
|
214 | + 'amount' => array( |
|
215 | + 'description' => __( 'Fee amount.', 'invoicing' ), |
|
216 | + 'type' => 'string', |
|
217 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
218 | + ), |
|
219 | + 'recurring' => array( |
|
220 | + 'description' => __( 'Whether this is a recurring or one-time fee.', 'invoicing' ), |
|
221 | + 'type' => array( 'boolean', 'integer' ), |
|
222 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
223 | + ), |
|
224 | + ), |
|
225 | + ), |
|
226 | + ), |
|
227 | + |
|
228 | + 'discounts' => array( |
|
229 | + 'description' => __( 'Invoice discounts (Name => properties).', 'invoicing' ), |
|
230 | + 'type' => 'object', |
|
231 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
232 | + 'items' => array( |
|
233 | + 'type' => 'object', |
|
234 | + 'required' => array( 'amount' ), |
|
235 | + 'properties' => array( |
|
236 | + 'amount' => array( |
|
237 | + 'description' => __( 'Fee amount.', 'invoicing' ), |
|
238 | + 'type' => 'string', |
|
239 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
240 | + ), |
|
241 | + 'recurring' => array( |
|
242 | + 'description' => __( 'Whether this is a recurring or one-time discount.', 'invoicing' ), |
|
243 | + 'type' => array( 'boolean', 'integer' ), |
|
244 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
245 | + ), |
|
246 | + ), |
|
247 | + ), |
|
248 | + ), |
|
249 | + |
|
250 | + 'taxes' => array( |
|
251 | + 'description' => __( 'Invoice taxes (Name => properties).', 'invoicing' ), |
|
252 | + 'type' => 'object', |
|
253 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
254 | + 'items' => array( |
|
255 | + 'type' => 'object', |
|
256 | + 'required' => array( 'amount' ), |
|
257 | + 'properties' => array( |
|
258 | + 'amount' => array( |
|
259 | + 'description' => __( 'Fee amount.', 'invoicing' ), |
|
260 | + 'type' => 'string', |
|
261 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
262 | + ), |
|
263 | + 'recurring' => array( |
|
264 | + 'description' => __( 'Whether this is a recurring or one-time tax.', 'invoicing' ), |
|
265 | + 'type' => array( 'boolean', 'integer' ), |
|
266 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
267 | + ), |
|
268 | + ), |
|
269 | + ), |
|
270 | + ), |
|
271 | + |
|
272 | + 'items' => array( |
|
273 | + 'description' => __( 'Invoice items.', 'invoicing' ), |
|
274 | + 'type' => 'array', |
|
275 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
276 | + 'items' => array( |
|
277 | + 'type' => 'object', |
|
278 | + 'required' => array( 'item_id' ), |
|
279 | + 'properties' => array( |
|
280 | + 'item_id' => array( |
|
281 | + 'description' => __( 'Item ID.', 'invoicing' ), |
|
282 | + 'type' => 'integer', |
|
283 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
284 | + ), |
|
285 | + 'item_name' => array( |
|
286 | + 'description' => __( 'Item Name.', 'invoicing' ), |
|
287 | + 'type' => 'string', |
|
288 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
289 | + ), |
|
290 | + 'item_description' => array( |
|
291 | + 'description' => __( 'Item Description.', 'invoicing' ), |
|
292 | + 'type' => 'string', |
|
293 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
294 | + ), |
|
295 | + 'item_price' => array( |
|
296 | + 'description' => __( 'Item Price.', 'invoicing' ), |
|
297 | + 'type' => 'number', |
|
298 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
299 | + ), |
|
300 | + 'quantity' => array( |
|
301 | + 'description' => __( 'Item Quantity.', 'invoicing' ), |
|
302 | + 'type' => 'integer', |
|
303 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
304 | + ), |
|
305 | + 'subtotal' => array( |
|
306 | + 'description' => __( 'Item Subtotal.', 'invoicing' ), |
|
307 | + 'type' => 'number', |
|
308 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
309 | + 'readonly' => true, |
|
310 | + ), |
|
311 | + 'meta' => array( |
|
312 | + 'description' => __( 'Item Meta.', 'invoicing' ), |
|
313 | + 'type' => 'object', |
|
314 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
315 | + ), |
|
316 | + ), |
|
317 | + ), |
|
318 | + ), |
|
319 | + |
|
320 | + 'mode' => array( |
|
321 | + 'description' => __( 'The invoice transaction mode.', 'invoicing' ), |
|
322 | + 'type' => 'string', |
|
323 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
324 | + 'enum' => array( 'live', 'test' ), |
|
325 | + 'readonly' => true, |
|
326 | + ), |
|
327 | 327 | |
328 | - 'discount_code' => array( |
|
329 | - 'description' => __( 'The discount code used on this invoice.', 'invoicing' ), |
|
330 | - 'type' => 'string', |
|
331 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
332 | - ), |
|
333 | - |
|
334 | - 'gateway' => array( |
|
335 | - 'description' => __( 'The gateway used to pay this invoice.', 'invoicing' ), |
|
336 | - 'type' => 'string', |
|
337 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
338 | - ), |
|
339 | - |
|
340 | - 'gateway_title' => array( |
|
341 | - 'description' => __( 'The title of the gateway used to pay this invoice.', 'invoicing' ), |
|
342 | - 'type' => 'string', |
|
343 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
344 | - 'readonly' => true, |
|
345 | - ), |
|
346 | - |
|
347 | - 'transaction_id' => array( |
|
348 | - 'description' => __( 'The transaction id for this invoice.', 'invoicing' ), |
|
349 | - 'type' => 'string', |
|
350 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
351 | - ), |
|
328 | + 'discount_code' => array( |
|
329 | + 'description' => __( 'The discount code used on this invoice.', 'invoicing' ), |
|
330 | + 'type' => 'string', |
|
331 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
332 | + ), |
|
333 | + |
|
334 | + 'gateway' => array( |
|
335 | + 'description' => __( 'The gateway used to pay this invoice.', 'invoicing' ), |
|
336 | + 'type' => 'string', |
|
337 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
338 | + ), |
|
339 | + |
|
340 | + 'gateway_title' => array( |
|
341 | + 'description' => __( 'The title of the gateway used to pay this invoice.', 'invoicing' ), |
|
342 | + 'type' => 'string', |
|
343 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
344 | + 'readonly' => true, |
|
345 | + ), |
|
346 | + |
|
347 | + 'transaction_id' => array( |
|
348 | + 'description' => __( 'The transaction id for this invoice.', 'invoicing' ), |
|
349 | + 'type' => 'string', |
|
350 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
351 | + ), |
|
352 | 352 | |
353 | - 'disable_taxes' => array( |
|
354 | - 'description' => __( 'Whether or not taxes should be disabled for this invoice.', 'invoicing' ), |
|
355 | - 'type' => 'boolean ', |
|
356 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
357 | - ), |
|
358 | - |
|
359 | - 'is_viewed' => array( |
|
360 | - 'description' => __( 'Whether or not this invoice has been viewed by the user.', 'invoicing' ), |
|
361 | - 'type' => 'boolean ', |
|
362 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
363 | - 'readonly' => true, |
|
364 | - ), |
|
365 | - |
|
366 | - 'email_cc' => array( |
|
367 | - 'description' => __( 'A comma separated list of other emails that should receive communications for this invoice.', 'invoicing' ), |
|
368 | - 'type' => 'string ', |
|
369 | - 'context' => array( 'view', 'edit' ), |
|
370 | - ), |
|
371 | - |
|
372 | - 'subscription_id' => array( |
|
373 | - 'description' => __( 'The ID of the subscription associated with this invoice.', 'invoicing' ), |
|
374 | - 'type' => 'string ', |
|
375 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
376 | - 'readonly' => true, |
|
377 | - ), |
|
378 | - |
|
379 | - 'subscription_name' => array( |
|
380 | - 'description' => __( 'The name of the subscription associated with this invoice.', 'invoicing' ), |
|
381 | - 'type' => 'string ', |
|
382 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
383 | - 'readonly' => true, |
|
384 | - ), |
|
385 | - |
|
386 | - 'subscription_name' => array( |
|
387 | - 'description' => __( 'The name of the subscription associated with this invoice.', 'invoicing' ), |
|
388 | - 'type' => 'string ', |
|
389 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
390 | - 'readonly' => true, |
|
391 | - ), |
|
392 | - |
|
393 | - 'is_parent' => array( |
|
394 | - 'description' => __( 'Whether or not this is a parent invoice.', 'invoicing' ), |
|
395 | - 'type' => 'boolean', |
|
396 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
397 | - 'readonly' => true, |
|
398 | - ), |
|
399 | - |
|
400 | - 'is_renewal' => array( |
|
401 | - 'description' => __( 'Whether or not this is a renewal invoice.', 'invoicing' ), |
|
402 | - 'type' => 'boolean', |
|
403 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
404 | - 'readonly' => true, |
|
405 | - ), |
|
406 | - |
|
407 | - 'is_recurring' => array( |
|
408 | - 'description' => __( 'Whether or not this is a recurring invoice.', 'invoicing' ), |
|
409 | - 'type' => 'boolean', |
|
410 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
411 | - 'readonly' => true, |
|
412 | - ), |
|
413 | - |
|
414 | - 'is_free' => array( |
|
415 | - 'description' => __( 'Whether or not this invoice is free.', 'invoicing' ), |
|
416 | - 'type' => 'boolean', |
|
417 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
418 | - 'readonly' => true, |
|
419 | - ), |
|
420 | - |
|
421 | - 'is_paid' => array( |
|
422 | - 'description' => __( 'Whether or not this invoice has been paid.', 'invoicing' ), |
|
423 | - 'type' => 'boolean', |
|
424 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
425 | - 'readonly' => true, |
|
426 | - ), |
|
427 | - |
|
428 | - 'needs_payment' => array( |
|
429 | - 'description' => __( 'Whether or not this invoice needs payment.', 'invoicing' ), |
|
430 | - 'type' => 'boolean', |
|
431 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
432 | - 'readonly' => true, |
|
433 | - ), |
|
434 | - |
|
435 | - 'is_refunded' => array( |
|
436 | - 'description' => __( 'Whether or not this invoice was refunded.', 'invoicing' ), |
|
437 | - 'type' => 'boolean', |
|
438 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
439 | - 'readonly' => true, |
|
440 | - ), |
|
441 | - |
|
442 | - 'is_due' => array( |
|
443 | - 'description' => __( 'Whether or not this invoice is due.', 'invoicing' ), |
|
444 | - 'type' => 'boolean', |
|
445 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
446 | - 'readonly' => true, |
|
447 | - ), |
|
448 | - |
|
449 | - 'is_held' => array( |
|
450 | - 'description' => __( 'Whether or not this invoice has been held for payment confirmation.', 'invoicing' ), |
|
451 | - 'type' => 'boolean', |
|
452 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
453 | - 'readonly' => true, |
|
454 | - ), |
|
455 | - |
|
456 | - 'is_draft' => array( |
|
457 | - 'description' => __( 'Whether or not this invoice is marked as draft (cannot be viewed on the frontend).', 'invoicing' ), |
|
458 | - 'type' => 'boolean', |
|
459 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
460 | - 'readonly' => true, |
|
461 | - ), |
|
462 | - |
|
463 | - 'path' => array( |
|
464 | - 'description' => __( 'The invoice path/slug/name.', 'invoicing' ), |
|
465 | - 'type' => 'string', |
|
466 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
467 | - 'readonly' => true, |
|
468 | - ), |
|
469 | - |
|
470 | - 'description' => array( |
|
471 | - 'description' => __( 'The invoice description.', 'invoicing' ), |
|
472 | - 'type' => 'string', |
|
473 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
474 | - ), |
|
475 | - |
|
476 | - 'payment_form' => array( |
|
477 | - 'description' => __( 'The id of the payment form used to pay for this invoice.', 'invoicing' ), |
|
478 | - 'type' => 'integer', |
|
479 | - 'context' => array( 'view', 'edit' ), |
|
480 | - 'readonly' => true, |
|
481 | - ), |
|
482 | - |
|
483 | - 'submission_id' => array( |
|
484 | - 'description' => __( 'A uniques ID of the submission details used to pay for this invoice.', 'invoicing' ), |
|
485 | - 'type' => 'string', |
|
486 | - 'context' => array( 'view', 'edit' ), |
|
487 | - 'readonly' => true, |
|
488 | - ), |
|
489 | - |
|
490 | - 'customer_id' => array( |
|
491 | - 'description' => __( 'The customer id.', 'invoicing' ), |
|
492 | - 'type' => 'integer', |
|
493 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
494 | - ), |
|
495 | - |
|
496 | - 'customer_ip' => array( |
|
497 | - 'description' => __( "The customer's ip address.", 'invoicing' ), |
|
498 | - 'type' => 'string', |
|
499 | - 'format' => 'ip', |
|
500 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
501 | - ), |
|
502 | - |
|
503 | - 'first_name' => array( |
|
504 | - 'description' => __( "The customer's first name.", 'invoicing' ), |
|
505 | - 'type' => 'string', |
|
506 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
507 | - ), |
|
508 | - |
|
509 | - 'last_name' => array( |
|
510 | - 'description' => __( "The customer's last name.", 'invoicing' ), |
|
511 | - 'type' => 'string', |
|
512 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
513 | - ), |
|
353 | + 'disable_taxes' => array( |
|
354 | + 'description' => __( 'Whether or not taxes should be disabled for this invoice.', 'invoicing' ), |
|
355 | + 'type' => 'boolean ', |
|
356 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
357 | + ), |
|
358 | + |
|
359 | + 'is_viewed' => array( |
|
360 | + 'description' => __( 'Whether or not this invoice has been viewed by the user.', 'invoicing' ), |
|
361 | + 'type' => 'boolean ', |
|
362 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
363 | + 'readonly' => true, |
|
364 | + ), |
|
365 | + |
|
366 | + 'email_cc' => array( |
|
367 | + 'description' => __( 'A comma separated list of other emails that should receive communications for this invoice.', 'invoicing' ), |
|
368 | + 'type' => 'string ', |
|
369 | + 'context' => array( 'view', 'edit' ), |
|
370 | + ), |
|
371 | + |
|
372 | + 'subscription_id' => array( |
|
373 | + 'description' => __( 'The ID of the subscription associated with this invoice.', 'invoicing' ), |
|
374 | + 'type' => 'string ', |
|
375 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
376 | + 'readonly' => true, |
|
377 | + ), |
|
378 | + |
|
379 | + 'subscription_name' => array( |
|
380 | + 'description' => __( 'The name of the subscription associated with this invoice.', 'invoicing' ), |
|
381 | + 'type' => 'string ', |
|
382 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
383 | + 'readonly' => true, |
|
384 | + ), |
|
385 | + |
|
386 | + 'subscription_name' => array( |
|
387 | + 'description' => __( 'The name of the subscription associated with this invoice.', 'invoicing' ), |
|
388 | + 'type' => 'string ', |
|
389 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
390 | + 'readonly' => true, |
|
391 | + ), |
|
392 | + |
|
393 | + 'is_parent' => array( |
|
394 | + 'description' => __( 'Whether or not this is a parent invoice.', 'invoicing' ), |
|
395 | + 'type' => 'boolean', |
|
396 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
397 | + 'readonly' => true, |
|
398 | + ), |
|
399 | + |
|
400 | + 'is_renewal' => array( |
|
401 | + 'description' => __( 'Whether or not this is a renewal invoice.', 'invoicing' ), |
|
402 | + 'type' => 'boolean', |
|
403 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
404 | + 'readonly' => true, |
|
405 | + ), |
|
406 | + |
|
407 | + 'is_recurring' => array( |
|
408 | + 'description' => __( 'Whether or not this is a recurring invoice.', 'invoicing' ), |
|
409 | + 'type' => 'boolean', |
|
410 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
411 | + 'readonly' => true, |
|
412 | + ), |
|
413 | + |
|
414 | + 'is_free' => array( |
|
415 | + 'description' => __( 'Whether or not this invoice is free.', 'invoicing' ), |
|
416 | + 'type' => 'boolean', |
|
417 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
418 | + 'readonly' => true, |
|
419 | + ), |
|
420 | + |
|
421 | + 'is_paid' => array( |
|
422 | + 'description' => __( 'Whether or not this invoice has been paid.', 'invoicing' ), |
|
423 | + 'type' => 'boolean', |
|
424 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
425 | + 'readonly' => true, |
|
426 | + ), |
|
427 | + |
|
428 | + 'needs_payment' => array( |
|
429 | + 'description' => __( 'Whether or not this invoice needs payment.', 'invoicing' ), |
|
430 | + 'type' => 'boolean', |
|
431 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
432 | + 'readonly' => true, |
|
433 | + ), |
|
434 | + |
|
435 | + 'is_refunded' => array( |
|
436 | + 'description' => __( 'Whether or not this invoice was refunded.', 'invoicing' ), |
|
437 | + 'type' => 'boolean', |
|
438 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
439 | + 'readonly' => true, |
|
440 | + ), |
|
441 | + |
|
442 | + 'is_due' => array( |
|
443 | + 'description' => __( 'Whether or not this invoice is due.', 'invoicing' ), |
|
444 | + 'type' => 'boolean', |
|
445 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
446 | + 'readonly' => true, |
|
447 | + ), |
|
448 | + |
|
449 | + 'is_held' => array( |
|
450 | + 'description' => __( 'Whether or not this invoice has been held for payment confirmation.', 'invoicing' ), |
|
451 | + 'type' => 'boolean', |
|
452 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
453 | + 'readonly' => true, |
|
454 | + ), |
|
455 | + |
|
456 | + 'is_draft' => array( |
|
457 | + 'description' => __( 'Whether or not this invoice is marked as draft (cannot be viewed on the frontend).', 'invoicing' ), |
|
458 | + 'type' => 'boolean', |
|
459 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
460 | + 'readonly' => true, |
|
461 | + ), |
|
462 | + |
|
463 | + 'path' => array( |
|
464 | + 'description' => __( 'The invoice path/slug/name.', 'invoicing' ), |
|
465 | + 'type' => 'string', |
|
466 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
467 | + 'readonly' => true, |
|
468 | + ), |
|
469 | + |
|
470 | + 'description' => array( |
|
471 | + 'description' => __( 'The invoice description.', 'invoicing' ), |
|
472 | + 'type' => 'string', |
|
473 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
474 | + ), |
|
475 | + |
|
476 | + 'payment_form' => array( |
|
477 | + 'description' => __( 'The id of the payment form used to pay for this invoice.', 'invoicing' ), |
|
478 | + 'type' => 'integer', |
|
479 | + 'context' => array( 'view', 'edit' ), |
|
480 | + 'readonly' => true, |
|
481 | + ), |
|
482 | + |
|
483 | + 'submission_id' => array( |
|
484 | + 'description' => __( 'A uniques ID of the submission details used to pay for this invoice.', 'invoicing' ), |
|
485 | + 'type' => 'string', |
|
486 | + 'context' => array( 'view', 'edit' ), |
|
487 | + 'readonly' => true, |
|
488 | + ), |
|
489 | + |
|
490 | + 'customer_id' => array( |
|
491 | + 'description' => __( 'The customer id.', 'invoicing' ), |
|
492 | + 'type' => 'integer', |
|
493 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
494 | + ), |
|
495 | + |
|
496 | + 'customer_ip' => array( |
|
497 | + 'description' => __( "The customer's ip address.", 'invoicing' ), |
|
498 | + 'type' => 'string', |
|
499 | + 'format' => 'ip', |
|
500 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
501 | + ), |
|
502 | + |
|
503 | + 'first_name' => array( |
|
504 | + 'description' => __( "The customer's first name.", 'invoicing' ), |
|
505 | + 'type' => 'string', |
|
506 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
507 | + ), |
|
508 | + |
|
509 | + 'last_name' => array( |
|
510 | + 'description' => __( "The customer's last name.", 'invoicing' ), |
|
511 | + 'type' => 'string', |
|
512 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
513 | + ), |
|
514 | 514 | |
515 | - 'full_name' => array( |
|
516 | - 'description' => __( "The customer's full name.", 'invoicing' ), |
|
517 | - 'type' => 'string', |
|
518 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
519 | - 'readonly' => true, |
|
520 | - ), |
|
521 | - |
|
522 | - 'phone_number' => array( |
|
523 | - 'description' => __( "The customer's phone number.", 'invoicing' ), |
|
524 | - 'type' => 'string', |
|
525 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
526 | - ), |
|
527 | - |
|
528 | - 'email_address' => array( |
|
529 | - 'description' => __( "The customer's email address.", 'invoicing' ), |
|
530 | - 'type' => 'string', |
|
531 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
532 | - 'readonly' => true, |
|
533 | - ), |
|
534 | - |
|
535 | - 'customer_country' => array( |
|
536 | - 'description' => __( "The customer's country.", 'invoicing' ), |
|
537 | - 'type' => 'string', |
|
538 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
539 | - 'default' => wpinv_get_default_country(), |
|
540 | - ), |
|
541 | - |
|
542 | - 'customer_state' => array( |
|
543 | - 'description' => __( "The customer's state.", 'invoicing' ), |
|
544 | - 'type' => 'string', |
|
545 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
546 | - ), |
|
547 | - |
|
548 | - 'customer_city' => array( |
|
549 | - 'description' => __( "The customer's city.", 'invoicing' ), |
|
550 | - 'type' => 'string', |
|
551 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
552 | - ), |
|
553 | - |
|
554 | - 'customer_zip' => array( |
|
555 | - 'description' => __( "The customer's zip/postal code.", 'invoicing' ), |
|
556 | - 'type' => 'string', |
|
557 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
558 | - ), |
|
559 | - |
|
560 | - 'customer_company' => array( |
|
561 | - 'description' => __( "The customer's company name.", 'invoicing' ), |
|
562 | - 'type' => 'string', |
|
563 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
564 | - ), |
|
565 | - |
|
566 | - 'vat_number' => array( |
|
567 | - 'description' => __( "The customer's VAT number.", 'invoicing' ), |
|
568 | - 'type' => 'string', |
|
569 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
570 | - ), |
|
571 | - |
|
572 | - 'vat_rate' => array( |
|
573 | - 'description' => __( "The customer's VAT rate.", 'invoicing' ), |
|
574 | - 'type' => 'number', |
|
575 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
576 | - 'readonly' => true, |
|
577 | - ), |
|
578 | - |
|
579 | - 'customer_address' => array( |
|
580 | - 'description' => __( "The customer's address.", 'invoicing' ), |
|
581 | - 'type' => 'string', |
|
582 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
583 | - ), |
|
584 | - |
|
585 | - 'address_confirmed' => array( |
|
586 | - 'description' => __( "Whether or not the customer's address is confirmed.", 'invoicing' ), |
|
587 | - 'type' => 'boolean', |
|
588 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
589 | - ), |
|
590 | - |
|
591 | - 'meta_data' => array( |
|
592 | - 'description' => __( 'Invoice meta data.', 'invoicing' ), |
|
593 | - 'type' => 'array', |
|
594 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
595 | - 'items' => array( |
|
596 | - 'type' => 'object', |
|
597 | - 'properties' => array( |
|
598 | - 'id' => array( |
|
599 | - 'description' => __( 'Meta ID.', 'invoicing' ), |
|
600 | - 'type' => 'string', |
|
601 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
602 | - ), |
|
603 | - 'key' => array( |
|
604 | - 'description' => __( 'Meta key.', 'invoicing' ), |
|
605 | - 'type' => 'string', |
|
606 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
607 | - ), |
|
608 | - 'value' => array( |
|
609 | - 'description' => __( 'Meta Value.', 'invoicing' ), |
|
610 | - 'type' => array( 'string', 'array', 'object', 'integer', 'null' ), |
|
611 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
612 | - ), |
|
613 | - ), |
|
614 | - ), |
|
615 | - ), |
|
616 | - |
|
617 | - 'view_url' => array( |
|
618 | - 'description' => __( 'URL to the invoice.', 'invoicing' ), |
|
619 | - 'type' => 'string', |
|
620 | - 'format' => 'uri', |
|
621 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
622 | - 'readonly' => true, |
|
623 | - ), |
|
624 | - |
|
625 | - 'checkout_payment_url' => array( |
|
626 | - 'description' => __( 'URL to the invoice checkout page.', 'invoicing' ), |
|
627 | - 'type' => 'string', |
|
628 | - 'format' => 'uri', |
|
629 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
630 | - 'readonly' => true, |
|
631 | - ), |
|
632 | - |
|
633 | - 'receipt_url' => array( |
|
634 | - 'description' => __( 'URL to the invoice receipt page.', 'invoicing' ), |
|
635 | - 'type' => 'string', |
|
636 | - 'format' => 'uri', |
|
637 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
638 | - 'readonly' => true, |
|
639 | - ), |
|
515 | + 'full_name' => array( |
|
516 | + 'description' => __( "The customer's full name.", 'invoicing' ), |
|
517 | + 'type' => 'string', |
|
518 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
519 | + 'readonly' => true, |
|
520 | + ), |
|
521 | + |
|
522 | + 'phone_number' => array( |
|
523 | + 'description' => __( "The customer's phone number.", 'invoicing' ), |
|
524 | + 'type' => 'string', |
|
525 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
526 | + ), |
|
527 | + |
|
528 | + 'email_address' => array( |
|
529 | + 'description' => __( "The customer's email address.", 'invoicing' ), |
|
530 | + 'type' => 'string', |
|
531 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
532 | + 'readonly' => true, |
|
533 | + ), |
|
534 | + |
|
535 | + 'customer_country' => array( |
|
536 | + 'description' => __( "The customer's country.", 'invoicing' ), |
|
537 | + 'type' => 'string', |
|
538 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
539 | + 'default' => wpinv_get_default_country(), |
|
540 | + ), |
|
541 | + |
|
542 | + 'customer_state' => array( |
|
543 | + 'description' => __( "The customer's state.", 'invoicing' ), |
|
544 | + 'type' => 'string', |
|
545 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
546 | + ), |
|
547 | + |
|
548 | + 'customer_city' => array( |
|
549 | + 'description' => __( "The customer's city.", 'invoicing' ), |
|
550 | + 'type' => 'string', |
|
551 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
552 | + ), |
|
553 | + |
|
554 | + 'customer_zip' => array( |
|
555 | + 'description' => __( "The customer's zip/postal code.", 'invoicing' ), |
|
556 | + 'type' => 'string', |
|
557 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
558 | + ), |
|
559 | + |
|
560 | + 'customer_company' => array( |
|
561 | + 'description' => __( "The customer's company name.", 'invoicing' ), |
|
562 | + 'type' => 'string', |
|
563 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
564 | + ), |
|
565 | + |
|
566 | + 'vat_number' => array( |
|
567 | + 'description' => __( "The customer's VAT number.", 'invoicing' ), |
|
568 | + 'type' => 'string', |
|
569 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
570 | + ), |
|
571 | + |
|
572 | + 'vat_rate' => array( |
|
573 | + 'description' => __( "The customer's VAT rate.", 'invoicing' ), |
|
574 | + 'type' => 'number', |
|
575 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
576 | + 'readonly' => true, |
|
577 | + ), |
|
578 | + |
|
579 | + 'customer_address' => array( |
|
580 | + 'description' => __( "The customer's address.", 'invoicing' ), |
|
581 | + 'type' => 'string', |
|
582 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
583 | + ), |
|
584 | + |
|
585 | + 'address_confirmed' => array( |
|
586 | + 'description' => __( "Whether or not the customer's address is confirmed.", 'invoicing' ), |
|
587 | + 'type' => 'boolean', |
|
588 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
589 | + ), |
|
590 | + |
|
591 | + 'meta_data' => array( |
|
592 | + 'description' => __( 'Invoice meta data.', 'invoicing' ), |
|
593 | + 'type' => 'array', |
|
594 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
595 | + 'items' => array( |
|
596 | + 'type' => 'object', |
|
597 | + 'properties' => array( |
|
598 | + 'id' => array( |
|
599 | + 'description' => __( 'Meta ID.', 'invoicing' ), |
|
600 | + 'type' => 'string', |
|
601 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
602 | + ), |
|
603 | + 'key' => array( |
|
604 | + 'description' => __( 'Meta key.', 'invoicing' ), |
|
605 | + 'type' => 'string', |
|
606 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
607 | + ), |
|
608 | + 'value' => array( |
|
609 | + 'description' => __( 'Meta Value.', 'invoicing' ), |
|
610 | + 'type' => array( 'string', 'array', 'object', 'integer', 'null' ), |
|
611 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
612 | + ), |
|
613 | + ), |
|
614 | + ), |
|
615 | + ), |
|
616 | + |
|
617 | + 'view_url' => array( |
|
618 | + 'description' => __( 'URL to the invoice.', 'invoicing' ), |
|
619 | + 'type' => 'string', |
|
620 | + 'format' => 'uri', |
|
621 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
622 | + 'readonly' => true, |
|
623 | + ), |
|
624 | + |
|
625 | + 'checkout_payment_url' => array( |
|
626 | + 'description' => __( 'URL to the invoice checkout page.', 'invoicing' ), |
|
627 | + 'type' => 'string', |
|
628 | + 'format' => 'uri', |
|
629 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
630 | + 'readonly' => true, |
|
631 | + ), |
|
632 | + |
|
633 | + 'receipt_url' => array( |
|
634 | + 'description' => __( 'URL to the invoice receipt page.', 'invoicing' ), |
|
635 | + 'type' => 'string', |
|
636 | + 'format' => 'uri', |
|
637 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
638 | + 'readonly' => true, |
|
639 | + ), |
|
640 | 640 | |
641 | 641 | ); |
@@ -9,632 +9,632 @@ |
||
9 | 9 | * @version 1.0.19 |
10 | 10 | */ |
11 | 11 | |
12 | -defined( 'ABSPATH' ) || exit; |
|
12 | +defined('ABSPATH') || exit; |
|
13 | 13 | |
14 | 14 | return array( |
15 | 15 | |
16 | 16 | 'id' => array( |
17 | - 'description' => __( 'Unique identifier for the invoice.', 'invoicing' ), |
|
17 | + 'description' => __('Unique identifier for the invoice.', 'invoicing'), |
|
18 | 18 | 'type' => 'integer', |
19 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
19 | + 'context' => array('view', 'edit', 'embed'), |
|
20 | 20 | 'readonly' => true, |
21 | 21 | ), |
22 | 22 | |
23 | 23 | 'parent_id' => array( |
24 | - 'description' => __( 'Parent invoice ID.', 'invoicing' ), |
|
24 | + 'description' => __('Parent invoice ID.', 'invoicing'), |
|
25 | 25 | 'type' => 'integer', |
26 | 26 | 'minimum' => 0, |
27 | 27 | 'default' => 0, |
28 | - 'context' => array( 'view', 'edit' ), |
|
28 | + 'context' => array('view', 'edit'), |
|
29 | 29 | ), |
30 | 30 | |
31 | 31 | 'key' => array( |
32 | - 'description' => __( 'A unique key for the invoice.', 'invoicing' ), |
|
32 | + 'description' => __('A unique key for the invoice.', 'invoicing'), |
|
33 | 33 | 'type' => 'string', |
34 | - 'context' => array( 'view', 'edit' ), |
|
34 | + 'context' => array('view', 'edit'), |
|
35 | 35 | 'readonly' => true, |
36 | 36 | ), |
37 | 37 | |
38 | 38 | 'number' => array( |
39 | - 'description' => __( 'A unique number for the invoice.', 'invoicing' ), |
|
39 | + 'description' => __('A unique number for the invoice.', 'invoicing'), |
|
40 | 40 | 'type' => 'string', |
41 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
41 | + 'context' => array('view', 'edit', 'embed'), |
|
42 | 42 | ), |
43 | 43 | |
44 | 44 | 'type' => array( |
45 | - 'description' => __( 'Get the invoice type (e.g invoice, quote etc).', 'invoicing' ), |
|
45 | + 'description' => __('Get the invoice type (e.g invoice, quote etc).', 'invoicing'), |
|
46 | 46 | 'type' => 'string', |
47 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
47 | + 'context' => array('view', 'edit', 'embed'), |
|
48 | 48 | 'readonly' => true, |
49 | 49 | ), |
50 | 50 | |
51 | 51 | 'post_type' => array( |
52 | - 'description' => __( 'Get the invoice post type (e.g wpi_invoice, wpi_quote etc).', 'invoicing' ), |
|
52 | + 'description' => __('Get the invoice post type (e.g wpi_invoice, wpi_quote etc).', 'invoicing'), |
|
53 | 53 | 'type' => 'string', |
54 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
54 | + 'context' => array('view', 'edit', 'embed'), |
|
55 | 55 | 'readonly' => true, |
56 | 56 | ), |
57 | 57 | |
58 | 58 | 'version' => array( |
59 | - 'description' => __( 'Version of GetPaid/Invoicing which last updated the invoice.', 'invoicing' ), |
|
59 | + 'description' => __('Version of GetPaid/Invoicing which last updated the invoice.', 'invoicing'), |
|
60 | 60 | 'type' => 'integer', |
61 | - 'context' => array( 'view', 'edit' ), |
|
61 | + 'context' => array('view', 'edit'), |
|
62 | 62 | 'readonly' => true, |
63 | 63 | ), |
64 | 64 | |
65 | 65 | 'template' => array( |
66 | - 'description' => __( 'The invoice template.', 'invoicing' ), |
|
66 | + 'description' => __('The invoice template.', 'invoicing'), |
|
67 | 67 | 'type' => 'string', |
68 | 68 | 'default' => 'quantity', |
69 | - 'enum' => array( 'quantity', 'hours', 'amount' ), |
|
70 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
69 | + 'enum' => array('quantity', 'hours', 'amount'), |
|
70 | + 'context' => array('view', 'edit', 'embed'), |
|
71 | 71 | ), |
72 | 72 | |
73 | 73 | 'status' => array( |
74 | - 'description' => __( 'Invoice status.', 'invoicing' ), |
|
74 | + 'description' => __('Invoice status.', 'invoicing'), |
|
75 | 75 | 'type' => 'string', |
76 | 76 | 'default' => 'wpi-pending', |
77 | - 'enum' => array_keys( wpinv_get_invoice_statuses( true ) ), |
|
78 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
77 | + 'enum' => array_keys(wpinv_get_invoice_statuses(true)), |
|
78 | + 'context' => array('view', 'edit', 'embed'), |
|
79 | 79 | ), |
80 | 80 | |
81 | 81 | 'status_nicename' => array( |
82 | - 'description' => __( 'A human readable name for the invoice status.', 'invoicing' ), |
|
82 | + 'description' => __('A human readable name for the invoice status.', 'invoicing'), |
|
83 | 83 | 'type' => 'string', |
84 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
84 | + 'context' => array('view', 'edit', 'embed'), |
|
85 | 85 | 'readonly' => true, |
86 | 86 | ), |
87 | 87 | |
88 | 88 | 'currency' => array( |
89 | - 'description' => __( 'The invoice currency in ISO format.', 'invoicing' ), |
|
89 | + 'description' => __('The invoice currency in ISO format.', 'invoicing'), |
|
90 | 90 | 'type' => 'string', |
91 | 91 | 'default' => wpinv_get_currency(), |
92 | - 'enum' => array_keys( wpinv_get_currencies() ), |
|
93 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
92 | + 'enum' => array_keys(wpinv_get_currencies()), |
|
93 | + 'context' => array('view', 'edit', 'embed'), |
|
94 | 94 | ), |
95 | 95 | |
96 | 96 | 'date_created' => array( |
97 | - 'description' => __( "The date the invoice was created, in the site's timezone.", 'invoicing' ), |
|
97 | + 'description' => __("The date the invoice was created, in the site's timezone.", 'invoicing'), |
|
98 | 98 | 'type' => 'string', |
99 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
99 | + 'context' => array('view', 'edit', 'embed'), |
|
100 | 100 | ), |
101 | 101 | |
102 | 102 | 'date_created_gmt' => array( |
103 | - 'description' => __( 'The GMT date the invoice was created.', 'invoicing' ), |
|
103 | + 'description' => __('The GMT date the invoice was created.', 'invoicing'), |
|
104 | 104 | 'type' => 'string', |
105 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
105 | + 'context' => array('view', 'edit', 'embed'), |
|
106 | 106 | 'readonly' => true, |
107 | 107 | ), |
108 | 108 | |
109 | 109 | 'date_modified' => array( |
110 | - 'description' => __( "The date the invoice was last modified, in the site's timezone.", 'invoicing' ), |
|
110 | + 'description' => __("The date the invoice was last modified, in the site's timezone.", 'invoicing'), |
|
111 | 111 | 'type' => 'string', |
112 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
112 | + 'context' => array('view', 'edit', 'embed'), |
|
113 | 113 | 'readonly' => true, |
114 | 114 | ), |
115 | 115 | |
116 | 116 | 'date_modified_gmt' => array( |
117 | - 'description' => __( 'The GMT date the invoice was last modified.', 'invoicing' ), |
|
117 | + 'description' => __('The GMT date the invoice was last modified.', 'invoicing'), |
|
118 | 118 | 'type' => 'string', |
119 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
119 | + 'context' => array('view', 'edit', 'embed'), |
|
120 | 120 | 'readonly' => true, |
121 | 121 | ), |
122 | 122 | |
123 | 123 | 'due_date' => array( |
124 | - 'description' => __( "The invoice's due date, in the site's timezone.", 'invoicing' ), |
|
124 | + 'description' => __("The invoice's due date, in the site's timezone.", 'invoicing'), |
|
125 | 125 | 'type' => 'string', |
126 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
126 | + 'context' => array('view', 'edit', 'embed'), |
|
127 | 127 | ), |
128 | 128 | |
129 | 129 | 'due_date_gmt' => array( |
130 | - 'description' => __( 'The GMT date the invoice is/was due.', 'invoicing' ), |
|
130 | + 'description' => __('The GMT date the invoice is/was due.', 'invoicing'), |
|
131 | 131 | 'type' => 'string', |
132 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
132 | + 'context' => array('view', 'edit', 'embed'), |
|
133 | 133 | 'readonly' => true, |
134 | 134 | ), |
135 | 135 | |
136 | 136 | 'completed_date' => array( |
137 | - 'description' => __( "The date the invoice was paid, in the site's timezone.", 'invoicing' ), |
|
137 | + 'description' => __("The date the invoice was paid, in the site's timezone.", 'invoicing'), |
|
138 | 138 | 'type' => 'string', |
139 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
139 | + 'context' => array('view', 'edit', 'embed'), |
|
140 | 140 | 'readonly' => true, |
141 | 141 | ), |
142 | 142 | |
143 | 143 | 'completed_date_gmt' => array( |
144 | - 'description' => __( 'The GMT date the invoice was paid.', 'invoicing' ), |
|
144 | + 'description' => __('The GMT date the invoice was paid.', 'invoicing'), |
|
145 | 145 | 'type' => 'string', |
146 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
146 | + 'context' => array('view', 'edit', 'embed'), |
|
147 | 147 | 'readonly' => true, |
148 | 148 | ), |
149 | 149 | |
150 | 150 | 'total_discount' => array( |
151 | - 'description' => __( 'Total discount amount for the invoice.', 'invoicing' ), |
|
151 | + 'description' => __('Total discount amount for the invoice.', 'invoicing'), |
|
152 | 152 | 'type' => 'number', |
153 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
153 | + 'context' => array('view', 'edit', 'embed'), |
|
154 | 154 | 'readonly' => true, |
155 | 155 | ), |
156 | 156 | |
157 | 157 | 'total_tax' => array( |
158 | - 'description' => __( 'Total tax amount for the invoice.', 'invoicing' ), |
|
158 | + 'description' => __('Total tax amount for the invoice.', 'invoicing'), |
|
159 | 159 | 'type' => 'number', |
160 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
160 | + 'context' => array('view', 'edit', 'embed'), |
|
161 | 161 | 'readonly' => true, |
162 | 162 | ), |
163 | 163 | |
164 | 164 | 'total_fees' => array( |
165 | - 'description' => __( 'Total fees amount for the invoice.', 'invoicing' ), |
|
165 | + 'description' => __('Total fees amount for the invoice.', 'invoicing'), |
|
166 | 166 | 'type' => 'number', |
167 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
167 | + 'context' => array('view', 'edit', 'embed'), |
|
168 | 168 | 'readonly' => true, |
169 | 169 | ), |
170 | 170 | |
171 | 171 | 'subtotal' => array( |
172 | - 'description' => __( 'Invoice subtotal.', 'invoicing' ), |
|
172 | + 'description' => __('Invoice subtotal.', 'invoicing'), |
|
173 | 173 | 'type' => 'number', |
174 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
174 | + 'context' => array('view', 'edit', 'embed'), |
|
175 | 175 | 'readonly' => true, |
176 | 176 | ), |
177 | 177 | |
178 | 178 | 'total' => array( |
179 | - 'description' => __( 'Grand total.', 'invoicing' ), |
|
179 | + 'description' => __('Grand total.', 'invoicing'), |
|
180 | 180 | 'type' => 'number', |
181 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
181 | + 'context' => array('view', 'edit', 'embed'), |
|
182 | 182 | 'readonly' => true, |
183 | 183 | ), |
184 | 184 | |
185 | 185 | 'initial_total' => array( |
186 | - 'description' => __( 'Initial total (for recurring invoices).', 'invoicing' ), |
|
186 | + 'description' => __('Initial total (for recurring invoices).', 'invoicing'), |
|
187 | 187 | 'type' => 'number', |
188 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
188 | + 'context' => array('view', 'edit', 'embed'), |
|
189 | 189 | 'readonly' => true, |
190 | 190 | ), |
191 | 191 | |
192 | 192 | 'recurring_total' => array( |
193 | - 'description' => __( 'Recurring total (for recurring invoices).', 'invoicing' ), |
|
193 | + 'description' => __('Recurring total (for recurring invoices).', 'invoicing'), |
|
194 | 194 | 'type' => 'number', |
195 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
195 | + 'context' => array('view', 'edit', 'embed'), |
|
196 | 196 | 'readonly' => true, |
197 | 197 | ), |
198 | 198 | |
199 | 199 | 'totals' => array( |
200 | - 'description' => __( 'Invoice totals.', 'invoicing' ), |
|
200 | + 'description' => __('Invoice totals.', 'invoicing'), |
|
201 | 201 | 'type' => 'object', |
202 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
202 | + 'context' => array('view', 'edit', 'embed'), |
|
203 | 203 | 'readonly' => true, |
204 | 204 | ), |
205 | 205 | |
206 | 206 | 'fees' => array( |
207 | - 'description' => __( 'Invoice fees (Name => properties).', 'invoicing' ), |
|
207 | + 'description' => __('Invoice fees (Name => properties).', 'invoicing'), |
|
208 | 208 | 'type' => 'object', |
209 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
209 | + 'context' => array('view', 'edit', 'embed'), |
|
210 | 210 | 'items' => array( |
211 | 211 | 'type' => 'object', |
212 | - 'required' => array( 'amount' ), |
|
212 | + 'required' => array('amount'), |
|
213 | 213 | 'properties' => array( |
214 | 214 | 'amount' => array( |
215 | - 'description' => __( 'Fee amount.', 'invoicing' ), |
|
215 | + 'description' => __('Fee amount.', 'invoicing'), |
|
216 | 216 | 'type' => 'string', |
217 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
217 | + 'context' => array('view', 'edit', 'embed'), |
|
218 | 218 | ), |
219 | 219 | 'recurring' => array( |
220 | - 'description' => __( 'Whether this is a recurring or one-time fee.', 'invoicing' ), |
|
221 | - 'type' => array( 'boolean', 'integer' ), |
|
222 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
220 | + 'description' => __('Whether this is a recurring or one-time fee.', 'invoicing'), |
|
221 | + 'type' => array('boolean', 'integer'), |
|
222 | + 'context' => array('view', 'edit', 'embed'), |
|
223 | 223 | ), |
224 | 224 | ), |
225 | 225 | ), |
226 | 226 | ), |
227 | 227 | |
228 | 228 | 'discounts' => array( |
229 | - 'description' => __( 'Invoice discounts (Name => properties).', 'invoicing' ), |
|
229 | + 'description' => __('Invoice discounts (Name => properties).', 'invoicing'), |
|
230 | 230 | 'type' => 'object', |
231 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
231 | + 'context' => array('view', 'edit', 'embed'), |
|
232 | 232 | 'items' => array( |
233 | 233 | 'type' => 'object', |
234 | - 'required' => array( 'amount' ), |
|
234 | + 'required' => array('amount'), |
|
235 | 235 | 'properties' => array( |
236 | 236 | 'amount' => array( |
237 | - 'description' => __( 'Fee amount.', 'invoicing' ), |
|
237 | + 'description' => __('Fee amount.', 'invoicing'), |
|
238 | 238 | 'type' => 'string', |
239 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
239 | + 'context' => array('view', 'edit', 'embed'), |
|
240 | 240 | ), |
241 | 241 | 'recurring' => array( |
242 | - 'description' => __( 'Whether this is a recurring or one-time discount.', 'invoicing' ), |
|
243 | - 'type' => array( 'boolean', 'integer' ), |
|
244 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
242 | + 'description' => __('Whether this is a recurring or one-time discount.', 'invoicing'), |
|
243 | + 'type' => array('boolean', 'integer'), |
|
244 | + 'context' => array('view', 'edit', 'embed'), |
|
245 | 245 | ), |
246 | 246 | ), |
247 | 247 | ), |
248 | 248 | ), |
249 | 249 | |
250 | 250 | 'taxes' => array( |
251 | - 'description' => __( 'Invoice taxes (Name => properties).', 'invoicing' ), |
|
251 | + 'description' => __('Invoice taxes (Name => properties).', 'invoicing'), |
|
252 | 252 | 'type' => 'object', |
253 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
253 | + 'context' => array('view', 'edit', 'embed'), |
|
254 | 254 | 'items' => array( |
255 | 255 | 'type' => 'object', |
256 | - 'required' => array( 'amount' ), |
|
256 | + 'required' => array('amount'), |
|
257 | 257 | 'properties' => array( |
258 | 258 | 'amount' => array( |
259 | - 'description' => __( 'Fee amount.', 'invoicing' ), |
|
259 | + 'description' => __('Fee amount.', 'invoicing'), |
|
260 | 260 | 'type' => 'string', |
261 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
261 | + 'context' => array('view', 'edit', 'embed'), |
|
262 | 262 | ), |
263 | 263 | 'recurring' => array( |
264 | - 'description' => __( 'Whether this is a recurring or one-time tax.', 'invoicing' ), |
|
265 | - 'type' => array( 'boolean', 'integer' ), |
|
266 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
264 | + 'description' => __('Whether this is a recurring or one-time tax.', 'invoicing'), |
|
265 | + 'type' => array('boolean', 'integer'), |
|
266 | + 'context' => array('view', 'edit', 'embed'), |
|
267 | 267 | ), |
268 | 268 | ), |
269 | 269 | ), |
270 | 270 | ), |
271 | 271 | |
272 | 272 | 'items' => array( |
273 | - 'description' => __( 'Invoice items.', 'invoicing' ), |
|
273 | + 'description' => __('Invoice items.', 'invoicing'), |
|
274 | 274 | 'type' => 'array', |
275 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
275 | + 'context' => array('view', 'edit', 'embed'), |
|
276 | 276 | 'items' => array( |
277 | 277 | 'type' => 'object', |
278 | - 'required' => array( 'item_id' ), |
|
278 | + 'required' => array('item_id'), |
|
279 | 279 | 'properties' => array( |
280 | 280 | 'item_id' => array( |
281 | - 'description' => __( 'Item ID.', 'invoicing' ), |
|
281 | + 'description' => __('Item ID.', 'invoicing'), |
|
282 | 282 | 'type' => 'integer', |
283 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
283 | + 'context' => array('view', 'edit', 'embed'), |
|
284 | 284 | ), |
285 | 285 | 'item_name' => array( |
286 | - 'description' => __( 'Item Name.', 'invoicing' ), |
|
286 | + 'description' => __('Item Name.', 'invoicing'), |
|
287 | 287 | 'type' => 'string', |
288 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
288 | + 'context' => array('view', 'edit', 'embed'), |
|
289 | 289 | ), |
290 | 290 | 'item_description' => array( |
291 | - 'description' => __( 'Item Description.', 'invoicing' ), |
|
291 | + 'description' => __('Item Description.', 'invoicing'), |
|
292 | 292 | 'type' => 'string', |
293 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
293 | + 'context' => array('view', 'edit', 'embed'), |
|
294 | 294 | ), |
295 | 295 | 'item_price' => array( |
296 | - 'description' => __( 'Item Price.', 'invoicing' ), |
|
296 | + 'description' => __('Item Price.', 'invoicing'), |
|
297 | 297 | 'type' => 'number', |
298 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
298 | + 'context' => array('view', 'edit', 'embed'), |
|
299 | 299 | ), |
300 | 300 | 'quantity' => array( |
301 | - 'description' => __( 'Item Quantity.', 'invoicing' ), |
|
301 | + 'description' => __('Item Quantity.', 'invoicing'), |
|
302 | 302 | 'type' => 'integer', |
303 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
303 | + 'context' => array('view', 'edit', 'embed'), |
|
304 | 304 | ), |
305 | 305 | 'subtotal' => array( |
306 | - 'description' => __( 'Item Subtotal.', 'invoicing' ), |
|
306 | + 'description' => __('Item Subtotal.', 'invoicing'), |
|
307 | 307 | 'type' => 'number', |
308 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
308 | + 'context' => array('view', 'edit', 'embed'), |
|
309 | 309 | 'readonly' => true, |
310 | 310 | ), |
311 | 311 | 'meta' => array( |
312 | - 'description' => __( 'Item Meta.', 'invoicing' ), |
|
312 | + 'description' => __('Item Meta.', 'invoicing'), |
|
313 | 313 | 'type' => 'object', |
314 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
314 | + 'context' => array('view', 'edit', 'embed'), |
|
315 | 315 | ), |
316 | 316 | ), |
317 | 317 | ), |
318 | 318 | ), |
319 | 319 | |
320 | 320 | 'mode' => array( |
321 | - 'description' => __( 'The invoice transaction mode.', 'invoicing' ), |
|
321 | + 'description' => __('The invoice transaction mode.', 'invoicing'), |
|
322 | 322 | 'type' => 'string', |
323 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
324 | - 'enum' => array( 'live', 'test' ), |
|
323 | + 'context' => array('view', 'edit', 'embed'), |
|
324 | + 'enum' => array('live', 'test'), |
|
325 | 325 | 'readonly' => true, |
326 | 326 | ), |
327 | 327 | |
328 | 328 | 'discount_code' => array( |
329 | - 'description' => __( 'The discount code used on this invoice.', 'invoicing' ), |
|
329 | + 'description' => __('The discount code used on this invoice.', 'invoicing'), |
|
330 | 330 | 'type' => 'string', |
331 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
331 | + 'context' => array('view', 'edit', 'embed'), |
|
332 | 332 | ), |
333 | 333 | |
334 | 334 | 'gateway' => array( |
335 | - 'description' => __( 'The gateway used to pay this invoice.', 'invoicing' ), |
|
335 | + 'description' => __('The gateway used to pay this invoice.', 'invoicing'), |
|
336 | 336 | 'type' => 'string', |
337 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
337 | + 'context' => array('view', 'edit', 'embed'), |
|
338 | 338 | ), |
339 | 339 | |
340 | 340 | 'gateway_title' => array( |
341 | - 'description' => __( 'The title of the gateway used to pay this invoice.', 'invoicing' ), |
|
341 | + 'description' => __('The title of the gateway used to pay this invoice.', 'invoicing'), |
|
342 | 342 | 'type' => 'string', |
343 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
343 | + 'context' => array('view', 'edit', 'embed'), |
|
344 | 344 | 'readonly' => true, |
345 | 345 | ), |
346 | 346 | |
347 | 347 | 'transaction_id' => array( |
348 | - 'description' => __( 'The transaction id for this invoice.', 'invoicing' ), |
|
348 | + 'description' => __('The transaction id for this invoice.', 'invoicing'), |
|
349 | 349 | 'type' => 'string', |
350 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
350 | + 'context' => array('view', 'edit', 'embed'), |
|
351 | 351 | ), |
352 | 352 | |
353 | 353 | 'disable_taxes' => array( |
354 | - 'description' => __( 'Whether or not taxes should be disabled for this invoice.', 'invoicing' ), |
|
354 | + 'description' => __('Whether or not taxes should be disabled for this invoice.', 'invoicing'), |
|
355 | 355 | 'type' => 'boolean ', |
356 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
356 | + 'context' => array('view', 'edit', 'embed'), |
|
357 | 357 | ), |
358 | 358 | |
359 | 359 | 'is_viewed' => array( |
360 | - 'description' => __( 'Whether or not this invoice has been viewed by the user.', 'invoicing' ), |
|
360 | + 'description' => __('Whether or not this invoice has been viewed by the user.', 'invoicing'), |
|
361 | 361 | 'type' => 'boolean ', |
362 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
362 | + 'context' => array('view', 'edit', 'embed'), |
|
363 | 363 | 'readonly' => true, |
364 | 364 | ), |
365 | 365 | |
366 | 366 | 'email_cc' => array( |
367 | - 'description' => __( 'A comma separated list of other emails that should receive communications for this invoice.', 'invoicing' ), |
|
367 | + 'description' => __('A comma separated list of other emails that should receive communications for this invoice.', 'invoicing'), |
|
368 | 368 | 'type' => 'string ', |
369 | - 'context' => array( 'view', 'edit' ), |
|
369 | + 'context' => array('view', 'edit'), |
|
370 | 370 | ), |
371 | 371 | |
372 | 372 | 'subscription_id' => array( |
373 | - 'description' => __( 'The ID of the subscription associated with this invoice.', 'invoicing' ), |
|
373 | + 'description' => __('The ID of the subscription associated with this invoice.', 'invoicing'), |
|
374 | 374 | 'type' => 'string ', |
375 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
375 | + 'context' => array('view', 'edit', 'embed'), |
|
376 | 376 | 'readonly' => true, |
377 | 377 | ), |
378 | 378 | |
379 | 379 | 'subscription_name' => array( |
380 | - 'description' => __( 'The name of the subscription associated with this invoice.', 'invoicing' ), |
|
380 | + 'description' => __('The name of the subscription associated with this invoice.', 'invoicing'), |
|
381 | 381 | 'type' => 'string ', |
382 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
382 | + 'context' => array('view', 'edit', 'embed'), |
|
383 | 383 | 'readonly' => true, |
384 | 384 | ), |
385 | 385 | |
386 | 386 | 'subscription_name' => array( |
387 | - 'description' => __( 'The name of the subscription associated with this invoice.', 'invoicing' ), |
|
387 | + 'description' => __('The name of the subscription associated with this invoice.', 'invoicing'), |
|
388 | 388 | 'type' => 'string ', |
389 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
389 | + 'context' => array('view', 'edit', 'embed'), |
|
390 | 390 | 'readonly' => true, |
391 | 391 | ), |
392 | 392 | |
393 | 393 | 'is_parent' => array( |
394 | - 'description' => __( 'Whether or not this is a parent invoice.', 'invoicing' ), |
|
394 | + 'description' => __('Whether or not this is a parent invoice.', 'invoicing'), |
|
395 | 395 | 'type' => 'boolean', |
396 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
396 | + 'context' => array('view', 'edit', 'embed'), |
|
397 | 397 | 'readonly' => true, |
398 | 398 | ), |
399 | 399 | |
400 | 400 | 'is_renewal' => array( |
401 | - 'description' => __( 'Whether or not this is a renewal invoice.', 'invoicing' ), |
|
401 | + 'description' => __('Whether or not this is a renewal invoice.', 'invoicing'), |
|
402 | 402 | 'type' => 'boolean', |
403 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
403 | + 'context' => array('view', 'edit', 'embed'), |
|
404 | 404 | 'readonly' => true, |
405 | 405 | ), |
406 | 406 | |
407 | 407 | 'is_recurring' => array( |
408 | - 'description' => __( 'Whether or not this is a recurring invoice.', 'invoicing' ), |
|
408 | + 'description' => __('Whether or not this is a recurring invoice.', 'invoicing'), |
|
409 | 409 | 'type' => 'boolean', |
410 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
410 | + 'context' => array('view', 'edit', 'embed'), |
|
411 | 411 | 'readonly' => true, |
412 | 412 | ), |
413 | 413 | |
414 | 414 | 'is_free' => array( |
415 | - 'description' => __( 'Whether or not this invoice is free.', 'invoicing' ), |
|
415 | + 'description' => __('Whether or not this invoice is free.', 'invoicing'), |
|
416 | 416 | 'type' => 'boolean', |
417 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
417 | + 'context' => array('view', 'edit', 'embed'), |
|
418 | 418 | 'readonly' => true, |
419 | 419 | ), |
420 | 420 | |
421 | 421 | 'is_paid' => array( |
422 | - 'description' => __( 'Whether or not this invoice has been paid.', 'invoicing' ), |
|
422 | + 'description' => __('Whether or not this invoice has been paid.', 'invoicing'), |
|
423 | 423 | 'type' => 'boolean', |
424 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
424 | + 'context' => array('view', 'edit', 'embed'), |
|
425 | 425 | 'readonly' => true, |
426 | 426 | ), |
427 | 427 | |
428 | 428 | 'needs_payment' => array( |
429 | - 'description' => __( 'Whether or not this invoice needs payment.', 'invoicing' ), |
|
429 | + 'description' => __('Whether or not this invoice needs payment.', 'invoicing'), |
|
430 | 430 | 'type' => 'boolean', |
431 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
431 | + 'context' => array('view', 'edit', 'embed'), |
|
432 | 432 | 'readonly' => true, |
433 | 433 | ), |
434 | 434 | |
435 | 435 | 'is_refunded' => array( |
436 | - 'description' => __( 'Whether or not this invoice was refunded.', 'invoicing' ), |
|
436 | + 'description' => __('Whether or not this invoice was refunded.', 'invoicing'), |
|
437 | 437 | 'type' => 'boolean', |
438 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
438 | + 'context' => array('view', 'edit', 'embed'), |
|
439 | 439 | 'readonly' => true, |
440 | 440 | ), |
441 | 441 | |
442 | 442 | 'is_due' => array( |
443 | - 'description' => __( 'Whether or not this invoice is due.', 'invoicing' ), |
|
443 | + 'description' => __('Whether or not this invoice is due.', 'invoicing'), |
|
444 | 444 | 'type' => 'boolean', |
445 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
445 | + 'context' => array('view', 'edit', 'embed'), |
|
446 | 446 | 'readonly' => true, |
447 | 447 | ), |
448 | 448 | |
449 | 449 | 'is_held' => array( |
450 | - 'description' => __( 'Whether or not this invoice has been held for payment confirmation.', 'invoicing' ), |
|
450 | + 'description' => __('Whether or not this invoice has been held for payment confirmation.', 'invoicing'), |
|
451 | 451 | 'type' => 'boolean', |
452 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
452 | + 'context' => array('view', 'edit', 'embed'), |
|
453 | 453 | 'readonly' => true, |
454 | 454 | ), |
455 | 455 | |
456 | 456 | 'is_draft' => array( |
457 | - 'description' => __( 'Whether or not this invoice is marked as draft (cannot be viewed on the frontend).', 'invoicing' ), |
|
457 | + 'description' => __('Whether or not this invoice is marked as draft (cannot be viewed on the frontend).', 'invoicing'), |
|
458 | 458 | 'type' => 'boolean', |
459 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
459 | + 'context' => array('view', 'edit', 'embed'), |
|
460 | 460 | 'readonly' => true, |
461 | 461 | ), |
462 | 462 | |
463 | 463 | 'path' => array( |
464 | - 'description' => __( 'The invoice path/slug/name.', 'invoicing' ), |
|
464 | + 'description' => __('The invoice path/slug/name.', 'invoicing'), |
|
465 | 465 | 'type' => 'string', |
466 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
466 | + 'context' => array('view', 'edit', 'embed'), |
|
467 | 467 | 'readonly' => true, |
468 | 468 | ), |
469 | 469 | |
470 | 470 | 'description' => array( |
471 | - 'description' => __( 'The invoice description.', 'invoicing' ), |
|
471 | + 'description' => __('The invoice description.', 'invoicing'), |
|
472 | 472 | 'type' => 'string', |
473 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
473 | + 'context' => array('view', 'edit', 'embed'), |
|
474 | 474 | ), |
475 | 475 | |
476 | 476 | 'payment_form' => array( |
477 | - 'description' => __( 'The id of the payment form used to pay for this invoice.', 'invoicing' ), |
|
477 | + 'description' => __('The id of the payment form used to pay for this invoice.', 'invoicing'), |
|
478 | 478 | 'type' => 'integer', |
479 | - 'context' => array( 'view', 'edit' ), |
|
479 | + 'context' => array('view', 'edit'), |
|
480 | 480 | 'readonly' => true, |
481 | 481 | ), |
482 | 482 | |
483 | 483 | 'submission_id' => array( |
484 | - 'description' => __( 'A uniques ID of the submission details used to pay for this invoice.', 'invoicing' ), |
|
484 | + 'description' => __('A uniques ID of the submission details used to pay for this invoice.', 'invoicing'), |
|
485 | 485 | 'type' => 'string', |
486 | - 'context' => array( 'view', 'edit' ), |
|
486 | + 'context' => array('view', 'edit'), |
|
487 | 487 | 'readonly' => true, |
488 | 488 | ), |
489 | 489 | |
490 | 490 | 'customer_id' => array( |
491 | - 'description' => __( 'The customer id.', 'invoicing' ), |
|
491 | + 'description' => __('The customer id.', 'invoicing'), |
|
492 | 492 | 'type' => 'integer', |
493 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
493 | + 'context' => array('view', 'edit', 'embed'), |
|
494 | 494 | ), |
495 | 495 | |
496 | 496 | 'customer_ip' => array( |
497 | - 'description' => __( "The customer's ip address.", 'invoicing' ), |
|
497 | + 'description' => __("The customer's ip address.", 'invoicing'), |
|
498 | 498 | 'type' => 'string', |
499 | 499 | 'format' => 'ip', |
500 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
500 | + 'context' => array('view', 'edit', 'embed'), |
|
501 | 501 | ), |
502 | 502 | |
503 | 503 | 'first_name' => array( |
504 | - 'description' => __( "The customer's first name.", 'invoicing' ), |
|
504 | + 'description' => __("The customer's first name.", 'invoicing'), |
|
505 | 505 | 'type' => 'string', |
506 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
506 | + 'context' => array('view', 'edit', 'embed'), |
|
507 | 507 | ), |
508 | 508 | |
509 | 509 | 'last_name' => array( |
510 | - 'description' => __( "The customer's last name.", 'invoicing' ), |
|
510 | + 'description' => __("The customer's last name.", 'invoicing'), |
|
511 | 511 | 'type' => 'string', |
512 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
512 | + 'context' => array('view', 'edit', 'embed'), |
|
513 | 513 | ), |
514 | 514 | |
515 | 515 | 'full_name' => array( |
516 | - 'description' => __( "The customer's full name.", 'invoicing' ), |
|
516 | + 'description' => __("The customer's full name.", 'invoicing'), |
|
517 | 517 | 'type' => 'string', |
518 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
518 | + 'context' => array('view', 'edit', 'embed'), |
|
519 | 519 | 'readonly' => true, |
520 | 520 | ), |
521 | 521 | |
522 | 522 | 'phone_number' => array( |
523 | - 'description' => __( "The customer's phone number.", 'invoicing' ), |
|
523 | + 'description' => __("The customer's phone number.", 'invoicing'), |
|
524 | 524 | 'type' => 'string', |
525 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
525 | + 'context' => array('view', 'edit', 'embed'), |
|
526 | 526 | ), |
527 | 527 | |
528 | 528 | 'email_address' => array( |
529 | - 'description' => __( "The customer's email address.", 'invoicing' ), |
|
529 | + 'description' => __("The customer's email address.", 'invoicing'), |
|
530 | 530 | 'type' => 'string', |
531 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
531 | + 'context' => array('view', 'edit', 'embed'), |
|
532 | 532 | 'readonly' => true, |
533 | 533 | ), |
534 | 534 | |
535 | 535 | 'customer_country' => array( |
536 | - 'description' => __( "The customer's country.", 'invoicing' ), |
|
536 | + 'description' => __("The customer's country.", 'invoicing'), |
|
537 | 537 | 'type' => 'string', |
538 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
538 | + 'context' => array('view', 'edit', 'embed'), |
|
539 | 539 | 'default' => wpinv_get_default_country(), |
540 | 540 | ), |
541 | 541 | |
542 | 542 | 'customer_state' => array( |
543 | - 'description' => __( "The customer's state.", 'invoicing' ), |
|
543 | + 'description' => __("The customer's state.", 'invoicing'), |
|
544 | 544 | 'type' => 'string', |
545 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
545 | + 'context' => array('view', 'edit', 'embed'), |
|
546 | 546 | ), |
547 | 547 | |
548 | 548 | 'customer_city' => array( |
549 | - 'description' => __( "The customer's city.", 'invoicing' ), |
|
549 | + 'description' => __("The customer's city.", 'invoicing'), |
|
550 | 550 | 'type' => 'string', |
551 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
551 | + 'context' => array('view', 'edit', 'embed'), |
|
552 | 552 | ), |
553 | 553 | |
554 | 554 | 'customer_zip' => array( |
555 | - 'description' => __( "The customer's zip/postal code.", 'invoicing' ), |
|
555 | + 'description' => __("The customer's zip/postal code.", 'invoicing'), |
|
556 | 556 | 'type' => 'string', |
557 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
557 | + 'context' => array('view', 'edit', 'embed'), |
|
558 | 558 | ), |
559 | 559 | |
560 | 560 | 'customer_company' => array( |
561 | - 'description' => __( "The customer's company name.", 'invoicing' ), |
|
561 | + 'description' => __("The customer's company name.", 'invoicing'), |
|
562 | 562 | 'type' => 'string', |
563 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
563 | + 'context' => array('view', 'edit', 'embed'), |
|
564 | 564 | ), |
565 | 565 | |
566 | 566 | 'vat_number' => array( |
567 | - 'description' => __( "The customer's VAT number.", 'invoicing' ), |
|
567 | + 'description' => __("The customer's VAT number.", 'invoicing'), |
|
568 | 568 | 'type' => 'string', |
569 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
569 | + 'context' => array('view', 'edit', 'embed'), |
|
570 | 570 | ), |
571 | 571 | |
572 | 572 | 'vat_rate' => array( |
573 | - 'description' => __( "The customer's VAT rate.", 'invoicing' ), |
|
573 | + 'description' => __("The customer's VAT rate.", 'invoicing'), |
|
574 | 574 | 'type' => 'number', |
575 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
575 | + 'context' => array('view', 'edit', 'embed'), |
|
576 | 576 | 'readonly' => true, |
577 | 577 | ), |
578 | 578 | |
579 | 579 | 'customer_address' => array( |
580 | - 'description' => __( "The customer's address.", 'invoicing' ), |
|
580 | + 'description' => __("The customer's address.", 'invoicing'), |
|
581 | 581 | 'type' => 'string', |
582 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
582 | + 'context' => array('view', 'edit', 'embed'), |
|
583 | 583 | ), |
584 | 584 | |
585 | 585 | 'address_confirmed' => array( |
586 | - 'description' => __( "Whether or not the customer's address is confirmed.", 'invoicing' ), |
|
586 | + 'description' => __("Whether or not the customer's address is confirmed.", 'invoicing'), |
|
587 | 587 | 'type' => 'boolean', |
588 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
588 | + 'context' => array('view', 'edit', 'embed'), |
|
589 | 589 | ), |
590 | 590 | |
591 | 591 | 'meta_data' => array( |
592 | - 'description' => __( 'Invoice meta data.', 'invoicing' ), |
|
592 | + 'description' => __('Invoice meta data.', 'invoicing'), |
|
593 | 593 | 'type' => 'array', |
594 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
594 | + 'context' => array('view', 'edit', 'embed'), |
|
595 | 595 | 'items' => array( |
596 | 596 | 'type' => 'object', |
597 | 597 | 'properties' => array( |
598 | 598 | 'id' => array( |
599 | - 'description' => __( 'Meta ID.', 'invoicing' ), |
|
599 | + 'description' => __('Meta ID.', 'invoicing'), |
|
600 | 600 | 'type' => 'string', |
601 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
601 | + 'context' => array('view', 'edit', 'embed'), |
|
602 | 602 | ), |
603 | 603 | 'key' => array( |
604 | - 'description' => __( 'Meta key.', 'invoicing' ), |
|
604 | + 'description' => __('Meta key.', 'invoicing'), |
|
605 | 605 | 'type' => 'string', |
606 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
606 | + 'context' => array('view', 'edit', 'embed'), |
|
607 | 607 | ), |
608 | 608 | 'value' => array( |
609 | - 'description' => __( 'Meta Value.', 'invoicing' ), |
|
610 | - 'type' => array( 'string', 'array', 'object', 'integer', 'null' ), |
|
611 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
609 | + 'description' => __('Meta Value.', 'invoicing'), |
|
610 | + 'type' => array('string', 'array', 'object', 'integer', 'null'), |
|
611 | + 'context' => array('view', 'edit', 'embed'), |
|
612 | 612 | ), |
613 | 613 | ), |
614 | 614 | ), |
615 | 615 | ), |
616 | 616 | |
617 | 617 | 'view_url' => array( |
618 | - 'description' => __( 'URL to the invoice.', 'invoicing' ), |
|
618 | + 'description' => __('URL to the invoice.', 'invoicing'), |
|
619 | 619 | 'type' => 'string', |
620 | 620 | 'format' => 'uri', |
621 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
621 | + 'context' => array('view', 'edit', 'embed'), |
|
622 | 622 | 'readonly' => true, |
623 | 623 | ), |
624 | 624 | |
625 | 625 | 'checkout_payment_url' => array( |
626 | - 'description' => __( 'URL to the invoice checkout page.', 'invoicing' ), |
|
626 | + 'description' => __('URL to the invoice checkout page.', 'invoicing'), |
|
627 | 627 | 'type' => 'string', |
628 | 628 | 'format' => 'uri', |
629 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
629 | + 'context' => array('view', 'edit', 'embed'), |
|
630 | 630 | 'readonly' => true, |
631 | 631 | ), |
632 | 632 | |
633 | 633 | 'receipt_url' => array( |
634 | - 'description' => __( 'URL to the invoice receipt page.', 'invoicing' ), |
|
634 | + 'description' => __('URL to the invoice receipt page.', 'invoicing'), |
|
635 | 635 | 'type' => 'string', |
636 | 636 | 'format' => 'uri', |
637 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
637 | + 'context' => array('view', 'edit', 'embed'), |
|
638 | 638 | 'readonly' => true, |
639 | 639 | ), |
640 | 640 |
@@ -11,166 +11,166 @@ |
||
11 | 11 | defined( 'ABSPATH' ) || exit; |
12 | 12 | |
13 | 13 | return array( |
14 | - 'AED' => 'د.إ', |
|
15 | - 'AFN' => '؋', |
|
16 | - 'ALL' => 'L', |
|
17 | - 'AMD' => 'AMD', |
|
18 | - 'ANG' => 'ƒ', |
|
19 | - 'AOA' => 'Kz', |
|
20 | - 'ARS' => '$', |
|
21 | - 'AUD' => '$', |
|
22 | - 'AWG' => 'ƒ', |
|
23 | - 'AZN' => 'AZN', |
|
24 | - 'BAM' => 'KM', |
|
25 | - 'BBD' => '$', |
|
26 | - 'BDT' => '৳', |
|
27 | - 'BGN' => 'лв.', |
|
28 | - 'BHD' => '.د.ب', |
|
29 | - 'BIF' => 'Fr', |
|
30 | - 'BMD' => '$', |
|
31 | - 'BND' => '$', |
|
32 | - 'BOB' => 'Bs.', |
|
33 | - 'BRL' => 'R$', |
|
34 | - 'BSD' => '$', |
|
35 | - 'BTC' => '฿', |
|
36 | - 'BTN' => 'Nu.', |
|
37 | - 'BWP' => 'P', |
|
38 | - 'BYN' => 'Br', |
|
39 | - 'BZD' => '$', |
|
40 | - 'CAD' => '$', |
|
41 | - 'CDF' => 'Fr', |
|
42 | - 'CHF' => 'CHF', |
|
43 | - 'CLP' => '$', |
|
44 | - 'CNY' => '¥', |
|
45 | - 'COP' => '$', |
|
46 | - 'CRC' => '₡', |
|
47 | - 'CUC' => '$', |
|
48 | - 'CUP' => '$', |
|
49 | - 'CVE' => '$', |
|
50 | - 'CZK' => 'Kč', |
|
51 | - 'DJF' => 'Fr', |
|
52 | - 'DKK' => 'DKK', |
|
53 | - 'DOP' => 'RD$', |
|
54 | - 'DZD' => 'د.ج', |
|
55 | - 'EGP' => 'EGP', |
|
56 | - 'ERN' => 'Nfk', |
|
57 | - 'ETB' => 'Br', |
|
58 | - 'EUR' => '€', |
|
59 | - 'FJD' => '$', |
|
60 | - 'FKP' => '£', |
|
61 | - 'GBP' => '£', |
|
62 | - 'GEL' => 'ლ', |
|
63 | - 'GGP' => '£', |
|
64 | - 'GHS' => '₵', |
|
65 | - 'GIP' => '£', |
|
66 | - 'GMD' => 'D', |
|
67 | - 'GNF' => 'Fr', |
|
68 | - 'GTQ' => 'Q', |
|
69 | - 'GYD' => '$', |
|
70 | - 'HKD' => '$', |
|
71 | - 'HNL' => 'L', |
|
72 | - 'HRK' => 'Kn', |
|
73 | - 'HTG' => 'G', |
|
74 | - 'HUF' => 'Ft', |
|
75 | - 'IDR' => 'Rp', |
|
76 | - 'ILS' => '₪', |
|
77 | - 'IMP' => '£', |
|
78 | - 'INR' => '₹', |
|
79 | - 'IQD' => 'ع.د', |
|
80 | - 'IRR' => '﷼', |
|
81 | - 'IRT' => 'تومان', |
|
82 | - 'ISK' => 'kr.', |
|
83 | - 'JEP' => '£', |
|
84 | - 'JMD' => '$', |
|
85 | - 'JOD' => 'د.ا', |
|
86 | - 'JPY' => '¥', |
|
87 | - 'KES' => 'KSh', |
|
88 | - 'KGS' => 'сом', |
|
89 | - 'KHR' => '៛', |
|
90 | - 'KMF' => 'Fr', |
|
91 | - 'KPW' => '₩', |
|
92 | - 'KRW' => '₩', |
|
93 | - 'KWD' => 'د.ك', |
|
94 | - 'KYD' => '$', |
|
95 | - 'KZT' => 'KZT', |
|
96 | - 'LAK' => '₭', |
|
97 | - 'LBP' => 'ل.ل', |
|
98 | - 'LKR' => 'රු', |
|
99 | - 'LRD' => '$', |
|
100 | - 'LSL' => 'L', |
|
101 | - 'LYD' => 'ل.د', |
|
102 | - 'MAD' => 'د.م.', |
|
103 | - 'MDL' => 'MDL', |
|
104 | - 'MGA' => 'Ar', |
|
105 | - 'MKD' => 'ден', |
|
106 | - 'MMK' => 'Ks', |
|
107 | - 'MNT' => '₮', |
|
108 | - 'MOP' => 'P', |
|
109 | - 'MRO' => 'UM', |
|
110 | - 'MUR' => '₨', |
|
111 | - 'MVR' => '.ރ', |
|
112 | - 'MWK' => 'MK', |
|
113 | - 'MXN' => '$', |
|
114 | - 'MYR' => 'RM', |
|
115 | - 'MZN' => 'MT', |
|
116 | - 'NAD' => '$', |
|
117 | - 'NGN' => '₦', |
|
118 | - 'NIO' => 'C$', |
|
119 | - 'NOK' => 'kr', |
|
120 | - 'NPR' => '₨', |
|
121 | - 'NZD' => '$', |
|
122 | - 'OMR' => 'ر.ع.', |
|
123 | - 'PAB' => 'B/.', |
|
124 | - 'PEN' => 'S/.', |
|
125 | - 'PGK' => 'K', |
|
126 | - 'PHP' => '₱', |
|
127 | - 'PKR' => '₨', |
|
128 | - 'PLN' => 'zł', |
|
129 | - 'PRB' => 'р.', |
|
130 | - 'PYG' => '₲', |
|
131 | - 'QAR' => 'ر.ق', |
|
132 | - 'RMB' => '¥', |
|
133 | - 'RON' => 'lei', |
|
134 | - 'RSD' => 'дин.', |
|
135 | - 'RUB' => '₽', |
|
136 | - 'RWF' => 'Fr', |
|
137 | - 'SAR' => 'ر.س', |
|
138 | - 'SBD' => '$', |
|
139 | - 'SCR' => '₨', |
|
140 | - 'SDG' => 'ج.س.', |
|
141 | - 'SEK' => 'kr', |
|
142 | - 'SGD' => '$', |
|
143 | - 'SHP' => '£', |
|
144 | - 'SLL' => 'Le', |
|
145 | - 'SOS' => 'Sh', |
|
146 | - 'SRD' => '$', |
|
147 | - 'SSP' => '£', |
|
148 | - 'STD' => 'Db', |
|
149 | - 'SYP' => 'ل.س', |
|
150 | - 'SZL' => 'L', |
|
151 | - 'THB' => '฿', |
|
152 | - 'TJS' => 'ЅМ', |
|
153 | - 'TMT' => 'm', |
|
154 | - 'TND' => 'د.ت', |
|
155 | - 'TOP' => 'T$', |
|
156 | - 'TRY' => '₺', |
|
157 | - 'TTD' => '$', |
|
158 | - 'TWD' => 'NT$', |
|
159 | - 'TZS' => 'Sh', |
|
160 | - 'UAH' => '₴', |
|
161 | - 'UGX' => 'UGX', |
|
162 | - 'USD' => '$', |
|
163 | - 'UYU' => '$', |
|
164 | - 'UZS' => 'UZS', |
|
165 | - 'VEF' => 'Bs.', |
|
166 | - 'VND' => '₫', |
|
167 | - 'VUV' => 'Vt', |
|
168 | - 'WST' => 'T', |
|
169 | - 'XAF' => 'Fr', |
|
170 | - 'XCD' => '$', |
|
171 | - 'XOF' => 'Fr', |
|
172 | - 'XPF' => 'Fr', |
|
173 | - 'YER' => '﷼', |
|
174 | - 'ZAR' => 'R', |
|
175 | - 'ZMW' => 'ZK', |
|
14 | + 'AED' => 'د.إ', |
|
15 | + 'AFN' => '؋', |
|
16 | + 'ALL' => 'L', |
|
17 | + 'AMD' => 'AMD', |
|
18 | + 'ANG' => 'ƒ', |
|
19 | + 'AOA' => 'Kz', |
|
20 | + 'ARS' => '$', |
|
21 | + 'AUD' => '$', |
|
22 | + 'AWG' => 'ƒ', |
|
23 | + 'AZN' => 'AZN', |
|
24 | + 'BAM' => 'KM', |
|
25 | + 'BBD' => '$', |
|
26 | + 'BDT' => '৳', |
|
27 | + 'BGN' => 'лв.', |
|
28 | + 'BHD' => '.د.ب', |
|
29 | + 'BIF' => 'Fr', |
|
30 | + 'BMD' => '$', |
|
31 | + 'BND' => '$', |
|
32 | + 'BOB' => 'Bs.', |
|
33 | + 'BRL' => 'R$', |
|
34 | + 'BSD' => '$', |
|
35 | + 'BTC' => '฿', |
|
36 | + 'BTN' => 'Nu.', |
|
37 | + 'BWP' => 'P', |
|
38 | + 'BYN' => 'Br', |
|
39 | + 'BZD' => '$', |
|
40 | + 'CAD' => '$', |
|
41 | + 'CDF' => 'Fr', |
|
42 | + 'CHF' => 'CHF', |
|
43 | + 'CLP' => '$', |
|
44 | + 'CNY' => '¥', |
|
45 | + 'COP' => '$', |
|
46 | + 'CRC' => '₡', |
|
47 | + 'CUC' => '$', |
|
48 | + 'CUP' => '$', |
|
49 | + 'CVE' => '$', |
|
50 | + 'CZK' => 'Kč', |
|
51 | + 'DJF' => 'Fr', |
|
52 | + 'DKK' => 'DKK', |
|
53 | + 'DOP' => 'RD$', |
|
54 | + 'DZD' => 'د.ج', |
|
55 | + 'EGP' => 'EGP', |
|
56 | + 'ERN' => 'Nfk', |
|
57 | + 'ETB' => 'Br', |
|
58 | + 'EUR' => '€', |
|
59 | + 'FJD' => '$', |
|
60 | + 'FKP' => '£', |
|
61 | + 'GBP' => '£', |
|
62 | + 'GEL' => 'ლ', |
|
63 | + 'GGP' => '£', |
|
64 | + 'GHS' => '₵', |
|
65 | + 'GIP' => '£', |
|
66 | + 'GMD' => 'D', |
|
67 | + 'GNF' => 'Fr', |
|
68 | + 'GTQ' => 'Q', |
|
69 | + 'GYD' => '$', |
|
70 | + 'HKD' => '$', |
|
71 | + 'HNL' => 'L', |
|
72 | + 'HRK' => 'Kn', |
|
73 | + 'HTG' => 'G', |
|
74 | + 'HUF' => 'Ft', |
|
75 | + 'IDR' => 'Rp', |
|
76 | + 'ILS' => '₪', |
|
77 | + 'IMP' => '£', |
|
78 | + 'INR' => '₹', |
|
79 | + 'IQD' => 'ع.د', |
|
80 | + 'IRR' => '﷼', |
|
81 | + 'IRT' => 'تومان', |
|
82 | + 'ISK' => 'kr.', |
|
83 | + 'JEP' => '£', |
|
84 | + 'JMD' => '$', |
|
85 | + 'JOD' => 'د.ا', |
|
86 | + 'JPY' => '¥', |
|
87 | + 'KES' => 'KSh', |
|
88 | + 'KGS' => 'сом', |
|
89 | + 'KHR' => '៛', |
|
90 | + 'KMF' => 'Fr', |
|
91 | + 'KPW' => '₩', |
|
92 | + 'KRW' => '₩', |
|
93 | + 'KWD' => 'د.ك', |
|
94 | + 'KYD' => '$', |
|
95 | + 'KZT' => 'KZT', |
|
96 | + 'LAK' => '₭', |
|
97 | + 'LBP' => 'ل.ل', |
|
98 | + 'LKR' => 'රු', |
|
99 | + 'LRD' => '$', |
|
100 | + 'LSL' => 'L', |
|
101 | + 'LYD' => 'ل.د', |
|
102 | + 'MAD' => 'د.م.', |
|
103 | + 'MDL' => 'MDL', |
|
104 | + 'MGA' => 'Ar', |
|
105 | + 'MKD' => 'ден', |
|
106 | + 'MMK' => 'Ks', |
|
107 | + 'MNT' => '₮', |
|
108 | + 'MOP' => 'P', |
|
109 | + 'MRO' => 'UM', |
|
110 | + 'MUR' => '₨', |
|
111 | + 'MVR' => '.ރ', |
|
112 | + 'MWK' => 'MK', |
|
113 | + 'MXN' => '$', |
|
114 | + 'MYR' => 'RM', |
|
115 | + 'MZN' => 'MT', |
|
116 | + 'NAD' => '$', |
|
117 | + 'NGN' => '₦', |
|
118 | + 'NIO' => 'C$', |
|
119 | + 'NOK' => 'kr', |
|
120 | + 'NPR' => '₨', |
|
121 | + 'NZD' => '$', |
|
122 | + 'OMR' => 'ر.ع.', |
|
123 | + 'PAB' => 'B/.', |
|
124 | + 'PEN' => 'S/.', |
|
125 | + 'PGK' => 'K', |
|
126 | + 'PHP' => '₱', |
|
127 | + 'PKR' => '₨', |
|
128 | + 'PLN' => 'zł', |
|
129 | + 'PRB' => 'р.', |
|
130 | + 'PYG' => '₲', |
|
131 | + 'QAR' => 'ر.ق', |
|
132 | + 'RMB' => '¥', |
|
133 | + 'RON' => 'lei', |
|
134 | + 'RSD' => 'дин.', |
|
135 | + 'RUB' => '₽', |
|
136 | + 'RWF' => 'Fr', |
|
137 | + 'SAR' => 'ر.س', |
|
138 | + 'SBD' => '$', |
|
139 | + 'SCR' => '₨', |
|
140 | + 'SDG' => 'ج.س.', |
|
141 | + 'SEK' => 'kr', |
|
142 | + 'SGD' => '$', |
|
143 | + 'SHP' => '£', |
|
144 | + 'SLL' => 'Le', |
|
145 | + 'SOS' => 'Sh', |
|
146 | + 'SRD' => '$', |
|
147 | + 'SSP' => '£', |
|
148 | + 'STD' => 'Db', |
|
149 | + 'SYP' => 'ل.س', |
|
150 | + 'SZL' => 'L', |
|
151 | + 'THB' => '฿', |
|
152 | + 'TJS' => 'ЅМ', |
|
153 | + 'TMT' => 'm', |
|
154 | + 'TND' => 'د.ت', |
|
155 | + 'TOP' => 'T$', |
|
156 | + 'TRY' => '₺', |
|
157 | + 'TTD' => '$', |
|
158 | + 'TWD' => 'NT$', |
|
159 | + 'TZS' => 'Sh', |
|
160 | + 'UAH' => '₴', |
|
161 | + 'UGX' => 'UGX', |
|
162 | + 'USD' => '$', |
|
163 | + 'UYU' => '$', |
|
164 | + 'UZS' => 'UZS', |
|
165 | + 'VEF' => 'Bs.', |
|
166 | + 'VND' => '₫', |
|
167 | + 'VUV' => 'Vt', |
|
168 | + 'WST' => 'T', |
|
169 | + 'XAF' => 'Fr', |
|
170 | + 'XCD' => '$', |
|
171 | + 'XOF' => 'Fr', |
|
172 | + 'XPF' => 'Fr', |
|
173 | + 'YER' => '﷼', |
|
174 | + 'ZAR' => 'R', |
|
175 | + 'ZMW' => 'ZK', |
|
176 | 176 | ); |
@@ -8,7 +8,7 @@ |
||
8 | 8 | * @version 1.0.19 |
9 | 9 | */ |
10 | 10 | |
11 | -defined( 'ABSPATH' ) || exit; |
|
11 | +defined('ABSPATH') || exit; |
|
12 | 12 | |
13 | 13 | return array( |
14 | 14 | 'AED' => 'د.إ', |
@@ -11,165 +11,165 @@ |
||
11 | 11 | defined( 'ABSPATH' ) || exit; |
12 | 12 | |
13 | 13 | return array( |
14 | - 'USD' => __( 'US Dollar', 'invoicing' ), |
|
15 | - 'EUR' => __( 'Euro', 'invoicing' ), |
|
16 | - 'GBP' => __( 'Pound Sterling', 'invoicing' ), |
|
17 | - 'AED' => __( 'United Arab Emirates', 'invoicing' ), |
|
18 | - 'AFN' => __( 'Afghan Afghani', 'invoicing' ), |
|
19 | - 'ALL' => __( 'Albanian Lek', 'invoicing' ), |
|
20 | - 'AMD' => __( 'Armenian Dram', 'invoicing' ), |
|
21 | - 'ANG' => __( 'Netherlands Antillean Guilder', 'invoicing' ), |
|
22 | - 'AOA' => __( 'Angolan Kwanza', 'invoicing' ), |
|
23 | - 'ARS' => __( 'Argentine Peso', 'invoicing' ), |
|
24 | - 'AUD' => __( 'Australian Dollar', 'invoicing' ), |
|
25 | - 'AWG' => __( 'Aruban Florin', 'invoicing' ), |
|
26 | - 'AZN' => __( 'Azerbaijani Manat', 'invoicing' ), |
|
27 | - 'BAM' => __( 'Bosnia and Herzegovina Convertible Marka', 'invoicing' ), |
|
28 | - 'BBD' => __( 'Barbadian Dollar', 'invoicing' ), |
|
29 | - 'BDT' => __( 'Bangladeshi Taka', 'invoicing' ), |
|
30 | - 'BGN' => __( 'Bulgarian Lev', 'invoicing' ), |
|
31 | - 'BHD' => __( 'Bahraini Dinar', 'invoicing' ), |
|
32 | - 'BIF' => __( 'Burundian Franc', 'invoicing' ), |
|
33 | - 'BMD' => __( 'Bermudian Dollar', 'invoicing' ), |
|
34 | - 'BND' => __( 'Brunei Dollar', 'invoicing' ), |
|
35 | - 'BOB' => __( 'Bolivian Boliviano', 'invoicing' ), |
|
36 | - 'BRL' => __( 'Brazilian Real', 'invoicing' ), |
|
37 | - 'BSD' => __( 'Bahamian Dollar', 'invoicing' ), |
|
38 | - 'BTC' => __( 'Bitcoin', 'invoicing' ), |
|
39 | - 'BTN' => __( 'Bhutanese Ngultrum', 'invoicing' ), |
|
40 | - 'BWP' => __( 'Botswana Pula', 'invoicing' ), |
|
41 | - 'BYN' => __( 'Belarusian Ruble', 'invoicing' ), |
|
42 | - 'BZD' => __( 'Belize Dollar', 'invoicing' ), |
|
43 | - 'CAD' => __( 'Canadian Dollar', 'invoicing' ), |
|
44 | - 'CDF' => __( 'Congolese Franc', 'invoicing' ), |
|
45 | - 'CHF' => __( 'Swiss Franc', 'invoicing' ), |
|
46 | - 'CLP' => __( 'Chilean Peso', 'invoicing' ), |
|
47 | - 'CNY' => __( 'Chinese Yuan', 'invoicing' ), |
|
48 | - 'COP' => __( 'Colombian Peso', 'invoicing' ), |
|
49 | - 'CRC' => __( 'Costa Rican Colon', 'invoicing' ), |
|
50 | - 'CUC' => __( 'Cuban Convertible Peso', 'invoicing' ), |
|
51 | - 'CUP' => __( 'Cuban Peso', 'invoicing' ), |
|
52 | - 'CVE' => __( 'Cape Verdean escudo', 'invoicing' ), |
|
53 | - 'CZK' => __( 'Czech Koruna', 'invoicing' ), |
|
54 | - 'DJF' => __( 'Djiboutian Franc', 'invoicing' ), |
|
55 | - 'DKK' => __( 'Danish Krone', 'invoicing' ), |
|
56 | - 'DOP' => __( 'Dominican Peso', 'invoicing' ), |
|
57 | - 'DZD' => __( 'Algerian Dinar', 'invoicing' ), |
|
58 | - 'EGP' => __( 'Egyptian Pound', 'invoicing' ), |
|
59 | - 'ERN' => __( 'Eritrean Nakfa', 'invoicing' ), |
|
60 | - 'ETB' => __( 'Ethiopian Irr', 'invoicing' ), |
|
61 | - 'FJD' => __( 'Fijian Dollar', 'invoicing' ), |
|
62 | - 'FKP' => __( 'Falkland Islands Pound', 'invoicing' ), |
|
63 | - 'GEL' => __( 'Georgian Lari', 'invoicing' ), |
|
64 | - 'GGP' => __( 'Guernsey Pound', 'invoicing' ), |
|
65 | - 'GHS' => __( 'Ghana Cedi', 'invoicing' ), |
|
66 | - 'GIP' => __( 'Gibraltar Pound', 'invoicing' ), |
|
67 | - 'GMD' => __( 'Gambian Dalasi', 'invoicing' ), |
|
68 | - 'GNF' => __( 'Guinean Franc', 'invoicing' ), |
|
69 | - 'GTQ' => __( 'Guatemalan Quetzal', 'invoicing' ), |
|
70 | - 'GYD' => __( 'Guyanese Dollar', 'invoicing' ), |
|
71 | - 'HKD' => __( 'Hong Kong Dollar', 'invoicing' ), |
|
72 | - 'HNL' => __( 'Honduran Lempira', 'invoicing' ), |
|
73 | - 'HRK' => __( 'Croatian Kuna', 'invoicing' ), |
|
74 | - 'HTG' => __( 'Haitian Gourde', 'invoicing' ), |
|
75 | - 'HUF' => __( 'Hungarian Forint', 'invoicing' ), |
|
76 | - 'IDR' => __( 'Indonesian Rupiah', 'invoicing' ), |
|
77 | - 'ILS' => __( 'Israeli New Shekel', 'invoicing' ), |
|
78 | - 'IMP' => __( 'Manx Pound', 'invoicing' ), |
|
79 | - 'INR' => __( 'Indian Rupee', 'invoicing' ), |
|
80 | - 'IQD' => __( 'Iraqi Dinar', 'invoicing' ), |
|
81 | - 'IRR' => __( 'Iranian Rial', 'invoicing' ), |
|
82 | - 'IRT' => __( 'Iranian Toman', 'invoicing' ), |
|
83 | - 'ISK' => __( 'Icelandic Krona', 'invoicing' ), |
|
84 | - 'JEP' => __( 'Jersey Pound', 'invoicing' ), |
|
85 | - 'JMD' => __( 'Jamaican Dollar', 'invoicing' ), |
|
86 | - 'JOD' => __( 'Jordanian Dinar', 'invoicing' ), |
|
87 | - 'JPY' => __( 'Japanese Yen', 'invoicing' ), |
|
88 | - 'KES' => __( 'Kenyan Shilling', 'invoicing' ), |
|
89 | - 'KGS' => __( 'Kyrgyzstani Som', 'invoicing' ), |
|
90 | - 'KHR' => __( 'Cambodian Riel', 'invoicing' ), |
|
91 | - 'KMF' => __( 'Comorian Franc', 'invoicing' ), |
|
92 | - 'KPW' => __( 'North Korean Won', 'invoicing' ), |
|
93 | - 'KRW' => __( 'South Korean Won', 'invoicing' ), |
|
94 | - 'KWD' => __( 'Kuwaiti Dinar', 'invoicing' ), |
|
95 | - 'KYD' => __( 'Cayman Islands Dollar', 'invoicing' ), |
|
96 | - 'KZT' => __( 'Kazakhstani Tenge', 'invoicing' ), |
|
97 | - 'LAK' => __( 'Lao Kip', 'invoicing' ), |
|
98 | - 'LBP' => __( 'Lebanese Pound', 'invoicing' ), |
|
99 | - 'LKR' => __( 'Sri Lankan Rupee', 'invoicing' ), |
|
100 | - 'LRD' => __( 'Liberian Dollar', 'invoicing' ), |
|
101 | - 'LSL' => __( 'Lesotho Loti', 'invoicing' ), |
|
102 | - 'LYD' => __( 'Libyan Dinar', 'invoicing' ), |
|
103 | - 'MAD' => __( 'Moroccan Dirham', 'invoicing' ), |
|
104 | - 'MDL' => __( 'Moldovan Leu', 'invoicing' ), |
|
105 | - 'MGA' => __( 'Malagasy Ariary', 'invoicing' ), |
|
106 | - 'MKD' => __( 'Macedonian Denar', 'invoicing' ), |
|
107 | - 'MMK' => __( 'Burmese Kyat', 'invoicing' ), |
|
108 | - 'MNT' => __( 'Mongolian Tughrik', 'invoicing' ), |
|
109 | - 'MOP' => __( 'Macanese Pataca', 'invoicing' ), |
|
110 | - 'MRO' => __( 'Mauritanian Ouguiya', 'invoicing' ), |
|
111 | - 'MUR' => __( 'Mauritian Rupee', 'invoicing' ), |
|
112 | - 'MVR' => __( 'Maldivian Rufiyaa', 'invoicing' ), |
|
113 | - 'MWK' => __( 'Malawian Kwacha', 'invoicing' ), |
|
114 | - 'MXN' => __( 'Mexican Peso', 'invoicing' ), |
|
115 | - 'MYR' => __( 'Malaysian Ringgit', 'invoicing' ), |
|
116 | - 'MZN' => __( 'Mozambican Metical', 'invoicing' ), |
|
117 | - 'NAD' => __( 'Namibian Dollar', 'invoicing' ), |
|
118 | - 'NGN' => __( 'Nigerian Naira', 'invoicing' ), |
|
119 | - 'NIO' => __( 'Nicaraguan Cordoba', 'invoicing' ), |
|
120 | - 'NOK' => __( 'Norwegian Krone', 'invoicing' ), |
|
121 | - 'NPR' => __( 'Nepalese Rupee', 'invoicing' ), |
|
122 | - 'NZD' => __( 'New Zealand Dollar', 'invoicing' ), |
|
123 | - 'OMR' => __( 'Omani Rial', 'invoicing' ), |
|
124 | - 'PAB' => __( 'Panamanian Balboa', 'invoicing' ), |
|
125 | - 'PEN' => __( 'Peruvian Nuevo Sol', 'invoicing' ), |
|
126 | - 'PGK' => __( 'Papua New Guinean Kina', 'invoicing' ), |
|
127 | - 'PHP' => __( 'Philippine Peso', 'invoicing' ), |
|
128 | - 'PKR' => __( 'Pakistani Rupee', 'invoicing' ), |
|
129 | - 'PLN' => __( 'Polish Zloty', 'invoicing' ), |
|
130 | - 'PRB' => __( 'Transnistrian Ruble', 'invoicing' ), |
|
131 | - 'PYG' => __( 'Paraguayan Guarani', 'invoicing' ), |
|
132 | - 'QAR' => __( 'Qatari Riyal', 'invoicing' ), |
|
133 | - 'RON' => __( 'Romanian Leu', 'invoicing' ), |
|
134 | - 'RSD' => __( 'Serbian Dinar', 'invoicing' ), |
|
135 | - 'RUB' => __( 'Russian Ruble', 'invoicing' ), |
|
136 | - 'RWF' => __( 'Rwandan Franc', 'invoicing' ), |
|
137 | - 'SAR' => __( 'Saudi Riyal', 'invoicing' ), |
|
138 | - 'SBD' => __( 'Solomon Islands Dollar', 'invoicing' ), |
|
139 | - 'SCR' => __( 'Seychellois Rupee', 'invoicing' ), |
|
140 | - 'SDG' => __( 'Sudanese Pound', 'invoicing' ), |
|
141 | - 'SEK' => __( 'Swedish Krona', 'invoicing' ), |
|
142 | - 'SGD' => __( 'Singapore Dollar', 'invoicing' ), |
|
143 | - 'SHP' => __( 'Saint Helena Pound', 'invoicing' ), |
|
144 | - 'SLL' => __( 'Sierra Leonean Leone', 'invoicing' ), |
|
145 | - 'SOS' => __( 'Somali Shilling', 'invoicing' ), |
|
146 | - 'SRD' => __( 'Surinamese Dollar', 'invoicing' ), |
|
147 | - 'SSP' => __( 'South Sudanese Pound', 'invoicing' ), |
|
148 | - 'STD' => __( 'Sao Tomean Dobra', 'invoicing' ), |
|
149 | - 'SYP' => __( 'Syrian Pound', 'invoicing' ), |
|
150 | - 'SZL' => __( 'Swazi Lilangeni', 'invoicing' ), |
|
151 | - 'THB' => __( 'Thai Baht', 'invoicing' ), |
|
152 | - 'TJS' => __( 'Tajikistani Somoni', 'invoicing' ), |
|
153 | - 'TMT' => __( 'Turkmenistan Manat', 'invoicing' ), |
|
154 | - 'TND' => __( 'Tunisian Dinar', 'invoicing' ), |
|
155 | - 'TOP' => __( 'Tongan Paʻanga', 'invoicing' ), |
|
156 | - 'TRY' => __( 'Turkish Lira', 'invoicing' ), |
|
157 | - 'TTD' => __( 'Trinidad and Tobago Dollar', 'invoicing' ), |
|
158 | - 'TWD' => __( 'New Taiwan Dollar', 'invoicing' ), |
|
159 | - 'TZS' => __( 'Tanzanian Shilling', 'invoicing' ), |
|
160 | - 'UAH' => __( 'Ukrainian Hryvnia', 'invoicing' ), |
|
161 | - 'UGX' => __( 'Ugandan Shilling', 'invoicing' ), |
|
162 | - 'UYU' => __( 'Uruguayan Peso', 'invoicing' ), |
|
163 | - 'UZS' => __( 'Uzbekistani Som', 'invoicing' ), |
|
164 | - 'VEF' => __( 'Venezuelan Bolívar', 'invoicing' ), |
|
165 | - 'VND' => __( 'Vietnamese Dong', 'invoicing' ), |
|
166 | - 'VUV' => __( 'Vanuatu Vatu', 'invoicing' ), |
|
167 | - 'WST' => __( 'Samoan Tala', 'invoicing' ), |
|
168 | - 'XAF' => __( 'Central African CFA Franc', 'invoicing' ), |
|
169 | - 'XCD' => __( 'East Caribbean Dollar', 'invoicing' ), |
|
170 | - 'XOF' => __( 'West African CFA Franc', 'invoicing' ), |
|
171 | - 'XPF' => __( 'CFP Franc', 'invoicing' ), |
|
172 | - 'YER' => __( 'Yemeni Rial', 'invoicing' ), |
|
173 | - 'ZAR' => __( 'South African Rand', 'invoicing' ), |
|
174 | - 'ZMW' => __( 'Zambian Kwacha', 'invoicing' ), |
|
14 | + 'USD' => __( 'US Dollar', 'invoicing' ), |
|
15 | + 'EUR' => __( 'Euro', 'invoicing' ), |
|
16 | + 'GBP' => __( 'Pound Sterling', 'invoicing' ), |
|
17 | + 'AED' => __( 'United Arab Emirates', 'invoicing' ), |
|
18 | + 'AFN' => __( 'Afghan Afghani', 'invoicing' ), |
|
19 | + 'ALL' => __( 'Albanian Lek', 'invoicing' ), |
|
20 | + 'AMD' => __( 'Armenian Dram', 'invoicing' ), |
|
21 | + 'ANG' => __( 'Netherlands Antillean Guilder', 'invoicing' ), |
|
22 | + 'AOA' => __( 'Angolan Kwanza', 'invoicing' ), |
|
23 | + 'ARS' => __( 'Argentine Peso', 'invoicing' ), |
|
24 | + 'AUD' => __( 'Australian Dollar', 'invoicing' ), |
|
25 | + 'AWG' => __( 'Aruban Florin', 'invoicing' ), |
|
26 | + 'AZN' => __( 'Azerbaijani Manat', 'invoicing' ), |
|
27 | + 'BAM' => __( 'Bosnia and Herzegovina Convertible Marka', 'invoicing' ), |
|
28 | + 'BBD' => __( 'Barbadian Dollar', 'invoicing' ), |
|
29 | + 'BDT' => __( 'Bangladeshi Taka', 'invoicing' ), |
|
30 | + 'BGN' => __( 'Bulgarian Lev', 'invoicing' ), |
|
31 | + 'BHD' => __( 'Bahraini Dinar', 'invoicing' ), |
|
32 | + 'BIF' => __( 'Burundian Franc', 'invoicing' ), |
|
33 | + 'BMD' => __( 'Bermudian Dollar', 'invoicing' ), |
|
34 | + 'BND' => __( 'Brunei Dollar', 'invoicing' ), |
|
35 | + 'BOB' => __( 'Bolivian Boliviano', 'invoicing' ), |
|
36 | + 'BRL' => __( 'Brazilian Real', 'invoicing' ), |
|
37 | + 'BSD' => __( 'Bahamian Dollar', 'invoicing' ), |
|
38 | + 'BTC' => __( 'Bitcoin', 'invoicing' ), |
|
39 | + 'BTN' => __( 'Bhutanese Ngultrum', 'invoicing' ), |
|
40 | + 'BWP' => __( 'Botswana Pula', 'invoicing' ), |
|
41 | + 'BYN' => __( 'Belarusian Ruble', 'invoicing' ), |
|
42 | + 'BZD' => __( 'Belize Dollar', 'invoicing' ), |
|
43 | + 'CAD' => __( 'Canadian Dollar', 'invoicing' ), |
|
44 | + 'CDF' => __( 'Congolese Franc', 'invoicing' ), |
|
45 | + 'CHF' => __( 'Swiss Franc', 'invoicing' ), |
|
46 | + 'CLP' => __( 'Chilean Peso', 'invoicing' ), |
|
47 | + 'CNY' => __( 'Chinese Yuan', 'invoicing' ), |
|
48 | + 'COP' => __( 'Colombian Peso', 'invoicing' ), |
|
49 | + 'CRC' => __( 'Costa Rican Colon', 'invoicing' ), |
|
50 | + 'CUC' => __( 'Cuban Convertible Peso', 'invoicing' ), |
|
51 | + 'CUP' => __( 'Cuban Peso', 'invoicing' ), |
|
52 | + 'CVE' => __( 'Cape Verdean escudo', 'invoicing' ), |
|
53 | + 'CZK' => __( 'Czech Koruna', 'invoicing' ), |
|
54 | + 'DJF' => __( 'Djiboutian Franc', 'invoicing' ), |
|
55 | + 'DKK' => __( 'Danish Krone', 'invoicing' ), |
|
56 | + 'DOP' => __( 'Dominican Peso', 'invoicing' ), |
|
57 | + 'DZD' => __( 'Algerian Dinar', 'invoicing' ), |
|
58 | + 'EGP' => __( 'Egyptian Pound', 'invoicing' ), |
|
59 | + 'ERN' => __( 'Eritrean Nakfa', 'invoicing' ), |
|
60 | + 'ETB' => __( 'Ethiopian Irr', 'invoicing' ), |
|
61 | + 'FJD' => __( 'Fijian Dollar', 'invoicing' ), |
|
62 | + 'FKP' => __( 'Falkland Islands Pound', 'invoicing' ), |
|
63 | + 'GEL' => __( 'Georgian Lari', 'invoicing' ), |
|
64 | + 'GGP' => __( 'Guernsey Pound', 'invoicing' ), |
|
65 | + 'GHS' => __( 'Ghana Cedi', 'invoicing' ), |
|
66 | + 'GIP' => __( 'Gibraltar Pound', 'invoicing' ), |
|
67 | + 'GMD' => __( 'Gambian Dalasi', 'invoicing' ), |
|
68 | + 'GNF' => __( 'Guinean Franc', 'invoicing' ), |
|
69 | + 'GTQ' => __( 'Guatemalan Quetzal', 'invoicing' ), |
|
70 | + 'GYD' => __( 'Guyanese Dollar', 'invoicing' ), |
|
71 | + 'HKD' => __( 'Hong Kong Dollar', 'invoicing' ), |
|
72 | + 'HNL' => __( 'Honduran Lempira', 'invoicing' ), |
|
73 | + 'HRK' => __( 'Croatian Kuna', 'invoicing' ), |
|
74 | + 'HTG' => __( 'Haitian Gourde', 'invoicing' ), |
|
75 | + 'HUF' => __( 'Hungarian Forint', 'invoicing' ), |
|
76 | + 'IDR' => __( 'Indonesian Rupiah', 'invoicing' ), |
|
77 | + 'ILS' => __( 'Israeli New Shekel', 'invoicing' ), |
|
78 | + 'IMP' => __( 'Manx Pound', 'invoicing' ), |
|
79 | + 'INR' => __( 'Indian Rupee', 'invoicing' ), |
|
80 | + 'IQD' => __( 'Iraqi Dinar', 'invoicing' ), |
|
81 | + 'IRR' => __( 'Iranian Rial', 'invoicing' ), |
|
82 | + 'IRT' => __( 'Iranian Toman', 'invoicing' ), |
|
83 | + 'ISK' => __( 'Icelandic Krona', 'invoicing' ), |
|
84 | + 'JEP' => __( 'Jersey Pound', 'invoicing' ), |
|
85 | + 'JMD' => __( 'Jamaican Dollar', 'invoicing' ), |
|
86 | + 'JOD' => __( 'Jordanian Dinar', 'invoicing' ), |
|
87 | + 'JPY' => __( 'Japanese Yen', 'invoicing' ), |
|
88 | + 'KES' => __( 'Kenyan Shilling', 'invoicing' ), |
|
89 | + 'KGS' => __( 'Kyrgyzstani Som', 'invoicing' ), |
|
90 | + 'KHR' => __( 'Cambodian Riel', 'invoicing' ), |
|
91 | + 'KMF' => __( 'Comorian Franc', 'invoicing' ), |
|
92 | + 'KPW' => __( 'North Korean Won', 'invoicing' ), |
|
93 | + 'KRW' => __( 'South Korean Won', 'invoicing' ), |
|
94 | + 'KWD' => __( 'Kuwaiti Dinar', 'invoicing' ), |
|
95 | + 'KYD' => __( 'Cayman Islands Dollar', 'invoicing' ), |
|
96 | + 'KZT' => __( 'Kazakhstani Tenge', 'invoicing' ), |
|
97 | + 'LAK' => __( 'Lao Kip', 'invoicing' ), |
|
98 | + 'LBP' => __( 'Lebanese Pound', 'invoicing' ), |
|
99 | + 'LKR' => __( 'Sri Lankan Rupee', 'invoicing' ), |
|
100 | + 'LRD' => __( 'Liberian Dollar', 'invoicing' ), |
|
101 | + 'LSL' => __( 'Lesotho Loti', 'invoicing' ), |
|
102 | + 'LYD' => __( 'Libyan Dinar', 'invoicing' ), |
|
103 | + 'MAD' => __( 'Moroccan Dirham', 'invoicing' ), |
|
104 | + 'MDL' => __( 'Moldovan Leu', 'invoicing' ), |
|
105 | + 'MGA' => __( 'Malagasy Ariary', 'invoicing' ), |
|
106 | + 'MKD' => __( 'Macedonian Denar', 'invoicing' ), |
|
107 | + 'MMK' => __( 'Burmese Kyat', 'invoicing' ), |
|
108 | + 'MNT' => __( 'Mongolian Tughrik', 'invoicing' ), |
|
109 | + 'MOP' => __( 'Macanese Pataca', 'invoicing' ), |
|
110 | + 'MRO' => __( 'Mauritanian Ouguiya', 'invoicing' ), |
|
111 | + 'MUR' => __( 'Mauritian Rupee', 'invoicing' ), |
|
112 | + 'MVR' => __( 'Maldivian Rufiyaa', 'invoicing' ), |
|
113 | + 'MWK' => __( 'Malawian Kwacha', 'invoicing' ), |
|
114 | + 'MXN' => __( 'Mexican Peso', 'invoicing' ), |
|
115 | + 'MYR' => __( 'Malaysian Ringgit', 'invoicing' ), |
|
116 | + 'MZN' => __( 'Mozambican Metical', 'invoicing' ), |
|
117 | + 'NAD' => __( 'Namibian Dollar', 'invoicing' ), |
|
118 | + 'NGN' => __( 'Nigerian Naira', 'invoicing' ), |
|
119 | + 'NIO' => __( 'Nicaraguan Cordoba', 'invoicing' ), |
|
120 | + 'NOK' => __( 'Norwegian Krone', 'invoicing' ), |
|
121 | + 'NPR' => __( 'Nepalese Rupee', 'invoicing' ), |
|
122 | + 'NZD' => __( 'New Zealand Dollar', 'invoicing' ), |
|
123 | + 'OMR' => __( 'Omani Rial', 'invoicing' ), |
|
124 | + 'PAB' => __( 'Panamanian Balboa', 'invoicing' ), |
|
125 | + 'PEN' => __( 'Peruvian Nuevo Sol', 'invoicing' ), |
|
126 | + 'PGK' => __( 'Papua New Guinean Kina', 'invoicing' ), |
|
127 | + 'PHP' => __( 'Philippine Peso', 'invoicing' ), |
|
128 | + 'PKR' => __( 'Pakistani Rupee', 'invoicing' ), |
|
129 | + 'PLN' => __( 'Polish Zloty', 'invoicing' ), |
|
130 | + 'PRB' => __( 'Transnistrian Ruble', 'invoicing' ), |
|
131 | + 'PYG' => __( 'Paraguayan Guarani', 'invoicing' ), |
|
132 | + 'QAR' => __( 'Qatari Riyal', 'invoicing' ), |
|
133 | + 'RON' => __( 'Romanian Leu', 'invoicing' ), |
|
134 | + 'RSD' => __( 'Serbian Dinar', 'invoicing' ), |
|
135 | + 'RUB' => __( 'Russian Ruble', 'invoicing' ), |
|
136 | + 'RWF' => __( 'Rwandan Franc', 'invoicing' ), |
|
137 | + 'SAR' => __( 'Saudi Riyal', 'invoicing' ), |
|
138 | + 'SBD' => __( 'Solomon Islands Dollar', 'invoicing' ), |
|
139 | + 'SCR' => __( 'Seychellois Rupee', 'invoicing' ), |
|
140 | + 'SDG' => __( 'Sudanese Pound', 'invoicing' ), |
|
141 | + 'SEK' => __( 'Swedish Krona', 'invoicing' ), |
|
142 | + 'SGD' => __( 'Singapore Dollar', 'invoicing' ), |
|
143 | + 'SHP' => __( 'Saint Helena Pound', 'invoicing' ), |
|
144 | + 'SLL' => __( 'Sierra Leonean Leone', 'invoicing' ), |
|
145 | + 'SOS' => __( 'Somali Shilling', 'invoicing' ), |
|
146 | + 'SRD' => __( 'Surinamese Dollar', 'invoicing' ), |
|
147 | + 'SSP' => __( 'South Sudanese Pound', 'invoicing' ), |
|
148 | + 'STD' => __( 'Sao Tomean Dobra', 'invoicing' ), |
|
149 | + 'SYP' => __( 'Syrian Pound', 'invoicing' ), |
|
150 | + 'SZL' => __( 'Swazi Lilangeni', 'invoicing' ), |
|
151 | + 'THB' => __( 'Thai Baht', 'invoicing' ), |
|
152 | + 'TJS' => __( 'Tajikistani Somoni', 'invoicing' ), |
|
153 | + 'TMT' => __( 'Turkmenistan Manat', 'invoicing' ), |
|
154 | + 'TND' => __( 'Tunisian Dinar', 'invoicing' ), |
|
155 | + 'TOP' => __( 'Tongan Paʻanga', 'invoicing' ), |
|
156 | + 'TRY' => __( 'Turkish Lira', 'invoicing' ), |
|
157 | + 'TTD' => __( 'Trinidad and Tobago Dollar', 'invoicing' ), |
|
158 | + 'TWD' => __( 'New Taiwan Dollar', 'invoicing' ), |
|
159 | + 'TZS' => __( 'Tanzanian Shilling', 'invoicing' ), |
|
160 | + 'UAH' => __( 'Ukrainian Hryvnia', 'invoicing' ), |
|
161 | + 'UGX' => __( 'Ugandan Shilling', 'invoicing' ), |
|
162 | + 'UYU' => __( 'Uruguayan Peso', 'invoicing' ), |
|
163 | + 'UZS' => __( 'Uzbekistani Som', 'invoicing' ), |
|
164 | + 'VEF' => __( 'Venezuelan Bolívar', 'invoicing' ), |
|
165 | + 'VND' => __( 'Vietnamese Dong', 'invoicing' ), |
|
166 | + 'VUV' => __( 'Vanuatu Vatu', 'invoicing' ), |
|
167 | + 'WST' => __( 'Samoan Tala', 'invoicing' ), |
|
168 | + 'XAF' => __( 'Central African CFA Franc', 'invoicing' ), |
|
169 | + 'XCD' => __( 'East Caribbean Dollar', 'invoicing' ), |
|
170 | + 'XOF' => __( 'West African CFA Franc', 'invoicing' ), |
|
171 | + 'XPF' => __( 'CFP Franc', 'invoicing' ), |
|
172 | + 'YER' => __( 'Yemeni Rial', 'invoicing' ), |
|
173 | + 'ZAR' => __( 'South African Rand', 'invoicing' ), |
|
174 | + 'ZMW' => __( 'Zambian Kwacha', 'invoicing' ), |
|
175 | 175 | ); |
@@ -8,168 +8,168 @@ |
||
8 | 8 | * @version 1.0.19 |
9 | 9 | */ |
10 | 10 | |
11 | -defined( 'ABSPATH' ) || exit; |
|
11 | +defined('ABSPATH') || exit; |
|
12 | 12 | |
13 | 13 | return array( |
14 | - 'USD' => __( 'US Dollar', 'invoicing' ), |
|
15 | - 'EUR' => __( 'Euro', 'invoicing' ), |
|
16 | - 'GBP' => __( 'Pound Sterling', 'invoicing' ), |
|
17 | - 'AED' => __( 'United Arab Emirates', 'invoicing' ), |
|
18 | - 'AFN' => __( 'Afghan Afghani', 'invoicing' ), |
|
19 | - 'ALL' => __( 'Albanian Lek', 'invoicing' ), |
|
20 | - 'AMD' => __( 'Armenian Dram', 'invoicing' ), |
|
21 | - 'ANG' => __( 'Netherlands Antillean Guilder', 'invoicing' ), |
|
22 | - 'AOA' => __( 'Angolan Kwanza', 'invoicing' ), |
|
23 | - 'ARS' => __( 'Argentine Peso', 'invoicing' ), |
|
24 | - 'AUD' => __( 'Australian Dollar', 'invoicing' ), |
|
25 | - 'AWG' => __( 'Aruban Florin', 'invoicing' ), |
|
26 | - 'AZN' => __( 'Azerbaijani Manat', 'invoicing' ), |
|
27 | - 'BAM' => __( 'Bosnia and Herzegovina Convertible Marka', 'invoicing' ), |
|
28 | - 'BBD' => __( 'Barbadian Dollar', 'invoicing' ), |
|
29 | - 'BDT' => __( 'Bangladeshi Taka', 'invoicing' ), |
|
30 | - 'BGN' => __( 'Bulgarian Lev', 'invoicing' ), |
|
31 | - 'BHD' => __( 'Bahraini Dinar', 'invoicing' ), |
|
32 | - 'BIF' => __( 'Burundian Franc', 'invoicing' ), |
|
33 | - 'BMD' => __( 'Bermudian Dollar', 'invoicing' ), |
|
34 | - 'BND' => __( 'Brunei Dollar', 'invoicing' ), |
|
35 | - 'BOB' => __( 'Bolivian Boliviano', 'invoicing' ), |
|
36 | - 'BRL' => __( 'Brazilian Real', 'invoicing' ), |
|
37 | - 'BSD' => __( 'Bahamian Dollar', 'invoicing' ), |
|
38 | - 'BTC' => __( 'Bitcoin', 'invoicing' ), |
|
39 | - 'BTN' => __( 'Bhutanese Ngultrum', 'invoicing' ), |
|
40 | - 'BWP' => __( 'Botswana Pula', 'invoicing' ), |
|
41 | - 'BYN' => __( 'Belarusian Ruble', 'invoicing' ), |
|
42 | - 'BZD' => __( 'Belize Dollar', 'invoicing' ), |
|
43 | - 'CAD' => __( 'Canadian Dollar', 'invoicing' ), |
|
44 | - 'CDF' => __( 'Congolese Franc', 'invoicing' ), |
|
45 | - 'CHF' => __( 'Swiss Franc', 'invoicing' ), |
|
46 | - 'CLP' => __( 'Chilean Peso', 'invoicing' ), |
|
47 | - 'CNY' => __( 'Chinese Yuan', 'invoicing' ), |
|
48 | - 'COP' => __( 'Colombian Peso', 'invoicing' ), |
|
49 | - 'CRC' => __( 'Costa Rican Colon', 'invoicing' ), |
|
50 | - 'CUC' => __( 'Cuban Convertible Peso', 'invoicing' ), |
|
51 | - 'CUP' => __( 'Cuban Peso', 'invoicing' ), |
|
52 | - 'CVE' => __( 'Cape Verdean escudo', 'invoicing' ), |
|
53 | - 'CZK' => __( 'Czech Koruna', 'invoicing' ), |
|
54 | - 'DJF' => __( 'Djiboutian Franc', 'invoicing' ), |
|
55 | - 'DKK' => __( 'Danish Krone', 'invoicing' ), |
|
56 | - 'DOP' => __( 'Dominican Peso', 'invoicing' ), |
|
57 | - 'DZD' => __( 'Algerian Dinar', 'invoicing' ), |
|
58 | - 'EGP' => __( 'Egyptian Pound', 'invoicing' ), |
|
59 | - 'ERN' => __( 'Eritrean Nakfa', 'invoicing' ), |
|
60 | - 'ETB' => __( 'Ethiopian Irr', 'invoicing' ), |
|
61 | - 'FJD' => __( 'Fijian Dollar', 'invoicing' ), |
|
62 | - 'FKP' => __( 'Falkland Islands Pound', 'invoicing' ), |
|
63 | - 'GEL' => __( 'Georgian Lari', 'invoicing' ), |
|
64 | - 'GGP' => __( 'Guernsey Pound', 'invoicing' ), |
|
65 | - 'GHS' => __( 'Ghana Cedi', 'invoicing' ), |
|
66 | - 'GIP' => __( 'Gibraltar Pound', 'invoicing' ), |
|
67 | - 'GMD' => __( 'Gambian Dalasi', 'invoicing' ), |
|
68 | - 'GNF' => __( 'Guinean Franc', 'invoicing' ), |
|
69 | - 'GTQ' => __( 'Guatemalan Quetzal', 'invoicing' ), |
|
70 | - 'GYD' => __( 'Guyanese Dollar', 'invoicing' ), |
|
71 | - 'HKD' => __( 'Hong Kong Dollar', 'invoicing' ), |
|
72 | - 'HNL' => __( 'Honduran Lempira', 'invoicing' ), |
|
73 | - 'HRK' => __( 'Croatian Kuna', 'invoicing' ), |
|
74 | - 'HTG' => __( 'Haitian Gourde', 'invoicing' ), |
|
75 | - 'HUF' => __( 'Hungarian Forint', 'invoicing' ), |
|
76 | - 'IDR' => __( 'Indonesian Rupiah', 'invoicing' ), |
|
77 | - 'ILS' => __( 'Israeli New Shekel', 'invoicing' ), |
|
78 | - 'IMP' => __( 'Manx Pound', 'invoicing' ), |
|
79 | - 'INR' => __( 'Indian Rupee', 'invoicing' ), |
|
80 | - 'IQD' => __( 'Iraqi Dinar', 'invoicing' ), |
|
81 | - 'IRR' => __( 'Iranian Rial', 'invoicing' ), |
|
82 | - 'IRT' => __( 'Iranian Toman', 'invoicing' ), |
|
83 | - 'ISK' => __( 'Icelandic Krona', 'invoicing' ), |
|
84 | - 'JEP' => __( 'Jersey Pound', 'invoicing' ), |
|
85 | - 'JMD' => __( 'Jamaican Dollar', 'invoicing' ), |
|
86 | - 'JOD' => __( 'Jordanian Dinar', 'invoicing' ), |
|
87 | - 'JPY' => __( 'Japanese Yen', 'invoicing' ), |
|
88 | - 'KES' => __( 'Kenyan Shilling', 'invoicing' ), |
|
89 | - 'KGS' => __( 'Kyrgyzstani Som', 'invoicing' ), |
|
90 | - 'KHR' => __( 'Cambodian Riel', 'invoicing' ), |
|
91 | - 'KMF' => __( 'Comorian Franc', 'invoicing' ), |
|
92 | - 'KPW' => __( 'North Korean Won', 'invoicing' ), |
|
93 | - 'KRW' => __( 'South Korean Won', 'invoicing' ), |
|
94 | - 'KWD' => __( 'Kuwaiti Dinar', 'invoicing' ), |
|
95 | - 'KYD' => __( 'Cayman Islands Dollar', 'invoicing' ), |
|
96 | - 'KZT' => __( 'Kazakhstani Tenge', 'invoicing' ), |
|
97 | - 'LAK' => __( 'Lao Kip', 'invoicing' ), |
|
98 | - 'LBP' => __( 'Lebanese Pound', 'invoicing' ), |
|
99 | - 'LKR' => __( 'Sri Lankan Rupee', 'invoicing' ), |
|
100 | - 'LRD' => __( 'Liberian Dollar', 'invoicing' ), |
|
101 | - 'LSL' => __( 'Lesotho Loti', 'invoicing' ), |
|
102 | - 'LYD' => __( 'Libyan Dinar', 'invoicing' ), |
|
103 | - 'MAD' => __( 'Moroccan Dirham', 'invoicing' ), |
|
104 | - 'MDL' => __( 'Moldovan Leu', 'invoicing' ), |
|
105 | - 'MGA' => __( 'Malagasy Ariary', 'invoicing' ), |
|
106 | - 'MKD' => __( 'Macedonian Denar', 'invoicing' ), |
|
107 | - 'MMK' => __( 'Burmese Kyat', 'invoicing' ), |
|
108 | - 'MNT' => __( 'Mongolian Tughrik', 'invoicing' ), |
|
109 | - 'MOP' => __( 'Macanese Pataca', 'invoicing' ), |
|
110 | - 'MRO' => __( 'Mauritanian Ouguiya', 'invoicing' ), |
|
111 | - 'MUR' => __( 'Mauritian Rupee', 'invoicing' ), |
|
112 | - 'MVR' => __( 'Maldivian Rufiyaa', 'invoicing' ), |
|
113 | - 'MWK' => __( 'Malawian Kwacha', 'invoicing' ), |
|
114 | - 'MXN' => __( 'Mexican Peso', 'invoicing' ), |
|
115 | - 'MYR' => __( 'Malaysian Ringgit', 'invoicing' ), |
|
116 | - 'MZN' => __( 'Mozambican Metical', 'invoicing' ), |
|
117 | - 'NAD' => __( 'Namibian Dollar', 'invoicing' ), |
|
118 | - 'NGN' => __( 'Nigerian Naira', 'invoicing' ), |
|
119 | - 'NIO' => __( 'Nicaraguan Cordoba', 'invoicing' ), |
|
120 | - 'NOK' => __( 'Norwegian Krone', 'invoicing' ), |
|
121 | - 'NPR' => __( 'Nepalese Rupee', 'invoicing' ), |
|
122 | - 'NZD' => __( 'New Zealand Dollar', 'invoicing' ), |
|
123 | - 'OMR' => __( 'Omani Rial', 'invoicing' ), |
|
124 | - 'PAB' => __( 'Panamanian Balboa', 'invoicing' ), |
|
125 | - 'PEN' => __( 'Peruvian Nuevo Sol', 'invoicing' ), |
|
126 | - 'PGK' => __( 'Papua New Guinean Kina', 'invoicing' ), |
|
127 | - 'PHP' => __( 'Philippine Peso', 'invoicing' ), |
|
128 | - 'PKR' => __( 'Pakistani Rupee', 'invoicing' ), |
|
129 | - 'PLN' => __( 'Polish Zloty', 'invoicing' ), |
|
130 | - 'PRB' => __( 'Transnistrian Ruble', 'invoicing' ), |
|
131 | - 'PYG' => __( 'Paraguayan Guarani', 'invoicing' ), |
|
132 | - 'QAR' => __( 'Qatari Riyal', 'invoicing' ), |
|
133 | - 'RON' => __( 'Romanian Leu', 'invoicing' ), |
|
134 | - 'RSD' => __( 'Serbian Dinar', 'invoicing' ), |
|
135 | - 'RUB' => __( 'Russian Ruble', 'invoicing' ), |
|
136 | - 'RWF' => __( 'Rwandan Franc', 'invoicing' ), |
|
137 | - 'SAR' => __( 'Saudi Riyal', 'invoicing' ), |
|
138 | - 'SBD' => __( 'Solomon Islands Dollar', 'invoicing' ), |
|
139 | - 'SCR' => __( 'Seychellois Rupee', 'invoicing' ), |
|
140 | - 'SDG' => __( 'Sudanese Pound', 'invoicing' ), |
|
141 | - 'SEK' => __( 'Swedish Krona', 'invoicing' ), |
|
142 | - 'SGD' => __( 'Singapore Dollar', 'invoicing' ), |
|
143 | - 'SHP' => __( 'Saint Helena Pound', 'invoicing' ), |
|
144 | - 'SLL' => __( 'Sierra Leonean Leone', 'invoicing' ), |
|
145 | - 'SOS' => __( 'Somali Shilling', 'invoicing' ), |
|
146 | - 'SRD' => __( 'Surinamese Dollar', 'invoicing' ), |
|
147 | - 'SSP' => __( 'South Sudanese Pound', 'invoicing' ), |
|
148 | - 'STD' => __( 'Sao Tomean Dobra', 'invoicing' ), |
|
149 | - 'SYP' => __( 'Syrian Pound', 'invoicing' ), |
|
150 | - 'SZL' => __( 'Swazi Lilangeni', 'invoicing' ), |
|
151 | - 'THB' => __( 'Thai Baht', 'invoicing' ), |
|
152 | - 'TJS' => __( 'Tajikistani Somoni', 'invoicing' ), |
|
153 | - 'TMT' => __( 'Turkmenistan Manat', 'invoicing' ), |
|
154 | - 'TND' => __( 'Tunisian Dinar', 'invoicing' ), |
|
155 | - 'TOP' => __( 'Tongan Paʻanga', 'invoicing' ), |
|
156 | - 'TRY' => __( 'Turkish Lira', 'invoicing' ), |
|
157 | - 'TTD' => __( 'Trinidad and Tobago Dollar', 'invoicing' ), |
|
158 | - 'TWD' => __( 'New Taiwan Dollar', 'invoicing' ), |
|
159 | - 'TZS' => __( 'Tanzanian Shilling', 'invoicing' ), |
|
160 | - 'UAH' => __( 'Ukrainian Hryvnia', 'invoicing' ), |
|
161 | - 'UGX' => __( 'Ugandan Shilling', 'invoicing' ), |
|
162 | - 'UYU' => __( 'Uruguayan Peso', 'invoicing' ), |
|
163 | - 'UZS' => __( 'Uzbekistani Som', 'invoicing' ), |
|
164 | - 'VEF' => __( 'Venezuelan Bolívar', 'invoicing' ), |
|
165 | - 'VND' => __( 'Vietnamese Dong', 'invoicing' ), |
|
166 | - 'VUV' => __( 'Vanuatu Vatu', 'invoicing' ), |
|
167 | - 'WST' => __( 'Samoan Tala', 'invoicing' ), |
|
168 | - 'XAF' => __( 'Central African CFA Franc', 'invoicing' ), |
|
169 | - 'XCD' => __( 'East Caribbean Dollar', 'invoicing' ), |
|
170 | - 'XOF' => __( 'West African CFA Franc', 'invoicing' ), |
|
171 | - 'XPF' => __( 'CFP Franc', 'invoicing' ), |
|
172 | - 'YER' => __( 'Yemeni Rial', 'invoicing' ), |
|
173 | - 'ZAR' => __( 'South African Rand', 'invoicing' ), |
|
174 | - 'ZMW' => __( 'Zambian Kwacha', 'invoicing' ), |
|
14 | + 'USD' => __('US Dollar', 'invoicing'), |
|
15 | + 'EUR' => __('Euro', 'invoicing'), |
|
16 | + 'GBP' => __('Pound Sterling', 'invoicing'), |
|
17 | + 'AED' => __('United Arab Emirates', 'invoicing'), |
|
18 | + 'AFN' => __('Afghan Afghani', 'invoicing'), |
|
19 | + 'ALL' => __('Albanian Lek', 'invoicing'), |
|
20 | + 'AMD' => __('Armenian Dram', 'invoicing'), |
|
21 | + 'ANG' => __('Netherlands Antillean Guilder', 'invoicing'), |
|
22 | + 'AOA' => __('Angolan Kwanza', 'invoicing'), |
|
23 | + 'ARS' => __('Argentine Peso', 'invoicing'), |
|
24 | + 'AUD' => __('Australian Dollar', 'invoicing'), |
|
25 | + 'AWG' => __('Aruban Florin', 'invoicing'), |
|
26 | + 'AZN' => __('Azerbaijani Manat', 'invoicing'), |
|
27 | + 'BAM' => __('Bosnia and Herzegovina Convertible Marka', 'invoicing'), |
|
28 | + 'BBD' => __('Barbadian Dollar', 'invoicing'), |
|
29 | + 'BDT' => __('Bangladeshi Taka', 'invoicing'), |
|
30 | + 'BGN' => __('Bulgarian Lev', 'invoicing'), |
|
31 | + 'BHD' => __('Bahraini Dinar', 'invoicing'), |
|
32 | + 'BIF' => __('Burundian Franc', 'invoicing'), |
|
33 | + 'BMD' => __('Bermudian Dollar', 'invoicing'), |
|
34 | + 'BND' => __('Brunei Dollar', 'invoicing'), |
|
35 | + 'BOB' => __('Bolivian Boliviano', 'invoicing'), |
|
36 | + 'BRL' => __('Brazilian Real', 'invoicing'), |
|
37 | + 'BSD' => __('Bahamian Dollar', 'invoicing'), |
|
38 | + 'BTC' => __('Bitcoin', 'invoicing'), |
|
39 | + 'BTN' => __('Bhutanese Ngultrum', 'invoicing'), |
|
40 | + 'BWP' => __('Botswana Pula', 'invoicing'), |
|
41 | + 'BYN' => __('Belarusian Ruble', 'invoicing'), |
|
42 | + 'BZD' => __('Belize Dollar', 'invoicing'), |
|
43 | + 'CAD' => __('Canadian Dollar', 'invoicing'), |
|
44 | + 'CDF' => __('Congolese Franc', 'invoicing'), |
|
45 | + 'CHF' => __('Swiss Franc', 'invoicing'), |
|
46 | + 'CLP' => __('Chilean Peso', 'invoicing'), |
|
47 | + 'CNY' => __('Chinese Yuan', 'invoicing'), |
|
48 | + 'COP' => __('Colombian Peso', 'invoicing'), |
|
49 | + 'CRC' => __('Costa Rican Colon', 'invoicing'), |
|
50 | + 'CUC' => __('Cuban Convertible Peso', 'invoicing'), |
|
51 | + 'CUP' => __('Cuban Peso', 'invoicing'), |
|
52 | + 'CVE' => __('Cape Verdean escudo', 'invoicing'), |
|
53 | + 'CZK' => __('Czech Koruna', 'invoicing'), |
|
54 | + 'DJF' => __('Djiboutian Franc', 'invoicing'), |
|
55 | + 'DKK' => __('Danish Krone', 'invoicing'), |
|
56 | + 'DOP' => __('Dominican Peso', 'invoicing'), |
|
57 | + 'DZD' => __('Algerian Dinar', 'invoicing'), |
|
58 | + 'EGP' => __('Egyptian Pound', 'invoicing'), |
|
59 | + 'ERN' => __('Eritrean Nakfa', 'invoicing'), |
|
60 | + 'ETB' => __('Ethiopian Irr', 'invoicing'), |
|
61 | + 'FJD' => __('Fijian Dollar', 'invoicing'), |
|
62 | + 'FKP' => __('Falkland Islands Pound', 'invoicing'), |
|
63 | + 'GEL' => __('Georgian Lari', 'invoicing'), |
|
64 | + 'GGP' => __('Guernsey Pound', 'invoicing'), |
|
65 | + 'GHS' => __('Ghana Cedi', 'invoicing'), |
|
66 | + 'GIP' => __('Gibraltar Pound', 'invoicing'), |
|
67 | + 'GMD' => __('Gambian Dalasi', 'invoicing'), |
|
68 | + 'GNF' => __('Guinean Franc', 'invoicing'), |
|
69 | + 'GTQ' => __('Guatemalan Quetzal', 'invoicing'), |
|
70 | + 'GYD' => __('Guyanese Dollar', 'invoicing'), |
|
71 | + 'HKD' => __('Hong Kong Dollar', 'invoicing'), |
|
72 | + 'HNL' => __('Honduran Lempira', 'invoicing'), |
|
73 | + 'HRK' => __('Croatian Kuna', 'invoicing'), |
|
74 | + 'HTG' => __('Haitian Gourde', 'invoicing'), |
|
75 | + 'HUF' => __('Hungarian Forint', 'invoicing'), |
|
76 | + 'IDR' => __('Indonesian Rupiah', 'invoicing'), |
|
77 | + 'ILS' => __('Israeli New Shekel', 'invoicing'), |
|
78 | + 'IMP' => __('Manx Pound', 'invoicing'), |
|
79 | + 'INR' => __('Indian Rupee', 'invoicing'), |
|
80 | + 'IQD' => __('Iraqi Dinar', 'invoicing'), |
|
81 | + 'IRR' => __('Iranian Rial', 'invoicing'), |
|
82 | + 'IRT' => __('Iranian Toman', 'invoicing'), |
|
83 | + 'ISK' => __('Icelandic Krona', 'invoicing'), |
|
84 | + 'JEP' => __('Jersey Pound', 'invoicing'), |
|
85 | + 'JMD' => __('Jamaican Dollar', 'invoicing'), |
|
86 | + 'JOD' => __('Jordanian Dinar', 'invoicing'), |
|
87 | + 'JPY' => __('Japanese Yen', 'invoicing'), |
|
88 | + 'KES' => __('Kenyan Shilling', 'invoicing'), |
|
89 | + 'KGS' => __('Kyrgyzstani Som', 'invoicing'), |
|
90 | + 'KHR' => __('Cambodian Riel', 'invoicing'), |
|
91 | + 'KMF' => __('Comorian Franc', 'invoicing'), |
|
92 | + 'KPW' => __('North Korean Won', 'invoicing'), |
|
93 | + 'KRW' => __('South Korean Won', 'invoicing'), |
|
94 | + 'KWD' => __('Kuwaiti Dinar', 'invoicing'), |
|
95 | + 'KYD' => __('Cayman Islands Dollar', 'invoicing'), |
|
96 | + 'KZT' => __('Kazakhstani Tenge', 'invoicing'), |
|
97 | + 'LAK' => __('Lao Kip', 'invoicing'), |
|
98 | + 'LBP' => __('Lebanese Pound', 'invoicing'), |
|
99 | + 'LKR' => __('Sri Lankan Rupee', 'invoicing'), |
|
100 | + 'LRD' => __('Liberian Dollar', 'invoicing'), |
|
101 | + 'LSL' => __('Lesotho Loti', 'invoicing'), |
|
102 | + 'LYD' => __('Libyan Dinar', 'invoicing'), |
|
103 | + 'MAD' => __('Moroccan Dirham', 'invoicing'), |
|
104 | + 'MDL' => __('Moldovan Leu', 'invoicing'), |
|
105 | + 'MGA' => __('Malagasy Ariary', 'invoicing'), |
|
106 | + 'MKD' => __('Macedonian Denar', 'invoicing'), |
|
107 | + 'MMK' => __('Burmese Kyat', 'invoicing'), |
|
108 | + 'MNT' => __('Mongolian Tughrik', 'invoicing'), |
|
109 | + 'MOP' => __('Macanese Pataca', 'invoicing'), |
|
110 | + 'MRO' => __('Mauritanian Ouguiya', 'invoicing'), |
|
111 | + 'MUR' => __('Mauritian Rupee', 'invoicing'), |
|
112 | + 'MVR' => __('Maldivian Rufiyaa', 'invoicing'), |
|
113 | + 'MWK' => __('Malawian Kwacha', 'invoicing'), |
|
114 | + 'MXN' => __('Mexican Peso', 'invoicing'), |
|
115 | + 'MYR' => __('Malaysian Ringgit', 'invoicing'), |
|
116 | + 'MZN' => __('Mozambican Metical', 'invoicing'), |
|
117 | + 'NAD' => __('Namibian Dollar', 'invoicing'), |
|
118 | + 'NGN' => __('Nigerian Naira', 'invoicing'), |
|
119 | + 'NIO' => __('Nicaraguan Cordoba', 'invoicing'), |
|
120 | + 'NOK' => __('Norwegian Krone', 'invoicing'), |
|
121 | + 'NPR' => __('Nepalese Rupee', 'invoicing'), |
|
122 | + 'NZD' => __('New Zealand Dollar', 'invoicing'), |
|
123 | + 'OMR' => __('Omani Rial', 'invoicing'), |
|
124 | + 'PAB' => __('Panamanian Balboa', 'invoicing'), |
|
125 | + 'PEN' => __('Peruvian Nuevo Sol', 'invoicing'), |
|
126 | + 'PGK' => __('Papua New Guinean Kina', 'invoicing'), |
|
127 | + 'PHP' => __('Philippine Peso', 'invoicing'), |
|
128 | + 'PKR' => __('Pakistani Rupee', 'invoicing'), |
|
129 | + 'PLN' => __('Polish Zloty', 'invoicing'), |
|
130 | + 'PRB' => __('Transnistrian Ruble', 'invoicing'), |
|
131 | + 'PYG' => __('Paraguayan Guarani', 'invoicing'), |
|
132 | + 'QAR' => __('Qatari Riyal', 'invoicing'), |
|
133 | + 'RON' => __('Romanian Leu', 'invoicing'), |
|
134 | + 'RSD' => __('Serbian Dinar', 'invoicing'), |
|
135 | + 'RUB' => __('Russian Ruble', 'invoicing'), |
|
136 | + 'RWF' => __('Rwandan Franc', 'invoicing'), |
|
137 | + 'SAR' => __('Saudi Riyal', 'invoicing'), |
|
138 | + 'SBD' => __('Solomon Islands Dollar', 'invoicing'), |
|
139 | + 'SCR' => __('Seychellois Rupee', 'invoicing'), |
|
140 | + 'SDG' => __('Sudanese Pound', 'invoicing'), |
|
141 | + 'SEK' => __('Swedish Krona', 'invoicing'), |
|
142 | + 'SGD' => __('Singapore Dollar', 'invoicing'), |
|
143 | + 'SHP' => __('Saint Helena Pound', 'invoicing'), |
|
144 | + 'SLL' => __('Sierra Leonean Leone', 'invoicing'), |
|
145 | + 'SOS' => __('Somali Shilling', 'invoicing'), |
|
146 | + 'SRD' => __('Surinamese Dollar', 'invoicing'), |
|
147 | + 'SSP' => __('South Sudanese Pound', 'invoicing'), |
|
148 | + 'STD' => __('Sao Tomean Dobra', 'invoicing'), |
|
149 | + 'SYP' => __('Syrian Pound', 'invoicing'), |
|
150 | + 'SZL' => __('Swazi Lilangeni', 'invoicing'), |
|
151 | + 'THB' => __('Thai Baht', 'invoicing'), |
|
152 | + 'TJS' => __('Tajikistani Somoni', 'invoicing'), |
|
153 | + 'TMT' => __('Turkmenistan Manat', 'invoicing'), |
|
154 | + 'TND' => __('Tunisian Dinar', 'invoicing'), |
|
155 | + 'TOP' => __('Tongan Paʻanga', 'invoicing'), |
|
156 | + 'TRY' => __('Turkish Lira', 'invoicing'), |
|
157 | + 'TTD' => __('Trinidad and Tobago Dollar', 'invoicing'), |
|
158 | + 'TWD' => __('New Taiwan Dollar', 'invoicing'), |
|
159 | + 'TZS' => __('Tanzanian Shilling', 'invoicing'), |
|
160 | + 'UAH' => __('Ukrainian Hryvnia', 'invoicing'), |
|
161 | + 'UGX' => __('Ugandan Shilling', 'invoicing'), |
|
162 | + 'UYU' => __('Uruguayan Peso', 'invoicing'), |
|
163 | + 'UZS' => __('Uzbekistani Som', 'invoicing'), |
|
164 | + 'VEF' => __('Venezuelan Bolívar', 'invoicing'), |
|
165 | + 'VND' => __('Vietnamese Dong', 'invoicing'), |
|
166 | + 'VUV' => __('Vanuatu Vatu', 'invoicing'), |
|
167 | + 'WST' => __('Samoan Tala', 'invoicing'), |
|
168 | + 'XAF' => __('Central African CFA Franc', 'invoicing'), |
|
169 | + 'XCD' => __('East Caribbean Dollar', 'invoicing'), |
|
170 | + 'XOF' => __('West African CFA Franc', 'invoicing'), |
|
171 | + 'XPF' => __('CFP Franc', 'invoicing'), |
|
172 | + 'YER' => __('Yemeni Rial', 'invoicing'), |
|
173 | + 'ZAR' => __('South African Rand', 'invoicing'), |
|
174 | + 'ZMW' => __('Zambian Kwacha', 'invoicing'), |
|
175 | 175 | ); |
@@ -13,240 +13,240 @@ |
||
13 | 13 | |
14 | 14 | return array( |
15 | 15 | |
16 | - 'id' => array( |
|
17 | - 'description' => __( 'Unique identifier for the item.', 'invoicing' ), |
|
18 | - 'type' => 'integer', |
|
19 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
20 | - 'readonly' => true, |
|
21 | - ), |
|
22 | - |
|
23 | - 'parent_id' => array( |
|
24 | - 'description' => __( 'Parent item ID.', 'invoicing' ), |
|
25 | - 'type' => 'integer', |
|
26 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
27 | - 'default' => 0, |
|
28 | - ), |
|
29 | - |
|
30 | - 'status' => array( |
|
31 | - 'description' => __( 'A named status for the item.', 'invoicing' ), |
|
32 | - 'type' => 'string', |
|
33 | - 'enum' => array( 'draft', 'pending', 'publish' ), |
|
34 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
35 | - 'default' => 'draft', |
|
36 | - ), |
|
37 | - |
|
38 | - 'version' => array( |
|
39 | - 'description' => __( 'Plugin version when the item was created.', 'invoicing' ), |
|
40 | - 'type' => 'string', |
|
41 | - 'context' => array( 'view', 'edit' ), |
|
42 | - 'readonly' => true, |
|
43 | - ), |
|
44 | - |
|
45 | - 'date_created' => array( |
|
46 | - 'description' => __( "The date the item was created, in the site's timezone.", 'invoicing' ), |
|
47 | - 'type' => 'string', |
|
48 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
49 | - ), |
|
50 | - |
|
51 | - 'date_created_gmt' => array( |
|
52 | - 'description' => __( 'The GMT date the item was created.', 'invoicing' ), |
|
53 | - 'type' => 'string', |
|
54 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
55 | - 'readonly' => true, |
|
56 | - ), |
|
57 | - |
|
58 | - 'date_modified' => array( |
|
59 | - 'description' => __( "The date the item was last modified, in the site's timezone.", 'invoicing' ), |
|
60 | - 'type' => 'string', |
|
61 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
62 | - 'readonly' => true, |
|
63 | - ), |
|
64 | - |
|
65 | - 'date_modified_gmt' => array( |
|
66 | - 'description' => __( 'The GMT date the item was last modified.', 'invoicing' ), |
|
67 | - 'type' => 'string', |
|
68 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
69 | - 'readonly' => true, |
|
70 | - ), |
|
71 | - |
|
72 | - 'name' => array( |
|
73 | - 'description' => __( "The item's name.", 'invoicing' ), |
|
74 | - 'type' => 'string', |
|
75 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
76 | - 'required' => true, |
|
77 | - ), |
|
78 | - |
|
79 | - 'description' => array( |
|
80 | - 'description' => __( "The item's description.", 'invoicing' ), |
|
81 | - 'type' => 'string', |
|
82 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
83 | - ), |
|
84 | - |
|
85 | - 'owner' => array( |
|
86 | - 'description' => __( 'The owner of the item (user id).', 'invoicing' ), |
|
87 | - 'type' => 'integer', |
|
88 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
89 | - ), |
|
90 | - |
|
91 | - 'price' => array( |
|
92 | - 'description' => __( 'The price of the item.', 'invoicing' ), |
|
93 | - 'type' => 'number', |
|
94 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
95 | - 'required' => true, |
|
96 | - ), |
|
97 | - |
|
98 | - 'the_price' => array( |
|
99 | - 'description' => __( 'The formatted price of the item.', 'invoicing' ), |
|
100 | - 'type' => 'string', |
|
101 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
102 | - 'readonly' => true, |
|
103 | - ), |
|
104 | - |
|
105 | - 'type' => array( |
|
106 | - 'description' => __( 'The item type.', 'invoicing' ), |
|
107 | - 'type' => 'string', |
|
108 | - 'enum' => wpinv_item_types(), |
|
109 | - 'default' => 'custom', |
|
110 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
111 | - ), |
|
112 | - |
|
113 | - 'vat_rule' => array( |
|
114 | - 'description' => __( 'VAT rule applied to the item.', 'invoicing' ), |
|
115 | - 'type' => 'string', |
|
116 | - 'enum' => array_keys( getpaid_tax()->get_rules() ), |
|
117 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
118 | - ), |
|
119 | - |
|
120 | - 'vat_class' => array( |
|
121 | - 'description' => __( 'VAT class for the item.', 'invoicing' ), |
|
122 | - 'type' => 'string', |
|
123 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
124 | - 'enum' => array_keys( getpaid_tax()->get_vat_groups() ), |
|
125 | - ), |
|
126 | - |
|
127 | - 'custom_id' => array( |
|
128 | - 'description' => __( 'Custom id for the item.', 'invoicing' ), |
|
129 | - 'type' => 'string', |
|
130 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
131 | - ), |
|
16 | + 'id' => array( |
|
17 | + 'description' => __( 'Unique identifier for the item.', 'invoicing' ), |
|
18 | + 'type' => 'integer', |
|
19 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
20 | + 'readonly' => true, |
|
21 | + ), |
|
22 | + |
|
23 | + 'parent_id' => array( |
|
24 | + 'description' => __( 'Parent item ID.', 'invoicing' ), |
|
25 | + 'type' => 'integer', |
|
26 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
27 | + 'default' => 0, |
|
28 | + ), |
|
29 | + |
|
30 | + 'status' => array( |
|
31 | + 'description' => __( 'A named status for the item.', 'invoicing' ), |
|
32 | + 'type' => 'string', |
|
33 | + 'enum' => array( 'draft', 'pending', 'publish' ), |
|
34 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
35 | + 'default' => 'draft', |
|
36 | + ), |
|
37 | + |
|
38 | + 'version' => array( |
|
39 | + 'description' => __( 'Plugin version when the item was created.', 'invoicing' ), |
|
40 | + 'type' => 'string', |
|
41 | + 'context' => array( 'view', 'edit' ), |
|
42 | + 'readonly' => true, |
|
43 | + ), |
|
44 | + |
|
45 | + 'date_created' => array( |
|
46 | + 'description' => __( "The date the item was created, in the site's timezone.", 'invoicing' ), |
|
47 | + 'type' => 'string', |
|
48 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
49 | + ), |
|
50 | + |
|
51 | + 'date_created_gmt' => array( |
|
52 | + 'description' => __( 'The GMT date the item was created.', 'invoicing' ), |
|
53 | + 'type' => 'string', |
|
54 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
55 | + 'readonly' => true, |
|
56 | + ), |
|
57 | + |
|
58 | + 'date_modified' => array( |
|
59 | + 'description' => __( "The date the item was last modified, in the site's timezone.", 'invoicing' ), |
|
60 | + 'type' => 'string', |
|
61 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
62 | + 'readonly' => true, |
|
63 | + ), |
|
64 | + |
|
65 | + 'date_modified_gmt' => array( |
|
66 | + 'description' => __( 'The GMT date the item was last modified.', 'invoicing' ), |
|
67 | + 'type' => 'string', |
|
68 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
69 | + 'readonly' => true, |
|
70 | + ), |
|
71 | + |
|
72 | + 'name' => array( |
|
73 | + 'description' => __( "The item's name.", 'invoicing' ), |
|
74 | + 'type' => 'string', |
|
75 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
76 | + 'required' => true, |
|
77 | + ), |
|
78 | + |
|
79 | + 'description' => array( |
|
80 | + 'description' => __( "The item's description.", 'invoicing' ), |
|
81 | + 'type' => 'string', |
|
82 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
83 | + ), |
|
84 | + |
|
85 | + 'owner' => array( |
|
86 | + 'description' => __( 'The owner of the item (user id).', 'invoicing' ), |
|
87 | + 'type' => 'integer', |
|
88 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
89 | + ), |
|
90 | + |
|
91 | + 'price' => array( |
|
92 | + 'description' => __( 'The price of the item.', 'invoicing' ), |
|
93 | + 'type' => 'number', |
|
94 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
95 | + 'required' => true, |
|
96 | + ), |
|
97 | + |
|
98 | + 'the_price' => array( |
|
99 | + 'description' => __( 'The formatted price of the item.', 'invoicing' ), |
|
100 | + 'type' => 'string', |
|
101 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
102 | + 'readonly' => true, |
|
103 | + ), |
|
104 | + |
|
105 | + 'type' => array( |
|
106 | + 'description' => __( 'The item type.', 'invoicing' ), |
|
107 | + 'type' => 'string', |
|
108 | + 'enum' => wpinv_item_types(), |
|
109 | + 'default' => 'custom', |
|
110 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
111 | + ), |
|
112 | + |
|
113 | + 'vat_rule' => array( |
|
114 | + 'description' => __( 'VAT rule applied to the item.', 'invoicing' ), |
|
115 | + 'type' => 'string', |
|
116 | + 'enum' => array_keys( getpaid_tax()->get_rules() ), |
|
117 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
118 | + ), |
|
119 | + |
|
120 | + 'vat_class' => array( |
|
121 | + 'description' => __( 'VAT class for the item.', 'invoicing' ), |
|
122 | + 'type' => 'string', |
|
123 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
124 | + 'enum' => array_keys( getpaid_tax()->get_vat_groups() ), |
|
125 | + ), |
|
126 | + |
|
127 | + 'custom_id' => array( |
|
128 | + 'description' => __( 'Custom id for the item.', 'invoicing' ), |
|
129 | + 'type' => 'string', |
|
130 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
131 | + ), |
|
132 | 132 | |
133 | - 'custom_name' => array( |
|
134 | - 'description' => __( 'Custom name for the item.', 'invoicing' ), |
|
135 | - 'type' => 'string', |
|
136 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
137 | - ), |
|
138 | - |
|
139 | - 'custom_singular_name' => array( |
|
140 | - 'description' => __( 'Custom singular name for the item.', 'invoicing' ), |
|
141 | - 'type' => 'string', |
|
142 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
143 | - ), |
|
144 | - |
|
145 | - 'is_editable' => array( |
|
146 | - 'description' => __( 'Whether or not the item is editable.', 'invoicing' ), |
|
147 | - 'type' => 'integer', |
|
148 | - 'enum' => array( 0, 1 ), |
|
149 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
150 | - ), |
|
151 | - |
|
152 | - 'is_dynamic_pricing' => array( |
|
153 | - 'description' => __( 'Whether or not customers can enter their own prices when checking out.', 'invoicing' ), |
|
154 | - 'type' => 'integer', |
|
155 | - 'enum' => array( 0, 1 ), |
|
156 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
157 | - ), |
|
158 | - |
|
159 | - 'minimum_price' => array( |
|
160 | - 'description' => __( 'For dynamic prices, this is the minimum price that a user can set.', 'invoicing' ), |
|
161 | - 'type' => 'number', |
|
162 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
163 | - ), |
|
164 | - |
|
165 | - 'is_recurring' => array( |
|
166 | - 'description' => __( 'Whether or not this is a subscription item.', 'invoicing' ), |
|
167 | - 'type' => 'integer', |
|
168 | - 'enum' => array( 0, 1 ), |
|
169 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
170 | - ), |
|
171 | - |
|
172 | - 'initial_price' => array( |
|
173 | - 'description' => __( 'The initial price of the item.', 'invoicing' ), |
|
174 | - 'type' => 'number', |
|
175 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
176 | - 'readonly' => true, |
|
177 | - ), |
|
178 | - |
|
179 | - 'the_initial_price' => array( |
|
180 | - 'description' => __( 'The formatted initial price of the item.', 'invoicing' ), |
|
181 | - 'type' => 'string', |
|
182 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
183 | - 'readonly' => true, |
|
184 | - ), |
|
185 | - |
|
186 | - 'recurring_price' => array( |
|
187 | - 'description' => __( 'The recurring price of the item.', 'invoicing' ), |
|
188 | - 'type' => 'number', |
|
189 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
190 | - 'readonly' => true, |
|
191 | - ), |
|
192 | - |
|
193 | - 'the_recurring_price' => array( |
|
194 | - 'description' => __( 'The formatted recurring price of the item.', 'invoicing' ), |
|
195 | - 'type' => 'string', |
|
196 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
197 | - 'readonly' => true, |
|
198 | - ), |
|
199 | - |
|
200 | - 'recurring_period' => array( |
|
201 | - 'description' => __( 'The recurring period for a recurring item.', 'invoicing' ), |
|
202 | - 'type' => 'string', |
|
203 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
204 | - 'enum' => array( 'D', 'W', 'M', 'Y' ), |
|
205 | - ), |
|
206 | - |
|
207 | - 'recurring_interval' => array( |
|
208 | - 'description' => __( 'The recurring interval for a subscription item.', 'invoicing' ), |
|
209 | - 'type' => 'integer', |
|
210 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
211 | - ), |
|
212 | - |
|
213 | - 'recurring_limit' => array( |
|
214 | - 'description' => __( 'The maximum number of renewals for a subscription item.', 'invoicing' ), |
|
215 | - 'type' => 'integer', |
|
216 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
217 | - ), |
|
218 | - |
|
219 | - 'is_free_trial' => array( |
|
220 | - 'description' => __( 'Whether the item has a free trial period.', 'invoicing' ), |
|
221 | - 'type' => 'integer', |
|
222 | - 'enum' => array( 0, 1 ), |
|
223 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
224 | - ), |
|
225 | - |
|
226 | - 'trial_period' => array( |
|
227 | - 'description' => __( 'The trial period.', 'invoicing' ), |
|
228 | - 'type' => 'string', |
|
229 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
230 | - 'enum' => array( 'D', 'W', 'M', 'Y' ), |
|
231 | - ), |
|
232 | - |
|
233 | - 'trial_interval' => array( |
|
234 | - 'description' => __( 'The trial interval.', 'invoicing' ), |
|
235 | - 'type' => 'integer', |
|
236 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
237 | - ), |
|
238 | - |
|
239 | - 'first_renewal_date' => array( |
|
240 | - 'description' => __( 'The first renewal date in case the item was to be bought today.', 'invoicing' ), |
|
241 | - 'type' => 'string', |
|
242 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
243 | - 'readonly' => true, |
|
244 | - ), |
|
245 | - |
|
246 | - 'edit_url' => array( |
|
247 | - 'description' => __( 'The URL to edit an item.', 'invoicing' ), |
|
248 | - 'type' => 'string', |
|
249 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
250 | - 'readonly' => true, |
|
251 | - ), |
|
133 | + 'custom_name' => array( |
|
134 | + 'description' => __( 'Custom name for the item.', 'invoicing' ), |
|
135 | + 'type' => 'string', |
|
136 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
137 | + ), |
|
138 | + |
|
139 | + 'custom_singular_name' => array( |
|
140 | + 'description' => __( 'Custom singular name for the item.', 'invoicing' ), |
|
141 | + 'type' => 'string', |
|
142 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
143 | + ), |
|
144 | + |
|
145 | + 'is_editable' => array( |
|
146 | + 'description' => __( 'Whether or not the item is editable.', 'invoicing' ), |
|
147 | + 'type' => 'integer', |
|
148 | + 'enum' => array( 0, 1 ), |
|
149 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
150 | + ), |
|
151 | + |
|
152 | + 'is_dynamic_pricing' => array( |
|
153 | + 'description' => __( 'Whether or not customers can enter their own prices when checking out.', 'invoicing' ), |
|
154 | + 'type' => 'integer', |
|
155 | + 'enum' => array( 0, 1 ), |
|
156 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
157 | + ), |
|
158 | + |
|
159 | + 'minimum_price' => array( |
|
160 | + 'description' => __( 'For dynamic prices, this is the minimum price that a user can set.', 'invoicing' ), |
|
161 | + 'type' => 'number', |
|
162 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
163 | + ), |
|
164 | + |
|
165 | + 'is_recurring' => array( |
|
166 | + 'description' => __( 'Whether or not this is a subscription item.', 'invoicing' ), |
|
167 | + 'type' => 'integer', |
|
168 | + 'enum' => array( 0, 1 ), |
|
169 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
170 | + ), |
|
171 | + |
|
172 | + 'initial_price' => array( |
|
173 | + 'description' => __( 'The initial price of the item.', 'invoicing' ), |
|
174 | + 'type' => 'number', |
|
175 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
176 | + 'readonly' => true, |
|
177 | + ), |
|
178 | + |
|
179 | + 'the_initial_price' => array( |
|
180 | + 'description' => __( 'The formatted initial price of the item.', 'invoicing' ), |
|
181 | + 'type' => 'string', |
|
182 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
183 | + 'readonly' => true, |
|
184 | + ), |
|
185 | + |
|
186 | + 'recurring_price' => array( |
|
187 | + 'description' => __( 'The recurring price of the item.', 'invoicing' ), |
|
188 | + 'type' => 'number', |
|
189 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
190 | + 'readonly' => true, |
|
191 | + ), |
|
192 | + |
|
193 | + 'the_recurring_price' => array( |
|
194 | + 'description' => __( 'The formatted recurring price of the item.', 'invoicing' ), |
|
195 | + 'type' => 'string', |
|
196 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
197 | + 'readonly' => true, |
|
198 | + ), |
|
199 | + |
|
200 | + 'recurring_period' => array( |
|
201 | + 'description' => __( 'The recurring period for a recurring item.', 'invoicing' ), |
|
202 | + 'type' => 'string', |
|
203 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
204 | + 'enum' => array( 'D', 'W', 'M', 'Y' ), |
|
205 | + ), |
|
206 | + |
|
207 | + 'recurring_interval' => array( |
|
208 | + 'description' => __( 'The recurring interval for a subscription item.', 'invoicing' ), |
|
209 | + 'type' => 'integer', |
|
210 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
211 | + ), |
|
212 | + |
|
213 | + 'recurring_limit' => array( |
|
214 | + 'description' => __( 'The maximum number of renewals for a subscription item.', 'invoicing' ), |
|
215 | + 'type' => 'integer', |
|
216 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
217 | + ), |
|
218 | + |
|
219 | + 'is_free_trial' => array( |
|
220 | + 'description' => __( 'Whether the item has a free trial period.', 'invoicing' ), |
|
221 | + 'type' => 'integer', |
|
222 | + 'enum' => array( 0, 1 ), |
|
223 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
224 | + ), |
|
225 | + |
|
226 | + 'trial_period' => array( |
|
227 | + 'description' => __( 'The trial period.', 'invoicing' ), |
|
228 | + 'type' => 'string', |
|
229 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
230 | + 'enum' => array( 'D', 'W', 'M', 'Y' ), |
|
231 | + ), |
|
232 | + |
|
233 | + 'trial_interval' => array( |
|
234 | + 'description' => __( 'The trial interval.', 'invoicing' ), |
|
235 | + 'type' => 'integer', |
|
236 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
237 | + ), |
|
238 | + |
|
239 | + 'first_renewal_date' => array( |
|
240 | + 'description' => __( 'The first renewal date in case the item was to be bought today.', 'invoicing' ), |
|
241 | + 'type' => 'string', |
|
242 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
243 | + 'readonly' => true, |
|
244 | + ), |
|
245 | + |
|
246 | + 'edit_url' => array( |
|
247 | + 'description' => __( 'The URL to edit an item.', 'invoicing' ), |
|
248 | + 'type' => 'string', |
|
249 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
250 | + 'readonly' => true, |
|
251 | + ), |
|
252 | 252 | ); |
@@ -9,244 +9,244 @@ |
||
9 | 9 | * @version 1.0.19 |
10 | 10 | */ |
11 | 11 | |
12 | -defined( 'ABSPATH' ) || exit; |
|
12 | +defined('ABSPATH') || exit; |
|
13 | 13 | |
14 | 14 | return array( |
15 | 15 | |
16 | 16 | 'id' => array( |
17 | - 'description' => __( 'Unique identifier for the item.', 'invoicing' ), |
|
17 | + 'description' => __('Unique identifier for the item.', 'invoicing'), |
|
18 | 18 | 'type' => 'integer', |
19 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
19 | + 'context' => array('view', 'edit', 'embed'), |
|
20 | 20 | 'readonly' => true, |
21 | 21 | ), |
22 | 22 | |
23 | 23 | 'parent_id' => array( |
24 | - 'description' => __( 'Parent item ID.', 'invoicing' ), |
|
24 | + 'description' => __('Parent item ID.', 'invoicing'), |
|
25 | 25 | 'type' => 'integer', |
26 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
26 | + 'context' => array('view', 'edit', 'embed'), |
|
27 | 27 | 'default' => 0, |
28 | 28 | ), |
29 | 29 | |
30 | 30 | 'status' => array( |
31 | - 'description' => __( 'A named status for the item.', 'invoicing' ), |
|
31 | + 'description' => __('A named status for the item.', 'invoicing'), |
|
32 | 32 | 'type' => 'string', |
33 | - 'enum' => array( 'draft', 'pending', 'publish' ), |
|
34 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
33 | + 'enum' => array('draft', 'pending', 'publish'), |
|
34 | + 'context' => array('view', 'edit', 'embed'), |
|
35 | 35 | 'default' => 'draft', |
36 | 36 | ), |
37 | 37 | |
38 | 38 | 'version' => array( |
39 | - 'description' => __( 'Plugin version when the item was created.', 'invoicing' ), |
|
39 | + 'description' => __('Plugin version when the item was created.', 'invoicing'), |
|
40 | 40 | 'type' => 'string', |
41 | - 'context' => array( 'view', 'edit' ), |
|
41 | + 'context' => array('view', 'edit'), |
|
42 | 42 | 'readonly' => true, |
43 | 43 | ), |
44 | 44 | |
45 | 45 | 'date_created' => array( |
46 | - 'description' => __( "The date the item was created, in the site's timezone.", 'invoicing' ), |
|
46 | + 'description' => __("The date the item was created, in the site's timezone.", 'invoicing'), |
|
47 | 47 | 'type' => 'string', |
48 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
48 | + 'context' => array('view', 'edit', 'embed'), |
|
49 | 49 | ), |
50 | 50 | |
51 | 51 | 'date_created_gmt' => array( |
52 | - 'description' => __( 'The GMT date the item was created.', 'invoicing' ), |
|
52 | + 'description' => __('The GMT date the item was created.', 'invoicing'), |
|
53 | 53 | 'type' => 'string', |
54 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
54 | + 'context' => array('view', 'edit', 'embed'), |
|
55 | 55 | 'readonly' => true, |
56 | 56 | ), |
57 | 57 | |
58 | 58 | 'date_modified' => array( |
59 | - 'description' => __( "The date the item was last modified, in the site's timezone.", 'invoicing' ), |
|
59 | + 'description' => __("The date the item was last modified, in the site's timezone.", 'invoicing'), |
|
60 | 60 | 'type' => 'string', |
61 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
61 | + 'context' => array('view', 'edit', 'embed'), |
|
62 | 62 | 'readonly' => true, |
63 | 63 | ), |
64 | 64 | |
65 | 65 | 'date_modified_gmt' => array( |
66 | - 'description' => __( 'The GMT date the item was last modified.', 'invoicing' ), |
|
66 | + 'description' => __('The GMT date the item was last modified.', 'invoicing'), |
|
67 | 67 | 'type' => 'string', |
68 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
68 | + 'context' => array('view', 'edit', 'embed'), |
|
69 | 69 | 'readonly' => true, |
70 | 70 | ), |
71 | 71 | |
72 | 72 | 'name' => array( |
73 | - 'description' => __( "The item's name.", 'invoicing' ), |
|
73 | + 'description' => __("The item's name.", 'invoicing'), |
|
74 | 74 | 'type' => 'string', |
75 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
75 | + 'context' => array('view', 'edit', 'embed'), |
|
76 | 76 | 'required' => true, |
77 | 77 | ), |
78 | 78 | |
79 | 79 | 'description' => array( |
80 | - 'description' => __( "The item's description.", 'invoicing' ), |
|
80 | + 'description' => __("The item's description.", 'invoicing'), |
|
81 | 81 | 'type' => 'string', |
82 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
82 | + 'context' => array('view', 'edit', 'embed'), |
|
83 | 83 | ), |
84 | 84 | |
85 | 85 | 'owner' => array( |
86 | - 'description' => __( 'The owner of the item (user id).', 'invoicing' ), |
|
86 | + 'description' => __('The owner of the item (user id).', 'invoicing'), |
|
87 | 87 | 'type' => 'integer', |
88 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
88 | + 'context' => array('view', 'edit', 'embed'), |
|
89 | 89 | ), |
90 | 90 | |
91 | 91 | 'price' => array( |
92 | - 'description' => __( 'The price of the item.', 'invoicing' ), |
|
92 | + 'description' => __('The price of the item.', 'invoicing'), |
|
93 | 93 | 'type' => 'number', |
94 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
94 | + 'context' => array('view', 'edit', 'embed'), |
|
95 | 95 | 'required' => true, |
96 | 96 | ), |
97 | 97 | |
98 | 98 | 'the_price' => array( |
99 | - 'description' => __( 'The formatted price of the item.', 'invoicing' ), |
|
99 | + 'description' => __('The formatted price of the item.', 'invoicing'), |
|
100 | 100 | 'type' => 'string', |
101 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
101 | + 'context' => array('view', 'edit', 'embed'), |
|
102 | 102 | 'readonly' => true, |
103 | 103 | ), |
104 | 104 | |
105 | 105 | 'type' => array( |
106 | - 'description' => __( 'The item type.', 'invoicing' ), |
|
106 | + 'description' => __('The item type.', 'invoicing'), |
|
107 | 107 | 'type' => 'string', |
108 | 108 | 'enum' => wpinv_item_types(), |
109 | 109 | 'default' => 'custom', |
110 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
110 | + 'context' => array('view', 'edit', 'embed'), |
|
111 | 111 | ), |
112 | 112 | |
113 | 113 | 'vat_rule' => array( |
114 | - 'description' => __( 'VAT rule applied to the item.', 'invoicing' ), |
|
114 | + 'description' => __('VAT rule applied to the item.', 'invoicing'), |
|
115 | 115 | 'type' => 'string', |
116 | - 'enum' => array_keys( getpaid_tax()->get_rules() ), |
|
117 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
116 | + 'enum' => array_keys(getpaid_tax()->get_rules()), |
|
117 | + 'context' => array('view', 'edit', 'embed'), |
|
118 | 118 | ), |
119 | 119 | |
120 | 120 | 'vat_class' => array( |
121 | - 'description' => __( 'VAT class for the item.', 'invoicing' ), |
|
121 | + 'description' => __('VAT class for the item.', 'invoicing'), |
|
122 | 122 | 'type' => 'string', |
123 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
124 | - 'enum' => array_keys( getpaid_tax()->get_vat_groups() ), |
|
123 | + 'context' => array('view', 'edit', 'embed'), |
|
124 | + 'enum' => array_keys(getpaid_tax()->get_vat_groups()), |
|
125 | 125 | ), |
126 | 126 | |
127 | 127 | 'custom_id' => array( |
128 | - 'description' => __( 'Custom id for the item.', 'invoicing' ), |
|
128 | + 'description' => __('Custom id for the item.', 'invoicing'), |
|
129 | 129 | 'type' => 'string', |
130 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
130 | + 'context' => array('view', 'edit', 'embed'), |
|
131 | 131 | ), |
132 | 132 | |
133 | 133 | 'custom_name' => array( |
134 | - 'description' => __( 'Custom name for the item.', 'invoicing' ), |
|
134 | + 'description' => __('Custom name for the item.', 'invoicing'), |
|
135 | 135 | 'type' => 'string', |
136 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
136 | + 'context' => array('view', 'edit', 'embed'), |
|
137 | 137 | ), |
138 | 138 | |
139 | 139 | 'custom_singular_name' => array( |
140 | - 'description' => __( 'Custom singular name for the item.', 'invoicing' ), |
|
140 | + 'description' => __('Custom singular name for the item.', 'invoicing'), |
|
141 | 141 | 'type' => 'string', |
142 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
142 | + 'context' => array('view', 'edit', 'embed'), |
|
143 | 143 | ), |
144 | 144 | |
145 | 145 | 'is_editable' => array( |
146 | - 'description' => __( 'Whether or not the item is editable.', 'invoicing' ), |
|
146 | + 'description' => __('Whether or not the item is editable.', 'invoicing'), |
|
147 | 147 | 'type' => 'integer', |
148 | - 'enum' => array( 0, 1 ), |
|
149 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
148 | + 'enum' => array(0, 1), |
|
149 | + 'context' => array('view', 'edit', 'embed'), |
|
150 | 150 | ), |
151 | 151 | |
152 | 152 | 'is_dynamic_pricing' => array( |
153 | - 'description' => __( 'Whether or not customers can enter their own prices when checking out.', 'invoicing' ), |
|
153 | + 'description' => __('Whether or not customers can enter their own prices when checking out.', 'invoicing'), |
|
154 | 154 | 'type' => 'integer', |
155 | - 'enum' => array( 0, 1 ), |
|
156 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
155 | + 'enum' => array(0, 1), |
|
156 | + 'context' => array('view', 'edit', 'embed'), |
|
157 | 157 | ), |
158 | 158 | |
159 | 159 | 'minimum_price' => array( |
160 | - 'description' => __( 'For dynamic prices, this is the minimum price that a user can set.', 'invoicing' ), |
|
160 | + 'description' => __('For dynamic prices, this is the minimum price that a user can set.', 'invoicing'), |
|
161 | 161 | 'type' => 'number', |
162 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
162 | + 'context' => array('view', 'edit', 'embed'), |
|
163 | 163 | ), |
164 | 164 | |
165 | 165 | 'is_recurring' => array( |
166 | - 'description' => __( 'Whether or not this is a subscription item.', 'invoicing' ), |
|
166 | + 'description' => __('Whether or not this is a subscription item.', 'invoicing'), |
|
167 | 167 | 'type' => 'integer', |
168 | - 'enum' => array( 0, 1 ), |
|
169 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
168 | + 'enum' => array(0, 1), |
|
169 | + 'context' => array('view', 'edit', 'embed'), |
|
170 | 170 | ), |
171 | 171 | |
172 | 172 | 'initial_price' => array( |
173 | - 'description' => __( 'The initial price of the item.', 'invoicing' ), |
|
173 | + 'description' => __('The initial price of the item.', 'invoicing'), |
|
174 | 174 | 'type' => 'number', |
175 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
175 | + 'context' => array('view', 'edit', 'embed'), |
|
176 | 176 | 'readonly' => true, |
177 | 177 | ), |
178 | 178 | |
179 | 179 | 'the_initial_price' => array( |
180 | - 'description' => __( 'The formatted initial price of the item.', 'invoicing' ), |
|
180 | + 'description' => __('The formatted initial price of the item.', 'invoicing'), |
|
181 | 181 | 'type' => 'string', |
182 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
182 | + 'context' => array('view', 'edit', 'embed'), |
|
183 | 183 | 'readonly' => true, |
184 | 184 | ), |
185 | 185 | |
186 | 186 | 'recurring_price' => array( |
187 | - 'description' => __( 'The recurring price of the item.', 'invoicing' ), |
|
187 | + 'description' => __('The recurring price of the item.', 'invoicing'), |
|
188 | 188 | 'type' => 'number', |
189 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
189 | + 'context' => array('view', 'edit', 'embed'), |
|
190 | 190 | 'readonly' => true, |
191 | 191 | ), |
192 | 192 | |
193 | 193 | 'the_recurring_price' => array( |
194 | - 'description' => __( 'The formatted recurring price of the item.', 'invoicing' ), |
|
194 | + 'description' => __('The formatted recurring price of the item.', 'invoicing'), |
|
195 | 195 | 'type' => 'string', |
196 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
196 | + 'context' => array('view', 'edit', 'embed'), |
|
197 | 197 | 'readonly' => true, |
198 | 198 | ), |
199 | 199 | |
200 | 200 | 'recurring_period' => array( |
201 | - 'description' => __( 'The recurring period for a recurring item.', 'invoicing' ), |
|
201 | + 'description' => __('The recurring period for a recurring item.', 'invoicing'), |
|
202 | 202 | 'type' => 'string', |
203 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
204 | - 'enum' => array( 'D', 'W', 'M', 'Y' ), |
|
203 | + 'context' => array('view', 'edit', 'embed'), |
|
204 | + 'enum' => array('D', 'W', 'M', 'Y'), |
|
205 | 205 | ), |
206 | 206 | |
207 | 207 | 'recurring_interval' => array( |
208 | - 'description' => __( 'The recurring interval for a subscription item.', 'invoicing' ), |
|
208 | + 'description' => __('The recurring interval for a subscription item.', 'invoicing'), |
|
209 | 209 | 'type' => 'integer', |
210 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
210 | + 'context' => array('view', 'edit', 'embed'), |
|
211 | 211 | ), |
212 | 212 | |
213 | 213 | 'recurring_limit' => array( |
214 | - 'description' => __( 'The maximum number of renewals for a subscription item.', 'invoicing' ), |
|
214 | + 'description' => __('The maximum number of renewals for a subscription item.', 'invoicing'), |
|
215 | 215 | 'type' => 'integer', |
216 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
216 | + 'context' => array('view', 'edit', 'embed'), |
|
217 | 217 | ), |
218 | 218 | |
219 | 219 | 'is_free_trial' => array( |
220 | - 'description' => __( 'Whether the item has a free trial period.', 'invoicing' ), |
|
220 | + 'description' => __('Whether the item has a free trial period.', 'invoicing'), |
|
221 | 221 | 'type' => 'integer', |
222 | - 'enum' => array( 0, 1 ), |
|
223 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
222 | + 'enum' => array(0, 1), |
|
223 | + 'context' => array('view', 'edit', 'embed'), |
|
224 | 224 | ), |
225 | 225 | |
226 | 226 | 'trial_period' => array( |
227 | - 'description' => __( 'The trial period.', 'invoicing' ), |
|
227 | + 'description' => __('The trial period.', 'invoicing'), |
|
228 | 228 | 'type' => 'string', |
229 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
230 | - 'enum' => array( 'D', 'W', 'M', 'Y' ), |
|
229 | + 'context' => array('view', 'edit', 'embed'), |
|
230 | + 'enum' => array('D', 'W', 'M', 'Y'), |
|
231 | 231 | ), |
232 | 232 | |
233 | 233 | 'trial_interval' => array( |
234 | - 'description' => __( 'The trial interval.', 'invoicing' ), |
|
234 | + 'description' => __('The trial interval.', 'invoicing'), |
|
235 | 235 | 'type' => 'integer', |
236 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
236 | + 'context' => array('view', 'edit', 'embed'), |
|
237 | 237 | ), |
238 | 238 | |
239 | 239 | 'first_renewal_date' => array( |
240 | - 'description' => __( 'The first renewal date in case the item was to be bought today.', 'invoicing' ), |
|
240 | + 'description' => __('The first renewal date in case the item was to be bought today.', 'invoicing'), |
|
241 | 241 | 'type' => 'string', |
242 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
242 | + 'context' => array('view', 'edit', 'embed'), |
|
243 | 243 | 'readonly' => true, |
244 | 244 | ), |
245 | 245 | |
246 | 246 | 'edit_url' => array( |
247 | - 'description' => __( 'The URL to edit an item.', 'invoicing' ), |
|
247 | + 'description' => __('The URL to edit an item.', 'invoicing'), |
|
248 | 248 | 'type' => 'string', |
249 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
249 | + 'context' => array('view', 'edit', 'embed'), |
|
250 | 250 | 'readonly' => true, |
251 | 251 | ), |
252 | 252 | ); |