Woocommerce

时间:2016-11-13 09:14:49

标签: php wordpress woocommerce cart custom-taxonomy

我想从Cart Total中删除/取出特定类别产品的价格。

请看这个截图:

Cart Page

我可以使用什么钩子来做到这一点?

感谢。

1 个答案:

答案 0 :(得分:2)

使用woocommerce_before_calculate_totals WordPress条件函数来过滤购物车商品中的商品类别, has_term() 是正确的。这样您就可以取消购物车商品的价格。

这是代码(增加了Woocommerce 3 +的兼容性)

add_action( 'woocommerce_before_calculate_totals', 'custom_price_product_category', 20, 1 );
function custom_price_product_category( $cart ) {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
        return;

    foreach ( $cart->get_cart() as $cart_item ) {
        // When a product has 'glass' as category we null the price.
        if( has_term( 'glass', 'product_cat', $cart_item["product_id"] ) ){
            // Added Woocommerce 3+ compatibility
            if( version_compare( WC_VERSION, '3.0', '<' ) )
                $item['data']->price = '0';
            else
                $item['data']->set_price(0);
        }
    }
}

这可以在您的活动子主题(或主题)的function.php文件中,也可以在任何插件文件中。

此代码经过测试并有效。