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

Решено Сумма всех продаж за все время

audisport

Новичок
Добрый день!
Есть благотворительный сайт к которому прикручен woocommerce и сбербанк.
Товарами являются пожертвования 100р, 500р и 1000руб.
Для предоставления отчетности банкам, на странице информации о фонде должен отображаться счетчик сколько уже внесено пожертвований.
Задача: ищу виджет или кусов кода, который будет считать или выгружать сумму всех пожертвований совершенных за весь период существования сайта.
Спасибо.
 

artemkomarov

Специалист
Местный
Привет.
Держите
PHP:
function get_sum_off_all_orders() {

    $query_args = array(
        'post_type'      => wc_get_order_types(),
        'post_status'    => array_keys( wc_get_order_statuses() ),
        'posts_per_page' => -1,
    );

    $all_orders = get_posts( $query_args );
    $sum = 0;

    foreach ( $all_orders as $order ) {
        $order = wc_get_order( $order->ID );

        if ( ! is_object( $order ) ) {
            continue;
        }

        $sum += intval($order->get_total());
    }

    echo $sum;

}

add_action('wp', 'get_sum_off_all_orders');
 
  • Like
Реакции: qwer

audisport

Новичок
Привет.
Держите
PHP:
function get_sum_off_all_orders() {

    $query_args = array(
        'post_type'      => wc_get_order_types(),
        'post_status'    => array_keys( wc_get_order_statuses() ),
        'posts_per_page' => -1,
    );

    $all_orders = get_posts( $query_args );
    $sum = 0;

    foreach ( $all_orders as $order ) {
        $order = wc_get_order( $order->ID );

        if ( ! is_object( $order ) ) {
            continue;
        }

        $sum += intval($order->get_total());
    }

    echo $sum;

}

add_action('wp', 'get_sum_off_all_orders');

Выдает ошибку

Fatal error: Cannot redeclare get_sum_off_all_orders() (previously declared in /var/www/vhosts/u0310393.plsk.regruhosting.ru/httpdocs/kkvm.ru/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()'d code:5) in /var/www/vhosts/u0310393.plsk.regruhosting.ru/httpdocs/kkvm.ru/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()'d code on line 25

Что я делаю не так? Установил exec-php, создал тестовую страницу и в нее вставил код в режиме Текст:
PHP:
<?php
function get_sum_off_all_orders() {

    $query_args = array(
        'post_type'      => wc_get_order_types(),
        'post_status'    => array_keys( wc_get_order_statuses() ),
        'posts_per_page' => -1,
    );

    $all_orders = get_posts( $query_args );
    $sum = 0;

    foreach ( $all_orders as $order ) {
        $order = wc_get_order( $order->ID );

        if ( ! is_object( $order ) ) {
            continue;
        }

        $sum += intval($order->get_total());
    }

    echo $sum;

}

add_action('wp', 'get_sum_off_all_orders');
?>
 
Последнее редактирование:
Сверху Снизу