Là một lập trình viên mình thường phải thao tác rất nhiều với các dòng code về woocommerce, và thường khó để nhớ hết các dòng code này một cách chính xác nên thường trước khi làm mình phải tốn khá nhiều thời gian để search google lại.
Đó là lý do mình hệ thống hóa lại các đoạn code theo các từ khóa trước hết là cho mình và sau đó là chia sẻ với mọi người. Chủ đề bài viết hôm nay là truy xuất thông tin trong giỏ hàng từ đối tượng là $cart của woocommerce
1.Nếu bạn phải truy xuất đối tượng $cart
Nếu trong hàm bạn phải truy xuất thông tin bằng biến $cart thì bạn dùng dòng sau để nạp thông tin vào:
1 |
$cart = WC()->cart; |
Sau đó bạn có thể truy xuất các thông tin còn lại như trường hợp thứ 2 bên dưới
2. Nếu bạn không thể truy xuất biến $cart
Trường hợp bạn không truy xuất được biến $cart hay hàm hiện tại ko truy cập được, bạn dùng biến toàn cục WC()->cart; để truy xuất biến $cart nhé, sau đó truy cập thông tin bằng các dòng code bên dưới
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
// $cart conditionals (if) WC()->cart->is_empty() WC()->cart->needs_payment() WC()->cart->show_shipping() WC()->cart->needs_shipping() WC()->cart->needs_shipping_address() WC()->cart->display_prices_including_tax() // Get $cart totals WC()->cart->get_cart_contents_count(); WC()->cart->get_cart_subtotal(); WC()->cart->subtotal_ex_tax; WC()->cart->subtotal; WC()->cart->get_displayed_subtotal(); WC()->cart->get_taxes_total(); WC()->cart->get_shipping_total(); WC()->cart->get_coupons(); WC()->cart->get_coupon_discount_amount( 'coupon_code' ); WC()->cart->get_fees(); WC()->cart->get_discount_total(); WC()->cart->get_total(); WC()->cart->total; WC()->cart->get_tax_totals(); WC()->cart->get_cart_contents_tax(); WC()->cart->get_fee_tax(); WC()->cart->get_discount_tax(); WC()->cart->get_shipping_total(); WC()->cart->get_shipping_taxes(); // Loop over $cart items foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { $product = $cart_item['data']; $product_id = $cart_item['product_id']; $quantity = $cart_item['quantity']; $price = WC()->cart->get_product_price( $product ); $subtotal = WC()->cart->get_product_subtotal( $product, $cart_item['quantity'] ); $link = $product->get_permalink( $cart_item ); // Anything related to $product, check $product tutorial $attributes = $product->get_attributes(); $whatever_attribute = $product->get_attribute( 'whatever' ); $whatever_attribute_tax = $product->get_attribute( 'pa_whatever' ); $any_attribute = $cart_item['variation']['attribute_whatever']; $meta = wc_get_formatted_cart_item_data( $cart_item ); } // Get $cart customer billing / shipping WC()->cart->get_customer()->get_billing_first_name(); WC()->cart->get_customer()->get_billing_last_name(); WC()->cart->get_customer()->get_billing_company(); WC()->cart->get_customer()->get_billing_email(); WC()->cart->get_customer()->get_billing_phone(); WC()->cart->get_customer()->get_billing_country(); WC()->cart->get_customer()->get_billing_state(); WC()->cart->get_customer()->get_billing_postcode(); WC()->cart->get_customer()->get_billing_city(); WC()->cart->get_customer()->get_billing_address(); WC()->cart->get_customer()->get_billing_address_2(); WC()->cart->get_customer()->get_shipping_first_name(); WC()->cart->get_customer()->get_shipping_last_name(); WC()->cart->get_customer()->get_shipping_company(); WC()->cart->get_customer()->get_shipping_country(); WC()->cart->get_customer()->get_shipping_state(); WC()->cart->get_customer()->get_shipping_postcode(); WC()->cart->get_customer()->get_shipping_city(); WC()->cart->get_customer()->get_shipping_address(); WC()->cart->get_customer()->get_shipping_address_2(); // Other stuff WC()->cart->get_cross_sells(); WC()->cart->get_cart_item_tax_classes_for_shipping(); WC()->cart->get_cart_hash(); WC()->cart->get_customer(); |
Chúc các bạn thành công nhé
Cover từ: https://www.businessbloomer.com/woocommerce-get-cart-info-total-items-etc-from-cart-object/