WooCommerce:还显示购物车商品的产品变体描述
WooCommerce: Display also product variation description on cart items
我正在尝试在我的购物车中显示我的产品变体描述。我试过在 cart.php
模板中插入这段代码:
if ( $_product->is_type( 'variation' ) ) {echo $_product->get_variation_description();}
按照此文档进行操作 https://docs.woocommerce.com/document/template-structure/
但是还是没有出现。
不确定我做错了什么。
有人可以帮忙吗?
已更新 WooCommerce 版本 3 及更高版本
从 WooCommerce 3 开始,get_variation_description()
is now deprecated and replaced by get_description()
WC_Product
方法。
要获取您的产品变体描述(过滤变体产品类型条件),您可以改用以下钩子函数:
// Cart page (and mini cart)
add_filter( 'woocommerce_cart_item_name', 'cart_item_product_description', 20, 3);
function cart_item_product_description( $item_name, $cart_item, $cart_item_key ) {
if ( ! is_checkout() ) {
if( $cart_item['variation_id'] > 0 ) {
$description = $cart_item['data']->get_description(); // variation description
} else {
$description = $cart_item['data']->get_short_description(); // product short description (for others)
}
if ( ! empty($description) ) {
return $item_name . '<br><div class="description">
<strong>' . __( 'Description', 'woocommerce' ) . '</strong>: '. $description . '
</div>';
}
}
return $item_name;
}
// Checkout page
add_filter( 'woocommerce_checkout_cart_item_quantity', 'cart_item_checkout_product_description', 20, 3);
function cart_item_checkout_product_description( $item_quantity, $cart_item, $cart_item_key ) {
if( $cart_item['variation_id'] > 0 ) {
$description = $cart_item['data']->get_description(); // variation description
} else {
$description = $cart_item['data']->get_short_description(); // product short description (for others)
}
if ( ! empty($description) ) {
return $item_quantity . '<br><div class="description">
<strong>' . __( 'Description', 'woocommerce' ) . '</strong>: '. $description . '
</div>';
}
return $item_quantity;
}
现在描述只显示在标题和变体属性值之间(如果有)。
代码进入活动 child 主题(或活动主题)的 functions.php 文件。已测试并有效。
可以通过全局变量获取$woocommerce
也-
global $woocommerce;
$cart_data = $woocommerce->cart->get_cart();
foreach ($cart_data as $value) {
$_product = $value['data'];
if( $_product->is_type( 'variation' ) ){
echo $_product->id . '<br>';
}
}
我已经查过了
这适用于 WC 3.0
add_filter( 'woocommerce_cart_item_name', 'cart_variation_description', 20, 3);
function cart_variation_description( $title, $cart_item, $cart_item_key ) {
$item = $cart_item['data'];
if(!empty($item) && $item->is_type( 'variation' ) ) {
return $item->get_name();
} else
return $title;
}
我正在尝试在我的购物车中显示我的产品变体描述。我试过在 cart.php
模板中插入这段代码:
if ( $_product->is_type( 'variation' ) ) {echo $_product->get_variation_description();}
按照此文档进行操作 https://docs.woocommerce.com/document/template-structure/
但是还是没有出现。
不确定我做错了什么。
有人可以帮忙吗?
已更新 WooCommerce 版本 3 及更高版本
从 WooCommerce 3 开始,get_variation_description()
is now deprecated and replaced by get_description()
WC_Product
方法。
要获取您的产品变体描述(过滤变体产品类型条件),您可以改用以下钩子函数:
// Cart page (and mini cart)
add_filter( 'woocommerce_cart_item_name', 'cart_item_product_description', 20, 3);
function cart_item_product_description( $item_name, $cart_item, $cart_item_key ) {
if ( ! is_checkout() ) {
if( $cart_item['variation_id'] > 0 ) {
$description = $cart_item['data']->get_description(); // variation description
} else {
$description = $cart_item['data']->get_short_description(); // product short description (for others)
}
if ( ! empty($description) ) {
return $item_name . '<br><div class="description">
<strong>' . __( 'Description', 'woocommerce' ) . '</strong>: '. $description . '
</div>';
}
}
return $item_name;
}
// Checkout page
add_filter( 'woocommerce_checkout_cart_item_quantity', 'cart_item_checkout_product_description', 20, 3);
function cart_item_checkout_product_description( $item_quantity, $cart_item, $cart_item_key ) {
if( $cart_item['variation_id'] > 0 ) {
$description = $cart_item['data']->get_description(); // variation description
} else {
$description = $cart_item['data']->get_short_description(); // product short description (for others)
}
if ( ! empty($description) ) {
return $item_quantity . '<br><div class="description">
<strong>' . __( 'Description', 'woocommerce' ) . '</strong>: '. $description . '
</div>';
}
return $item_quantity;
}
现在描述只显示在标题和变体属性值之间(如果有)。
代码进入活动 child 主题(或活动主题)的 functions.php 文件。已测试并有效。
可以通过全局变量获取$woocommerce
也-
global $woocommerce;
$cart_data = $woocommerce->cart->get_cart();
foreach ($cart_data as $value) {
$_product = $value['data'];
if( $_product->is_type( 'variation' ) ){
echo $_product->id . '<br>';
}
}
我已经查过了
这适用于 WC 3.0
add_filter( 'woocommerce_cart_item_name', 'cart_variation_description', 20, 3);
function cart_variation_description( $title, $cart_item, $cart_item_key ) {
$item = $cart_item['data'];
if(!empty($item) && $item->is_type( 'variation' ) ) {
return $item->get_name();
} else
return $title;
}