$tab], $base_url), 'aicont_switch_tab', 'aicont_tab_nonce'); }; // Generate nonce for form $tab_nonce = wp_create_nonce('aicont_switch_tab'); // Handle form submission and redirect manually if ( isset($_POST['aicont_dashboard_nonce']) && wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['aicont_dashboard_nonce'])), 'aicont_save_dashboard_settings') && isset($_POST['tab']) && isset($_POST['aicont_tab_nonce']) && wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['aicont_tab_nonce'])), 'aicont_switch_tab') ) { $tab = sanitize_text_field(wp_unslash($_POST['tab'])); if (in_array($tab, $valid_tabs, true)) { add_filter('wp_redirect', function($location) use ($tab) { return wp_nonce_url( add_query_arg([ 'page' => 'aicont-dashboard-settings', 'tab' => $tab, 'settings-updated' => 'true' ], admin_url('admin.php')), 'aicont_switch_tab', 'aicont_tab_nonce' ); }); } } ?>

'sanitize_text_field', 'default' => 'ready']); register_setting('aicont_plugin_settings_group', 'aicont_plugin_site_language', ['sanitize_callback' => 'sanitize_text_field', 'default' => 'en_US']); register_setting('aicont_plugin_settings_group', 'aicont_plugin_site_title', [ 'sanitize_callback' => function($value) { $value = sanitize_text_field($value); if (empty($value)) { add_settings_error('aicont_plugin_site_title', 'empty', esc_html__('Brand title cannot be empty.', 'aicontify'), 'error'); } return $value; }, 'default' => '' ]); // Prompt fields $prompt_fields = [ 'content_prompt_custom', 'content_page_prompt_custom', 'content_product_prompt_custom', 'short_description_prompt_custom', 'faq_prompt_custom', 'faq_page_prompt_custom', 'faq_product_prompt_custom', 'seo_title_prompt_custom', 'seo_page_title_prompt_custom', 'seo_product_title_prompt_custom', 'seo_meta_prompt_custom', 'seo_meta_page_prompt_custom', 'seo_meta_product_prompt_custom' ]; foreach ($prompt_fields as $field) { $option_name = "aicont_plugin_{$field}"; $callback = function($v) use ($validate_prompt, $option_name, $field) { if ($field === 'short_description_prompt_custom' && $v !== '') { if (strlen($v) > 300) { add_settings_error($option_name, 'too_long', esc_html__('Max 300 characters.', 'aicontify'), 'error'); } } return $validate_prompt($v, $option_name); }; register_setting('aicont_plugin_settings_group', $option_name, ['sanitize_callback' => $callback, 'default' => '']); } // ACF fields $acf_fields = [ 'faq_article_id', 'faq_question_id', 'faq_answer_id', 'faq_page_article_id', 'faq_page_question_id', 'faq_page_answer_id', 'faq_product_article_id', 'faq_product_question_id', 'faq_product_answer_id' ]; foreach ($acf_fields as $field) { register_setting('aicont_plugin_settings_group', "aicont_plugin_{$field}", ['sanitize_callback' => 'sanitize_text_field', 'default' => '']); } add_settings_section('aicont_plugin_main_settings', '', null, 'aicont_plugin_settings_group'); });