根据类别,为每个产品的WooCommerce添加一定的费用

时间:2016-04-09 22:31:35

标签: php wordpress wordpress-plugin woocommerce

我是新来的,虽然我已经使用该网站数月来从别人的问题中收集一些帮助。

我试图以下一种方式在woocommerce中增加费用:

网站必须检查购物车,找到符合类别ID的产品,计算每种产品的百分比费用,总结并收取费用。

到目前为止,我已设法检查购物车,找到符合类别的产品(获取金额)并将固定费用乘以ammount。

如您所见,如果我有3种产品符合标准(类别ID)50英镑,40英镑和30英镑,则费用为3 * 10(固定费用为10)。

我真正想要的是该网站计算这些产品的费用百分比(50 * 10,40 * 10,30 * 10)并总结(500 + 400 + 300)。显然,并非所有产品都具有相同的价格。

这是我的代码:

function df_add_handling_fee( $cart_object ) {

global $woocommerce;
$specialfeecat = 61; // category id for the special fee
$spfee = 0.00; // initialize special fee
$spfeeperprod = 10; //special fee per product

//Getting Cart Contents. 
$cart = $woocommerce->cart->get_cart();
//Calculating Quantity
foreach($cart as $cart_val => $cid){
$qty += $cid['quantity']; 
}
foreach ( $cart_object->cart_contents as $key => $value ) {

$proid = $value['product_id']; //get the product id from cart
$quantiy = $value['quantity']; //get quantity from cart
$itmprice = $value['data']->price; //get product price

$terms = get_the_terms( $proid, 'product_cat' ); //get taxonomy of the products
if ( $terms && ! is_wp_error( $terms ) ) :
    foreach ( $terms as $term ) {
        $catid = $term->term_id;
        if($specialfeecat == $catid ) {
            $spfee = $spfee + $quantiy * $spfeeperprod;
        }
    }
endif;  
}

if($spfee > 0 ) {

$woocommerce->cart->add_fee( 'Handling Fee', $spfee, true, 'standard' );
}

}

add_action( 'woocommerce_cart_calculate_fees', 'df_add_handling_fee' );

谢谢!

2 个答案:

答案 0 :(得分:0)

很好地展示了!

此插件可以轻松解决问题,它允许您根据您在woocommerce商店中配置的多个条件规则的组合,在购物车中收取额外费用。

我希望它有所帮助!

WooCommerce Conditional Product Fees For Checkout

答案 1 :(得分:0)

希望这会有所帮助:

产品A - 类别1 //产品B - 类别2 //产品C - 类别3 ////产品D - 类别1

我的购物车=产品A的2个,产品B的3个,产品C的1个和产品D的4个

我想添加一项费用来计算我从类别1&中获得7项的数量。 2,每个产品增加固定价格5美元....

我发现网上的代码可能更容易......不幸的是我已经购买了几个插件,但他们没有做我需要的。

<div class="outer">
	<div class="top">
		<img src="http://themeflush.com/minimalix/demo4/wp-content/uploads/2014/08/wallpapers-for-christian-background-tumblr-photography-vintage-images-tumblr-wallpapers.jpg">
	</div>
	<div class="bottom">
		<span>Title of the description<span>
		<p>This is a long description.</p>
	</div>
</div>