Вызов функции-члена get_cart_contents_count () со значением NULL - PullRequest
0 голосов
/ 09 мая 2018

Я изменил код email-order-details.php, чтобы включить в него общее количество элементов.

echo WC()->cart->get_cart_contents_count();

Это работает хорошо, за исключением одного случая.

Когда я изменяю несколько элементов, например, изменяя статус из Backend, я получаю следующую ошибку:

Неустранимая ошибка: вызов функции-члена get_cart_contents_count () для null в email-order-details.php в строке 61

Почему эта ошибка может возникать в массовом выпуске? Есть ли способ это исправить?

Спасибо!

Временно разрешено с помощью:

if ( is_null(WC()->cart) ) {} else { echo WC()->cart->get_cart_contents_count(); }

1 Ответ

0 голосов
/ 10 мая 2018

Вы также можете использовать эту строку (так как WC()->cart является живым WC_Cart объектом экземпляра) :

echo is_object( WC()->cart ) ? WC()->cart->get_cart_contents_count() : '';

Это также должно работать.


Теперь для писем, может быть, вы нацелены на "Заказ товаров" вместо . Если это так, вам нужно получить объект WC_Order ... Если у вас его нет, вы можете получить его из идентификатора заказа ...

// If the WC_Order object doesn't exist but you have the Order ID
if( ! ( isset( $order ) && is_object( $order ) ) && isset( $order_id ) ){
    // Get the order object from the Order ID
    $order = wc_get_order( $order_id ); 
}

if( isset( $order ) && is_object( $order ) ){
    $count = 0;
    // Loop through order items
    foreach( $order->get_items() as $item ){
        // add item quantities to the count
        $count += (int) $item->get_quantity();
    }
    // Output the total items count
    echo $count;
}

На этот раз это должно сработать лучше ...

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