Как я могу применить купон Woocommerce к определенной роли пользователя без плагина?

Я реализовал роль оптового пользователя на Wordpress-сайте моего клиента. Конечная цель - предоставить оптовому пользователю скидку 40 % на все товары, но если они потратят 500,00 долл. США или более, они получат дополнительные 7% от общей суммы покупки в корзине. Я установил первоначальную скидку 40 % с динамическим ценообразованием, а для дополнительных 7% я создал купон, который будет автоматически применяться к корзине без необходимости вводить код купона.

Единственная проблема заключается в том, что купон работает для всех пользователей (клиентов, администраторов и дилеров) и не зависит от конкретной роли. Может кто-нибудь сказать мне, как я могу изменить свой код купона, чтобы применить только к роли пользователя для "дилера"? Если вам нужно увидеть живой сайт, вы можете посмотреть его здесь! Спасибо!

    add_action( 'woocommerce_before_cart', 'apply_matched_coupons' );

function apply_matched_coupons() {
    global $woocommerce;

    $coupon_code = 'additionaldiscount'; // coupon code

    if ( $woocommerce->cart->has_discount( $coupon_code ) ) return;

    if ( $woocommerce->cart->cart_contents_total >= 500 ) {
        $woocommerce->cart->add_discount( $coupon_code );
        $woocommerce->show_messages();
    }

}

1 ответ

Решение

Ты можешь использовать current_user_can() проверить роль или возможность:

if ( current_user_can('dealer') && $woocommerce->cart->cart_contents_total >= 500 ) {
    $woocommerce->cart->add_discount( $coupon_code );
    $woocommerce->show_messages();
}
Другие вопросы по тегам