我想根据这些条件更改允许的运输方式:
如果购物车小计小于300欧元,则允许的送货方式为本地送货 .
如果购物车小计在300和1000欧元之间,则允许的运输方式是固定费率 .
超过1000€免运费 .
可以在管理员设置中设置免费送货限额 . 但是无法设置休息 . 我试图在我的自定义cart-shiping.php WC模板中更改它 . 这条路:
if($woocommerce->cart->subtotal > 300 and $woocommerce->cart->subtotal < 1000)
$chosen_method = "flat_rate";
foreach ( $available_methods as $method ) :
global $woocommerce;
$subtotal = $woocommerce->cart->subtotal;
if((($subtotal > 300 and $subtotal < 1000 or $method->method_id == "local_delivery") and ($subtotal < 300 or $method->method_id == "flat_rate")) or ($subtotal > 1000 and $method->method_id == "free_shipping")){
?>
<li>
<input type="radio" name="shipping_method[<?php echo $index; ?>]" data-index="<?php echo $index; ?>" id="shipping_method_<?php echo $index; ?>_<?php echo sanitize_title( $method->id ); ?>" value="<?php echo esc_attr( $method->id ); ?>" <?php checked( $method->id, $chosen_method ); ?> class="shipping_method" />
<label for="shipping_method_<?php echo $index; ?>_<?php echo sanitize_title( $method->id ); ?>"><?php echo wp_kses_post( wc_cart_totals_shipping_method_label( $method ) ); ?></label>
</li>
<?php
}
endforeach; ?>
这几乎是我所需要的,但总价格(购物车中所有商品的价格,包括运费价格)有时不适合,因为这个价格是在WC_Cart类中计算的,并且已经选择了shpping方法 . 有没有人知道解决这个问题或任何整个清洁方式的任何方法(除了this payd plugin)?
1 回答
这是您需要使用的代码段 . 使用
woocommerce_package_rates
过滤器挂钩,您可以有条件地设置或取消设置送货方式