Если вы посмотрите на WC_Customer
get_last_order()
метод документацию или исходный код , вы увидите:
/*
* @return WC_Order|false
*/
, что означает, что get_last_order()
метод может возвращать альтернативно :
- объект
WC_Order
- или
false
логическое значение.
Итак, вы можете просто используйте в своем коде:
$last_order = $customer->get_last_order();
if ( ! $last_order ) {
return; // Exit (Not an order)
}
Чтобы избежать этой ошибки.
Теперь вы можете использовать условные функции is_a()
php, чтобы проверить, является ли переменная из определенного c класса объекта, а не что-то еще, например:
$last_order = $customer->get_last_order();
if ( ! is_a( $last_order, 'WC_Order' ) ) {
return; // Exit (Not an order)
}
// Your other code…
Или вы можете использовать условные функции method_exists()
php для метода WC_Order
get_refunds()
, чтобы проверить, является ли переменная a из определенного c класса объекта, а не чего-то еще:
$last_order = $customer->get_last_order();
if ( ! method_exists( $last_order, 'get_refunds' ) ) {
return; // Exit (Not an order)
}
// Your other code…
Три случая работают нормально, избегая ошибки