Получите товары из последнего заказа клиента в WooCommerce

Я хотел бы получить данные о продуктах последней покупки или самой последней покупки клиента.

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

Вот код:

// Get the current user Object
$current_user = wp_get_current_user();

// Check if the user is valid
if (0 == $current_user->ID) return;

//Create $args array
$args = array(
    'numberposts' => 1,
    'meta_key' => '_customer_user',
    'meta_value' => $current_user->ID,
    'orderby' => 'date',
    'order' => 'DESC',
    'post_type' => wc_get_order_types(),
    'post_status' => array_keys(wc_get_is_paid_statuses()),
);

// Pass the $args to get_posts() function
$customer_orders = get_posts($args);

// loop through the orders and return the IDs
if (!$customer_orders) return;
$product_ids = array();
foreach ($customer_orders as $customer_order) {
    $order = wc_get_order($customer_order->ID);
    $items = $order->get_items();
    foreach ($items as $item) {
        $product_id = $item->get_product_id();
        $product_ids[] = $product_id;
    }
}
echo '<pre>';
var_dump($product_ids);
echo '</pre>';
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
26
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать wc_get_customer_last_order($user_id) для получения информации о последнем заказе клиента.

Итак, вы получаете:

// For logged in users only
if ( is_user_logged_in() ) {

    // The current user ID
    $user_id = get_current_user_id();

    // Get the last WC_Order Object instance from current customer
    $last_order = wc_get_customer_last_order( $user_id );

    // NOT empty
    if ( ! empty( $last_order ) ) {
        // Initalize
        $product_ids = array();

        // Loop
        foreach ( $last_order->get_items() as $item ) {
            // Get product ID
            $product_id = $item->get_product_id();
            $product_ids[] = $product_id;
        }

        echo '<pre>';
        var_dump( $product_ids );
        echo '</pre>';
    }
}

Связано: Как отобразить последний заказанный товар в WooCommerce с помощью шорткода

так просто, спасибо добрый человек.

Yaro Oka 16.03.2022 18:33

Другие вопросы по теме