@Dream2140

Вывести Sale Discount заказа в письме?

Добрый день такая проблема: мне нужно вывести в "чеке" который приходит пользователю сумму скидок на товары в заказе, для этого я переопределяю email-order-details.php и в отдельной строке вывожу Sale Discount используя функцию:
function get_totals(){
    if (is_admin()) return false; // если это убрать то выбивает Fatal error: Uncaught Error: Call to a member function get_cart() on null in
        $sale_total = 0;
        $subtotal = 0;
        foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
            $regular = $cart_item['data']->regular_price;
            $sale = $cart_item['data']->sale_price;
            $subtotal += $regular * $cart_item['quantity'];
            if ($sale <= 0) continue;
            $sale_total += ($regular - $sale) * $cart_item['quantity'];

        }
        return ['sale' => $sale_total, 'subtotal' => $subtotal];

}

Но вот в чём проблема - когда приходит письмо о том что заказ принят всё выводится как нужно, а когда приходит письмо о уже выполненном заказе то строка Sale Discount пустая. Как я понимаю оно возвращает на моменте is_admin()) - но без этого выдает ошибку. Не могу понять почему WC()->cart->get_cart() в момент отправки первого письма работает, а во второй раз нет. Подскажите что делаю не так, или как исправить
П.С. $order->get_total_discount() тоже ничего не выдает
П.С.С. ну я понял в чем ошибка, я туплю и хочу получить данные из КОРЗИНЫ, когда её уже и подавно не существует. Но вопрос как посчитать скидки за все товары всё ещё актуален
  • Вопрос задан
  • 33 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы