在 WooCommerce 结账时根据产品类型显示产品变体描述或产品简短描述

Display product variation description or product short description based on product type in WooCommerce checkout

此代码片段在 WooCommerce 结账时显示产品简短描述

// Display on cart & checkout pages
function filter_woocommerce_get_item_data( $item_data, $cart_item ) {
    // Product excerpt
    $post_excerpt = get_the_excerpt( $cart_item['product_id'] );
    
    // NOT empty
    if ( ! empty( $post_excerpt ) ) {
        $item_data[] = array(
            'key'     => __( 'Product description', 'woocommerce' ),
            'value'   => $post_excerpt,
            'display' => $post_excerpt,
        );
    }
    
    return $item_data;
}
add_filter( 'woocommerce_get_item_data', 'filter_woocommerce_get_item_data', 10, 2 );

问题是可变产品只能有 1 个产品简短描述,因此所有产品变体都具有相同的确切描述。

是否可以修改此代码片段以显示产品变体描述而不是显示可变产品的产品简短描述

要显示产品变体描述而不是可变产品的产品简短描述,您可以使用:

// Display on cart & checkout pages
function filter_woocommerce_get_item_data( $item_data, $cart_item ) {   
    // Compare
    if ( $cart_item['data']->get_type() == 'variation' ) {
        // Get the variable product description
        $description = $cart_item['data']->get_description();
    } else {    
        // Get product excerpt
        $description = get_the_excerpt( $cart_item['product_id'] );
    }       
        
    // Isset & NOT empty
    if ( isset ( $description ) && ! empty( $description ) ) {
        $item_data[] = array(
            'key'     => __( 'Description', 'woocommerce' ),
            'value'   => $description,
            'display' => $description,
        );
    }
    
    return $item_data;
}
add_filter( 'woocommerce_get_item_data', 'filter_woocommerce_get_item_data', 10, 2 );