WooCommerce - получите стоимость заказа клиента в течение жизни с учетом скидок и возвратов - PullRequest
2 голосов
/ 01 апреля 2020

Я пытаюсь выплюнуть пожизненную стоимость всех (выполненных) заказов клиентов. Возвращаемое мной значение равно сумме, если они не были обесценены, однако я обесценил все заказы до 0 долларов США, поэтому для меня весьма обманчиво использовать данные, если они вообще не заплатили никаких денег. Как я могу получить стоимость, которую они фактически заплатили, после возмещения и скидок, примененных к этому заказу?

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;
}

1 Ответ

0 голосов
/ 28 апреля 2020

Это была моя последняя функция:

// Get customer order total
function has_refunds( $order ) {
    return sizeof( $order->get_refunds() ) > 0 ? true : false;
}
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 );

        if( has_refunds( $order ) ) {
        } 
        else
        {
            $price = $order->get_total();

            $discount = $order->get_total_discount();

            $final = $price - $discount;

            $total += $final;
        }

    }

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