array( 'id' => 'basic-auth-plugin-admin-enable', 'title' => 'Enable for wp-admin', 'callback' => 'basic_auth_plugin_admin_enable_cb', ), '1' => array( 'id' => 'basic-auth-plugin-enable', 'title' => 'Enable for the entire site (only if wp-admin is enabled)', 'callback' => 'basic_auth_plugin_enable_cb', ), '2' => array( 'id' => 'basic-auth-plugin-username', 'title' => 'Username', 'callback' => 'basic_auth_plugin_username_cb', ), '3' => array( 'id' => 'basic-auth-plugin-password', 'title' => 'Password', 'callback' => 'basic_auth_plugin_password_cb', ), '4' => array( 'id' => 'basic-auth-plugin-admin-log-enable', 'title' => 'Enable access logs', 'callback' => 'basic_auth_plugin_admin_log_enable_cb', ), '5' => array( 'id' => 'basic-auth-plugin-alert-enable', 'title' => 'Enable email alert', 'callback' => 'basic_auth_plugin_alert_enable_cb', ), '6' => array( 'id' => 'basic-auth-plugin-email-alert', 'title' => 'Email for alert', 'callback' => 'basic_auth_plugin_alertemail_cb', ), '7' => array( 'id' => 'basic-auth-plugin-white-list', 'title' => 'Ip White list', 'callback' => 'basic_auth_plugin_whitelist_cb', ) ); public function __construct() { } public function basic_auth_plugin_settings_init() { register_setting( 'basic-auth-plugin-settings', 'basic_auth_plugin_admin_enable' ); register_setting( 'basic-auth-plugin-settings', 'basic_auth_plugin_enable' ); register_setting( 'basic-auth-plugin-settings', 'basic_auth_plugin_username' ); register_setting( 'basic-auth-plugin-settings', 'basic_auth_plugin_admin_log_enable' ); register_setting( 'basic-auth-plugin-settings', 'basic_auth_plugin_whitelist' ); add_settings_section( 'basic-auth-plugin-section', __('Configurations for Easy Basic Authentication', 'easy-basic-authentication'), array($this,'basic_auth_plugin_section_cb'), 'basic-auth-plugin-settings' ); foreach(self::FORM_FIELD as $field) { add_settings_field( $field['id'], __($field['title'], 'easy-basic-authentication'), array($this,$field['callback']), 'basic-auth-plugin-settings', 'basic-auth-plugin-section' ); } } public function basic_auth_plugin_section_cb() { echo __('Configure basic authentication', 'easy-basic-authentication'); } public function basic_auth_plugin_enable_cb() { $admin_enable = get_option( 'basic_auth_plugin_admin_enable' ); $enable = get_option( 'basic_auth_plugin_enable' ); ?> > > > > validateIpList( $white_list ) ) { update_option( 'basic_auth_plugin_whitelist', $white_list ); } else { add_settings_error( 'basic_auth_plugin_whitelist', 'basic_auth_plugin_whitelist_error', __('Invalid whitelist format. Please enter valid email addresses separated by commas.', 'easy-basic-authentication'), 'error' ); } } if ( ! empty( $password ) ) { $hashed_password = wp_hash_password( $password ); update_option( 'basic_auth_plugin_password', $hashed_password ); } } } public function basic_auth_plugin_settings_page() { include plugin_dir_path( __FILE__ ) . '../template/settings_page.php'; } public function validateIpList($white_list) { $pattern = '/^(\s*(?:\d{1,3}\.){3}\d{1,3}\s*(?:,\s*|$))+$/'; if ( preg_match( $pattern, $white_list ) ) { return true; } return false; } }