plugin = $plugin; $this->provider_manager = $provider_manager; add_action( 'admin_menu', [ $this, 'register_settings_pages' ] ); add_action( 'admin_init', [ $this, 'register_settings' ] ); add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_settings_assets' ] ); add_action( 'admin_head', [ $this, 'hide_menu_links' ] ); } public function register_settings_pages() { add_options_page( __( 'Siti AI Productteksten', 'groq-ai-product-text' ), __( 'Siti AI', 'groq-ai-product-text' ), 'manage_options', 'groq-ai-product-text', [ $this, 'render_settings_page' ] ); add_submenu_page( 'options-general.php', __( 'Siti AI Modules', 'groq-ai-product-text' ), __( 'Siti AI Modules', 'groq-ai-product-text' ), 'manage_options', 'groq-ai-product-text-modules', [ $this, 'render_modules_page' ] ); add_submenu_page( 'options-general.php', __( 'Siti AI AI-logboek', 'groq-ai-product-text' ), __( 'Siti AI AI-logboek', 'groq-ai-product-text' ), 'manage_options', 'groq-ai-product-text-logs', [ $this, 'render_logs_page' ] ); } public function hide_menu_links() { if ( ! current_user_can( 'manage_options' ) ) { return; } ?> plugin->get_option_key(), [ $this->plugin, 'sanitize_settings' ] ); add_settings_section( 'groq_ai_product_text_general', __( 'Algemene instellingen', 'groq-ai-product-text' ), '__return_false', 'groq-ai-product-text' ); add_settings_field( 'groq_ai_provider', __( 'AI-aanbieder', 'groq-ai-product-text' ), [ $this, 'render_provider_field' ], 'groq-ai-product-text', 'groq_ai_product_text_general' ); add_settings_field( 'groq_ai_model', __( 'Model', 'groq-ai-product-text' ), [ $this, 'render_model_field' ], 'groq-ai-product-text', 'groq_ai_product_text_general' ); foreach ( $this->provider_manager->get_providers() as $provider ) { add_settings_field( 'groq_ai_api_key_' . $provider->get_key(), sprintf( __( '%s API-sleutel', 'groq-ai-product-text' ), $provider->get_label() ), [ $this, 'render_provider_api_key_field' ], 'groq-ai-product-text', 'groq_ai_product_text_general', [ 'provider' => $provider, ] ); } add_settings_field( 'groq_ai_store_context', __( 'Winkelcontext', 'groq-ai-product-text' ), [ $this, 'render_store_context_field' ], 'groq-ai-product-text', 'groq_ai_product_text_general' ); add_settings_field( 'groq_ai_default_prompt', __( 'Standaard prompt', 'groq-ai-product-text' ), [ $this, 'render_default_prompt_field' ], 'groq-ai-product-text', 'groq_ai_product_text_general' ); add_settings_field( 'groq_ai_context_fields', __( 'Standaard productcontext', 'groq-ai-product-text' ), [ $this, 'render_context_fields_field' ], 'groq-ai-product-text', 'groq_ai_product_text_general' ); add_settings_field( 'groq_ai_response_format_compat', __( 'Response-format compatibiliteit', 'groq-ai-product-text' ), [ $this, 'render_response_format_compat_field' ], 'groq-ai-product-text', 'groq_ai_product_text_general' ); add_settings_section( 'groq_ai_product_text_modules_rankmath', __( 'Rank Math SEO', 'groq-ai-product-text' ), '__return_false', 'groq-ai-product-text-modules' ); add_settings_field( 'groq_ai_module_rankmath', __( 'Rank Math SEO', 'groq-ai-product-text' ), [ $this, 'render_rankmath_module_field' ], 'groq-ai-product-text-modules', 'groq_ai_product_text_modules_rankmath' ); } public function render_settings_page() { if ( ! current_user_can( 'manage_options' ) ) { return; } $settings = $this->plugin->get_settings(); ?>
get_label() ) ); ?>
plugin->get_settings(); $defaults = $this->plugin->get_default_modules_settings(); $modules = isset( $settings['modules'] ) ? $settings['modules'] : $defaults; $config = isset( $modules['rankmath'] ) ? $modules['rankmath'] : ( $defaults['rankmath'] ?? [] ); $rankmath_active = $this->plugin->is_rankmath_active(); $enabled = $rankmath_active && ! empty( $config['enabled'] ); $keyword_limit = isset( $config['focus_keyword_limit'] ) ? absint( $config['focus_keyword_limit'] ) : ( $defaults['rankmath']['focus_keyword_limit'] ?? 3 ); $keyword_limit = $keyword_limit > 0 ? $keyword_limit : 3; $title_pixels = isset( $config['meta_title_pixel_limit'] ) ? absint( $config['meta_title_pixel_limit'] ) : ( $defaults['rankmath']['meta_title_pixel_limit'] ?? 580 ); $title_pixels = $title_pixels > 0 ? $title_pixels : 580; $pixel_limit = isset( $config['meta_description_pixel_limit'] ) ? absint( $config['meta_description_pixel_limit'] ) : ( $defaults['rankmath']['meta_description_pixel_limit'] ?? 920 ); $pixel_limit = $pixel_limit > 0 ? $pixel_limit : 920; $rankmath_active = $this->plugin->is_rankmath_active(); ?>
/>
/>
/>