【发布时间】: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