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ử:
Đã 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!
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ử:
Đã 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!
Câu trả lời:
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_Product
lớ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.php
mẫ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_Class
như 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.
$this->product_type
này sẽ không chính xác cho WC2.7 +.
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.