Ich habe eine ganze Website in einem WordPress-Plugin enthalten. Ich habe versucht, von WordPress wegzukommen, aber ich bin immer noch auf Manager-Benutzer angewiesen. Ich muss auf die Daten des aktuell angemeldeten Benutzers zugreifen, insbesondere deren ID.Zugriff auf eingeloggte Benutzerdaten in der Post-Anfrage?
Beim Versuch, ihre Daten in bestimmten Orten zuzugreifen hielt ich das Objekt keinen Benutzer bekommen:
object(WP_User)#1033 (7) {
["data"]=>
object(stdClass)#1032 (0) {
}
["ID"]=>
int(0)
....
Am Ende scheint es auf diese zu kochen. Ich versuche, diese Daten in Controller von meinem schlanken Router genannt zu bekommen:
$this->get('/assignments', function(Request $req, Response $res, array $args){
require_once $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php';
$ch_user = wp_get_current_user();
var_dump($ch_user);die();
}
und:
$this->post('/userdata', function(Request $req, Response $res, array $args){
require_once $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php';
$ch_user = wp_get_current_user();
var_dump($ch_user);die();
}
Diese beiden Strecken sind in der gleichen Gruppe, Linien voneinander. Die erste gibt das korrekt gefüllte Benutzerobjekt zurück, und die zweite gibt die leere mit ID: 0 zurück. Der einzige Unterschied zwischen den beiden besteht darin, dass eine eine Abrufanforderung ist und eine eine Abrufanforderung ist.
Ich bin kein Wort Presseexperte, und ich bin nur völlig davon verblüfft.
edit:
ich ähnliche Probleme ungelöst gefunden:
WordPress Ajax Call -- WordPress User ID
Wordpress REST API Retrurning Currnet User ID as 0
Ja, Sie haben Recht, Der eingeloggte Cookie ist in der get-Anfrage korrekt und in der post-Anfrage null. Die beiden Operationen werden auf die gleiche Weise an der gleichen Stelle durchgeführt, ich kann nur denken, dass das Problem mit schlank liegt. Ich suche nach etwas, das mit schlanken Posts funktioniert, die Cookies löschen, aber ich kann keine Lösung finden:/ – SpeedOfRound
Der eingeloggte Cookie kann direkt vom Server oder indirekt durch JavaScript-Code im Client gelöscht (abgelaufen) werden Browser. Sie können überprüfen, ob der Server den angemeldeten Cookie direkt löscht (abläuft), indem Sie das Netzwerk-Tool Ihres Browsers verwenden und die vom Server gesendeten Cookies überwachen. Der Server löscht einen Cookie, indem er abläuft. Im Chrome-Netzwerk-Tool werden die vom Server gesendeten Cookies Response-Cookies genannt. – B68C
Wenn die Cookies gelöscht wurden, würde mich das nicht abmelden? Der Cookie fehlt nur während der Anfrage. – SpeedOfRound