feat: Move customer registration to site-level setting
Moved 'Register as site member' from order-level to site-level setting Frontend Changes: 1. Customer Settings - Added new General section - Auto-register customers as site members toggle - Clear description of functionality - Saved to backend via existing API 2. OrderForm - Removed checkbox - Removed registerAsMember state - Removed checkbox UI - Removed register_as_member from payload - Backend now uses site setting Backend Changes: 1. CustomerSettingsProvider.php - Added auto_register_members setting - Default: false (no) - Stored as woonoow_auto_register_members option - Included in get_settings() - Handled in update_settings() 2. OrdersController.php - Removed register_as_member parameter - Now reads from CustomerSettingsProvider - Site-level setting applies to all orders - Consistent behavior across all order creation Benefits: ✅ Site-level control (not per-order) ✅ Consistent customer experience ✅ Easier to manage (one setting) ✅ No UI clutter in order form ✅ Setting persists across all orders Migration: - Old orders with checkbox: No impact - New orders: Use site setting - Default: Disabled (safe default) Result: Admins can now control customer registration site-wide from Customer Settings instead of per-order checkbox
This commit is contained in:
@@ -18,6 +18,9 @@ class CustomerSettingsProvider {
|
||||
*/
|
||||
public static function get_settings() {
|
||||
return [
|
||||
// General
|
||||
'auto_register_members' => get_option('woonoow_auto_register_members', 'no') === 'yes',
|
||||
|
||||
// VIP Customer Qualification
|
||||
'vip_min_spent' => floatval(get_option('woonoow_vip_min_spent', 1000)),
|
||||
'vip_min_orders' => intval(get_option('woonoow_vip_min_orders', 10)),
|
||||
@@ -36,6 +39,11 @@ class CustomerSettingsProvider {
|
||||
public static function update_settings($settings) {
|
||||
$updated = true;
|
||||
|
||||
// General settings
|
||||
if (isset($settings['auto_register_members'])) {
|
||||
$updated = $updated && update_option('woonoow_auto_register_members', $settings['auto_register_members'] ? 'yes' : 'no');
|
||||
}
|
||||
|
||||
// VIP settings
|
||||
if (isset($settings['vip_min_spent'])) {
|
||||
$updated = $updated && update_option('woonoow_vip_min_spent', floatval($settings['vip_min_spent']));
|
||||
|
||||
Reference in New Issue
Block a user