WooCommerce für Redakteure vollständig freigeben

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.