5 методов получения общего количества заказа продукции в WordPress с помощью PHP

В этой статье блога мы рассмотрим различные методы получения общего количества заказа продукта в WordPress с использованием PHP. Независимо от того, создаете ли вы веб-сайт электронной коммерции или управляете заказами на существующем сайте WordPress, эти методы помогут вам получить общее количество заказанного конкретного продукта. Давайте погрузимся!

Метод 1: использование пользовательских SQL-запросов

global $wpdb;
$product_id = 123; // Replace with your product ID
$query = $wpdb->prepare("
    SELECT SUM(meta_value)
    FROM {$wpdb->prefix}woocommerce_order_itemmeta
    WHERE meta_key = '_qty'
    AND order_item_id IN (
        SELECT order_item_id
        FROM {$wpdb->prefix}woocommerce_order_items
        WHERE order_id IN (
            SELECT ID
            FROM {$wpdb->prefix}posts
            WHERE post_type = 'shop_order'
            AND post_status IN ('wc-completed', 'wc-processing')
        )
    )
    AND product_id = %d
", $product_id);
$total_quantity = $wpdb->get_var($query);

Метод 2: использование функций WooCommerce

$product_id = 123; // Replace with your product ID
$order_statuses = array('completed', 'processing');
$total_quantity = wc_get_product_sold($product_id, $order_statuses);

Метод 3: циклическое перебор заказов

$product_id = 123; // Replace with your product ID
$order_statuses = array('completed', 'processing');
$total_quantity = 0;
$orders = wc_get_orders(array(
    'status' => $order_statuses,
));
foreach ($orders as $order) {
    foreach ($order->get_items() as $item) {
        if ($item->get_product_id() == $product_id) {
            $total_quantity += $item->get_quantity();
        }
    }
}

Метод 4. Использование отчетов WooCommerce

$product_id = 123; // Replace with your product ID
$total_quantity = wc_get_product_sales_count($product_id);

Метод 5. REST API WooCommerce

$product_id = 123; // Replace with your product ID
$order_statuses = array('completed', 'processing');
$total_quantity = 0;
$response = wp_remote_get('https://example.com/wp-json/wc/v3/orders', array(
    'headers' => array(
        'Authorization' => 'Basic ' . base64_encode('consumer_key:consumer_secret'),
    ),
    'data' => array(
        'status' => implode(',', $order_statuses),
        'product' => $product_id,
        'per_page' => 100,
    ),
));
if (!is_wp_error($response)) {
    $orders = json_decode(wp_remote_retrieve_body($response), true);
    foreach ($orders as $order) {
        foreach ($order['line_items'] as $line_item) {
            if ($line_item['product_id'] == $product_id) {
                $total_quantity += $line_item['quantity'];
            }
        }
    }
}

Используя эти методы, вы можете легко получить общее количество заказа продукта в WordPress с помощью PHP. Предпочитаете ли вы пользовательские запросы SQL, встроенные функции WooCommerce или REST API, у вас есть несколько вариантов на выбор в зависимости от ваших конкретных требований. Внедрение этих методов расширит возможности вашего сайта электронной коммерции по управлению заказами и предоставит ценную информацию о популярности товаров.