我想知道...是否可以在WooCommerce中获得“免费送货的最低订购额?”>
我的想法是这样的:
1)用WooCommerce地理位置检查访客国家/地区>
2)检查运输区域是否包含访客国家/地区
3)如果是>>获取该送货区域的送货方式
4)如果送货方式='free_shipping'回显'免费送货的最小订单金额='$ free_shipping_order_amount
这将可行吗?但我无法实现。
这是我到目前为止的内容:
$delivery_zones = WC_Shipping_Zones::get_zones(); $geo = new WC_Geolocation(); $user_ip = $geo->get_ip_address(); $user_geo = $geo->geolocate_ip( $user_ip ); $country = $user_geo['country']; $user_country = WC()->countries->countries[ $country ]; foreach ((array) $delivery_zones as $key => $delivery_zone ) { if (strpos($delivery_zone['formatted_zone_location'], $user_country) !== false) { foreach ($delivery_zone['shipping_methods'] as $value) { break; } if ($value->id == 'free_shipping') { // This is where all magic should happen } } }
[任何帮助将不胜感激:) T.i.a。
我想知道...是否可以在WooCommerce中获得“免费送货的最低订购额”?我的想法是这样的:1)使用WooCommerce地理位置检查访客国家/地区2)检查...
我目前对超过75美元的商品提供免费送货服务,但是如果管理员登录并下订单,则希望管理员免费送货。我尝试使用以下代码,但不会触发它。难道我做错了什么?
add_filter( 'woocommerce_package_rates', 'show_free_shipping', 10, 2 );
function show_free_shipping( $rates, $package ) {
global $current_user;
$free = array();
foreach ( $rates as $rate_id => $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
if ($current_user->ID) {
$user_roles = $current_user->roles;
$user_role = array_shift($user_roles);
if ($user_role == 'administrator') {
$free[ $rate_id ] = $rate;
break;
}
}
}
}
return ! empty( $free ) ? $free : $rates;
//return $rates;
}