plugin development – Why won’t this conditional script enqueue?
I’m trying to get my admin scripts to enqueue if a user can moderate comments, but for some reason, this conditional is not working. I can place a var_dump('hello!')
inside the “if” statement, and it displays…but wp_enqueue_{fileType}
doesn’t work. Any ideas?
Defining admin hooks:
I define the Admin hooks here, and I have a similar function that defines public hooks and uses wp_enqueue_scripts
instead of admin.
private function define_admin_hooks() {
$plugin_admin = new Featured_Reviews_Admin($this->get_plugin_name(), $this->get_version());
$this->loader->add_action('admin_enqueue_scripts', $plugin_admin, 'enqueue_styles');
$this->loader->add_action('admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts');
}
Admin registering:
I tried registering the style/script first.
public function enqueue_styles() {
wp_register_style('featured-reviews-admin-style', plugin_dir_url(__FILE__) . 'css/featured-reviews-admin.css', array(), $this->version, 'all');
wp_enqueue_style('featured-reviews-admin-style');
}
Conditional loading:
Here I want to load my public styles / scripts, and if a user can moderate comments, I want to load my admin script, but this conditional doesn’t seem to work.
public function enqueue_styles() {
wp_enqueue_style($this->plugin_name, plugin_dir_url(__FILE__) . 'css/featured-reviews-public.css', array(), $this->version, 'all');
if (current_user_can('moderate_comments')) {
var_dump('HI THERE!'); // This runs
wp_enqueue_style('featured-reviews-admin-style'); // This does not show up.
}
}
Any ideas on where this is going wrong?
Leave an answer