fix: Mobile accordion + deduplicate shipping methods

Fixes:
 Issue #2: Mobile drawer now uses accordion (no nested modals)
 Issue #3: Duplicate "Local pickup" - now shows as:
   - Local pickup
   - Local pickup (local_pickup_plus)

Changes:
- Mobile drawer matches desktop accordion pattern
- Smaller text/spacing for mobile
- Deduplication logic in backend API
- Adds method ID suffix for duplicate titles

Result:
 No modal-over-modal on any device
 Consistent UX desktop/mobile
 Clear distinction between similar methods
This commit is contained in:
dwindown
2025-11-09 20:58:49 +07:00
parent 31f1a9dae1
commit e00719e41b
2 changed files with 139 additions and 44 deletions

View File

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