我试图获取购物车中所有产品的SKU。 在过去,我尝试过与产品名称类似的东西。我是这样做的:
global $woocommerce;
$items = $woocommerce->cart->get_cart();
$product_names=array();
foreach($items as $item => $values) {
$_product = $values['data']->post;
$product_names[]=$_product->post_title;
}
有没有这样的方式,而不是标题获得产品的SKU?
编辑:
我尝试了Thoby的方式:
global $woocommerce;
$items = $woocommerce->cart->get_cart();
$product_names=array();
$productsku=array();
foreach($items as $item => $values) {
$_product = $values['data']->post;
$product_names[]=$_product->post_title;
$productsku[]= $_woo_product->get_sku();
}
但是我收到了一个错误:
致命错误:调用未定义的方法WP_Post :: get_sku()
答案 0 :(得分:3)
我相信这可能对你有帮助 -
$_product->get_sku();
它适用于产品循环,您可以在购物车/结帐/等中使用它。
答案 1 :(得分:3)
尝试:
global $woocommerce;
$items = $woocommerce->cart->get_cart();
$product_names = array();
foreach($items as $item => $values) {
// Retrieve WC_Product object from the product-id:
$_woo_product = wc_get_product( $values['product_id'] );
// Get SKU from the WC_Product object:
$product_names[] = $_woo_product->get_sku();
}
官方WooCommerce API文档:wc_get_product()
答案 2 :(得分:1)
我认为您已经可以访问$cart
$cart_items = $cart->get_cart_contents();
$skus = array();
foreach($cart_items as $cart_item) {
// Get WC_Product by Variation ID, if not avaiable use Product ID
$product = wc_get_product($cart_item["variation_id"] ? $cart_item["variation_id"] :
$cart_item["product_id"]);
// Add new SKU to array
array_push($skus, $product->get_sku());
}