|
4 | 4 | * Plugin Name: Content API |
5 | 5 | * Plugin URI: https://www.polyplugins.com/contact/ |
6 | 6 | * Description: Adds various endpoints to create content |
7 | | - * Version: 1.0.5 |
| 7 | + * Version: 1.0.6 |
8 | 8 | * Requires at least: 6.5 |
9 | 9 | * Requires PHP: 7.4 |
10 | 10 | * Author: Poly Plugins |
@@ -423,6 +423,7 @@ public function get_product(WP_REST_Request $request) { |
423 | 423 | $map_price = $product->get_meta('_map_price'); |
424 | 424 | $cost = $product->get_meta('_cost'); |
425 | 425 | $sku = $product->get_sku(); |
| 426 | + $upc = $product->get_meta('_global_unique_id'); |
426 | 427 | $stock_status = $product->get_stock_status(); |
427 | 428 | $stock_quantity = $product->get_stock_quantity(); |
428 | 429 | $tags = wp_get_post_terms($product->get_id(), 'product_tag', array('fields' => 'names')); |
@@ -457,6 +458,7 @@ public function get_product(WP_REST_Request $request) { |
457 | 458 | 'map_price' => $map_price ? floatval($map_price) : '', |
458 | 459 | 'cost' => $cost ? floatval($cost) : '', |
459 | 460 | 'sku' => $sku ? sanitize_text_field($sku) : '', |
| 461 | + 'upc' => $upc ? sanitize_text_field($upc) : '', |
460 | 462 | 'stock_status' => $stock_status ? sanitize_text_field($product->get_stock_status()) : '', |
461 | 463 | 'stock_quantity' => $stock_quantity ? absint($product->get_stock_quantity()) : 0, |
462 | 464 | 'tags' => $tags ? array_map('sanitize_text_field', $tags) : array(), |
@@ -489,6 +491,7 @@ public function update_product(WP_REST_Request $request) { |
489 | 491 | $map_price = isset($fields['map_price']) ? floatval($fields['map_price']) : ''; |
490 | 492 | $cost = isset($fields['cost']) ? floatval($fields['cost']) : ''; |
491 | 493 | $sku = isset($fields['sku']) ? sanitize_text_field($fields['sku']) : ''; |
| 494 | + $upc = isset($fields['upc']) ? sanitize_text_field($fields['upc']) : ''; |
492 | 495 | $stock_status = isset($fields['stock_status']) ? sanitize_text_field($fields['stock_status']) : ''; |
493 | 496 | $stock_quantity = isset($fields['stock_quantity']) ? intval($fields['stock_quantity']) : ''; |
494 | 497 | $tags = isset($fields['tags']) && is_array($fields['tags']) ? array_map('sanitize_text_field', $fields['tags']) : array(); |
@@ -588,6 +591,14 @@ public function update_product(WP_REST_Request $request) { |
588 | 591 | $product->set_sku($sku); |
589 | 592 | } |
590 | 593 |
|
| 594 | + if ($upc) { |
| 595 | + if (!preg_match('/^[0-9\-]+$/', $upc)) { |
| 596 | + return new WP_Error('upc_malformed', 'UPC must contain only numbers and hyphens', array('status' => 500)); |
| 597 | + } |
| 598 | + |
| 599 | + $product->update_meta_data('_global_unique_id', $upc); |
| 600 | + } |
| 601 | + |
591 | 602 | if ($stock_status) { |
592 | 603 | $product->set_stock_status($stock_status); |
593 | 604 | } |
@@ -702,6 +713,7 @@ public function create_product(WP_REST_Request $request) { |
702 | 713 | $map_price = isset($fields['map_price']) ? floatval($fields['map_price']) : ''; |
703 | 714 | $cost = isset($fields['cost']) ? floatval($fields['cost']) : ''; |
704 | 715 | $sku = isset($fields['sku']) ? sanitize_text_field($fields['sku']) : ''; |
| 716 | + $upc = isset($fields['upc']) ? sanitize_text_field($fields['upc']) : ''; |
705 | 717 | $stock_status = isset($fields['stock_status']) ? sanitize_text_field($fields['stock_status']) : ''; |
706 | 718 | $stock_quantity = isset($fields['stock_quantity']) ? intval($fields['stock_quantity']) : ''; |
707 | 719 | $tags = isset($fields['tags']) && is_array($fields['tags']) ? array_map('sanitize_text_field', $fields['tags']) : array(); |
@@ -773,6 +785,14 @@ public function create_product(WP_REST_Request $request) { |
773 | 785 | $product->set_sku($sku); |
774 | 786 | } |
775 | 787 |
|
| 788 | + if ($upc) { |
| 789 | + if (!preg_match('/^[0-9\-]+$/', $upc)) { |
| 790 | + return new WP_Error('upc_malformed', 'UPC must contain only numbers and hyphens', array('status' => 500)); |
| 791 | + } |
| 792 | + |
| 793 | + $product->update_meta_data('_global_unique_id', $upc); |
| 794 | + } |
| 795 | + |
776 | 796 | if ($stock_status) { |
777 | 797 | $product->set_stock_status($stock_status); |
778 | 798 | } |
|
0 commit comments