Woocommerce: กำหนด“ ผู้เขียน” ให้กับผลิตภัณฑ์


11

ฉันกำลังพัฒนาธีมแรกของฉันสำหรับ woocommerce

ฉันต้องสามารถมี "ผู้เขียน" (จริงๆ "ผู้ออกแบบ") ที่ได้รับมอบหมายให้ผลิตภัณฑ์ woocommerce เป็นไปได้ไหม? ฉันคิดว่าจะใช้ผู้ใช้ "ผู้เขียน" wordpress ในตัว แต่อินเทอร์เฟซของการแก้ไขผลิตภัณฑ์ไม่ได้ให้กล่อง "ผู้แต่ง" ซึ่งแตกต่างจากอินเทอร์เฟซการแก้ไข "โพสต์"

คำตอบ:


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*และลงทะเบียนประเภทโพสต์ก่อน นี่คือสำเนาของฟังก์ชั่นดั้งเดิมรวมทั้งจำเป็นต้องมี vars โดยauthorผนวกเข้ากับsupportsอาร์กิวเมนต์

* * * * /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',ดังนั้นการกรองจึงเป็นทางออกที่ดี
Anagio

999 หมายถึงอะไรในวิธีการ add_action ()?
Atul Chavan

@Atul นั่นคือลำดับความสำคัญสำหรับการดำเนินการเพื่อให้ทำงาน
24425
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.