В этой статье блога мы рассмотрим различные методы получения общего количества заказа продукта в 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, у вас есть несколько вариантов на выбор в зависимости от ваших конкретных требований. Внедрение этих методов расширит возможности вашего сайта электронной коммерции по управлению заказами и предоставит ценную информацию о популярности товаров.