Filter uncanny-learndash-toolkit

uo_toolkit_frontend_login_error_messages

Filters the default error messages displayed during the frontend login process.

add_filter( 'uo_toolkit_frontend_login_error_messages', $callback, 10, 2 );

Description

Filters the error messages displayed on the frontend login form. Developers can modify or replace default messages based on login outcomes like 'failed'. The hook provides access to the login attempt status, allowing for dynamic error message adjustments.


Usage

add_filter( 'uo_toolkit_frontend_login_error_messages', 'your_function_name', 10, 2 );

Parameters

$default (mixed)
This parameter holds the default error message that will be displayed if no specific error message is found for the given login status.
$login (mixed)
This parameter is the default error message that will be used if no custom message is found.

Return Value

The filtered value.


Examples

/**
 * Filters the frontend login error messages to customize them based on login status.
 *
 * This function hooks into 'uo_toolkit_frontend_login_error_messages' to modify
 * the default error and warning messages returned for frontend login attempts.
 * It allows developers to provide custom messages for various login scenarios.
 *
 * @param array  $default_messages An array containing 'error' and 'warning' keys.
 * @param string $login            The login status string (e.g., 'failed', 'notverified').
 * @return array Modified error and warning messages.
 */
function my_custom_frontend_login_errors( $default_messages, $login ) {

	// Define a custom message for a specific login scenario, e.g., when the user is not verified.
	if ( 'notverified' === $login ) {
		$custom_warning_message = 'Your account is pending verification. Please check your email for instructions.';
		$default_messages['warning'] = $custom_warning_message;
	}

	// You could also add more complex logic here, for example:
	// if ( 'failed' === $login && current_user_can( 'subscriber' ) ) {
	// 	$default_messages['warning'] = 'It looks like you're trying to log in with subscriber credentials. Please use your administrator login.';
	// }

	// Ensure you always return the modified array.
	return $default_messages;
}
add_filter( 'uo_toolkit_frontend_login_error_messages', 'my_custom_frontend_login_errors', 10, 2 );

Placement

This code should be placed in the functions.php file of your active theme, a custom plugin, or using a code snippets plugin.


Source Code

src/classes/frontend-login-plus.php:1991

public static function fetch_warning_error_msgs( $login ) {

		$message_warning = '';

		switch ( $login ) {

			case 'failed':
				$message_warning = self::get_settings_value( 'uo_frontend_login_failed_error', __CLASS__, '%placeholder%', self::get_class_settings( '', true ) );
				break;
			case 'false':
				// Empty msgid. It is reserved by GNU gettext: gettext("") returns the header entry with meta information, not the empty string.
				$message_warning = self::get_settings_value( 'uo_frontend_login_false_error', __CLASS__, '%placeholder%', self::get_class_settings( '', true ) );
				break;
			case 'notverified':
				$message_warning = self::get_settings_value( 'uo_frontend_login_notverified_error', __CLASS__, '%placeholder%', self::get_class_settings( '', true ) );
				break;
			case 'recaptchaempty':
				$message_warning = self::get_settings_value( 'uo_frontend_login_recaptchaempty_error', __CLASS__, '%placeholder%', self::get_class_settings( '', true ) );
				break;
			case 'recaptchafailed':
				$message_warning = self::get_settings_value( 'uo_frontend_login_recaptchafailed_error', __CLASS__, '%placeholder%', self::get_class_settings( '', true ) );
				break;
		}

		$default = array(
			'error'   => $login,
			'warning' => $message_warning,
		);

		return apply_filters( 'uo_toolkit_frontend_login_error_messages', $default, $login );

	}

Scroll to Top