add_filter('woocommerce_package_rates', 'hide_shipping_method_if_particular_product_available_in_cart', 10, 2);
function hide_shipping_method_if_particular_product_available_in_cart($available_shipping_methods)
{
global $woocommerce;
// products_array should be filled with all the products ids
// for which shipping method (stamps) to be restricted.
$products_array = array(
101,
102,
103,
104
);
// You can find the shipping service codes by doing inspect element using
// developer tools of chrome. Code for each shipping service can be obtained by
// checking 'value' of shipping option.
$shipping_services_to_hide = array(
'free_shipping',
);
// Get all products from the cart.
$products = $woocommerce->cart->get_cart();
// Crawl through each items in the cart.
foreach($products as $key => $item) {
// If any product id from the array is present in the cart,
// unset all shipping method services part of shipping_services_to_hide array.
if (in_array($item['product_id'], $products_array)) {
foreach($shipping_services_to_hide as & $value) {
unset($available_shipping_methods[$value]);
}
break;
}
}
// return updated available_shipping_methods;
return
}
2条答案
按热度按时间r9f1avp51#
此自定义代码将保持免费送货方法,并将隐藏其他送货方式时,购物车金额高达250,如果产品不重(低于20公斤在这里)...不允许免费送货订单少于250,你可以在woocommerce (见末尾)。
首先,您必须确保在每个重产品中设置了重量(对于简单产品或可变产品(在每个变体中))。此处的购物车小计为不含税*(您可以轻松地将其更改为含税)*。
下面是**
woocommerce_package_rates
**filter钩子中的自定义钩子函数:代码在你的活动子主题(或主题)的function.php文件中,或者也可以在任何插件文件中。
此代码经过测试,它适用于简单和可变的产品...
您还必须在WooCommerce设置〉运输,对于每个运输区域和**
"Free Shipping"
**方法,您的最低订单金额:06odsfpq2#
对于超过一定金额的免费送货,您可以使用内置WooCommerce选项。
对于跳过免费送货,如果一些特定的产品,你可以使用下面的片段.