Я хочу скрыть поле купона на странице корзины для всех продуктов, кроме продуктов с указанной категорией c. Я создал следующий код, который работает, но время от времени, которое, кажется, не связано со временем, появляется сообщение об ошибке. Это не мешает работе кода и не вызывает никаких проблем. Однако я не могу понять, почему я получаю сообщение об ошибке или как его решить.
add_filter( 'woocommerce_coupons_enabled', 'wdc_hide_coupon_field_dinner_dances' );
function wdc_hide_coupon_field_dinner_dances($enabled){
$wdc_category = 'discount';
$has_cat = true;
foreach ( WC()->cart->get_cart() as $cart_item_key =>$cart_item ) {
$wdc_product = $cart_item['data'];
$product_id = method_exists( $wdc_product, 'get_id' ) ? $wdc_product->get_id() : $wdc_product->id;
if ( has_term( $wdc_category, 'product_cat', $product_id ) ) $has_cat = false;
}
if ( $has_cat && is_cart() ) {
$enabled = false;
}
return $enabled;
}
Я получаю это сообщение об ошибке
Сведения об ошибке
=============
Ошибка типа E_ERROR была вызвана в строке 16 файла / home / westviewdance / public_html / wp-content / plugins / WdcFreeTicketCoupon-for- Woocommerce / WdcFreeTicketCoupon для Woocommerce. php.
Сообщение об ошибке: Неперехваченная ошибка: вызов функции-члена get_cart () при нулевом значении в / home / westviewdance / public_html / wp-content / plugins / WdcFreeTicketCoupon-for-Woocommerce / WdcFreeTicketCoupon
для Woocommerce. php: 16 Трассировка стека:
# 0 /home/westviewdance/public_html/wp-includes/class-wp-hook.php(287): wdc_hide_coupon_field_dinner_dances (true)
# 1 / home / westviewdance / public_html / wp -includes / plugin. php (206): WP_Hook-> apply_filters (true, Array)
# 2 / home / westviewdance / public_html / wp-content / plugins / woocommerce / includes / w c -coupon- функций. php (69): apply_filters ('woocommerce_cou ...', true)
# 3 / home / westviewdance / public_html / wp-content / plugins / woocommerce / packages / woocommerce-blocks / src / Assets. php (157): wc_coupons_enabled ()
# 4 /home/westviewdance/public_html/wp-includes/class-wp-hook.php(287): Automattic \ WooCommerce \ Blocks \ Assets :: get_wc_block_data ( Массив)
# 5 /home/westviewdance/public_html/wp-includes/plugin.php(206): WP_ Hook-> apply_filters (Array, Array)
# 6 / home / westviewdance / public_html / wp-content / plugins / woocommerce / packages / woocommerce-