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