Cấu trúc Dữ liệu và Lưu trữ

Linh Dinh March 7, 2024 Không có phản hồi

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 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ị: single | progressive | paged | paged-componentized

shop_price_calc _bto_shop_price_calc Catalog Price giá trị.

Giá trị: defaults | min_max | hidden

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ị: yes | no

sold_individually_context _bto_sold_individually Sold Individually ngữ cảnh tùy chọn.

Giá trị: product | configuration

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 virtual_composite true , thì thuộc tính virtual cũng là true .

Khi thuộc tính virtual_composite false , thuộc tính virtual được sử dụng để kiểm soát xem Composite có phải là một assembled or unassembled hay không.

Để biết thêm thông tin, hãy tham khảo các ví dụ sau bảng này.

Giá trị: yes | no

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ị: yes | no

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

Trả lời

Email của bạn sẽ không được hiển thị công khai.