function display_user_orders_total_page($atts) {
// Параметры по умолчанию
$atts = shortcode_atts(
array(
'user_id' => 0, // ID пользователя (по умолчанию 0)
),
$atts,
'user_order_total'
);
// Если ID пользователя не указан, берем текущего
if ($atts['user_id']== 0) {
$atts['user_id'] =get_current_user_id();
}
// Получаем ID пользователя
$user_id = intval($atts['user_id']); // Преобразуем ID в целое число
// Получаем сумму всех заказов пользователя и количество заказов
$result = get_user_orders_summary($user_id);
// Если есть заказы, выводим результат
if ($result['total_sum'] > 0) {
return "<h2>Пользователь с ID {$user_id}</h2>
<p>Количество заказов: {$result['order_count']}</p>
<p>Сумма всех заказов: " . wc_price($result['total_sum']) . "</p>";
} else {
return "<p>У пользователя с ID {$user_id} нет заказов или сумма заказов равна нулю.</p>";
}
}
function get_user_orders_summary($user_id) {
// Получаем все заказы пользователя
$customer_orders = wc_get_orders([
'customer_id' => $user_id, // ID пользователя
'limit' => -1, // Без ограничений на количество заказов
'status' => ['any'] // Учитываем все статусы заказов
]);
$total_sum = 0;
$order_count = count($customer_orders); // Количество заказов
// Перебираем все заказы и суммируем их стоимость
foreach ($customer_orders as $order) {
$total_sum += $order->get_total(); // Добавляем общую сумму каждого заказа
}
return array('total_sum' => $total_sum, 'order_count' => $order_count);
}