Esto se debe a que WordPress no utiliza sesiones de PHP. Por lo tanto, la variable no existe fuera de su enlace, que se ejecuta más tarde que el entorno global.
Consejo: necesitarías ejecutar session_start(); a través del gancho de inicio. Luego podrá acceder a una sesión en todos los enlaces que se ejecuten posteriormente.
Ver también: https://kinsta.com/blog/wordpress-cookies-php-sessions/#php-sessions
Este complemento también puede ayudar: https://wordpress.org/plugins/wp-native-php-sessions/
esto es lo que tengo, todavía no hay alegría
function sbci_start_session() {
if(!session_id()) {
session_start();
}
}
add_action('init', 'sbci_start_session', 1);function sbci_get_user_pass($user, $password){
if(!session_id()) {
session_start();
}
$_SESSION["pwd"] = $password ;
return $user;
}
add_filter('wp_authenticate_user', 'sbci_get_user_pass',1,2);
El resultado que utiliza para probarlo falta en su código. ¿Dónde lo ejecutas?