From 5ed94f79d31578bfc78eb6ae376706e3636a1734 Mon Sep 17 00:00:00 2001 From: Roberto Guagliardo Date: Fri, 6 Feb 2026 18:47:21 +0000 Subject: [PATCH] chore: bump version to 1.10.0 and enhance model selection functionality --- groq-ai-product-text.php | 2 +- .../Admin/class-groq-ai-settings-page.php | 59 +++++++++++++++++-- 2 files changed, 56 insertions(+), 5 deletions(-) diff --git a/groq-ai-product-text.php b/groq-ai-product-text.php index 3f43061..ca25f91 100644 --- a/groq-ai-product-text.php +++ b/groq-ai-product-text.php @@ -2,7 +2,7 @@ /** * Plugin Name: SitiAI Product Teksten * Description: Genereer productteksten met diverse AI-aanbieders rechtstreeks vanuit WooCommerce. - * Version: 1.9.9 + * Version: 1.10.0 * Author: Roberto Guagliardo | SitiWeb * Author URI: https://sitiweb.nl/ * Text Domain: siti-ai-product-content-generator diff --git a/includes/Admin/class-groq-ai-settings-page.php b/includes/Admin/class-groq-ai-settings-page.php index 97c7a6b..d823e04 100644 --- a/includes/Admin/class-groq-ai-settings-page.php +++ b/includes/Admin/class-groq-ai-settings-page.php @@ -181,6 +181,7 @@ class Groq_AI_Product_Text_Settings_Page extends Groq_AI_Admin_Base { 'attributes' => [ 'id' => 'groq-ai-model-select', ], + 'current_provider' => isset( $settings['provider'] ) ? $settings['provider'] : '', ] ); @@ -569,15 +570,50 @@ class Groq_AI_Product_Text_Settings_Page extends Groq_AI_Admin_Base { provider_manager->get_provider( $current_provider ) : null; + $models = []; + + if ( $provider ) { + $models = $this->prepare_models_list_for_provider( $current_provider, $this->plugin->get_cached_models_for_provider( $current_provider ) ); + + if ( empty( $models ) ) { + $models = $this->prepare_models_list_for_provider( $current_provider, $provider->get_available_models() ); + } + + $placeholder = __( 'Selecteer een model', GROQ_AI_PRODUCT_TEXT_DOMAIN ); + } elseif ( '' !== $current_provider ) { + $placeholder = __( 'Geen modellen gevonden. Gebruik "Live modellen ophalen".', GROQ_AI_PRODUCT_TEXT_DOMAIN ); + } ?>
@@ -865,8 +901,11 @@ class Groq_AI_Product_Text_Settings_Page extends Groq_AI_Admin_Base { foreach ( $this->provider_manager->get_providers() as $provider ) { $provider_key = $provider->get_key(); - $cached_models = $this->plugin->get_cached_models_for_provider( $provider_key ); - $cached_models = Groq_AI_Model_Exclusions::filter_models( $provider_key, $cached_models ); + $cached_models = $this->prepare_models_list_for_provider( $provider_key, $this->plugin->get_cached_models_for_provider( $provider_key ) ); + + if ( empty( $cached_models ) ) { + $cached_models = $this->prepare_models_list_for_provider( $provider_key, $provider->get_available_models() ); + } $data['providers'][ $provider_key ] = [ 'default_label' => sprintf( __( 'Gebruik standaardmodel (%s)', GROQ_AI_PRODUCT_TEXT_DOMAIN ), $provider->get_default_model() ), 'models' => $cached_models, @@ -878,6 +917,18 @@ class Groq_AI_Product_Text_Settings_Page extends Groq_AI_Admin_Base { wp_localize_script( 'groq-ai-settings', 'GroqAISettingsData', $data ); } + private function prepare_models_list_for_provider( $provider_key, $models ) { + $list = Groq_AI_Model_Exclusions::filter_models( $provider_key, $models ); + + if ( empty( $list ) ) { + return []; + } + + sort( $list, SORT_NATURAL | SORT_FLAG_CASE ); + + return $list; + } + public function handle_google_oauth_start() { if ( ! current_user_can( 'manage_options' ) ) { wp_die( esc_html__( 'Je hebt geen toestemming om deze actie uit te voeren.', GROQ_AI_PRODUCT_TEXT_DOMAIN ), '', [ 'response' => 403 ] );