Woocommerce: एक उत्पाद के लिए एक "लेखक" असाइन करें


11

मैं woocommerce के लिए अपनी पहली थीम विकसित कर रहा हूं।

मुझे "लेखक" (वास्तव में "डिजाइनर") को वोकॉमर्स उत्पादों को सौंपा जाने में सक्षम होना चाहिए। क्या यह संभव है? मैं अंतर्निहित "लेखक" उपयोगकर्ता का उपयोग करने के बारे में सोच रहा था, लेकिन एक उत्पाद संपादन का इंटरफ़ेस "लेखक" बॉक्स प्रदान नहीं करता है, एक "पोस्ट" संपादन इंटरफ़ेस के विपरीत।

जवाबों:


15

बस उपयोग करें 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' );
}

कस्टम भूमिका के साथ उपयोगकर्ता को सौंपा गया

उपयोगकर्ता भूमिका


उत्पाद पोस्ट प्रकार में सक्षम लेखक

लेखक सक्षम के साथ वू उत्पादों


एक अन्य विकल्प, जिसे मैं इसकी शुद्धता के बारे में सुनिश्चित नहीं हूं , यह woocommerce_register_post_type* में हुक करने के लिए और पहले पोस्ट प्रकार को पंजीकृत करने के लिए है। यह मूल फ़ंक्शन की एक प्रति है और साथ authorही supportsतर्क के लिए आवश्यक vars की आवश्यकता है।

* /wp-content/plugins/woocommerce/woocommerce.php, पंक्ति 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
        )
    );
}

WooCommerce के नवीनतम कोड में प्रत्येक कस्टम पोस्ट प्रकार के लिए फ़िल्टर शामिल हैं, apply_filters( 'woocommerce_register_post_type_product',इसलिए फ़िल्टर करना एक ठीक समाधान है।
अनागियो

add_action () विधि में 999 का क्या अर्थ है?
अतुल चव्हाण

@ अतुल, कि कार्रवाई के लिए प्राथमिकता है
ब्रासोफिलो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.