feat: implement multiple saved addresses with modal selector in checkout
- Add AddressController with full CRUD API for saved addresses - Implement address management UI in My Account > Addresses - Add modal-based address selector in checkout (Tokopedia-style) - Hide checkout forms when saved address is selected - Add search functionality in address modal - Auto-select default addresses on page load - Fix variable products to show 'Select Options' instead of 'Add to Cart' - Add admin toggle for multiple addresses feature - Clean up debug logs and fix TypeScript errors
This commit is contained in:
@@ -12,6 +12,7 @@ import { formatMoney, getStoreCurrency } from '@/lib/currency';
|
||||
|
||||
interface CustomerSettings {
|
||||
auto_register_members: boolean;
|
||||
multiple_addresses_enabled: boolean;
|
||||
vip_min_spent: number;
|
||||
vip_min_orders: number;
|
||||
vip_timeframe: 'all' | '30' | '90' | '365';
|
||||
@@ -22,6 +23,7 @@ interface CustomerSettings {
|
||||
export default function CustomersSettings() {
|
||||
const [settings, setSettings] = useState<CustomerSettings>({
|
||||
auto_register_members: false,
|
||||
multiple_addresses_enabled: true,
|
||||
vip_min_spent: 1000,
|
||||
vip_min_orders: 10,
|
||||
vip_timeframe: 'all',
|
||||
@@ -119,13 +121,23 @@ export default function CustomersSettings() {
|
||||
title={__('General')}
|
||||
description={__('General customer settings')}
|
||||
>
|
||||
<ToggleField
|
||||
id="auto_register_members"
|
||||
label={__('Auto-register customers as site members')}
|
||||
description={__('Automatically create WordPress user accounts for new customers when orders are created. Customers will receive login credentials via email and can track their orders.')}
|
||||
checked={settings.auto_register_members}
|
||||
onCheckedChange={(checked) => setSettings({ ...settings, auto_register_members: checked })}
|
||||
/>
|
||||
<div className="space-y-6">
|
||||
<ToggleField
|
||||
id="auto_register_members"
|
||||
label={__('Auto-register customers as site members')}
|
||||
description={__('Automatically create WordPress user accounts for new customers when orders are created. Customers will receive login credentials via email and can track their orders.')}
|
||||
checked={settings.auto_register_members}
|
||||
onCheckedChange={(checked) => setSettings({ ...settings, auto_register_members: checked })}
|
||||
/>
|
||||
|
||||
<ToggleField
|
||||
id="multiple_addresses_enabled"
|
||||
label={__('Enable multiple saved addresses')}
|
||||
description={__('Allow customers to save multiple billing and shipping addresses in their account. Customers can select from saved addresses during checkout for faster ordering.')}
|
||||
checked={settings.multiple_addresses_enabled}
|
||||
onCheckedChange={(checked) => setSettings({ ...settings, multiple_addresses_enabled: checked })}
|
||||
/>
|
||||
</div>
|
||||
</SettingsCard>
|
||||
|
||||
<SettingsCard
|
||||
|
||||
Reference in New Issue
Block a user