php - utilizamos - qué puede hacer un colaborador en el sistema wordpress
¿Cómo permitir que un editor de roles administre taxonomías woocommerce en worpdress? (3)
Quiero que el Editor de roles tenga acceso a toda la administración de woocommerce, logré hacerlo agregando capacidades a este rol:
$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'' );
Todo parece funcionar bien, excepto las categorías de productos y las etiquetas, he estado buscando pero nada, supongo que tiene que haber una capacidad para eso, pero no sé cuál, espero que algún experto pueda guiarme un poco en esto.
Muchas gracias.
También puede hacer esto programáticamente como lo intentaba, sin embargo, hay varias funciones más que debe otorgar para que funcione.
Descubrí esto consultando el rol de Gerente de compras de Woocommerce y comparando las capacidades con la función de editor.
Aquí está el código para agregar todo (al momento de escribir):
//add caps to editor role
$role = get_role("editor");
//for woocommerce
$role->add_cap("manage_woocommerce");
$role->add_cap("view_woocommerce_reports");
$role->add_cap("edit_product");
$role->add_cap("read_product");
$role->add_cap("delete_product");
$role->add_cap("edit_products");
$role->add_cap("edit_others_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("delete_others_products");
$role->add_cap("edit_private_products");
$role->add_cap("edit_published_products");
$role->add_cap("manage_product_terms");
$role->add_cap("edit_product_terms");
$role->add_cap("delete_product_terms");
$role->add_cap("assign_product_terms");
$role->add_cap("edit_shop_order");
$role->add_cap("read_shop_order");
$role->add_cap("delete_shop_order");
$role->add_cap("edit_shop_orders");
$role->add_cap("edit_others_shop_orders");
$role->add_cap("publish_shop_orders");
$role->add_cap("read_private_shop_orders");
$role->add_cap("delete_shop_orders");
$role->add_cap("delete_private_shop_orders");
$role->add_cap("delete_published_shop_orders");
$role->add_cap("delete_others_shop_orders");
$role->add_cap("edit_private_shop_orders");
$role->add_cap("edit_published_shop_orders");
$role->add_cap("manage_shop_order_terms");
$role->add_cap("edit_shop_order_terms");
$role->add_cap("delete_shop_order_terms");
$role->add_cap("assign_shop_order_terms");
$role->add_cap("edit_shop_coupon");
$role->add_cap("read_shop_coupon");
$role->add_cap("delete_shop_coupon");
$role->add_cap("edit_shop_coupons");
$role->add_cap("edit_others_shop_coupons");
$role->add_cap("publish_shop_coupons");
$role->add_cap("read_private_shop_coupons");
$role->add_cap("delete_shop_coupons");
$role->add_cap("delete_private_shop_coupons");
$role->add_cap("delete_published_shop_coupons");
$role->add_cap("delete_others_shop_coupons");
$role->add_cap("edit_private_shop_coupons");
$role->add_cap("edit_published_shop_coupons");
$role->add_cap("manage_shop_coupon_terms");
$role->add_cap("edit_shop_coupon_terms");
$role->add_cap("delete_shop_coupon_terms");
$role->add_cap("assign_shop_coupon_terms");
$role->add_cap("edit_shop_webhook");
$role->add_cap("read_shop_webhook");
$role->add_cap("delete_shop_webhook");
$role->add_cap("edit_shop_webhooks");
$role->add_cap("edit_others_shop_webhooks");
$role->add_cap("publish_shop_webhooks");
$role->add_cap("read_private_shop_webhooks");
$role->add_cap("delete_shop_webhooks");
$role->add_cap("delete_private_shop_webhooks");
$role->add_cap("delete_published_shop_webhooks");
$role->add_cap("delete_others_shop_webhooks");
$role->add_cap("edit_private_shop_webhooks");
$role->add_cap("edit_published_shop_webhooks");
$role->add_cap("manage_shop_webhook_terms");
$role->add_cap("edit_shop_webhook_terms");
$role->add_cap("delete_shop_webhook_terms");
$role->add_cap("assign_shop_webhook_terms");
Tenga en cuenta que esto agregará capacidades COMPLETAS en woocommerce para todos los editores.
Para comprobar que no necesita roles adicionales, compárelos con las funciones otorgadas al puesto de administrador de tienda de la siguiente manera:
$role = get_role("shop_manager");
print_r($role->capabilities);
Lo siento, llegué un poco tarde a la fiesta. Quería compartir este fragmento para depurar las funciones de los usuarios, me ha ayudado mucho.
add_action( ''admin_notices'', ''debug_user_roles'' );
function debug_user_roles() {
global $pagenow;
if( $pagenow == ''index.php'' ) {
$MYrole = get_role("seo_specialist");
echo ''<pre>'';
print_r($MYrole->capabilities);
echo ''</pre>'';
$MY_other_role = get_role("shop_manager");
echo ''<pre>'';
print_r($MY_other_role->capabilities);
echo ''</pre>'';
}
}
Esto mostrará las capacidades de las funciones de los usuarios en wp-dashboard, también podría agregar algo como if
current_user_can(''administrator'')
si necesita