I want the role Editor to have access to all woocommerce management, I managed to do so by adding capabilities to this role:
$role = get_role( 'editor' );
$role->add_cap( 'manage_woocommerce_products' );
$role->add_cap( 'manage_woocommerce_taxonomies' );
$role->add_cap( 'manage_woocommerce_orders' );
$role->add_cap( 'manage_woocommerce' );
$role->add_cap( 'view_woocommerce_reports' );
$role->add_cap( 'manage_woocommerce_coupons' );
$role->add_cap( 'edit_product' );
$role->add_cap( 'read_product' );
$role->add_cap( 'delete_product' );
$role->add_cap( 'edit_products' );
$role->add_cap( 'publish_products' );
$role->add_cap( 'read_private_products' );
$role->add_cap( 'delete_products' );
$role->add_cap( 'delete_private_products' );
$role->add_cap( 'delete_published_products' );
$role->add_cap( 'edit_private_products' );
$role->add_cap( 'edit_published_products' );
$role->add_cap( 'edit_products' );
Every thing seems to work ok except the products categories and tags, I have been searching but nothing, i guess there has to be a capability for it but I don’t know which one, Hope some expert can guide me a bit on this.
Thanks a lot.
You can also do this programmatically like you were trying to, however there are several more roles you must grant for it to work.
I found this out by querying the Woocommerce Shop Manager role, and comparing the capabilities with the editor role.
Here’s the code to add the whole lot (at time of writing):
Note that this will add FULL capabilities in woocommerce for all editors.
To check that you don’t need additional roles, compare these with the capabilities granted to the shop manager role like so:
if you read this, you can see that woocommerce recommend two plugins to work, try: this or this
Or try adding this capabilities
Sorry, I’m a little late to the party. I wanted to share this snippet for debugging user roles, it has helped me greatly.
This will display the capabilities of user roles on the wp-dashboard, you could also add something like
if
current_user_can('administrator')
if you need to