Problemas al recibir un JSON con WP

Puede que tengas una página donde recibas mediante POST un JSON donde tengas un require de wp-blog-header.php.

Aquí os dejo un link para conectar un archivo externo al core de WP. Hacerlo así es un poco aberración a WP, ya que este nos provee de su admin-ajax para realizar este tipo de acciones.

En este caso, recibiremos un JSON con «\» slashes para escapar el string. En este caso, cuando queramos convertir el JSON en un array php con json_decode tendremos un problema… y nos saldrá un Notice de php:

Notice: Trying to get property of non-object in...

Ya que el JSON recibido:

{"user_id":3,"user_email":"email@ekiketa.es"}

Al hacer el require de wp-blog-header.php de WP, éste nos lo escapa:

{\"user_id\":3,\"user_email\":\"ejemplo@ekiketa.es\"}

Para sanear el JSON debemos utilizar la función nativa de WP stripslashes_deep($json)

Con lo cual…
Sin utilizar el wp-blog-header.php recibimos por post el json y lo pasamos a objeto php:

$objeto = json_decode($_POST['json']);

Utilizando wp-blog-header.php:

$objeto = json_decode(stripslashes_deep($_POST['json']));

Espero os sirva


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*