$index >= 0 && isset($addresses[$index]['id']) ? $addresses[$index]['id'] : uniqid('addr_'), 'name' => trim($_POST['name'] ?? ''), 'phone' => trim($_POST['phone'] ?? ''), 'address' => trim($_POST['address'] ?? ''), 'address2' => trim($_POST['address2'] ?? ''), 'city' => trim($_POST['city'] ?? ''), 'state' => trim($_POST['state'] ?? ''), 'zip' => trim($_POST['zip'] ?? ''), 'country' => trim($_POST['country'] ?? 'USA'), 'is_default' => isset($_POST['is_default']), ]; // Validate if (empty($address['name']) || empty($address['address']) || empty($address['city']) || empty($address['zip'])) { setFlash('error', 'Please fill in all required fields'); } else { // Handle default if ($address['is_default']) { foreach ($addresses as &$a) { $a['is_default'] = false; } } if ($index >= 0 && isset($addresses[$index])) { $addresses[$index] = $address; } else { $addresses[] = $address; } // Save db()->query( "UPDATE customers SET addresses = :addresses WHERE customer_id = :id", ['addresses' => json_encode($addresses), 'id' => $customer['customer_id']] ); setFlash('success', $action === 'add' ? 'Address added' : 'Address updated'); redirect('/account/addresses.php'); } } if ($action === 'delete') { $index = intval($_POST['index'] ?? -1); if ($index >= 0 && isset($addresses[$index])) { array_splice($addresses, $index, 1); db()->query( "UPDATE customers SET addresses = :addresses WHERE customer_id = :id", ['addresses' => json_encode($addresses), 'id' => $customer['customer_id']] ); setFlash('success', 'Address deleted'); } redirect('/account/addresses.php'); } if ($action === 'set_default') { $index = intval($_POST['index'] ?? -1); if ($index >= 0 && isset($addresses[$index])) { foreach ($addresses as $i => &$a) { $a['is_default'] = ($i === $index); } db()->query( "UPDATE customers SET addresses = :addresses WHERE customer_id = :id", ['addresses' => json_encode($addresses), 'id' => $customer['customer_id']] ); setFlash('success', 'Default address updated'); } redirect('/account/addresses.php'); } } $extraHead = ''; require_once __DIR__ . '/../includes/header.php'; require_once __DIR__ . '/includes/sidebar.php'; ?>

My Addresses

Manage your shipping and billing addresses

No addresses saved

Add an address for faster checkout.

$addr): ?>
Default

,