从产品变体标题中删除属性值,并在不同的行上显示它们

时间:2017-11-19 13:55:20

标签: php wordpress woocommerce cart checkout

我有一个结帐页面,我想:

  • 从产品变体标题项中删除所选的产品属性值。
  • 也从项目标题中删除数量。
  • 针对此产品变体项显示不同行的属性值,例如大小,颜色和不同行的数量。

我想在我的结帐页面上显示:

  

Aria运动短裤 (产品名称)

     

颜色: Dusty Pink

     

尺寸:

     

数量: 1

而不是:

How it looks now

有可能吗?我应该从哪里开始做到这一点?

1 个答案:

答案 0 :(得分:3)

<强>已更新

1)由于WooCommerce 3+,要从产品变体标题中删除属性值并在单独的行中显示它们,需要使用这2个专用的简单钩子(在结帐页面中)。

  • 从产品变体标题中删除属性值:
add_filter( 'woocommerce_product_variation_title_include_attributes', 'variation_title_not_include_attributes' );
function variation_title_not_include_attributes( $boolean ){
    if ( ! is_cart() )
        $boolean = false;
    return $boolean;
}
  • 在不同的行中显示产品变体属性标签和值:
add_filter( 'woocommerce_is_attribute_in_product_name', 'remove_attribute_in_product_name' );
function remove_attribute_in_product_name( $boolean){
    if ( ! is_cart() )
        $boolean = false;
    return $boolean;
}

2)结帐页面 - 从产品标题中删除数量,然后将其添加回单独的行中。

  • 从产品标题中删除数量:
add_filter( 'woocommerce_checkout_cart_item_quantity', 'remove_product_variation_qty_from_title', 10, 3 );
function remove_product_variation_qty_from_title( $quantity_html, $cart_item, $cart_item_key ){
    if ( $cart_item['data']->is_type('variation') && is_checkout() )
        $quantity_html = '';

    return $quantity_html;
}
  • 将购物车项目数量添加回单独的行:
add_filter( 'woocommerce_get_item_data', 'filter_get_item_data', 10, 2 );
function filter_get_item_data( $item_data, $cart_item ) {

    if ( $cart_item['data']->is_type('variation') && is_checkout() )
        $item_data[] = array(
            'key'      => __('QTY'),
            'display'  => $cart_item['quantity']
        );

    return $item_data;
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

在Woocommerce版本3+中测试并且有效。 您可能需要进行一些样式更改...