PluginProbe
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder / 51.1.87
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder v51.1.87
51.1.87 51.1.86 51.1.84 51.1.85 51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 All 41 releases
← All changes | includes/AI_Provider.php +35 -2 51.1.79 → 51.1.87 View file →
@@ -51,13 +51,40 @@
51 51 ];
52 52 }
53 53
54 54 /**
55 + * Provider to use when none has been chosen yet.
56 + *
57 + * New installs start on OpenRouter, because its free models let someone try
58 + * the AI features without paying anything first. An install that already had
59 + * an OpenAI key before the provider selector existed keeps OpenAI, so an
60 + * update never silently points working features at a provider with no key.
61 + */
62 + public static function getDefaultProvider(): string
63 + {
64 + $options = get_option(self::OPTION_NAME, []);
65 +
66 + if (is_array($options) && !empty($options['openai_api_key'])) {
67 + return self::OPENAI;
68 + }
69 +
70 + return self::OPENROUTER;
71 + }
72 +
73 + /**
55 74 * Normalises an arbitrary value to a supported provider slug.
56 75 */
57 76 public static function normalizeProvider($provider): string
58 77 {
59 - return ($provider === self::OPENROUTER) ? self::OPENROUTER : self::OPENAI;
78 + if ($provider === self::OPENROUTER) {
79 + return self::OPENROUTER;
80 + }
81 +
82 + if ($provider === self::OPENAI) {
83 + return self::OPENAI;
84 + }
85 +
86 + return self::getDefaultProvider();
60 87 }
61 88
62 89 /**
63 90 * The provider currently selected in AI Settings.
@@ -64,9 +91,15 @@
64 91 */
65 92 public static function getProvider(): string
66 93 {
67 94 $options = get_option(self::OPTION_NAME, []);
68 - return self::normalizeProvider(is_array($options) ? ($options['ai_provider'] ?? self::OPENAI) : self::OPENAI);
95 + $stored = is_array($options) ? ($options['ai_provider'] ?? '') : '';
96 +
97 + if ($stored === self::OPENAI || $stored === self::OPENROUTER) {
98 + return $stored;
99 + }
100 +
101 + return self::getDefaultProvider();
69 102 }
70 103
71 104 public static function isOpenRouter(): bool
72 105 {