当前位置: 首页 > 知识库问答 >
问题:

WooCommerce-在购物车中显示多个变体名称作为产品名称

荣沈义
2023-03-14

我想用两个选定的变体替换购物车中的产品名称。理想情况下,采用这种格式:

变式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;
    }
}

有人找到这个漏洞了吗?或者知道它是如何工作的?

谢谢!

共有1个答案

巫马修为
2023-03-14

我已经解决了。

我使用上面的代码使用属性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个商品可用,而不是缺货。 这是使用的代码。

  • 如果有人能给我一个提示,表明我做错了什么,那将是一个很大的帮助。