I have an ajax which passes some jQuery variables to PHP function. My function was supposed to be in a class file. But ajax won't work and shows bad request. But if i place php function in my child theme, it works perfectly.

Here is my jQuery AJAX

      type: 'POST',
      url: ajaxurl,                        
      data: {
      action: 'thwec_get_element_block_data',
      block_element_list: block_element_list
     error: function(){

And my PHP function.

 public function __construct() {

        // $this->get_element_block_data();
        // $this->init_constants();

public function get_element_block_data(){
  • Are you sure you're logged in? You'd need to use the wp_ajax_nopriv_{$_REQUEST[‘action’]} hook for non-authenticated Ajax actions for logged-out users.
    – swissspidy
    Feb 7, 2018 at 7:40
  • yes. am logged in. Tired those. But same error
    – melvin
    Feb 7, 2018 at 7:42
  • Are you sure WP has loaded before you init the class? Feb 7, 2018 at 7:43
  • yes . sure @Drupalizeme
    – melvin
    Feb 7, 2018 at 7:55
  • 1
    Where is the class being instantiated? Feb 7, 2018 at 10:00

1 Answer 1


And i found the answer. As Jacob Peattie asked the instance of the class was defined but was not called. Although the class file was included , instance was not called. Thank you everyone for your valuable time.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.