Процент скидки от 1-го и 4-го порядка и применяется к пользовательской таблице - PullRequest
0 голосов
/ 01 октября 2019

Я использую " Установить скидку в зависимости от количества заказов в WooCommerce " код ответа с некоторыми изменениями:

add_action('woocommerce_cart_calculate_fees' , 'discount_based_on_customer_orders', 10, 1);
function discount_based_on_customer_orders( $cart_object ){

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    // Getting "completed" customer orders
    $customer_orders = get_posts( array(
        'numberposts' => -1,
        'meta_key'    => '_customer_user',
        'meta_value'  => get_current_user_id(),
        'post_type'   => 'shop_order', // WC orders post type
        'post_status' => 'wc-completed' // Only orders with status "completed"
    ) );

    // Orders count
    $customer_orders_count = count($customer_orders);

    // The cart total
    $cart_total = WC()->cart->cart_contents_total;

    // First customer order
    if( empty($customer_orders) || $customer_orders_count == 0 ){
        $discount_text = __('First Order Discount', 'woocommerce');
        $discount = 0 - ($cart_total * 0.5);
    }
    // 4th order discount
    elseif( $customer_orders_count == 4 ){
        $discount_text = __('4th Order Discount', 'woocommerce');
        $discount = 0 - ($cart_total * 0.5);
    }

    // Apply discount
    if( ! empty( $discount ) ){
        // Note: Last argument is related to applying the tax (false by default)
        $cart_object->add_fee( $discount_text, $discount, false);
    }
}

У меня естьустановите для клиента первый и четвертый заказ, а также процент вместо фиксированной цены.

Я бы хотел применить это к пользовательской странице оформления заказа, используя что-то вроде:

<?php
if($discount == true){
    ?>
    <tr class="table__row discount_row discountrow">
        <th class="table__cell table__cell--head  table__cell--item table__cell--regular" scope="row" data-title="Discount">Discount</th>
        <td class="table__cell table__cell--quantity" data-title="QTY"></td>
        <td class="table__cell table__cell--total table__cell--regular" data-title="Discount">&pound;<span class="referral_discount">-<?php echo number_format($discount,2);?></span></td>
    </tr>
    <?php
}
?>

Как это можно сделать? Поэтому, если клиент соответствует требованиям, он добавляет правильные строки к оформлению заказа.

1 Ответ

2 голосов
/ 01 октября 2019

Попробуйте использовать:

<?php
if( WC()->cart->get_fee_total() < 0 ){
    ?>
    <tr class="table__row discount_row discountrow">
        <th class="table__cell table__cell--head  table__cell--item table__cell--regular" scope="row" data-title="Discount">Discount</th>
        <td class="table__cell table__cell--quantity" data-title="QTY"></td>
        <td class="table__cell table__cell--total table__cell--regular" data-title="Discount">&pound;<span class="referral_discount">-<?php echo number_format($discount,2);?></span></td>
    </tr>
    <?php
}
?>

Также $discount = 0 - ($cart_total * 0.5); можно заменить на $discount = -$cart_total * 0.5;

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