WooCommerce: Nhận thông tin sản phẩm (ID, SKU, $) từ $ product object
Tôi đã muốn xuất bản hướng dẫn Nhận thông tin sản phẩm (ID, SKU, $) từ $ product object này trong một thời gian dài. Là một freelancer phát triển WooCommerce, hàng ngày tôi lặp đi lặp lại nhiều thao tác khiến tôi lãng phí thời gian… và một trong số đó thực sự là “How to get ____ if I have the $product variable/object?”.
Ví dụ: “How can I get the product SKU”? Hoặc “How can I get the product short description“? Hoặc có thể là mức product stock, hạng vận chuyển, hạng thuế, giá cả, giá thông thường, giá ưu đãi,… hy vọng bài viết này sẽ giúp bạn tiết kiệm thời gian.
Tất nhiên, không phải lúc nào bạn cũng có quyền truy cập vào biến $ product (ví dụ: tôi đang nói về móc WooCommerce), vì vậy bạn cũng phải hiểu tình huống trường hợp của mình và xem liệu bạn có thể “get” đối tượng $ product đó trong một đường.
Ví dụ: bạn có thể biết $ product_id. Trong trường hợp này, bạn phải tìm cách “get the $product object from $product_id” – bạn tìm ví dụ này bên dưới.
Các ví dụ khác có thể là đơn đặt hàng hoặc các trang giỏ hàng. Một lần nữa, tại đây bạn không thực sự có sẵn sản phẩm $, vì vậy bạn phải duyệt qua các mặt hàng trong đơn đặt hàng / giỏ hàng và “get” nó. Sau đó, bạn có thể tính toán và lấy bất kỳ thông tin nào bạn yêu cầu từ $ product. Thưởng thức!
1. Bạn có quyền truy cập vào biến $ product – Nhận thông tin sản phẩm (ID, SKU, $) từ $ product object
Hooks (do_action và apply_filters) sử dụng các đối số bổ sung được chuyển cho hàm. Nếu họ cho phép bạn sử dụng đối tượng “$ product” mà bạn đang kinh doanh. Ngoài ra, bạn có thể khai báo “global $ product” bên trong hàm của mình.
Trong cả hai trường hợp, đây là cách lấy tất cả thông tin sản phẩm:
[code]
// Get Product ID
$product->get_id();
// Get Product General Info
$product->get_type();
$product->get_name();
$product->get_slug();
$product->get_date_created();
$product->get_date_modified();
$product->get_status();
$product->get_featured();
$product->get_catalog_visibility();
$product->get_description();
$product->get_short_description();
$product->get_sku();
$product->get_menu_order();
$product->get_virtual();
get_permalink( $product->get_id() );
// Get Product Prices
$product->get_price();
$product->get_regular_price();
$product->get_sale_price();
$product->get_date_on_sale_from();
$product->get_date_on_sale_to();
$product->get_total_sales();
// Get Product Tax, Shipping & Stock
$product->get_tax_status();
$product->get_tax_class();
$product->get_manage_stock();
$product->get_stock_quantity();
$product->get_stock_status();
$product->get_backorders();
$product->get_sold_individually();
$product->get_purchase_note();
$product->get_shipping_class_id();
// Get Product Dimensions
$product->get_weight();
$product->get_length();
$product->get_width();
$product->get_height();
$product->get_dimensions();
// Get Linked Products
$product->get_upsell_ids();
$product->get_cross_sell_ids();
$product->get_parent_id();
// Get Product Variations and Attributes
$product->get_children(); // get variations
$product->get_attributes();
$product->get_default_attributes();
$product->get_attribute( ‘attributeid’ ); //get specific attribute value
// Get Product Taxonomies
$product->get_categories();
$product->get_category_ids();
$product->get_tag_ids();
// Get Product Downloads
$product->get_downloads();
$product->get_download_expiry();
$product->get_downloadable();
$product->get_download_limit();
// Get Product Images
$product->get_image_id();
$product->get_image();
$product->get_gallery_image_ids();
// Get Product Reviews
$product->get_reviews_allowed();
$product->get_rating_counts();
$product->get_average_rating();
$product->get_review_count();
[/code]
2. Bạn có quyền truy cập vào $ product_id – Nhận thông tin sản phẩm (ID, SKU, $) từ $ product object
Nếu bạn có quyền truy cập vào ID sản phẩm (một lần nữa, thường do_action hoặc apply_filters sẽ làm cho điều này khả thi với bạn), trước tiên bạn phải có được đối tượng sản phẩm. Sau đó, làm những việc tương tự như trên.
[code]
// Get $product object from product ID
$product = wc_get_product( $product_id );
// Now you have access to (see above)…
$product->get_type();
$product->get_name();
// etc.
// etc.
[/code]
3. Bạn có quyền truy cập vào Order object hoặc Order ID – Nhận thông tin sản phẩm (ID, SKU, $) từ $ product object
Làm thế nào để lấy thông tin sản phẩm bên trong Đơn hàng? Trong trường hợp này, bạn sẽ cần lặp lại tất cả các mục có trong đơn hàng, sau đó áp dụng các quy tắc ở trên.
[code]
// Get $product object from $order / $order_id
$order = wc_get_order( $order_id );
$items = $order->get_items();
foreach ( $items as $item ) {
$product = $item->get_product();
// Now you have access to (see above)…
$product->get_type();
$product->get_name();
// etc.
// etc.
}
[/code]
Nếu bạn muốn mở rộng kiến thức của mình, đây là một bài viết khác về cách lấy thêm thông tin từ đối tượng $ order.
4. Bạn có quyền truy cập vào đối tượng Cart
Làm thế nào để lấy thông tin sản phẩm bên trong Giỏ hàng? Trong trường hợp này, một lần nữa, bạn sẽ cần xem qua tất cả các mặt hàng có trong giỏ hàng, sau đó áp dụng các quy tắc trên.
[code]
// Get $product object from Cart object
$cart = WC()->cart->get_cart();
foreach( $cart as $cart_item_key => $cart_item ){
$product = $cart_item[‘data’];
// Now you have access to (see above)…
$product->get_type();
$product->get_name();
// etc.
// etc.
}
[/code]
Nếu bạn muốn mở rộng kiến thức về WooCommerce PHP của mình, đây là một bài viết khác về cách lấy thông tin bổ sung từ đối tượng $ cart.
Thêm đoạn mã này vào đâu?
Bạn có thể đặt các đoạn mã PHP ở cuối tệp functions.php chủ đề con của mình (trước “?>” Nếu bạn có). Mặt khác, CSS có trong tệp style.css chủ đề con của bạn.
Đoạn mã này (vẫn) hoạt động chứ?
Vui lòng cho tôi biết trong phần bình luận nếu mọi thứ hoạt động như mong đợi. Tôi rất sẵn lòng sửa đổi đoạn mã nếu bạn có góp ý phù hợp (vui lòng cung cấp ảnh chụp màn hình).
Dịch vụ thiết kế website chuyên nghiệp tại Web MTP
Liên hệ ngay với chúng tôi nếu bạn đang gặp khó khăn trong việc thiết kế web nhé!
Website: https://webmtp.com/
Hotline: 0931 912 379
Mời bạn xem nhiều bài hấp dẫn khác