在购物车Wordpress中获取产品的SKU

问题描述:

I'm trying to get the SKU of all the products in my cart. In the past i tried something similar with the product names. I did it like this:

global $woocommerce;
$items = $woocommerce->cart->get_cart();
$product_names=array();
foreach($items as $item => $values) { 
    $_product = $values['data']->post; 
    $product_names[]=$_product->post_title; 
} 

Is there a way like this but instead of the title get the SKU of a product?

EDIT:

I tried Thoby's way like this :

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();
} 

But i get an error :

Fatal error: Call to undefined method WP_Post::get_sku()

我正在尝试获取购物车中所有产品的SKU。 过去我尝试过与产品名称类似的东西。 我是这样做的: p>

  global $ woocommerce; 
 $ items = $ woocommerce-> cart-> get_cart(); 
 $ product_names = array()  ; 
foreach($ items as $ item => $ values){
 $ _product = $ values ['data']  - > post;  
 $ product_names [] = $ _ product-> post_title;  
} 
  code>  pre> 
 
 

有没有这样的方法,而不是标题获得产品的SKU? p>

编辑 : p>

我尝试了Thoby的方式: p>

  global $ woocommerce; 
 $ items = $ woocommerce-> cart-&gt  ; get_cart(); 
 $ product_names = array(); 
 $ productsku = array(); 
foreach($ items as $ item => $ values){
 $ _product = $ values ['data']  - >柱;  
 $ product_names [] = $ _ product-> post_title; 
 $ productsku [] = $ _woo_product-> get_sku(); 
} 
  code>  pre> 
 
 

但我得到一个错误: p>

致命错误:调用未定义的方法WP_Post :: get_sku() p> blockquote> div >

Try :

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(); 
}

The official WooCommerce API docs: wc_get_product()

I believe this might help you-

$_product->get_sku();

It works with product loops and you can use it inside your cart/checkout/etc..