'sanitize_text_field')); register_setting('wpaic_option_group', 'wpaic_display_location', array('sanitize_callback' => 'sanitize_text_field')); register_setting('wpaic_option_group', 'wpaic_brand_color', array('sanitize_callback' => 'sanitize_hex_color')); register_setting('wpaic_option_group', 'wpaic_welcome_message', array('sanitize_callback' => 'sanitize_textarea_field')); register_setting('wpaic_option_group', 'wpaic_chat_title', array('sanitize_callback' => 'sanitize_text_field')); // Pro Settings register_setting('wpaic_option_group', 'wpaic_bot_avatar_url', array('sanitize_callback' => 'esc_url_raw')); register_setting('wpaic_option_group', 'wpaic_copy_trigger_enabled', array('sanitize_callback' => 'sanitize_text_field')); register_setting('wpaic_option_group', 'wpaic_exit_intent_enabled', array('sanitize_callback' => 'sanitize_text_field')); register_setting('wpaic_option_group', 'wpaic_time_trigger_enabled', array('sanitize_callback' => 'sanitize_text_field')); register_setting('wpaic_option_group', 'wpaic_add_to_cart_enabled', array('sanitize_callback' => 'sanitize_text_field')); register_setting('wpaic_option_group', 'wpaic_copy_trigger_text', array('sanitize_callback' => 'wp_kses_post')); // Allow some HTML (bold) register_setting('wpaic_option_group', 'wpaic_contact_info', array('sanitize_callback' => 'sanitize_textarea_field')); register_setting('wpaic_option_group', 'wpaic_footer_text', array('sanitize_callback' => 'wp_kses_post')); add_settings_section( 'wpaic_setting_section', __('General Settings', 'aiy-sales-chat'), array($this, 'section_info'), 'aiy-sales-chat' ); add_settings_field( 'wpaic_gemini_api_key', __('Google Gemini API Key', 'aiy-sales-chat'), array($this, 'gemini_api_key_callback'), 'aiy-sales-chat', 'wpaic_setting_section' ); add_settings_field( 'wpaic_display_location', __('Display Chat Widget On', 'aiy-sales-chat'), array($this, 'display_location_callback'), 'aiy-sales-chat', 'wpaic_setting_section' ); add_settings_field( 'wpaic_brand_color', __('Brand Color', 'aiy-sales-chat'), array($this, 'brand_color_callback'), 'aiy-sales-chat', 'wpaic_setting_section' ); add_settings_field( 'wpaic_welcome_message', __('Welcome Message', 'aiy-sales-chat'), array($this, 'welcome_message_callback'), 'aiy-sales-chat', 'wpaic_setting_section' ); add_settings_field( 'wpaic_chat_title', __('Chat Widget Title', 'aiy-sales-chat'), array($this, 'chat_title_callback'), 'aiy-sales-chat', 'wpaic_setting_section' ); add_settings_field( 'wpaic_contact_info', __('Contact Info & Instructions', 'aiy-sales-chat'), array($this, 'contact_info_callback'), 'aiy-sales-chat', 'wpaic_setting_section' ); add_settings_field( 'wpaic_footer_text', __('Footer Branding (HTML Allowed)', 'aiy-sales-chat'), array($this, 'footer_text_callback'), 'aiy-sales-chat', 'wpaic_setting_section' ); add_settings_section( 'wpaic_behavior_section', __('Pro Behavior Settings', 'aiy-sales-chat'), array($this, 'behavior_section_info'), 'aiy-sales-chat' ); add_settings_field( 'wpaic_bot_avatar_url', __('Custom Assistant Avatar URL', 'aiy-sales-chat'), array($this, 'render_bot_avatar_url_field'), 'aiy-sales-chat', 'wpaic_behavior_section' ); add_settings_field( 'wpaic_exit_intent_enabled', __('Enable Exit Intent (Desktop)', 'aiy-sales-chat'), array($this, 'render_exit_intent_enabled_field'), 'aiy-sales-chat', 'wpaic_behavior_section' ); add_settings_field( 'wpaic_time_trigger_enabled', __('Enable Time-on-Page Trigger (30s)', 'aiy-sales-chat'), array($this, 'render_time_trigger_enabled_field'), 'aiy-sales-chat', 'wpaic_behavior_section' ); add_settings_field( 'wpaic_add_to_cart_enabled', __('Enable "Add to Cart" Suggestions', 'aiy-sales-chat'), array($this, 'render_add_to_cart_enabled_field'), 'aiy-sales-chat', 'wpaic_behavior_section' ); add_settings_field( 'wpaic_copy_trigger_enabled', __('Enable "Copy Text" Trigger', 'aiy-sales-chat'), array($this, 'render_copy_trigger_enabled_field'), 'aiy-sales-chat', 'wpaic_behavior_section' ); add_settings_field( 'wpaic_copy_trigger_text', __('Custom Trigger Message', 'aiy-sales-chat'), array($this, 'render_copy_trigger_text_field'), 'aiy-sales-chat', 'wpaic_behavior_section' ); } public function section_info() { print esc_html__('Enter your API settings below:', 'aiy-sales-chat'); } public function behavior_section_info() { print esc_html__('Configure how the chat assistant proactively engages with visitors.', 'aiy-sales-chat'); } public function gemini_api_key_callback() { printf( '', esc_attr(get_option('wpaic_gemini_api_key')) ); print '

' . sprintf( /* translators: %s: Google AI Studio Link */ esc_html__('Get your free key from %s.', 'aiy-sales-chat'), 'Google AI Studio' ) . '

'; } public function display_location_callback() { $option = get_option('wpaic_display_location', 'all'); ?>

', esc_attr(get_option('wpaic_chat_title', 'Sales Assistant')), esc_attr__('Sales Assistant', 'aiy-sales-chat') ); } public function contact_info_callback() { printf( '', esc_textarea(get_option('wpaic_contact_info')) ); print '

' . esc_html__('Add contact details or extra instructions for the AI here. Use bullet points or new lines.', 'aiy-sales-chat') . '

'; } public function brand_color_callback() { printf( '', esc_attr(get_option('wpaic_brand_color', '#007bff')) ); } public function welcome_message_callback() { printf( '', esc_attr(get_option('wpaic_welcome_message', 'Hi! How can I help you today?')) ); } public function render_welcome_message_field() { $value = get_option('wpaic_welcome_message', 'Hi! How can I help you today?'); echo ''; } public function render_bot_avatar_url_field() { $value = get_option('wpaic_bot_avatar_url', ''); echo ''; echo '

' . esc_html__('Enter the full URL of your assistant\'s avatar image.', 'aiy-sales-chat') . '

'; } public function render_copy_trigger_enabled_field() { $value = get_option('wpaic_copy_trigger_enabled', '1'); echo ''; echo ' ' . esc_html__('Activate sales trigger when user copies text', 'aiy-sales-chat'); } public function render_exit_intent_enabled_field() { $value = get_option('wpaic_exit_intent_enabled', '0'); echo ''; echo ' ' . esc_html__('Activate trigger when mouse leaves window (Desktop)', 'aiy-sales-chat'); } public function render_time_trigger_enabled_field() { $value = get_option('wpaic_time_trigger_enabled', '0'); echo ''; echo ' ' . esc_html__('Activate trigger after 30 seconds of inactivity', 'aiy-sales-chat'); } public function render_add_to_cart_enabled_field() { $value = get_option('wpaic_add_to_cart_enabled', '0'); echo ''; echo ' ' . esc_html__('Allow AI to suggest "Add to Cart" buttons', 'aiy-sales-chat'); } public function render_copy_trigger_text_field() { $default = "I noticed you copied the text. Are you comparing {product_name}? Let's chat about the best deal right here!"; $value = get_option('wpaic_copy_trigger_text', $default); echo ''; echo '

' . sprintf( /* translators: %s: placeholder code */ esc_html__('Use %s as a placeholder for the product title.', 'aiy-sales-chat'), '{product_name}' ) . '

'; } public function footer_text_callback() { $default = 'Powered by Beke'; $value = get_option('wpaic_footer_text', $default); echo ''; echo '

' . esc_html__('Text to display at the bottom of the chat widget.', 'aiy-sales-chat') . '

'; } }