【问题标题】:Quantity Discount for 2nd Item Based on Product Category in WoocommerceWoocommerce中基于产品类别的第二件商品的数量折扣
【发布时间】:2019-09-17 01:45:42
【问题描述】:

基于 "Quantity discount on 2nd item only in Woocommerce" 回答我以前的问题之一的代码,我想帮助我了解如何为has_term() 添加 if 语句,这样,使此代码仅适用一个或多个类别。

任何曲目都会受到赞赏。

【问题讨论】:

  • 那么您遇到的问题或错误是什么?
  • 我尝试添加这样的术语声明:if ( has_term( array('cat1', 'cat2'), 'product_cat', $product->get_id() ) ) { 但它使页面崩溃。

标签: php wordpress woocommerce cart custom-taxonomy


【解决方案1】:

以下将使用 WordPress has_tem() 条件函数扩展您定义产品类别的代码:

add_action( 'woocommerce_cart_calculate_fees', 'second_item_discount', 10, 1 );
function second_item_discount( $cart ) {

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

    $percentage = 20; // 20%
    $categories = array('cat1', 'cat2'); // Defined product categories term slugs
    $discount   = 0;

    // Loop through cart items
    foreach ( $cart->get_cart() as $cart_item ) {
        // When quantity is more than 1 and for defined product categories
        if( $cart_item['quantity'] > 1 && has_term( $categories, 'product_cat', $cart_item['product_id'] ) ){
            // 20% of the product price as a discount
            $discount += wc_get_price_excluding_tax( $cart_item['data'] ) * $percentage / 100;
        }
    }
    if( $discount > 0 )
        $cart->add_fee( __( '2nd item discount', 'woocommerce' ) , -$discount );
}

代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试并且可以工作。

【讨论】:

    猜你喜欢
    • 2017-09-27
    • 2019-06-13
    • 2020-08-30
    • 2021-01-01
    • 2020-08-18
    • 2021-05-18
    • 2019-02-06
    • 2019-01-31
    • 2021-06-10
    相关资源
    最近更新 更多