Musze pod wordpress podpiac wlasne "logowanie". NIe chodzi mi o wlasna strone logowania, tylko by system pobieral mi sam z innego api dane uzytkownika. Powiedzmy ze token bede mial juz w WP, na pdostawie tokena musze tylko pobrac info usera i by WP traktowal go jako zalogowanego i np. wyswietlal to durne "Howdy XYZ"
To jest kod jaki mam dotychcas
function custom_fake_login() {
if (is_user_logged_in()) {
return; // Already logged in
}
// Fake user ID (must be unique and not conflict with real WP users)
$fake_user_id = 99999;
// Create a fake user object
$user = new WP_User();
$user->ID = $fake_user_id;
$user->user_login = 'custom_user';
$user->user_email = 'fake@example.com';
$user->roles = ['administrator']; // Adjust role if needed
// Set the user as logged in
wp_set_current_user($fake_user_id, 'custom_user');
wp_set_auth_cookie($fake_user_id);
// Trigger WordPress login hooks
do_action('wp_login', 'custom_user', $user);
}
// Run this when the site loads
add_action('init', 'custom_fake_login');
add_filter('wp_get_current_user', function ($user) {
if ($user->exists()) {
return $user; // If WP already recognizes a user, return it
}
// Check the current user ID
$user_id = get_current_user_id();
if ($user_id !== 99999) {
return $user;
}
// Create a fake user dynamically
$fake_user = new WP_User();
$fake_user->ID = 99999;
$fake_user->user_login = 'custom_user';
$fake_user->display_name = 'Custom User';
$fake_user->roles = ['administrator'];
return $fake_user;
});
Niestety to
add_filter('wp_get_current_user', function ($user) {
jakby w ogole sie nie odpalalo, w sensie ten filtr i oczywiscie zadne "Howdy" sie nie pojawia