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.
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.
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;
}
}