PluginProbe
StoreEngine — Complete eCommerce Solution with Memberships, Licensing, Affiliates & More / 2.2.0
StoreEngine — Complete eCommerce Solution with Memberships, Licensing, Affiliates & More v2.2.0
2.3.0 2.2.0 2.1.1 2.1.0 2.0.0 1.10.0 1.9.1 1.9.0 1.2.1 1.2.2 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 All 59 releases
storeengine / includes / api / schema / order-schema.php

order-schema.php in StoreEngine — Complete eCommerce Solution with Memberships, Licensing, Affiliates & More 2.2.0, at includes/api/schema/order-schema.php

484 lines 15.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace StoreEngine\API\Schema;
4
5 if ( ! defined( 'ABSPATH' ) ) {
6 exit;
7 }
8
9 trait OrderSchema {
10
11 protected function address_schema(): array {
12 return [
13 'type' => 'object',
14 'properties' => [
15 'first_name' => [
16 'type' => 'string',
17 'sanitize_callback' => 'sanitize_text_field',
18 'validate_callback' => 'rest_validate_request_arg',
19 ],
20 'last_name' => [
21 'type' => 'string',
22 'sanitize_callback' => 'sanitize_text_field',
23 'validate_callback' => 'rest_validate_request_arg',
24 ],
25 'company' => [
26 'type' => 'string',
27 'sanitize_callback' => 'sanitize_text_field',
28 'validate_callback' => 'rest_validate_request_arg',
29 ],
30 'address_1' => [
31 'type' => 'string',
32 'sanitize_callback' => 'sanitize_text_field',
33 'validate_callback' => 'rest_validate_request_arg',
34 ],
35 'address_2' => [
36 'type' => 'string',
37 'sanitize_callback' => 'sanitize_text_field',
38 'validate_callback' => 'rest_validate_request_arg',
39 ],
40 'city' => [
41 'type' => 'string',
42 'sanitize_callback' => 'sanitize_text_field',
43 'validate_callback' => 'rest_validate_request_arg',
44 ],
45 'state' => [
46 'type' => 'string',
47 'sanitize_callback' => 'sanitize_text_field',
48 'validate_callback' => 'rest_validate_request_arg',
49 ],
50 'postcode' => [
51 'type' => 'string',
52 'sanitize_callback' => 'sanitize_text_field',
53 'validate_callback' => 'rest_validate_request_arg',
54 ],
55 'country' => [
56 'type' => 'string',
57 'sanitize_callback' => 'sanitize_text_field',
58 'validate_callback' => 'rest_validate_request_arg',
59 ],
60 'email' => [
61 'type' => 'string',
62 'sanitize_callback' => 'sanitize_email',
63 'validate_callback' => 'rest_validate_request_arg',
64 ],
65 'phone' => [
66 'type' => 'string',
67 'sanitize_callback' => 'sanitize_text_field',
68 'validate_callback' => 'rest_validate_request_arg',
69 ],
70 ],
71 ];
72 }
73
74 public function get_public_item_schema() {
75 $schema = [
76 '$schema' => 'http://json-schema.org/draft-04/schema#',
77 'title' => 'order',
78 'type' => 'object',
79 'properties' => [
80 'id' => [
81 'type' => 'integer',
82 'sanitize_callback' => 'absint',
83 'validate_callback' => 'rest_validate_request_arg',
84 ],
85 'status' => [
86 'type' => 'string',
87 'sanitize_callback' => 'sanitize_text_field',
88 'validate_callback' => 'rest_validate_request_arg',
89 ],
90 'currency' => [
91 'type' => 'string',
92 'sanitize_callback' => 'sanitize_text_field',
93 'validate_callback' => 'rest_validate_request_arg',
94 ],
95 'type' => [
96 'type' => 'string',
97 'sanitize_callback' => 'sanitize_text_field',
98 'validate_callback' => 'rest_validate_request_arg',
99 ],
100 'tax_amount' => [
101 'type' => 'number',
102 'validate_callback' => 'rest_validate_request_arg',
103 ],
104 'coupons' => [
105 'type' => 'object',
106 'properties' => [
107 'code' => [
108 'type' => 'string',
109 'sanitize_callback' => 'sanitize_text_field',
110 ],
111 'amount' => [
112 'type' => 'float',
113 'sanitize_callback' => 'sanitize_text_field',
114 ],
115 ],
116 ],
117 'refunds_total' => [
118 'type' => 'number',
119 'validate_callback' => 'rest_validate_request_arg',
120 ],
121 'can_refund' => [
122 'type' => 'boolean',
123 'validate_callback' => 'rest_validate_request_arg',
124 ],
125 'gateway_can_refund_order' => [
126 'type' => 'boolean',
127 'validate_callback' => 'rest_validate_request_arg',
128 ],
129 'gateway_name' => [
130 'type' => 'string',
131 'sanitize_callback' => 'sanitize_text_field',
132 ],
133 'total_amount' => [
134 'type' => 'number',
135 'validate_callback' => 'rest_validate_request_arg',
136 ],
137 'customer_id' => [
138 'type' => 'integer',
139 'sanitize_callback' => 'absint',
140 'validate_callback' => 'rest_validate_request_arg',
141 ],
142 'customer_email' => [
143 'type' => 'string',
144 'sanitize_callback' => 'sanitize_email',
145 'validate_callback' => 'is_email',
146 ],
147 'customer_name' => [
148 'type' => 'string',
149 'sanitize_callback' => 'sanitize_text_field',
150 'validate_callback' => 'rest_validate_request_arg',
151 ],
152 'billing_email' => [
153 'type' => 'string',
154 'sanitize_callback' => 'sanitize_email',
155 'validate_callback' => 'rest_validate_request_arg',
156 ],
157 'date_created_gmt' => [
158 'type' => 'string',
159 'format' => 'date-time',
160 'sanitize_callback' => 'sanitize_text_field',
161 ],
162 'order_placed_date_gmt' => [
163 'type' => 'string',
164 'format' => 'date-time',
165 'sanitize_callback' => 'sanitize_text_field',
166 ],
167 'order_placed_date' => [
168 'type' => 'string',
169 'format' => 'date-time',
170 'sanitize_callback' => 'sanitize_text_field',
171 ],
172 'payment_method' => [
173 'type' => 'string',
174 'sanitize_callback' => 'sanitize_text_field',
175 'validate_callback' => 'rest_validate_request_arg',
176 ],
177 'payment_method_title' => [
178 'type' => 'string',
179 'sanitize_callback' => 'sanitize_text_field',
180 'validate_callback' => 'rest_validate_request_arg',
181 ],
182 'transaction_id' => [
183 'type' => 'string',
184 'sanitize_callback' => 'sanitize_text_field',
185 'validate_callback' => 'rest_validate_request_arg',
186 ],
187 'customer_note' => [
188 'type' => 'string',
189 'sanitize_callback' => 'sanitize_text_field',
190 'validate_callback' => 'rest_validate_request_arg',
191 ],
192 'meta' => [
193 'type' => 'object',
194 'properties' => [
195 'url' => [
196 'type' => 'string',
197 'sanitize_callback' => 'sanitize_text_field',
198 ],
199 ],
200 ],
201 'purchase_items' => [
202 'type' => 'object',
203 'properties' => [
204 'product_id' => [
205 'type' => 'integer',
206 'sanitize_callback' => 'absint',
207 'validate_callback' => 'rest_validate_request_arg',
208 ],
209 'variation_id' => [
210 'type' => 'integer',
211 'sanitize_callback' => 'absint',
212 'validate_callback' => 'rest_validate_request_arg',
213 ],
214 'product_type' => [
215 'type' => 'string',
216 'sanitize_callback' => 'sanitize_text_field',
217 'validate_callback' => 'rest_validate_request_arg',
218 ],
219 'metadata' => [
220 'type' => 'object',
221 'properties' => [
222 'key' => [
223 'type' => 'string',
224 'sanitize_callback' => 'sanitize_text_field',
225 'validate_callback' => 'rest_validate_request_arg',
226 ],
227 'value' => [
228 'type' => 'string',
229 'sanitize_callback' => 'sanitize_text_field',
230 'validate_callback' => 'rest_validate_request_arg',
231 ],
232 'display_key' => [
233 'type' => 'string',
234 'sanitize_callback' => 'sanitize_text_field',
235 'validate_callback' => 'rest_validate_request_arg',
236 ],
237 'display_value' => [
238 'type' => 'string',
239 'sanitize_callback' => 'sanitize_text_field',
240 'validate_callback' => 'rest_validate_request_arg',
241 ],
242 ],
243 ],
244 'product_qty' => [
245 'type' => 'integer',
246 'sanitize_callback' => 'absint',
247 'validate_callback' => 'rest_validate_request_arg',
248 ],
249 'coupon_amount' => [
250 'type' => 'integer',
251 'sanitize_callback' => 'absint',
252 'validate_callback' => 'rest_validate_request_arg',
253 ],
254 'tax_amount' => [
255 'type' => 'integer',
256 'sanitize_callback' => 'absint',
257 'validate_callback' => 'rest_validate_request_arg',
258 ],
259 'shipping_amount' => [
260 'type' => 'integer',
261 'sanitize_callback' => 'absint',
262 'validate_callback' => 'rest_validate_request_arg',
263 ],
264 'shipping_tax_amount' => [
265 'type' => 'integer',
266 'sanitize_callback' => 'absint',
267 'validate_callback' => 'rest_validate_request_arg',
268 ],
269 ],
270 ],
271 'refunds' => [
272 'type' => 'object',
273 'properties' => [
274 'id' => [
275 'type' => 'integer',
276 'sanitize_callback' => 'absint',
277 'validate_callback' => 'rest_validate_request_arg',
278 ],
279 'amount' => [
280 'type' => 'integer',
281 'sanitize_callback' => 'absint',
282 ],
283 'refund_by' => [
284 'type' => 'object',
285 'properties' => [
286 'user_id' => [
287 'type' => 'integer',
288 'sanitize_callback' => 'absint',
289 ],
290 'name' => [
291 'type' => 'string',
292 'sanitize_callback' => 'sanitize_text_field',
293 ],
294 'display_name' => [
295 'type' => 'string',
296 'sanitize_callback' => 'sanitize_text_field',
297 ],
298 ],
299 ],
300 'created_at' => [
301 'type' => 'string',
302 'sanitize_callback' => 'sanitize_text_field',
303 ],
304 ],
305 ],
306 'billing_address' => $this->address_schema(),
307 'shipping_address' => $this->address_schema(),
308 ],
309 ];
310
311 return apply_filters( 'storeengine/api/order/public_item_schema', $schema );
312 }
313
314 public function get_post_item_schema() {
315 $schema = [
316 'customer_id' => [
317 'type' => 'integer',
318 'validate_callback' => 'rest_validate_request_arg',
319 ],
320 'billing_address' => $this->address_schema(),
321 'shipping_address' => $this->address_schema(),
322 'purchase_items' => [
323 'type' => 'object',
324 'properties' => [
325 'product_id' => [
326 'type' => 'integer',
327 'validate_callback' => 'rest_validate_request_arg',
328 ],
329 'price_id' => [
330 'type' => 'integer',
331 'validate_callback' => 'rest_validate_request_arg',
332 ],
333 'variation_id' => [
334 'type' => 'integer',
335 'validate_callback' => 'rest_validate_request_arg',
336 ],
337 'product_qty' => [
338 'type' => 'integer',
339 'validate_callback' => 'rest_validate_request_arg',
340 ],
341 ],
342 ],
343 'payment_method' => [
344 'type' => 'string',
345 'sanitize_callback' => 'sanitize_text_field',
346 'validate_callback' => 'rest_validate_request_arg',
347 ],
348 'order_note' => [
349 'type' => 'string',
350 'sanitize_callback' => 'sanitize_text_field',
351 'validate_callback' => 'rest_validate_request_arg',
352 ],
353 'billing_email' => [
354 'type' => 'string',
355 'sanitize_callback' => 'sanitize_email',
356 'validate_callback' => 'rest_validate_request_arg',
357 ],
358 'status' => [
359 'type' => 'string',
360 'sanitize_callback' => 'sanitize_text_field',
361 'validate_callback' => 'rest_validate_request_arg',
362 ],
363 'coupon_code' => [
364 'type' => 'string',
365 'sanitize_callback' => 'sanitize_text_field',
366 'validate_callback' => 'rest_validate_request_arg',
367 ],
368 ];
369
370 return apply_filters( 'storeengine/api/order/item_schema', $schema );
371 }
372
373 public function get_item_schema(): array {
374 $this->schema = [
375 'status' => [
376 'type' => 'string',
377 'sanitize_callback' => 'sanitize_text_field',
378 'validate_callback' => 'rest_validate_request_arg',
379 ],
380 'currency' => [
381 'type' => 'string',
382 'sanitize_callback' => 'sanitize_text_field',
383 'validate_callback' => 'rest_validate_request_arg',
384 ],
385 'type' => [
386 'type' => 'string',
387 'sanitize_callback' => 'sanitize_text_field',
388 'validate_callback' => 'rest_validate_request_arg',
389 ],
390 'tax_amount' => [
391 'type' => 'number',
392 'validate_callback' => 'rest_validate_request_arg',
393 ],
394 'total_amount' => [
395 'type' => 'number',
396 'validate_callback' => 'rest_validate_request_arg',
397 ],
398 'customer_id' => [
399 'type' => 'integer',
400 'sanitize_callback' => 'absint',
401 'validate_callback' => 'rest_validate_request_arg',
402 ],
403 'billing_email' => [
404 'type' => 'string',
405 'sanitize_callback' => 'sanitize_email',
406 'validate_callback' => 'rest_validate_request_arg',
407 ],
408 'payment_method' => [
409 'type' => 'string',
410 'sanitize_callback' => 'sanitize_text_field',
411 'validate_callback' => 'rest_validate_request_arg',
412 ],
413 'payment_method_title' => [
414 'type' => 'string',
415 'sanitize_callback' => 'sanitize_text_field',
416 'validate_callback' => 'rest_validate_request_arg',
417 ],
418 'customer_note' => [
419 'type' => 'string',
420 'sanitize_callback' => 'sanitize_text_field',
421 'validate_callback' => 'rest_validate_request_arg',
422 ],
423 'transaction_id' => [
424 'type' => 'string',
425 'sanitize_callback' => 'sanitize_text_field',
426 'validate_callback' => 'rest_validate_request_arg',
427 ],
428 'meta' => [
429 'type' => 'object',
430 'properties' => [
431 'url' => [
432 'type' => 'string',
433 'sanitize_callback' => 'sanitize_text_field',
434 ],
435 ],
436 ],
437 'purchase_items' => [
438 'type' => 'object',
439 'properties' => [
440 'product_id' => [
441 'type' => 'integer',
442 'sanitize_callback' => 'absint',
443 'validate_callback' => 'rest_validate_request_arg',
444 ],
445 'variation_id' => [
446 'type' => 'integer',
447 'sanitize_callback' => 'absint',
448 'validate_callback' => 'rest_validate_request_arg',
449 ],
450 'product_qty' => [
451 'type' => 'integer',
452 'sanitize_callback' => 'absint',
453 'validate_callback' => 'rest_validate_request_arg',
454 ],
455 'coupon_amount' => [
456 'type' => 'integer',
457 'sanitize_callback' => 'absint',
458 'validate_callback' => 'rest_validate_request_arg',
459 ],
460 'tax_amount' => [
461 'type' => 'integer',
462 'sanitize_callback' => 'absint',
463 'validate_callback' => 'rest_validate_request_arg',
464 ],
465 'shipping_amount' => [
466 'type' => 'integer',
467 'sanitize_callback' => 'absint',
468 'validate_callback' => 'rest_validate_request_arg',
469 ],
470 'shipping_tax_amount' => [
471 'type' => 'integer',
472 'sanitize_callback' => 'absint',
473 'validate_callback' => 'rest_validate_request_arg',
474 ],
475 ],
476 ],
477 'billing_address' => $this->address_schema(),
478 'shipping_address' => $this->address_schema(),
479 ];
480
481 return $this->add_additional_fields_schema( $this->schema );
482 }
483 }
484