簡體   English   中英

獲取產品變體的 SKU

[英]Get product variation's SKU

我需要根據客戶購買的產品的 SKU 通過電子郵件向他們發送不同的信息。 問題是我的產品有變體,每個變體都有自己的 SKU。

我知道如何遍歷客戶的訂單項目並獲取產品 SKU...

// Loop through order items
foreach ( $order->get_items() as $item_id => $item ) {
  // Get product ID
  $product_id = $item->get_product_id(); 

  // Get an instance of Product object
  $item->get_product(); 

  // Get SKU
  $sku = $product->get_sku();

  echo $sku;
}

但此代碼顯示的是“原始”產品的 SKU,而不是變體:(

這應該得到你需要的:

foreach ( $order->get_items() as $item_id => $item ) {
  // Get product ID
  $product_id = $item->get_product_id(); 

  $args = array(
    'post_type'     => 'product_variation',
    'post_status'   => array( 'private', 'publish' ),
    'numberposts'   => -1,
    'orderby'       => 'menu_order',
    'order'         => 'asc',
    'post_parent'   => $product_id
    );

    $variations = get_posts( $args );

    foreach ( $variations as $variation ) {

       // get variation ID
       $variation_ID = $variation->ID;

       // get variations meta
       $product_variation = new WC_Product_Variation( $variation_ID );

       // get variation featured image
       $variation_sku = $product_variation->get_sku();

    }
}

好吧,這完全是因為我的注意力不集中......代碼運行良好,但測試產品的變體沒有單獨的 SKU,這就是為什么總是得到父母的 SKU。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM