Ich entwickle mein erstes Theme für Woocommerce.
Ich muss in der Lage sein, "Autoren" (wirklich "Designer") für Woocommerce-Produkte zuzuweisen. Ist das machbar? Ich habe überlegt, den in WordPress integrierten Benutzer "author" zu verwenden, aber die Benutzeroberfläche einer Produktbearbeitung bietet im Gegensatz zu einer Bearbeitungsoberfläche "post" kein Feld "author".
Verwenden Sie einfach add_post_type_support
:
add_action('init', 'wpse_74054_add_author_woocommerce', 999 );
function wpse_74054_add_author_woocommerce() {
add_post_type_support( 'product', 'author' );
}
Benutzer mit benutzerdefinierter Rolle zugewiesen
Autoren aktiviert in Produktposttyp
Eine weitere Option, bei der ich mir nicht sicher bin ob sie korrekt ist , ist es, sich in woocommerce_register_post_type
einzuhängen.* und registriere den Beitragstyp zuerst. Dies ist eine Kopie der ursprünglichen Funktion plus der benötigten Variablen, wobei author
an das Argument supports
angehängt wird.
* /wp-content/plugins/woocommerce/woocommerce.php, Zeile 885
add_action( 'woocommerce_register_post_type', 'wpse_74054_override_register_product_type' );
function wpse_74054_override_register_product_type()
{
$shop_page_id = woocommerce_get_page_id('shop');
$base_slug = ( $shop_page_id > 0 && get_page( $shop_page_id ) ) ? get_page_uri( $shop_page_id ) : 'shop';
$product_base = ( get_option('woocommerce_prepend_shop_page_to_products') == 'yes' ) ? trailingslashit($base_slug) : trailingslashit(_x('product', 'slug', 'woocommerce'));
register_post_type( "product",
array(
'labels' => array(
'name' => __( 'Products', 'woocommerce' ),
'singular_name' => __( 'Product', 'woocommerce' ),
'menu_name' => _x( 'Products', 'Admin menu name', 'woocommerce' ),
'add_new' => __( 'Add Product', 'woocommerce' ),
'add_new_item' => __( 'Add New Product', 'woocommerce' ),
'edit' => __( 'Edit', 'woocommerce' ),
'edit_item' => __( 'Edit Product', 'woocommerce' ),
'new_item' => __( 'New Product', 'woocommerce' ),
'view' => __( 'View Product', 'woocommerce' ),
'view_item' => __( 'View Product', 'woocommerce' ),
'search_items' => __( 'Search Products', 'woocommerce' ),
'not_found' => __( 'No Products found', 'woocommerce' ),
'not_found_in_trash' => __( 'No Products found in trash', 'woocommerce' ),
'parent' => __( 'Parent Product', 'woocommerce' )
),
'description' => __( 'This is where you can add new products to your store.', 'woocommerce' ),
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'capabilities' => array(
'publish_posts' => 'manage_woocommerce_products',
'edit_posts' => 'manage_woocommerce_products',
'edit_others_posts' => 'manage_woocommerce_products',
'delete_posts' => 'manage_woocommerce_products',
'delete_others_posts' => 'manage_woocommerce_products',
'read_private_posts' => 'manage_woocommerce_products',
'edit_post' => 'manage_woocommerce_products',
'delete_post' => 'manage_woocommerce_products',
'read_post' => 'manage_woocommerce_products'
),
'publicly_queryable' => true,
'exclude_from_search' => false,
'hierarchical' => false, // Hierarcal causes memory issues - WP loads all records!
'rewrite' => array( 'slug' => $product_base, 'with_front' => false, 'feeds' => $base_slug ),
'query_var' => true,
'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'comments', 'custom-fields', 'page-attributes', 'author' ),
'has_archive' => $base_slug,
'show_in_nav_menus' => true
)
);
}