'','title_link'=>'','display_pc'=>1,'display_mobile'=>1,'sticky'=>0,'animation'=>'none','background'=>'surface','dark_background'=>'surface']; } function aksrt_widget_common_normalize(array $instance): array { if (class_exists('\\AKSRT\\Widgets\\CommonWidgetFields')) return \AKSRT\Widgets\CommonWidgetFields::normalize($instance); $d = aksrt_widget_common_defaults(); $out = $instance; $out['subtitle'] = sanitize_text_field((string)($instance['subtitle'] ?? $d['subtitle'])); $out['title_link'] = esc_url_raw((string)($instance['title_link'] ?? '')); foreach (['display_pc','display_mobile','sticky'] as $key) $out[$key] = !empty($instance[$key]) ? 1 : 0; $out['animation'] = in_array(($a = sanitize_key((string)($instance['animation'] ?? 'none'))), ['none','fade','slide'], true) ? $a : 'none'; $out['background'] = in_array(($b = sanitize_key((string)($instance['background'] ?? 'surface'))), ['surface','transparent','primary'], true) ? $b : 'surface'; $out['dark_background'] = in_array(($db = sanitize_key((string)($instance['dark_background'] ?? 'surface'))), ['surface','transparent','primary'], true) ? $db : 'surface'; return $out; } function aksrt_widget_common_form(WP_Widget $widget, array $instance): void { $v = aksrt_widget_common_normalize($instance); $field = static function(string $key) use ($widget): string { return esc_attr($widget->get_field_name($key)); }; echo '
'; echo ''; echo ''; echo ''; } add_filter('widget_update_callback', static function($instance, $new_instance, $old_instance, $widget) { return is_array($instance) ? aksrt_widget_common_normalize($instance) : $instance; }, 10, 4); add_action('in_widget_form', static function(WP_Widget $widget, &$return, array $instance): void { aksrt_widget_common_form($widget, $instance); }, 20, 3);