Добавить условно скидку программно в Woocommerce 3 - PullRequest
0 голосов
/ 26 декабря 2018

Я ищу способ создать купон программно во время оформления заказа и удалить его, когда оформить заказ.Это должно быть сделано на основе бонусной системы, где я проверяю, разрешено ли клиенту получать бонус или нет.Важно то, что я не хочу делать его обычным купоном, потому что клиенты не могут добавлять его самостоятельно, зная код.

Я нашел решение только для добавлениякупон или создать его программно.Я ничего не нашел о временном купоне во время одной проверки.

Также важно, чтобы этот купон можно было комбинировать только с одним другим купоном, но не более.

Это мой код:

if ( get_discount_points() < 100 ) {
    //Customer has bonus status 1
} elseif ( get_discount_points() < 200 ) {
    //Customer has bonus status 2
} else {
    //Customer has bonus status x

по проценту скидки}

Так возможно ли это?

1 Ответ

0 голосов
/ 26 декабря 2018

Чтобы получить что-то простое, вместо этого вы можете использовать отрицательную плату (где каждый шаг увеличивает процент скидки) вроде:

function get_customer_discount(){
    if( $points = get_discount_points() ){
        if ( $points < 100 ) {
            return 1; // 1 % discount
        } elseif ( $points < 200 ) {
            return 2; // 2.5 % discount
        } else {
            return 4; // 5 % discount
        }
    } else {
        return false;
    }
}


add_action( 'woocommerce_cart_calculate_fees', 'custom_discount', 10, 1 );
function custom_discount( $cart ){
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    // Only for 2 items or more
    if( $percentage = get_customer_discount() ){
        $discount = WC()->cart->get_subtotal() * $percentage / 100;

        // Apply discount to 2nd item for non on sale items in cart
        if( $discount > 0 )
            $cart->add_fee( sprintf( __("Discount %s%%"), $percentage), -$discount );
    }
}

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

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