J'ai essayé d'envoyer des données de mon js à une fonction php via wp_ajax. Toutes les données sont envoyées correctement car je peux les renvoyer.
Cependant, je dois maintenant transmettre les résultats à un autre hook add_action. Quelle est la meilleure façon de procéder? Ce que je fais ne fonctionne pas.
Voici ce que j'ai jusqu'à présent:
Mon ajax envoyer:
jQuery.ajax({
type: 'post',
url: customizerValues.ajax_url,
data: {
action: 'ar_update_plan',
nonce: wpApiSettings.nonce,
plan_id: planId,
blog_id: site_id,
},
success: function(response) {
console.log(response);
}
});
Ma fonction php
add_action( 'wp_ajax_ar_update_plan', 'ar_update_plan' );
function ar_update_plan($blog_id, $new_expire, $level){
if( isset($_REQUEST['blog_id'])) {
$blog_id = $_REQUEST['blog_id'];
if( isset($_REQUEST['plan_id'])) {
$level = $_REQUEST['plan_id'];
// THE HOOK I NEED TO PASS THE RESULTS TO
add_action('psts_extend', $blog_id, $new_expire, $new_plan_id);
// just making sure the ajax data came through
echo $_REQUEST['plan_id'];
wp_die(); // ajax call must die to avoid trailing 0 in your response
}
}
}
Je suppose que vous avez un petit malentendu ici (une légère incohérence seulement) add_action
consiste à enregistrer uncallbackpour un nom de hook, vous voulez en fait le déclencher (pas l'enregistrer).
Vous pouvez déclencher un hook avec la fonction do_action
.
La page Codex de la fonction add_action
décrit à la fois:
Et naturellement, la do_action
Codex-page contient tous les détails de la gloire:
Veillez à ne pas créer de boucle sans fin, cela plantera PHP et donc Wordpress, mais cela indique également qu'il n'y a pas de limitations intégrées.
Vous pouvez empiler autant d'actions que vous le souhaitez, même des appels d'actions récursifs sont possibles.