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(),
);
}