Woocommerce - 通过挂钩更改运费 (functions.php)
Woocommerce - change shipping cost via hooks (functions.php)
我正在使用 Woocommerce 订阅和会员资格,我想根据我的用户拥有的会员计划在运费上应用一些折扣。例如,银牌会员可享受所有运输方式的 -30% 的折扣。
要检查我使用的当前会员计划:
$user_id = get_current_user_id();// Get current user ID
if ( wc_memberships_is_user_active_member( $user_id, 'silver' ) ) {
//echo 'This is a special message only for Silver members!';
} else {
//echo 'I\'m sorry, you are not a silver member. There\'s nothing here for you!';
}
但是我没有找到任何方法来改变运费的功能..
可能吗?谢谢
我在这里写了一些示例:http://reigelgallarde.me/programming/woocommerce-shipping-fee-changes-condition-met/
add_filter( 'woocommerce_package_rates', 'woocommerce_package_rates' );
function woocommerce_package_rates( $rates ) {
$user_id = get_current_user_id();
if ( ! wc_memberships_is_user_active_member( $user_id, 'silver' ) ) { return $rates; }
$discount_amount = 30; // 30%
foreach($rates as $key => $rate ) {
$rates[$key]->cost = $rates[$key]->cost - ( $rates[$key]->cost * ( $discount_amount/100 ) );
}
return $rates;
}
以上代码将对所有运输方式执行您想要的操作。
我正在使用 Woocommerce 订阅和会员资格,我想根据我的用户拥有的会员计划在运费上应用一些折扣。例如,银牌会员可享受所有运输方式的 -30% 的折扣。 要检查我使用的当前会员计划:
$user_id = get_current_user_id();// Get current user ID
if ( wc_memberships_is_user_active_member( $user_id, 'silver' ) ) {
//echo 'This is a special message only for Silver members!';
} else {
//echo 'I\'m sorry, you are not a silver member. There\'s nothing here for you!';
}
但是我没有找到任何方法来改变运费的功能..
可能吗?谢谢
我在这里写了一些示例:http://reigelgallarde.me/programming/woocommerce-shipping-fee-changes-condition-met/
add_filter( 'woocommerce_package_rates', 'woocommerce_package_rates' );
function woocommerce_package_rates( $rates ) {
$user_id = get_current_user_id();
if ( ! wc_memberships_is_user_active_member( $user_id, 'silver' ) ) { return $rates; }
$discount_amount = 30; // 30%
foreach($rates as $key => $rate ) {
$rates[$key]->cost = $rates[$key]->cost - ( $rates[$key]->cost * ( $discount_amount/100 ) );
}
return $rates;
}
以上代码将对所有运输方式执行您想要的操作。