Làm cách nào để thêm loại sản phẩm mới vào loại sản phẩm thương mại điện tử? [đóng cửa]


7

Tôi muốn thêm "loại sản phẩm" tùy chỉnh mới vào plugin thương mại điện tử:

nhập mô tả hình ảnh ở đây

Đã thử sao chép một trong các loại tệp sản phẩm hiện có (cấu trúc mẫu thương mại điện tử) dưới dạng tệp mới (tên tệp và bên trong tên nhận xét) nhưng không hoạt động!

nhập mô tả hình ảnh ở đây

Câu trả lời:


19

Mẫu thêm vào giỏ hàng chỉ là 1 trong số rất nhiều việc bạn cần làm. Mỗi loại sản phẩm có lớp riêng trong /includes/thư mục. Mỗi người mở rộng WC_Productlớp học.

Để thêm các mục vào danh sách bạn đã ghi lại (nằm ở phía quản trị viên chứ không phải mặt trước, không giống như add-to-cart.phpmẫu, bạn sẽ cần phải lọc product_type_selector.

add_filter( 'product_type_selector', 'wpa_120215_add_product_type' );
function wpa_120215_add_product_type( $types ){
    $types[ 'your_type' ] = __( 'Your Product Type' );
    return $types;
}

sau đó bạn sẽ cần khai báo lớp sản phẩm của bạn. Hệ thống đặt tên tiêu chuẩn là WC_Product_Type_Classnhư vậy trong ví dụ này, nó sẽ là:

class WC_Product_Your_Type extends WC_Product{
    /**
     * __construct function.
     *
     * @access public
     * @param mixed $product
     */
    public function __construct( $product ) {
        $this->product_type = 'your_type'; // Deprecated as of WC3.0 see get_type() method
        parent::__construct( $product );
    }

     /**
     * Get internal type.
     * Needed for WooCommerce 3.0 Compatibility
     * @return string
     */
    public function get_type() {
        return 'your_type';
    }
}

Bạn đang hỏi một câu hỏi rất phức tạp và tôi không thể cung cấp một câu trả lời đầy đủ hơn. Hy vọng điều này đặt bạn trên con đường đúng. Tôi rất khuyến khích bạn đọc mã trong WooC Commerce. Nó được nhận xét rất tốt và bạn có thể thấy cách họ xử lý các loại sản phẩm khác nhau.

Chỉnh sửa Đã thêm tính tương thích WC3.0 cho loại loại sản phẩm.


Đối với những người từ tương lai ✨ tìm thấy điều này, đây là một bài đăng blog có thể cung cấp một số thông tin bổ sung hữu ích: jeroensormani.com/adding-a-custom-wooc Commerce
Travis Northcutt

Yêu mà! Nhưng đối với những người của tương lai, điều $this->product_typenày sẽ không chính xác cho WC2.7 +.
xe đạp

@helgatheviking Bất kỳ điểm nào để tìm thêm thông tin cập nhật cụ thể về sản phẩm_type? Tôi tiếp tục va vào những hướng dẫn "cũ" đó chỉ bằng cú pháp đó.
kontur

1
@kontur bạn sẽ cần thêm một get_type()phương thức vào lớp của bạn. Nó sẽ trả về loại sản phẩm. ví dụ: public function get_type() { return 'your_type'; }Xem chỉnh sửa của tôi.
lái xe đạp
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.