' . esc_html__('Logs cleared.', 'aiutoma') . '
';
} elseif (isset($_POST['aiutoma_wpml_context_submit'])) {
$context = isset($_POST['aiutoma_wpml_context']) ? sanitize_textarea_field(wp_unslash($_POST['aiutoma_wpml_context'])) : '';
update_option('aiutoma_wpml_context', $context);
echo '' . esc_html__('Context & Glossary saved.', 'aiutoma') . '
';
} else {
$model = isset($_POST['aiutoma_wpml_model']) ? sanitize_text_field(wp_unslash($_POST['aiutoma_wpml_model'])) : '';
update_option('aiutoma_wpml_model', $model);
update_option('aiutoma_wpml_auto_fallback', isset($_POST['aiutoma_wpml_auto_fallback']) ? 1 : 0);
$fallback_models = isset($_POST['aiutoma_wpml_fallback_models']) && is_array($_POST['aiutoma_wpml_fallback_models'])
? array_map('sanitize_text_field', wp_unslash($_POST['aiutoma_wpml_fallback_models'])) : [];
update_option('aiutoma_wpml_fallback_models', $fallback_models);
echo '' . esc_html__('Settings saved.', 'aiutoma') . '
';
}
}
}
public function render_context_tab()
{
$saved_context = get_option('aiutoma_wpml_context', '');
?>
findModelsMetadataForSupport($requirements);
foreach ($providerModels as $providerMetadata) {
$providerName = $providerMetadata->getProvider()->getName();
foreach ($providerMetadata->getModels() as $modelMeta) {
$id = $modelMeta->getId();
$modelName = $modelMeta->getName() ?: $id;
$providerId = $providerMetadata->getProvider()->getId();
if (stripos($id, 'dall-e') !== false || stripos($id, 'midjourney') !== false) continue;
$models[$providerId . '|' . $id] = '[' . $providerName . '] ' . $modelName;
}
}
}
$selected_model = get_option('aiutoma_wpml_model', '');
$auto_fallback = get_option('aiutoma_wpml_auto_fallback', 0);
$saved_fallback_models = get_option('aiutoma_wpml_fallback_models', []);
?>