Как можно привязать скидку к пользователю?

Есть скидка на woocommerce

function woo_discount_total(WC_Cart $cart) {

$woo_current_price = $cart->subtotal; // Текущая итоговая сумма

if($woo_current_price >= 10000) {

    $discount = $cart->subtotal * 0.05; // 0.05 - это 5%
    $cart->add_fee("Скидка в 5% за заказ на сумму от 10 000 рублей ", -$discount);

} elseif($woo_current_price > 10000) {

    $discount = $cart->subtotal * 0.05; // 0.05 - это 5%
    $cart->add_fee("Скидка в 5% за заказ на сумму более 10 000 рублей ", -$discount);

}
}

add_action("woocommerce_cart_calculate_fees" , "woo_discount_total");


Вопрос: можно ли скидку привязать к пользователю, чтоб при разовой покупке в 10000 руб. скидка в 5% уже была постоянная?
  • Вопрос задан
  • 244 просмотра
Решения вопроса 1
@MSAFT
Не сильно знаком с архитектурой wordpress, но знаю точно, что чем больше плагинов, тем хуже))

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

Посчитайте сумму заказов вашего пользователя, вот даже нашел пример немного погуглив:
public function get_customer_total_order() {
    $customer_orders = get_posts( array(
        'numberposts' => - 1,
        'meta_key'    => '_customer_user',
        'meta_value'  => get_current_user_id(),
        'post_type'   => array( 'shop_order' ),
        'post_status' => array( 'wc-completed' )
    ) );

    $total = 0;
    foreach ( $customer_orders as $customer_order ) {
        $order = wc_get_order( $customer_order );
        $total += $order->get_total();
    }

    return $total;
}


А потом добавьте условие в существующий код, что-то вроде такого:
elseif(get_customer_total_order() > 10000) { 

$discount = $cart->subtotal * 0.05; // 0.05 - это 5%
$cart->add_fee("Сумма ваших предыдущих заказов превышает 10 000 рублей, действует скидка в 5% на данный заказ ", -$discount);

}


Ну и как-то где-то задекларируйте наверное функцию, я хз как это делается в WP, не пользуюсь.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mihdan
@mihdan
WordPress-евангелист, ведущий РНР - разработчик
Я обычно использую плагин типа Dynamic Price and Discounts for Woocommerce или Woocommerce All Discounts.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы