Standardmäßig können Redakteure weder Bestellungen noch Produkte vollständig verwalten.
Mit diesem Snippet erhält die WordPress-Rolle Redakteur die erforderlichen WooCommerce-Capabilities.
Danach können Redakteure:
- Bestellungen anzeigen und bearbeiten
- Bestellstatus ändern
- Produkte anlegen
- Produkte bearbeiten
- Produkte veröffentlichen
- Produkte löschen
- Produktkategorien verwalten
- WooCommerce-Berichte einsehen
- WooCommerce-Einstellungen verwalten
Code
<?php
/**
* WooCommerce vollständig für Redakteure freigeben
*/
add_action('admin_init', function () {
$role = get_role('editor');
if (!$role) {
return;
}
$caps = [
// WooCommerce allgemein
'manage_woocommerce',
'view_woocommerce_reports',
// Bestellungen
'edit_shop_order',
'read_shop_order',
'delete_shop_order',
'edit_shop_orders',
'edit_others_shop_orders',
'publish_shop_orders',
'read_private_shop_orders',
'delete_shop_orders',
'delete_private_shop_orders',
'delete_published_shop_orders',
'delete_others_shop_orders',
'edit_private_shop_orders',
'edit_published_shop_orders',
// Produkte
'edit_product',
'read_product',
'delete_product',
'edit_products',
'edit_others_products',
'publish_products',
'read_private_products',
'delete_products',
'delete_private_products',
'delete_published_products',
'delete_others_products',
'edit_private_products',
'edit_published_products',
'create_products',
// Produkt-Taxonomien
'manage_product_terms',
'edit_product_terms',
'delete_product_terms',
'assign_product_terms',
];
foreach ($caps as $cap) {
$role->add_cap($cap);
}
});
?>Hinweis
WordPress speichert die zusätzlichen Capabilities dauerhaft in der Datenbank.
Das Snippet muss daher nur einmal ausgeführt werden. Danach kann der Code wieder entfernt werden.
Sicherheitsaspekt
Die Capability manage_woocommerce gewährt Zugriff auf die WooCommerce-Einstellungen, Versandarten, Zahlungsarten, Steuerregeln und weitere Shop-Konfigurationen.
Wenn Redakteure wirklich volle WooCommerce-Rechte erhalten sollen, gehört diese Capability dazu.
Wenn Redakteure nur Produkte und Bestellungen verwalten sollen, sollte manage_woocommerce nicht vergeben werden.