diff --git a/admin-spa/src/routes/Settings/Shipping.tsx b/admin-spa/src/routes/Settings/Shipping.tsx index c3e3d50..9cd7b3b 100644 --- a/admin-spa/src/routes/Settings/Shipping.tsx +++ b/admin-spa/src/routes/Settings/Shipping.tsx @@ -502,53 +502,137 @@ export default function ShippingPage() { {__('Add Delivery Option')} - {/* Delivery Options List */} -
+ {/* Delivery Options Accordion (Mobile) */} + { + setExpandedMethod(value); + if (value) { + const instanceId = parseInt(value); + fetchMethodSettings(instanceId); + } + }}> {selectedZone.rates?.map((rate: any) => ( -
-
-
-
+ +
+ +
- +
+
+
+ + + {rate.enabled ? __('On') : __('Off')} + +
+
-
- - - {rate.enabled ? __('On') : __('Off')} - -
-
-
- - -
+
+
-
+ + {methodSettings[rate.instance_id] ? ( +
+
+ + +
+ + {methodSettings[rate.instance_id].settings?.cost && ( +
+ + + {methodSettings[rate.instance_id].settings.cost.description && ( +

+ )} +

+ )} + + {methodSettings[rate.instance_id].settings?.min_amount && ( +
+ + +
+ )} + +
+ + +
+
+ ) : ( +
+ +
+ )} +
+ ))} -
+
diff --git a/includes/Api/ShippingController.php b/includes/Api/ShippingController.php index d44f4cb..873dca1 100644 --- a/includes/Api/ShippingController.php +++ b/includes/Api/ShippingController.php @@ -398,10 +398,21 @@ class ShippingController extends WP_REST_Controller { $methods = $shipping->get_shipping_methods(); $available = array(); + $seen_titles = array(); + foreach ( $methods as $method ) { + $title = $method->get_method_title(); + $id = $method->id; + + // Deduplicate by adding ID suffix if title already exists + if ( isset( $seen_titles[ $title ] ) ) { + $title .= ' (' . $id . ')'; + } + $seen_titles[ $title ] = true; + $available[] = array( - 'id' => $method->id, - 'title' => $method->get_method_title(), + 'id' => $id, + 'title' => $title, 'description' => $method->get_method_description(), ); }