Tài liệu này được viết cho các nhà phát triển WooCommerce tìm cách mở rộng hoặc tùy chỉnh WooCommerce Composite Products. Nó đòi hỏi sự hiểu biết sâu rộng về PHP và phát triển WordPress .
Dữ liệu Sản phẩm
Sản phẩm Composite được lưu trữ trong cơ sở dữ liệu dưới dạng post type tùy chỉnh của product
post type, tương tự như tất cả các loại sản phẩm trong WooCommerce core. Phần mở rộng giới thiệu Composite loại bằng cách thêm composite
giá trị thuật ngữ đến product_type
thuế.
Tất cả các sản phẩm composite là các thể hiện của lớp WC_Product_Composite
, mà mở rộng lớp core WC_Product
. Bạn có thể sử dụng tất cả các phương pháp của lớp WC_Product
với các thể hiện sản phẩm kiểu composite. Ngoài ra, lớp WC_Product_Composite
cung cấp một số phương pháp cụ thể cho các đối tượng Sản phẩm Composite. Tham chiếu chi tiết cho tất cả các phương pháp nằm ngoài phạm vi của tài liệu này – vui lòng tham khảo lớp này để biết chi tiết về từng phương pháp.
Đối tượng WC_Product_Composite
dựa vào cửa hàng dữ liệu riêng của họ để đọc / ghi các thuộc tính đối tượng từ / vào cơ sở dữ liệu. Bảng sau đây chứa danh sách các thuộc tính và lĩnh vực meta cụ thể cho Composite loại:
Thuộc tính | Khóa Meta | Mô tả |
---|---|---|
price |
_bto_base_price |
Base price của sản phẩm composite. |
regular_price |
_bto_base_regular_price |
Base regular price của sản phẩm composite. |
sale_price |
_bto_base_sale_price |
Base sale price của sản phẩm composite. |
composite_data |
_bto_data |
Component dữ liệu, được tuần tự hóa. |
scenario_data |
_bto_scenario_data |
Scenario định nghĩa, được tuần tự hóa. |
layout |
_bto_style |
Layout giá trị.
Giá trị: |
shop_price_calc |
_bto_shop_price_calc |
Catalog Price giá trị.
Giá trị: |
editable_in_cart |
_bto_edit_in_cart |
Edit in Cart giá trị tùy chọn. Giá trị: yes | no |
add_to_cart_form_location |
_bto_add_to_cart_form_location |
Form Location giá trị.
Giá trị: |
sold_individually_context |
_bto_sold_individually |
Sold Individually ngữ cảnh tùy chọn.
Giá trị: |
virtual_composite |
_wc_pb_virtual_composite |
Quản lý trạng thái cho Virtual hộp kiểm. Khi Virtual hộp được đánh dấu, tất cả các thành phần, cũng như Composite, đều được coi là Virtual .
Khi thuộc tính Khi thuộc tính Để biết thêm thông tin, hãy tham khảo các ví dụ sau bảng này. Giá trị: |
aggregate_weight |
_wc_bto_aggregate_weight |
Khi tạo Composite được lắp ráp, thuộc tính này kiểm soát xem cân nặng của các Tùy chọn Thành phần đã chọn có nên được tổng hợp và thêm vào trọng lượng đã được chỉ định dưới Product Data > Shipping hay không.
Giá trị: |
Cart & Dữ liệu Mục Đơn hàng
Mối quan hệ
Trong ngữ cảnh giỏ hàng, một WC_Product_Composite
sản phẩm hoạt động như một kích hoạt để thêm các sản phẩm bổ sung vào giỏ hàng trên hành động woocommerce_add_to_cart
, tùy thuộc vào dữ liệu cấu hình đã đăng. Trước điều này, phần mở rộng thực hiện xác thực phía máy khách và máy chủ của mình để đảm bảo rằng cấu hình có thể được thêm vào giỏ hàng, đưa ra xem xét tất cả các ràng buộc cấu hình và khả dụng.
Trong giỏ hàng, một sản phẩm composite xuất hiện như một group of cart items :
- Một container mục trong giỏ hàng, liên kết với chính sản phẩm composite.
- Một số child mục trong giỏ hàng, mỗi mục liên kết với một Thành phần.
Giả sử rằng một đơn hàng đ
ược đặt, cùng một nhóm các mục trong giỏ hàng được đồng bộ hóa số lượng sẽ tìm thấy đường của họ vào đơn hàng đã tạo, cũng vậy.
Nhờ vào cách tiếp cận này:
- Tất cả quản lý hàng tồn là chuyển tiếp đến WooCommerce core.
- Tương thích với các plugin / phần mở rộng của bên thứ ba được đơn giản hóa đáng kể, vì quá trình thêm các sản phẩm con vào giỏ hàng / đơn hàng không bỏ qua bất kỳ bắt móc nào sẽ được kích hoạt thông thường trong core.
- Mục giỏ hàng / đặt hàng chứa có thể được sử dụng để dễ dàng ghi đè lên các thuộc tính vật lý của các đứa trẻ tại lớp ứng dụng, hữu ích trong trường hợp sử dụng có yêu cầu vận chuyển phức tạp .
- Một sự tách biệt rõ ràng giữa giá của cha mẹ và trẻ em trong giỏ hàng giúp dễ dàng triển khai các kế hoạch giá cả phức tạp và cho phép mỗi mục đồng con duy trì tỷ lệ thuế cá nhân của mình.
Dữ liệu Mục Trong Giỏ Hàng
Cha mẹ / con cart items được xác định bằng cách thêm các trường sau vào các mục trong giỏ hàng:
Trường | Loại | Ngữ cảnh Mục | Mô tả |
---|---|---|---|
composite_parent |
string |
Con | ID mục trong giỏ hàng của mục trong giỏ hàng mẹ chứa mục con trong giỏ hàng này belongs to . |
composite_children |
array |
Cha mẹ | ID mục trong giỏ hàng của tất cả các mục con trong giỏ hàng associated với một mục trong giỏ hàng chứa composite. |
composite_data |
array |
Cha mẹ / Con | Mảng dữ liệu cấu hình Composite, được sử dụng để a) xác định toàn bộ nhóm một cách duy nhất và b) thực hiện xác thực trong giỏ hàng. |
composite_item |
string |
Con | ID Thành phần liên kết với mục con trong giỏ hàng này. |
Dữ liệu này được sử dụng nội bộ để establish the parent/child relationships of cart items gắn kết với một sản phẩm composite. Phần mở rộng cung cấp một tập hợp các chức năng tiện ích toàn cầu mà bạn có thể sử dụng để:
- Kiểm tra xem một mục trong giỏ hàng có phải là một mục con trong giỏ hàng composite và lấy cha mẹ của nó.
- Kiểm tra xem một mục trong giỏ hàng có phải là một mục trong giỏ hàng cha mẹ composite và nhận con của nó.
Để biết chi tiết, vui lòng tham khảo Tham chiếu Hàm .
Dữ liệu Mục Đơn hàng
Cha mẹ / con order items được xác định bằng cách tạo meta mục đơn hàng sau:
Khóa | Loại | Ngữ cảnh Mục | Mô tả |
---|---|---|---|
_composite_cart_key </td |