我解决这个问题的方法是给你想要显示弹出窗口的用户一个特定的角色。(如果您希望向注销WordPress的不同用户显示弹出窗口,则此StackExchange不适用。)
然后我会使用wp_loaded
钩子以检查登录用户的用户角色。如果该用户是我想要显示弹出窗口的角色的成员,那么我会添加挂钩来显示弹出窗口,并将必要的CSS和javascript排队。
namespace StackExchange\\WordPress;
\\add_action( \'wp_loaded\', __NAMESPACE__ . \'\\wp_loaded\' );
function wp_loaded() {
$role = \'author\';
if( ! is_current_user_in_role( $role ) ) {
return;
}
\\add_action( \'wp_enqueue_scripts\', __NAMESPACE__ . \'\\wp_enqueue_scripts\' );
\\add_action( \'wp_footer\', __NAMESPACE__ . \'\\wp_footer\' );
}
function wp_footer() { ?>
<div class="hidden or-some-other-class-that-wont-be-shown">
<!-- Some other HTML code -->
</div>
<?php }
function wp_enqueue_scripts() {
//* Enqueue the CSS that will initially hide the hidden div
//* Or it could be in another stylesheet already enqueued
\\wp_enqueue_style( \'name-of-style\', PATH_TO . \'style-name.css\' );
//* In the javascript file, pop up the hidden div
\\wp_enqueue_script( \'name-of-script\', PATH_TO . \'script-name.js\' );
}
function is_current_user_in_role( $role ) {
return in_array( $role, (array) \\wp_get_current_user()->roles )
}
is_current_user_in_role()
基于
this answer by Rarst