I had created the ajax request

add_action('wp_ajax_test_action', 'test_action');

it works fine until some point

(Maybe i installed some plugin, but i had tried uninstall it but cant solve it)

So i try to add

add_action('wp_ajax_nopriv_test_action', 'test_action');

the request work again, but I don't understand

wp_ajax_nopriv suppose to work for the user not logged in

but i am a logged in user, I tried to logged out then login again, but still need to add "wp_ajax_nopriv" to make it work.

my js code:

//test ajax
$('button#test').on('click', function(e){
            url: $ajax_url,
            type: 'POST',
            data: {
                action: 'test_action',
                value: "send"
            success: function(data){
                console.log( data);
            error: function(data){

  • What’s your code that makes the request? Feb 11 at 7:47
  • added my js code
    – mrj1942
    Feb 11 at 8:14
  • Look at your action names. Feb 11 at 9:23
  • Thanks for your remind, that was my typo, i had correct it. But it work only added "wp_ajax_nopriv" even i had logged in.
    – mrj1942
    Feb 11 at 10:38
  • Is that JavaScript you shared being loaded after the page has finished loading? i.e. maybe with jQuery jQuery(document).ready(function($) {… Feb 12 at 1:50


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.