• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Аналитика (Отчёт) пользователя в личном кабинете Woocommerce

Makey724

Новичок
Здравствуйте, подскажите для вукомерс сделать аналитику (сводку) как на скриншоте, хотелось бы вставить ее когда переходишь в "Мой аккаунт" на Dashboard.
Как это реализовать? Гугл не помогает.
 

Вложения

  • 999.png
    999.png
    34 KB · Просмотры: 9

Makey724

Новичок
Да много чего в принципе, вот нашёл только количество заказов.
Меня в принципе интересует только кол-во и сумма заказов общая, без скидок и тд
 

Вложения

  • Снимок9.PNG
    Снимок9.PNG
    44.5 KB · Просмотры: 6

joy66

Опытный
Местный
Код:
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);
}

Код:
// Регистрируем шорткод для вывода формы и аналитики
function register_user_order_total_shortcode() {
    add_shortcode('user_order_total', 'display_user_orders_total_page');
}
add_action('init', 'register_user_order_total_shortcode');

Шорт код
[user_order_total user_id="123"] если user_id не указывать будет текущий пользователь

Как добавлять раздел в ЛК клиента инфы куча в интернетах.
Туда вставлять шорткод
Если надо добавить стили ы выводить красивые квадратики
 
Последнее редактирование:
Сверху Снизу