get_body(); if ( empty( $request_body ) ) { return; } $body = json_decode( $request_body, true ); $button_settings = ButtonService::get_settings(); $is_generate_colors_setting_on = $button_settings['auto_generate_colors'] ?? true; if ( $is_generate_colors_setting_on ) { $this->handle_generate_button_settings( $body['styles'] ); } $is_reset_button_colors = empty( $body['styles']['elements']['button']['color'] ); if ( $is_reset_button_colors ) { $this->handle_reset_button_settings(); } } private function handle_generate_button_settings( $global_styles ) { $button_settings = ButtonService::get_settings(); $update_settings = $button_settings; $is_primary_background_changed = isset( $global_styles['elements']['button']['color']['background'] ) && $global_styles['elements']['button']['color']['background'] !== $button_settings['global_primary_background_color']; if ( $is_primary_background_changed ) { $update_settings['global_primary_background_color'] = $global_styles['elements']['button']['color']['background']; $background_color = $global_styles['elements']['button']['color']['background']; $generated_hover_background_color = Helpers::generate_hover_color( $background_color ); if ( ! empty( $generated_hover_background_color ) ) { $update_settings['primary_hover_background_color'] = $generated_hover_background_color; } $generated_shadow_color = Helpers::generate_shadow_color( $background_color ); if ( ! empty( $generated_hover_background_color ) ) { $generated_shadow_hover_color = Helpers::generate_shadow_color( $generated_hover_background_color, 0.3 ); } if ( ! empty( $generated_shadow_color ) ) { $update_settings['primary_box_shadow'] = array( 'custom_value' => array( 'color' => $generated_shadow_color, ), ); } if ( ! empty( $generated_shadow_hover_color ) ) { $update_settings['primary_hover_box_shadow'] = array( 'custom_value' => array( 'color' => $generated_shadow_hover_color, ), ); } } if ( ! empty( $update_settings ) ) { ButtonService::save_settings( $update_settings ); } } private function handle_reset_button_settings() { $button_settings = ButtonService::get_default_settings(); $current_niche = brandy_current_niche(); $niche_data = NicheLoader::get_instance()->get_niche( $current_niche ); if ( ! empty( $niche_data ) ) { $niche_button_settings = $niche_data['template']['button'] ?? array(); if ( ! empty( $niche_button_settings ) ) { $button_settings = Helpers::recursive_wp_parse_args( $niche_button_settings, $button_settings ); } } ButtonService::save_settings( $button_settings ); } } SiteEditor::get_instance();