我尝试为functions.php实现一个代码片段,该代码片段将适用 需要“管理员”角色时,送货费可享受50%的折扣 隐藏它可以免费送货。
它没有我想要的。我在做什么错了?
add_action( 'woocommerce_cart_calculate_fees','discount_based_on_user_role_and_payment', 20, 1 );
function discount_based_on_user_role_and_payment( $cart) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$discount = WC()->cart->shipping_total/2;
if ( $discount >0 && !current_user_can('administrator') )
return;
$cart->add_fee( sprintf( __("Chiết khấu", "woocommerce")), -$discount, true );
}
有人可以帮助完成此操作吗?还是至少指向正确的方向?
答案 0 :(得分:1)
如果您在添加费用之前添加return;
,则不会发生任何事情。
而是使用此更改不大的代码版本:
add_action( 'woocommerce_cart_calculate_fees','discount_based_on_user_role_and_payment', 20, 1 );
function discount_based_on_user_role_and_payment( $cart) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$discount = $cart->shipping_total / 2;
if ( $discount > 0 && current_user_can('administrator') ) {
$cart->add_fee( sprintf( __("Chiết khấu", "woocommerce")), -$discount, true );
}
}
代码进入您的活动子主题(活动主题)的function.php文件中。经过测试并可以正常工作。