首页 > 解决方案 > 如何在 Woocommerce 项目中显示变体名称

问题描述

我正在尝试制作一个 Ajax 弹出式购物车,其中将动态添加产品。除产品变化外,一切正常。当将变量产品添加到购物车时,它不显示变体名称:

<?php 
$items = WC()->cart->get_cart();
    foreach($items as $item => $values) {
        $_product       =  wc_get_product( $values['data']->get_id() );
        $product_link   = get_permalink( $values['data']->get_id() );
        $title          = $_product->get_title();
        $variations     = wc_get_formatted_cart_item_data($values,true);
        echo '<a href="'.$product_link.'">'. $title.'</a>';
        echo $variations;
    }
?>

标签: phpwordpressmethodswoocommerceproduct

解决方案


首先,您只需要使用WC_Product方法 get_name() (参见cart/minicart.php 第 36 行的模板)替换代码中的行:

$title          = $_product->get_title();

和:

$title          = $_product->get_name();

重要提示:在某些情况下,您需要添加以下行(取决于您要显示的内容和位置)

// Force displaying variation attributes in the product name (in cart/minicart/checkout)
add_filter( 'woocommerce_product_variation_title_include_attributes', '__return_true' );
// (Optional) Force displaying product variation attributes as separated formatted metadata (in cart/minicart/checkout)
add_filter( 'woocommerce_is_attribute_in_product_name', '__return_false' );

代码位于活动子主题(或活动主题)的 functions.php 文件中。

为了测试它,一旦将此代码添加到您的主题functions.php文件中,首先清空购物车,因为购物车片段缓存在迷你购物车(Ajax)中。

这次它将显示变体名称。


推荐阅读