我已經爲客戶完成了woocommerce網站。根據客戶的要求,我得到了一個問題。我的客戶希望他們的代理商只需要能夠搜索訂單,但他們不應該編輯任何訂單,或者他們不應該看到任何其他選項。代理商應該看到所有的訂單詳情,如電話號碼,電子郵件和完整的帳單地址,但他們不應該編輯任何內容。只允許用戶只讀訪問woocommerce
我已經嘗試了幾個用戶角色編輯器,他們都沒有給出該選項。 注意:所有訂單僅限客人訂單!
請讓我知道,如果你有任何想法如何實現這一點。
我已經爲客戶完成了woocommerce網站。根據客戶的要求,我得到了一個問題。我的客戶希望他們的代理商只需要能夠搜索訂單,但他們不應該編輯任何訂單,或者他們不應該看到任何其他選項。代理商應該看到所有的訂單詳情,如電話號碼,電子郵件和完整的帳單地址,但他們不應該編輯任何內容。只允許用戶只讀訪問woocommerce
我已經嘗試了幾個用戶角色編輯器,他們都沒有給出該選項。 注意:所有訂單僅限客人訂單!
請讓我知道,如果你有任何想法如何實現這一點。
在你的主題的functions.php試試這個
//mydomain.com/my-account/view-order/xxxx - 這裏的任何訂單號
function my_customer_has_capability($allcaps, $caps, $args) {
if (isset($caps[0])) {
switch ($caps[0]) {
case 'view_order' :
$user_id = $args[1];
$order = wc_get_order($args[2]);
if ($order && $user_id == $order->user_id || my_get_current_user_role() == 'editor') {
$allcaps['view_order'] = true;
}
break;
}
}
return $allcaps;
}
add_filter('user_has_cap', 'my_customer_has_capability', 10, 3);
function my_get_current_user_role() {
$current_user = wp_get_current_user();
if (!($current_user instanceof WP_User))
return;
if(empty($current_user->roles[0]))
return false;
$role = ($current_user->roles[0]);
return (string)$role;
}
對不起它不工作。它被給404未找到頁面。 –
其實我最關心的是我們需要代理人應該能夠看到賬單細節,包括電話號碼,但不應該能夠訪問它們。我試過woocommerce休息api,但它似乎不會爲我工作,因爲所有的訂單都是客人訂購。 –
你創建一個自定義角色?您可以定義一個角色,允許用戶使用'read_shop_order'而不是'edit_shop_order'。請參閱[此安裝功能](https://github.com/woocommerce/woocommerce/blob/70d46fe008fd722561855a76b6a605188569d231/includes/class-wc-install.php#L716) – helgatheviking
我會嘗試這一個,但很少有更多的建議,非常歡迎! –
這只是一個WooCommerce源代碼的鏈接,它顯示了WooCommerce特定的角色功能。你可能會複製'shop_manager'角色並刪除編輯功能。 – helgatheviking