WP Sell Services adds one role and eight capabilities. Everything the plugin
gates – admin screens, REST routes, abilities – goes through them, so this is
the page to read before building a custom role or restricting an area.
wpss_vendor is registered on activation. Users get it when they become a
vendor, and it is additive: a subscriber who becomes a vendor keeps reading and
gains selling.
It carries read, upload_files, edit_posts, plus five plugin capabilities.
Activation grants vendor capabilities to author and shop_manager.
This is deliberate – a WooCommerce store manager can run the marketplace
without a second account – but the author case surprises people. Every
existing WordPress author on the site becomes a vendor the moment the plugin
activates, appearing in the vendor directory and able to publish services,
regardless of your vendor-registration setting.
On a blog with contributors who are not sellers, that is probably not what you
want. Strip it after activation:
Note that vendor registration mode does not gate this. Closing registration
stops new sign-ups; it does not revoke capabilities an existing role was
granted at activation.
manage_options (plus wpss_view_analytics for analytics)
A quirk worth knowing: vendor earnings reads are gated on
wpss_manage_services, not on a dedicated earnings capability. If you strip
wpss_manage_services from a role to stop it publishing services, you also
remove its access to earnings and withdrawals. Add a role that keeps
wpss_manage_services but restricts publishing another way if you need that
split.
To ask “is this user a vendor?”, prefer the plugin helper over checking the role
name directly – it is filterable, so sites that grant vendor status another way
still work:
if ( wpss_is_vendor($user_id) ) {
// ...
}
// Override the answer, e.g. treat a membership level as vendor status.