20) { add_settings_error('authcode_settings', 'authcode_code', 'Authentication code cannot be longer than 20 characters.', $type = 'error'); return false; } elseif(strlen($options['code']) < 3) { add_settings_error('authcode_settings', 'authcode_code', 'Authentication code cannot be shorter than 3 characters.', $type = 'error'); return false; } else { add_settings_error('authcode_settings', 'authcode_code', 'Settings saved.', $type = 'updated'); } } else { add_settings_error('authcode_settings', 'authcode_code', 'Authentication code has been disabled.', $type = 'updated'); } } return $options; } add_action('admin_notices', 'authcode_admin_notices'); function authcode_admin_notices() { settings_errors(); } function authcode_page() { ?>

Authentication Code

', esc_html__( 'Authentication Code', 'authcode' ) ); } ); add_filter( 'authenticate', function( $user ) { $options = get_option( 'authcode_settings' ); $submit_code = filter_input( INPUT_POST, 'authcode_auth_key', FILTER_SANITIZE_STRING ); if ( is_wp_error( $user ) ) { return $user; } $is_valid_auth_code = ! empty( $options['code'] ) && ( $options['code'] === $submit_code ); if( ! $is_valid_auth_code ) $user = new WP_Error( 'invalid_auth_code', sprintf( '%s: %s', esc_html__( 'ERROR', 'authcode' ), esc_html__( 'Authentication code is invalid.', 'authcode' ) ) ); return $user; }, 100 ); add_action( 'login_head', function() { echo ''; }); } } do_authcode(); //**// //**// Uninstall scripts. //**// function authcode_deactivate() { if ( ! current_user_can( 'activate_plugins' ) ) return; delete_option( 'authcode_settings' ); } function authcode_uninstall() { if ( ! current_user_can( 'activate_plugins' ) ) return; unregister_setting( 'authcode_settings', 'authcode_settings' ); } register_deactivation_hook( __FILE__, 'authcode_deactivate' ); register_uninstall_hook( __FILE__, 'authcode_uninstall' );