Estoy haciendo un script en php y necesito obtener el id del usuario, tengo este codigo:
<?php
include_once 'wp-config.php';
global $current_user;
echo $current_user->ID;
?>
Pero me devuelve 0. Alguien sabe que estoy haciendo mal?. Gracias!
¿Por qué no lo haces con get_current_user_id(), simplemente así: echo get_current_user_id();. Ver la documentación. No necesitas declarar global ni nada, simplemente invocar la función.
Patricio dice: Return: The current user's ID, or 0 if no user is logged in., o sea, devuelve 0 si no hay ningún usuario logueado. ¿Seguro que hay un usuario logueado?
Da la impresión de que no hay ningún usuario logueado. Esto no falla, dirá la realidad del asunto: if ( is_user_logged_in() ) { echo 'Bienvenido!'; } else { echo 'Nadie logueado, eres un visitante!'; } Prueba ver qué dice.
Sí, la tabla de usuarios de WP tiene una columna llamada user_status, no sé si sirve para indicar si el usuario está logueado o no. Aunque aún así habría que saber de qué usuario se trata.
El problema, creo yo, es el hecho de estar fuera del entorno de WP. A mi no me funciona en un script colocado fuera de WP, en el hosting
Quizá el localhost el trato sea diferente, pero en el hosting es como si fuera algo totalmente aparte
Como si no reconociera nada de WP y es normal. De hecho en mi dominio yo tengo código que funciona de forma independiente. Para hacer eso debes llamar tu código desde dentro de WP.
Lo que pasa es que yo no sé cómo hacerlo en temas de WP normales. Yo tengo un tema de pago y ellos tienen un archivo llamado custom.php que es donde se agregan esas funciones. Realmente en WP con temas normales no sabría cómo hacerlo... creo que es el archivo functions.php pero no estoy seguro.
Yo probé la función así, pasando por custom.php y me funcionó a la perfección. Pero poniendo el código en un archivo PHP fuera de WP no me funcionó, por eso mismo, porque ese archivo no pasa por WP.