diff --git a/admin-spa/src/routes/Products/partials/tabs/VariationsTab.tsx b/admin-spa/src/routes/Products/partials/tabs/VariationsTab.tsx index 38b111c..c242967 100644 --- a/admin-spa/src/routes/Products/partials/tabs/VariationsTab.tsx +++ b/admin-spa/src/routes/Products/partials/tabs/VariationsTab.tsx @@ -136,8 +136,9 @@ export function VariationsTab({
{ + key={`options-${index}-${attr.options.length}`} + defaultValue={attr.options.join(', ')} + onBlur={(e) => { const input = e.target.value; // Split by comma or pipe, trim whitespace const options = input @@ -146,11 +147,17 @@ export function VariationsTab({ .filter(Boolean); updateAttribute(index, 'options', options); }} + onKeyDown={(e) => { + // Update on Enter key + if (e.key === 'Enter') { + e.currentTarget.blur(); + } + }} placeholder={__('Red, Blue, Green (comma or pipe separated)')} className="mt-1.5" />

- {__('Type naturally: Red, Blue, Green (comma or | works)')} + {__('Type naturally: Red, Blue, Green (press Enter or click away)')}

diff --git a/includes/Api/ProductsController.php b/includes/Api/ProductsController.php index 67d8b59..00c382a 100644 --- a/includes/Api/ProductsController.php +++ b/includes/Api/ProductsController.php @@ -28,56 +28,56 @@ class ProductsController { register_rest_route('woonoow/v1', '/products', [ 'methods' => 'GET', 'callback' => [__CLASS__, 'get_products'], - 'permission_callback' => [Permissions::class, 'check_admin'], + 'permission_callback' => [Permissions::class, 'check_admin_permission'], ]); // Get single product register_rest_route('woonoow/v1', '/products/(?P\d+)', [ 'methods' => 'GET', 'callback' => [__CLASS__, 'get_product'], - 'permission_callback' => [Permissions::class, 'check_admin'], + 'permission_callback' => [Permissions::class, 'check_admin_permission'], ]); // Create product register_rest_route('woonoow/v1', '/products', [ 'methods' => 'POST', 'callback' => [__CLASS__, 'create_product'], - 'permission_callback' => [Permissions::class, 'check_admin'], + 'permission_callback' => [Permissions::class, 'check_admin_permission'], ]); // Update product register_rest_route('woonoow/v1', '/products/(?P\d+)', [ 'methods' => 'PUT', 'callback' => [__CLASS__, 'update_product'], - 'permission_callback' => [Permissions::class, 'check_admin'], + 'permission_callback' => [Permissions::class, 'check_admin_permission'], ]); // Delete product register_rest_route('woonoow/v1', '/products/(?P\d+)', [ 'methods' => 'DELETE', 'callback' => [__CLASS__, 'delete_product'], - 'permission_callback' => [Permissions::class, 'check_admin'], + 'permission_callback' => [Permissions::class, 'check_admin_permission'], ]); // Get product categories register_rest_route('woonoow/v1', '/products/categories', [ 'methods' => 'GET', 'callback' => [__CLASS__, 'get_categories'], - 'permission_callback' => [Permissions::class, 'check_admin'], + 'permission_callback' => [Permissions::class, 'check_admin_permission'], ]); // Get product tags register_rest_route('woonoow/v1', '/products/tags', [ 'methods' => 'GET', 'callback' => [__CLASS__, 'get_tags'], - 'permission_callback' => [Permissions::class, 'check_admin'], + 'permission_callback' => [Permissions::class, 'check_admin_permission'], ]); // Get product attributes register_rest_route('woonoow/v1', '/products/attributes', [ 'methods' => 'GET', 'callback' => [__CLASS__, 'get_attributes'], - 'permission_callback' => [Permissions::class, 'check_admin'], + 'permission_callback' => [Permissions::class, 'check_admin_permission'], ]); }