Условно рассчитать сумму мета-значений - PullRequest
0 голосов
/ 06 января 2020

Я хочу вычислить сумму всех мета-значений с помощью ключа _alg_wc_cog_order_profit, только если статус заказа установлен на «выполнено». Я создал шорткод для этого, но он не возвращает правильное значение и возвращает 0. Но если я заменю get_the_ID () на указанный c идентификатор записи, такой как 56 или 11, он вернет правильное значение.

Пожалуйста, укажите мне, где я совершаю ошибку.

 add_shortcode('user_on_hold_cogs', 'get_user_orders_on_hold_totalb');
function get_user_orders_on_hold_totalb() {
    $total_amount = 0; // Initializing

    // Get current user
    if( $user = wp_get_current_user() ){

        // Get 'on-hold' customer ORDERS
        $on_hold_orders = wc_get_orders( array(
            'limit' => -1,
            //'customer_id' => $user->ID,
            'status' => 'completed',
        ) );



        foreach( $on_hold_orders as $order) {
            $stockk = (float) get_post_meta( get_the_ID() , '_alg_wc_cog_order_profit', true );
            //$total_amount += $order->get_total();
            $total_amount += $stockk ;
        }
    }
    return $total_amount;

}

1 Ответ

0 голосов
/ 06 января 2020

При быстрой проверке вы, вероятно, не получите идентификатор заказа, используя get_the_ID() здесь [при условии, что вы пытаетесь получить доступ к идентификатору заказа.]

Попробуйте заменить get_the_ID() на $order->get_id()

Ваш код станет

$stockk = (float) get_post_meta( $order->get_id(), '_alg_wc_cog_order_profit', true );

Пожалуйста, дайте мне знать, если приведенный выше код не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...