如何按角色显示用户订单

时间:2020-03-30 作者:Atif Aqeel

我试图在查询时显示用户,但我想按用户角色显示订单。假设我们有两个用户角色,Gold和Free。我想先显示黄金用户,然后显示自由用户。

$args = array(
                \'order\'      => \'ASC\',
                \'orderby\'    => \'display_name\',
                \'role__not_in\' => \'administrator\',
                \'posts_per_page\' => 10,
                \'meta_query\' => array(
                    \'relation\' => \'OR\',
                    array(
                        \'key\'     => \'pin_code\',
                        \'value\'   => sanitize_text_field($_GET[\'pin_code\']),
                        \'compare\' => \'LIKE\'
                    ),
                    array(
                        \'key\'     => \'city\',
                        \'value\'   => sanitize_text_field($_GET[\'pin_code\']),
                        \'compare\' => \'LIKE\'
                    ),
                    array(
                        \'key\'     => \'county\',
                        \'value\'   => sanitize_text_field($_GET[\'pin_code\']),
                        \'compare\' => \'LIKE\'
                    ),
                )
            );

            // Create the WP_User_Query object
            $wp_user_query = new WP_User_Query($args);
我不知道如何在query arg中实现这一点。

1 个回复
SO网友:Tom J Nowell

我不知道如何在query arg中实现这一点。

这是因为它不能只用参数来完成。order/orderby参数docs中未列出角色选项。WordPress中没有按用户角色排序的选项。

相反,您必须查询所有黄金角色用户,获取其用户ID,然后查询所有免费用户,获取其用户ID,然后在第三次查询中使用这些ID查询用户。

备注:

这将无法扩展,如果您有大量用户,这将使站点停顿,页面可能无法完成加载。您必须丢弃分页代码,并重新实现它以脱离阵列。您需要找出阵列中的哪些ID用于当前页面,然后相应地对其进行切片,您需要弄清楚当前页面是针对黄金用户还是免费用户,或者如果存在重叠,则对适当的数组进行切片,以获得ID,只需为黄金用户和免费用户创建单独的存档/列表就更容易了,如果您的代码向非员工/员工显示,那么您的代码将公开个人识别信息,在许多国家将其定为非法(这将违反欧盟国家的GDPR)

相关推荐

Adding column to wpex_users

因此,我尝试向wpex\\u用户添加一列。由于某种原因,我不能。这是我的问题:ALTER TABLE wpex_users ADD nametest VARCHAR(200);这给了我一个错误,我的标准值是错误的。它为空。我不知道该怎么办。我真的需要这个新专栏。您知道我需要添加新列的查询吗?我用PHPMyAdmin编写查询。