как разрешить редактору ролей управлять таксономиями woocommerce в worpdress?

Я хочу, чтобы редактор ролей имел доступ ко всем функциям управления woocommerce, мне удалось это сделать, добавив в эту функцию следующие возможности:

    $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' );

Кажется, что все работает нормально, за исключением категорий товаров и тегов, я искал, но ничего, я думаю, должна быть возможность для этого, но я не знаю, какая именно, надеюсь, какой-то эксперт может немного помочь мне в этом.

Большое спасибо.

4

Решение

если ты читаешь этот, Вы можете видеть, что woocommerce рекомендует два плагина для работы, попробуйте: этот или же этот

Или попробуйте добавить эти возможности

  1. manage_product_terms
  2. edit_product_terms
  3. delete_product_terms
  4. assign_product_terms
  5. manage_categories
3

Другие решения

Вы также можете делать это программно, как пытались, однако есть еще несколько ролей, которые вы должны предоставить для его работы.

Я узнал об этом, запросив роль Woocommerce Shop Manager и сравнив возможности с ролью редактора.

Вот код для добавления всего лота (на момент написания):

    //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");

Обратите внимание, что это добавит ПОЛНЫЕ возможности в woocommerce для всех редакторов.

Чтобы убедиться, что вам не нужны дополнительные роли, сравните их с возможностями, предоставленными роли менеджера магазина следующим образом:

    $role = get_role("shop_manager");
print_r($role->capabilities);
1

Извините, я немного опоздал на вечеринку. Я хотел поделиться этим фрагментом для отладки ролей пользователей, он мне очень помог.

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>';

}
}

Это отобразит возможности пользовательских ролей на wp-dashboard, вы также можете добавить что-то вроде if current_user_can('administrator') Если вам нужно

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector