В этой статье мы подробно разберём, как автоматизировать подсчёт суммы заказов в WordPress по выбранным датам с использованием собственного кода и популярных плагинов. Такая задача актуальна для владельцев интернет-магазинов на базе WooCommerce и других решений, где важно быстро получить финансовую статистику за определённый период.
Почему важна автоматизация подсчёта суммы заказов
Ручной подсчёт заказов по датам занимает много времени и подвержен ошибкам. Автоматизация даёт несколько преимуществ:
- Экономия времени менеджеров и владельцев магазина.
- Точность и актуальность данных в режиме реального времени.
- Возможность интеграции с отчетами и аналитикой.
- Простота масштабирования и адаптации под разные задачи.
Рассмотрим, как реализовать автоматический подсчёт с помощью собственного кода и как упростить задачу с помощью плагина Clearfy Pro, который предлагает мощные инструменты для оптимизации WooCommerce.
Реализация подсчёта суммы заказов по датам через код
Для начала создадим функцию wporder_get_orders_total_by_date_range, которая вернёт общую сумму заказов за указанный период. Предположим, что мы используем WooCommerce, и заказы хранятся как тип записи shop_order.
function wporder_get_orders_total_by_date_range($start_date, $end_date) {
$args = [
'post_type' => 'shop_order',
'post_status' => ['wc-completed', 'wc-processing'],
'date_query' => [
[
'after' => $start_date,
'before' => $end_date,
'inclusive' => true,
],
],
'fields' => 'ids',
'posts_per_page' => -1,
];
$query = new WP_Query($args);
$total = 0;
if ($query->have_posts()) {
foreach ($query->posts as $order_id) {
$order = wc_get_order($order_id);
if ($order) {
$total += $order->get_total();
}
}
}
wp_reset_postdata();
return $total;
}Эта функция принимает две даты в формате 'YYYY-MM-DD' и возвращает сумму всех заказов со статусом "завершён" или "в обработке" в заданном диапазоне. Важно фильтровать по статусам, чтобы не учитывать отменённые или черновые заказы.
Пример использования функции
$start = '2024-04-01';
$end = '2024-04-15';
$total_sum = wporder_get_orders_total_by_date_range($start, $end);
echo 'Общая сумма заказов с ' . $start . ' по ' . $end . ': ' . wc_price($total_sum);Выведет сумму в валютном формате WooCommerce за выбранный период.
Добавление интерфейса для выбора дат в админке WordPress
Чтобы сделать подсчёт удобным, создадим простой админ-панель для выбора дат и отображения результата. Для этого используем меню с формой и AJAX-запросом.
Регистрация страницы меню
add_action('admin_menu', function() {
add_submenu_page(
'woocommerce',
'Подсчёт суммы заказов',
'Сумма заказов по датам',
'manage_woocommerce',
'wporder-orders-sum',
'wporder_orders_sum_page'
);
});Вывод формы и контейнера для результата
function wporder_orders_sum_page() {
?>
<div class="wrap">
<h1>Подсчёт суммы заказов по датам</h1>
<form id="wporder-date-form">
<label for="start_date">Дата начала:</label>
<input type="date" id="start_date" name="start_date" required>
<label for="end_date">Дата окончания:</label>
<input type="date" id="end_date" name="end_date" required>
<button type="submit" class="button button-primary">Подсчитать</button>
</form>
<div id="wporder-result" style="margin-top:20px;"></div>
</div>
<script>
jQuery(document).ready(function($){
$('#wporder-date-form').on('submit', function(e){
e.preventDefault();
var start = $('#start_date').val();
var end = $('#end_date').val();
$('#wporder-result').html('Загрузка...');
$.post(ajaxurl, {
action: 'wporder_get_orders_sum',
start_date: start,
end_date: end
}, function(response) {
$('#wporder-result').html(response.data);
});
});
});
</script>
<?php
}Обработка AJAX-запроса
add_action('wp_ajax_wporder_get_orders_sum', function() {
if (!current_user_can('manage_woocommerce')) {
wp_send_json_error('Доступ запрещён');
}
$start = sanitize_text_field($_POST['start_date'] ?? '');
$end = sanitize_text_field($_POST['end_date'] ?? '');
if (!$start || !$end) {
wp_send_json_error('Не указаны даты');
}
$total = wporder_get_orders_total_by_date_range($start, $end);
$formatted = wc_price($total);
wp_send_json_success('Общая сумма заказов с ' . esc_html($start) . ' по ' . esc_html($end) . ': <strong>' . $formatted . '</strong>');
});Теперь в админке WooCommerce появится новая страница с удобным интерфейсом для подсчёта суммы заказов по датам.
Использование плагина Clearfy Pro для упрощения задачи
Если хочется минимизировать программирование, можно воспользоваться плагином Clearfy Pro. Он предлагает улучшенный функционал для WooCommerce, включая отчёты и фильтрацию заказов по датам с подсчётом сумм.
Clearfy Pro позволяет создавать собственные фильтры и отчёты без написания кода, что ускоряет получение нужных данных и упрощает работу с заказами.
Расширение функционала: отправка отчёта на email
Для полной автоматизации можно добавить отправку отчёта по сумме заказов за определённый период на email менеджера.
function wporder_send_orders_sum_report($start_date, $end_date, $to_email) {
$total = wporder_get_orders_total_by_date_range($start_date, $end_date);
$subject = 'Отчёт по сумме заказов с ' . $start_date . ' по ' . $end_date;
$message = 'Общая сумма заказов за период: ' . wc_price($total);
wp_mail($to_email, $subject, $message);
}Эту функцию можно вызывать из CRON-задачи WordPress для регулярной отправки отчётов.
Итоги и рекомендации
Автоматизация подсчёта суммы заказов по датам — важный инструмент для контроля продаж и анализа бизнеса. В статье мы показали, как реализовать это с помощью собственного кода, создать удобный интерфейс в админке и расширить функционал отправкой email. Также рассмотрели, как плагин Clearfy Pro может упростить задачу без программирования.
Советуем внедрять автоматизацию постепенно и тестировать на тестовой среде. Такой подход поможет быстро получать актуальные данные и сэкономить время на рутинных операциях.