web-dev-qa-db-fra.com

Puis-je utiliser un hook add_action à l'intérieur d'une fonction qui reçoit des données via wp ajax?

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 
        }
    }
}
1
friendlyfire

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.

3
hakre