fix: multiple checkout and settings fixes
1. Remove wishlist setting from customer settings (now in module toggle) - Removed from CustomerSettingsProvider.php - Removed from Customers.tsx 2. Remove auto-login from REST API (causes cookie issues) - Auto-login in REST context doesn't properly set browser cookies - Removed wp_set_current_user/wp_set_auth_cookie calls 3. Fix cart not clearing after order - Added WC()->cart->empty_cart() after successful order - Server-side cart was not being cleared, causing re-population - Frontend clears local store but Cart page syncs with server
This commit is contained in:
@@ -13,7 +13,6 @@ import { formatMoney, getStoreCurrency } from '@/lib/currency';
|
||||
interface CustomerSettings {
|
||||
auto_register_members: boolean;
|
||||
multiple_addresses_enabled: boolean;
|
||||
wishlist_enabled: boolean;
|
||||
vip_min_spent: number;
|
||||
vip_min_orders: number;
|
||||
vip_timeframe: 'all' | '30' | '90' | '365';
|
||||
@@ -25,7 +24,6 @@ export default function CustomersSettings() {
|
||||
const [settings, setSettings] = useState<CustomerSettings>({
|
||||
auto_register_members: false,
|
||||
multiple_addresses_enabled: true,
|
||||
wishlist_enabled: true,
|
||||
vip_min_spent: 1000,
|
||||
vip_min_orders: 10,
|
||||
vip_timeframe: 'all',
|
||||
@@ -131,7 +129,7 @@ export default function CustomersSettings() {
|
||||
checked={settings.auto_register_members}
|
||||
onCheckedChange={(checked) => setSettings({ ...settings, auto_register_members: checked })}
|
||||
/>
|
||||
|
||||
|
||||
<ToggleField
|
||||
id="multiple_addresses_enabled"
|
||||
label={__('Enable multiple saved addresses')}
|
||||
@@ -139,14 +137,8 @@ export default function CustomersSettings() {
|
||||
checked={settings.multiple_addresses_enabled}
|
||||
onCheckedChange={(checked) => setSettings({ ...settings, multiple_addresses_enabled: checked })}
|
||||
/>
|
||||
|
||||
<ToggleField
|
||||
id="wishlist_enabled"
|
||||
label={__('Enable wishlist')}
|
||||
description={__('Allow customers to save products to their wishlist for later purchase. Customers can add products to wishlist from product cards and manage them in their account.')}
|
||||
checked={settings.wishlist_enabled}
|
||||
onCheckedChange={(checked) => setSettings({ ...settings, wishlist_enabled: checked })}
|
||||
/>
|
||||
|
||||
|
||||
</div>
|
||||
</SettingsCard>
|
||||
|
||||
|
||||
@@ -313,10 +313,6 @@ class CheckoutController {
|
||||
|
||||
// Send new account email (WooCommerce will handle this automatically via hook)
|
||||
do_action('woocommerce_created_customer', $new_user_id, $userdata, $password);
|
||||
|
||||
// Auto-login the newly registered user for smoother UX
|
||||
wp_set_current_user($new_user_id);
|
||||
wp_set_auth_cookie($new_user_id, true); // true = remember me
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -398,6 +394,12 @@ class CheckoutController {
|
||||
header('Server-Timing: app;dur=' . round((microtime(true) - $__t0) * 1000, 1));
|
||||
}
|
||||
|
||||
// Clear WooCommerce cart after successful order placement
|
||||
// This ensures the cart page won't re-populate from server session
|
||||
if (function_exists('WC') && WC()->cart) {
|
||||
WC()->cart->empty_cart();
|
||||
}
|
||||
|
||||
return [
|
||||
'ok' => true,
|
||||
'order_id' => $order->get_id(),
|
||||
|
||||
@@ -21,7 +21,6 @@ class CustomerSettingsProvider {
|
||||
// General
|
||||
'auto_register_members' => get_option('woonoow_auto_register_members', 'no') === 'yes',
|
||||
'multiple_addresses_enabled' => get_option('woonoow_multiple_addresses_enabled', 'yes') === 'yes',
|
||||
'wishlist_enabled' => get_option('woonoow_wishlist_enabled', 'yes') === 'yes',
|
||||
|
||||
// VIP Customer Qualification
|
||||
'vip_min_spent' => floatval(get_option('woonoow_vip_min_spent', 1000)),
|
||||
@@ -50,10 +49,7 @@ class CustomerSettingsProvider {
|
||||
update_option('woonoow_multiple_addresses_enabled', $value);
|
||||
}
|
||||
|
||||
if (array_key_exists('wishlist_enabled', $settings)) {
|
||||
$value = !empty($settings['wishlist_enabled']) ? 'yes' : 'no';
|
||||
update_option('woonoow_wishlist_enabled', $value);
|
||||
}
|
||||
|
||||
|
||||
// VIP settings
|
||||
if (isset($settings['vip_min_spent'])) {
|
||||
|
||||
Reference in New Issue
Block a user