My account

functions.php
// functions.php
function custom_login_form_shortcode($atts) {
extract(shortcode_atts(array(
‘redirect’ => home_url(),
), $atts));

if (!is_user_logged_in()) {
// Login form HTML
$form = ‘

‘;
return $form;
} else {
// User is already logged in
$current_user = wp_get_current_user();
return ‘

You are already logged in as ‘ . esc_html($current_user->display_name) . ‘

Logout

‘;
}
}
add_shortcode(‘custom_login_form’, ‘custom_login_form_shortcode’);

// Handle login redirects
add_action(‘wp_login_failed’, ‘custom_login_failed’);
function custom_login_failed($username) {
$referrer = wp_get_referer();

if ($referrer && !strstr($referrer, ‘wp-login’) && !strstr($referrer, ‘wp-admin’)) {
wp_redirect(add_query_arg(‘login’, ‘failed’, $referrer));
exit;
}
}

// Handle empty login fields
add_action(‘authenticate’, ‘custom_authenticate’, 1, 3);
function custom_authenticate($user, $username, $password) {
if (empty($username) || empty($password)) {
$referrer = wp_get_referer();

if ($referrer && !strstr($referrer, ‘wp-login’) && !strstr($referrer, ‘wp-admin’)) {
wp_redirect(add_query_arg(‘login’, ’empty’, $referrer));
exit;
}
}
}