根据Woocommerce中的数量添加额外费用

时间:2014-11-27 13:10:40

标签: wordpress woocommerce

我有一个问题,我到处寻找找到解决方案,但我找不到它。 我想建立一个带有Woocommerce的网上商店,但是我需要以下功能才能使它工作:

  • 当这些特定产品以奇数(1,3,5,7,9,11等)订购时,我的供应商计算部分产品的包装费为15美元。由于这些产品是成对包装的,因此它们必须打开包装。这就是他们为此计算额外成本的原因。但是,此规则不适用于所有产品。

我希望有人知道解决方案。你会成为我的英雄!!

谢谢!

1 个答案:

答案 0 :(得分:3)

你可以尝试这样的事情:

// Hook before adding fees 
add_action('woocommerce_cart_calculate_fees' , 'add_custom_fees');

/**
 * Add custom fee on article specifics
 * @param WC_Cart $cart
 */
function add_custom_fees( WC_Cart $cart ){
    $fees = 0;

    foreach( $cart->get_cart() as $item ){
        // Check if odds and if it's the right item
        if( $item[ 'quantity' ] % 2 == 1 && get_post_meta( $item[ 'product_id' ], 'custom_fee_for_supplier_name', true) ){
            // You can also put a custom price in each produt with get_post_meta
            $fees += 10;
        }
    }

    if( $fees != 0 ){
        // You can customize the descriptions here
        $cart->add_fee( 'Custom fee (odds paquets)', $fees);
    }

}

然后,您必须在自定义字段框中继续浏览每个产品,然后点击add a new custom field name:custom_fee_for_supplier_name和1以激活自定义费用。 Custom_fee