wp_send_json : La fonction de la semaine n°15

wp_send_json : La fonction de la semaine n°15

Ce sont en fait LES fonctions, car elles vont par 3, il s’agit de wp_send_json, wp_send_json_success et wp_send_json_error. Elles sont évidemment similaires, voici à quoi elle servent, quand et comment les utiliser.

JSON kékeussé ?

JSON (JavaScript Object Notation) est un format de données textuelles, générique, dérivé de la notation des objets du langage ECMAScript. Il permet de représenter de l’information structurée comme le permet XML par exemple.

Pourquoi envoyer du json ? C’est un format utilisé pour stocker des données structurées et prend en charge des données nidifiées (comme a.b.c=X). Il a aussi l’avantage d’être léger et très facile à analyser en JavaScript.

komenkonssenssèr ?

Lors d’un envoi de données via Ajax, au lieu de faire un die( json_encode( $data ) );, vous ferez un wp_send_json( $data );.

Séfassilalor !

Oui c’est facile, mais on peut aller un peu plus loin en indiquant si les datas retournées sont un succès ou une erreur. Car on pourrait très bien envoyer « Erreur dans le traitement des données » ou « Données enregistrées« .

Comment savoir qui est un succès, qui est une erreur !?

  • Utilisez alors : wp_send_json_success( $data ); pour les retours avec succès.
  • Et utilisez ensuite wp_send_json_error( $data ); pour les retours avec erreurs.

Dans les 2 cas, une tableau sera envoyé avec une clé de plus, il s’agit de ‘success’ qui vaudra alors true ou false.

Voici un exemple d’envoi Ajax avec gestion du retour selon le succès ou non :

$(document).ready(function(){
	$('#btn').click(function(e){
		e.preventDefault();
		$.post(ajaxUrl, $('#form').serialize(), function(data) { 
			if ( !data.success ) { // error ?
				alert(data.message);                
			}else{ // ok !
				$('#result').html(data.message);
			}
		});
	});
});

Côté PHP je reçois ça, je le traite :

<?php
// bootstrap WP

$return = array(
			'message'	=> 'Données bien reçues',
			'ID'		=> '123'
	);

wp_send_json_success( $return );

Voici ce que ça donne en JSON :

{"success":true,"data":{"message":"Données bien reçues","ID":"123"}}

Merssi lol

Alors, facile non ?

Lire la suite

Vous aimez ? Partagez !


Réagir à cet article

120 caractères maximum