*/ if ( ! defined( 'ABSPATH' ) ) { exit; } class Group107_AccessibleDocs_Admin_General_Settings { public function __construct() { add_action('admin_init', [$this, 'register_accessible_docs_general_settings']); } /** * Registers the settings for the General Settings page. */ public function register_accessible_docs_general_settings() { register_setting('accessible_docs_settings_group', 'accessible_docs_settings', [ 'sanitize_callback' => [$this, 'accessible_docs_sanitize_settings'] ]); add_settings_section( 'accessible_docs_settings_section', esc_html__('General Settings', 'accessible-docs'), function () { echo '
'; /* translators: %s is the AccessibleDocs signup URL. */ $text = __('Enter your email and password for AccessibleDocs account.', 'accessible-docs'); $text = wp_kses( $text, array( 'a' => array( 'href' => array(), 'target' => array() ) ) ); $message = sprintf( $text, esc_url('https://platform.accessibledocs.ai/sign-up') ); echo wp_kses_post( $message ); echo '
'; }, 'accessible_docs_settings' ); add_settings_field( 'accessible_docs_email', esc_html__('Email', 'accessible-docs'), [$this, 'accessible_docs_render_email_field'], 'accessible_docs_settings', 'accessible_docs_settings_section' ); add_settings_field( 'accessible_docs_password', esc_html__('Password', 'accessible-docs'), [$this, 'accessible_docs_render_password_field'], 'accessible_docs_settings', 'accessible_docs_settings_section' ); } public function accessible_docs_render_email_field() { $options = get_option('accessible_docs_settings'); $email = isset($options['email']) ? $options['email'] : ''; echo ''; } public function accessible_docs_render_password_field() { $options = get_option('accessible_docs_settings'); $password = isset($options['password']) ? $options['password'] : ''; echo ''; } public function accessible_docs_sanitize_settings($input) { $output = []; // Check if email is provided and valid. if (!empty($input['email'])) { if (is_email($input['email'])) { $output['email'] = sanitize_email($input['email']); } else { add_settings_error('accessible_docs_messages', 'invalid_email', esc_html__('Please enter a valid email address.', 'accessible-docs'), 'error'); } } // Check if password is provided. if (!empty($input['password'])) { $output['password'] = sanitize_text_field($input['password']); } // If both email and password are empty, show a custom notice. if (empty($input['email']) && empty($input['password'])) { add_settings_error( 'accessible_docs_messages', 'empty_fields', esc_html__('Please provide both an email and a password.', 'accessible-docs'), 'error' ); } return $output; } } new Group107_AccessibleDocs_Admin_General_Settings();