如何向一群用户显示弹出窗口?

时间:2017-02-20 作者:ferdi_

我想知道这是否可能以及如何实现:我想只向特定用户组显示弹出窗口。我查看了插件目录,但没有找到任何适合我需要的插件。有人能帮忙吗?

非常感谢。

1 个回复
SO网友:Nathan Johnson

我解决这个问题的方法是给你想要显示弹出窗口的用户一个特定的角色。(如果您希望向注销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

相关推荐

获取所有wp_USERS按元密钥排序

我正在尝试让用户列表按元键排序。我的意思是我已经设置了元键user_last_login. 某些用户没有此元密钥。一些用户拥有它。我想在一个查询中同时获得两个用户,但如果存在元键,则这些用户将排在第一位,其余用户应排在最后。这是我的问题$meta_query_args = array( \'relation\' => \'OR\', // Optional, defaults to \"AND\" array(