Применить скидку для определенной роли пользователя в Woocommerce - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть магазин woocommerce с 3 ролями пользователей. Я хочу предоставить скидку 10% на общую сумму корзины только для роли пользователя "company".

Я нашел "Процентная скидка в зависимости от роли пользователя и способа оплаты в ответе Woocommerce", что очень мало того, что мне нужно, но я не знаю, как изменить код в соответствии с моими потребностями, поскольку он также содержит условие на основео способе оплаты и отображении скидки только при оформлении заказа, но мне нужно, чтобы она отображалась и в корзине.

1 Ответ

0 голосов
/ 26 февраля 2019

В следующем коде будет применена скидка 10% на роль пользователя «компания» (в корзине и на кассе):

// Applying conditionally a discount for a specific user role
add_action( 'woocommerce_cart_calculate_fees', 'discount_based_on_user_role', 20, 1 );
function discount_based_on_user_role( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return; // Exit

    // Only for 'company' user role
    if ( ! current_user_can('company') )
        return; // Exit

    // HERE define the percentage discount
    $percentage = 10;

    $discount = $cart->get_subtotal() * $percentage / 100;
    // Applying discount
    $cart->add_fee( sprintf( __("Discount (%s)", "woocommerce"), $percentage . '%'), -$discount, true );
}

Код продолжается function.php файл вашего активногодетская тема (или активная тема).Должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...