我想用两个选定的变体替换购物车中的产品名称。理想情况下,采用这种格式:
变式1-变式2
对于下面的代码,它可以工作,但只显示第一个变体的名称。
add_action( 'woocommerce_before_calculate_totals', 'custom_cart_items_prices', 10, 1 );
function custom_cart_items_prices( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
return;
foreach ( $cart->get_cart() as $cart_item ) {
$product = $cart_item['data'];
$original_name = method_exists( $product, 'get_name' ) ? $product->get_name() : $product->post->post_title;
$new_name = wc_gzd_get_product( $product )->get_attribute('pa_attribute3';
if( method_exists( $product, 'set_name' ) )
$product->set_name( $new_name );
else
$product->post->post_title = $new_name;
}
}
有人找到这个漏洞了吗?或者知道它是如何工作的?
谢谢!
我已经解决了。
我使用上面的代码使用属性3作为项目名称,并使用此代码添加属性1和2:
function show_things_in_cart_items( $item_name, $cart_item, $cart_item_key ) {
$product = $cart_item['data'];
$att1 = $product->get_attribute('pa_attribute1');
$att2 = $product->get_attribute('pa_attribute2');
{
$item_name = '<class="product-model">' . $att1 . __( " ", "woocommerce") . $att2 . __( " - ", "woocommerce") . $item_name;
}
return $item_name;
}
add_filter( 'woocommerce_cart_item_name', 'show_things_in_cart_items', 99, 3 );
感谢用户LoicTheAztec提供了这段代码的基础,我只是根据自己的需要修改了它。我在这里找到的:https://wordpress.stackexchange.com/questions/348631/adding-product-sku-before-cart-item-name-in-woocommerce
目标:在一个按钮点击中添加多个可变产品到购物车。 我试着将这段代码放入循环中,但它不起作用。 但是这种方法不能解决问题,因为我需要在一个按钮点击中添加几个产品变体。 所有的建议都将不胜感激。多谢了。
如何在Woocommerce购物车页面中的购物车项目名称后添加产品ID? 我知道我需要先不返回,因为这样会把我从函数中拉出来,但我很好奇我该如何去做这件事。
在我的WooCommerce商店中,当一个可变产品被添加到购物车时,我让用户停留在产品页面上。 成功通知消息显示了产品标题以及通用附件,但我希望它在通知中显示产品标题的变化,如: “男式外套尺寸:小”已添加到您的购物车中。 而不是: “男式外套”已添加到您的购物车中。 目前正在运行WooCommerce 3.3.1和WP 4.9。 谢啦
我有两个代码来更改我的WooCommerce变量产品的产品名称。第一个可以在任何地方正常工作,但不是在我的浮动车插件(它使用默认的产品名称)。 第二个是我的“浮动购物车插件”,但如果我也使用它,我在购物车和结帐页面表上有两次相同的名字。 这些代码的某些部分是在互联网上找到的,其他部分是我自己写的。有没有人知道如何组合它,使它在任何地方都可以工作,而不必在购物车中使用相同的名称2次?
我创建了一个定制的产品类型变量,在后端和前端一切都很好,唯一的问题是,在购物车/结帐详细信息中,变量产品名称没有显示,而且在购买商品后库存没有减少,1个商品可供变量使用,购买后,保持1个商品可用,而不是缺货。 这是使用的代码。
如果有人能给我一个提示,表明我做错了什么,那将是一个很大的帮助。