如果您愿意使用插件来实现这一点,那么Jeroen Sormani的高级免费送货”插件肯定会对您有所帮助。使用此插件,您可以根据用户角色提供免费送货。在这种情况下,您只需创建一个新的用户角色,用于识别用户。
它位于wordpress插件目录中,是免费的:https://wordpress.org/plugins/woocommerce-advanced-free-shipping/
编辑--
我以为你想通过WP用户角色来实现它。实际上,有一种方法可以确定当前用户的会员计划,同时取消设置其他woocommerce运费/方法。根据文档,我们可以通过这样做来实现您的需求。
add_filter( \'woocommerce_package_rates\', \'hide_shipping_when_free_is_available\', 10, 2 );
function hide_shipping_when_free_is_available( $rates, $package ) {
// Get current user ID
$user_id = get_current_user_id();
// Let\'s use a hook based o https://docs.woocommerce.com/document/woocommerce-memberships-function-reference/
// This is assuming that the plan\'s name is "gold"
if (wc_memberships_is_user_active_member( $user_id, \'gold\' )) {
// If the user is active, then let\'s force the free shipping method
$free_shipping = $rates[\'free_shipping\'];
$rates = array();
$rates[\'free_shipping\'] = $free_shipping;
}
return $rates;
}
这是woocommerce的一个样本。只是,我们稍微修改了if语句。