0

I am working on a plugin, but add_action doesn't call the callback. The code is as follows:

require plugin_dir_path( __FILE__ ) . 'includes/class-network.php';

$distro = new Classnetwork();

includes/class-network.php:

class Classnetwork {
    public function __construct() {
        add_action( 'publish_post', array ($this, 'cdn_capture_data') );
    }

    public function cdn_capture_data( $post_id, $post ) {
        print_r ($post);            
}
}

Nothing is printed, not error, it just doesn't do anything every time I post a new post. Any ideas where is the error? The __construction is called but not the callback from add_action.

  • set define('WP_DEBUG', false); to define('WP_DEBUG', true); in wp-config.php file @Greg Winiarski, answer should do the job. You didn't specify the execution order and default number of arguments If you didn't specify them, they default to 10 and 1 ( in your case you passed two arguments to function attached to hook ) – maverick Dec 10 '18 at 11:03
  • @maverick you were right, the issue was that I didn't indicate the how many parameters. Thanks – Gonzalo Dec 10 '18 at 15:14
1

I understand that you are adding the post from wp-admin / Posts / Add New panel? If so then note that the publish_post action is run and the WP is doing redirect so you cannot see any printed data.

Also, your add_action call is missing 4th argument which is number of arguments passed to cdn_capture_data(), by default there is only 1 argument passed so in your case the $post is always null.

The correct code (to actually print the result) should be

class Classnetwork {
    public function __construct() {
        add_action( 'publish_post', array ($this, 'cdn_capture_data'), 10, 2 );
    }

    public function cdn_capture_data( $post_id, $post ) {
        print_r ($post);  
        exit;          
    }
}
  • Great, that works, the issue was related to the fact that I didn't pass the parameters after the calling to the function. Thanks – Gonzalo Dec 10 '18 at 15:15

Your Answer

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

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