如何在执行了钩子“preGet_USERS”之后获得所有的用户列表?

时间:2018-04-30 作者:Felicisimo Barbosa Vasquez Jr.

我在管理用户仪表板中有一个名为“用户类型”的自定义过滤器,我已经解决了在用户管理仪表板中显示它们的问题。但我不知道如何调用它们并将其保存在数组中,以便获取user\\u id并执行另一个操作。

我的另一个操作是获取某个用户的所有元键,并将它们导出到excel文件中。但在我可以这样做之前,我应该有一个选项来过滤它们或只是导出所有用户,我已经执行了这项操作。

function add_course_section_filter() {
    if ( isset( $_GET[ \'user_type\' ]) ) {
        $user_type = $_GET[ \'user_type\' ];

    } else {
        $user_type = \'\';
    }

    echo \' <select name="user_type[]" style="float:none;"><option value="">Choose User Type...</option>\';

      if($user_type[0] == \'designer\'){
        $selected_designer = \'selected="selected"\';

      }

      if($user_type[0] == \'client\'){
        $selected_client = \'selected="selected"\';

      }
      echo \'<option value="designer" \' . $selected_designer . \'>Builder/Designer</option>\';
      echo \'<option value="client" \' . $selected_client . \'>Client</option>\';
    echo \'</select>\';

    echo \'<input type="submit" class="button" value="Filter">\';
}
add_action( \'restrict_manage_users\', \'add_course_section_filter\' );

function filter_users_by_course_section( $query ) {
    global $pagenow;

    if ( is_admin() && \'users.php\' == $pagenow && isset( $_GET[ \'user_type\' ]  )) {
        $user_type = $_GET[ \'user_type\' ];

        if($user_type[0] != \'\'){
          $meta_query = array(
              array(
                  \'key\' => \'_user_type\',
                  \'value\' => $user_type[0]
              )
          );
          $query->set( \'meta_key\', \'_user_type\' );
          $query->set( \'meta_query\', $meta_query );
        }else{

        }
    }

}
add_filter( \'pre_get_users\', \'filter_users_by_course_section\' );

1 个回复
SO网友:mmm

使用您的代码,用户列表将按元“\\u user\\u type”进行过滤
然后,您可以创建一个新的批量操作来导出所选用户的数据,该操作包括:

const ACTION_EXPORT_CSV = "MyPlugin__exportCSV";


add_filter("bulk_actions-users", function ($actions) {

    $actions[ACTION_EXPORT_CSV] = "Export CSV";

    return $actions;

});


add_action("load-users.php", function () {

    if (    isset($_GET["action"])
        &&  (ACTION_EXPORT_CSV === $_GET["action"])
    ) {

        // here, identifiers of selected users are in $_GET["users"]


    }


});

结束

相关推荐

Wordpress Admin Tooltip hooks

我想知道是否有一种方法可以使用Wordpress管理工具提示(灰色和蓝色),当你更新你的Wordpress(3.x)时会显示这些提示。显示新功能。谢谢