Is it possible to grant to a user access to view and edit the WooCommerce orders only and do not provide access to any other part of WooCommerce? The short answer is “Yes”. Read a whole article to dive into the details.
Let’s create a new role:
1) Open “Users->User Role Editor”.
2) Click “Add Role” button.
3) Input role ID: “orders_manager”. Input role name: “Orders Manager”. Select role to copy from: “Subscriber”. Click “Add Role” button to save your changes.
WooCommerce redirects automatically to the front-end any user without “manage_woocommerse” or “edit_posts” capabilities. In order user without those capabilities can access WordPress back-end (admin dashboard) he should be granted “view_admin_dashboard” capability. You can read this article for more details.
WooCommerce does not create “view_admin_dashboard” capability automatically. You have to add it manually, if you wish to use it:
1) Open “Users->User Role Editor”, select “Orders Manager” role, click “Add capability” button.
2) Input “view_admin_dashboard” capability ID and click “Add Capability” button to save changes.
Turn ON check box to the left from “view_admin_dashboard” capability at capabilities list (Custom capabilities->WooCommerce->Core group) and click “Update” button to save changes.
Grant to a role all capabilites under “Orders” custom post type:
Assign new create “Orders Manager” role to selected user.
User with “Orders Manager” role can access WordPress admin dashboard. The only WooCommerce menu item available to him is “Orders”. User can see orders list.
User can edit any selected order and add new orders.
Take into account, that if you need to allow to a user to change products list included into the order, you have to grant to his role an access to the WooCommerce products. WooCommerce allows to search just those products, which are editable for the current user.