【问题标题】:Filter users and woocommerce orders by user meta for specific users按特定用户的用户元过滤用户和 woocommerce 订单
【发布时间】:2022-08-19 00:44:43
【问题描述】:

我有一个 WooCommerce 商店,它使用 user switching plugin 允许销售代表切换到客户帐户。销售代表只能查看/切换到他们自己的客户帐户,不能查看其他代表客户或管理员帐户。我通过创建自定义用户元字段并使用以下代码来完成此操作。

// kdickinson
add_action(\'pre_user_query\',\'kdickinson_customers\');
function kdickinson_customers( $u_query ) {
    $current_user = wp_get_current_user();
    if ($current_user->ID == \'442\') { 
        global $wpdb;
        $u_query->query_where = str_replace(
            \'WHERE 1=1\', 
            \"WHERE 1=1 AND {$wpdb->users}.ID IN (
                SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta 
                    WHERE {$wpdb->usermeta}.meta_key = \'wpcf-sales-rep\'
                    AND {$wpdb->usermeta}.meta_value LIKE \'%kellie_dickinson%\')\", 
            $u_query->query_where
        );
    }
}

虽然这可行,但效率不高,我必须为每个代表重写代码。有没有办法让一个代码适用于所有人?

在相关的说明中,我想向 woocommerce 订单添加类似的过滤,并且只允许销售代表查看他们的客户订单。使用我当前的代码,销售代表可以查看所有订单。我找到了similar thread,但我不太确定如何使其适应我的需要

    标签: php mysql wordpress woocommerce


    【解决方案1】:

    我正在尝试在客户数据上使用 meta_data,将 meta_key 解析为“rep_id”,将 value 解析为 $rep_id。

    如果我能做到这一点,我会回到这里告诉你。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-20
      相关资源
      最近更新 更多