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

Не подтверждается виртуальный товар simple

Nikson

Новичок
Всем привет, ситуация такая, что на сайте продаются товары (simple товары) с ними все нормально, также есть сертификаты — это виртуальный товар с "управлением запасами на уровне товаров". Вчера обнаружилось, что при переходе на страницу с товаром сертификат вываливается ошибка
Код:
Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable|array, null given in.....
ранее был переход на php8, решилось добавлением "Count" в проблемный код Простого товара
Код:
if( count( $variation_ids ) and !count($sizes) ){
ошибка исчезла, но товар нельзя заказать, здесь уже сложнее, т.к. не вижу в чем проблема. после нажатия на "подтвердить заказ" не происходит перехода на платежную систему, а выскакиевает красный воскл знак, все.
woocommerce 6.3.1
wordpress 6.4.5
может кто-нибудь сталкивался или хотя бы знает как определить проблему?
похоже как будто не заполнено какое то обязательное поле, но кто-то до меня ставил Checkout Field Editor for WooCommerce, он был неактивный, я зашел, потыкался, сбросил все в дефолт и опять деактивировал, в functions тоже все поубирал, что было связано со скрытием/обязательностью чекаут полей.
 

Вложения

  • Screenshot 2024-09-11 120909.png
    Screenshot 2024-09-11 120909.png
    122.3 KB · Просмотры: 4
  • Screenshot 2024-09-11 121033.png
    Screenshot 2024-09-11 121033.png
    135.1 KB · Просмотры: 4

marr

Специалист
Местный
товар нельзя заказать, здесь уже сложнее, т.к. не вижу в чем проблема. после нажатия на "подтвердить заказ" не происходит перехода на платежную систему, а выскакиевает красный воскл знак
что в логах?
 

Nikson

Новичок
Да вот в fatal-errors появляется после неудачи
Код:
2024-09-11T17:28:34+00:00 CRITICAL Uncaught TypeError: array_shift(): Argument #1 ($array) must be of type array, null given in /var/www/u2658971/data/www/site.ru/wp-content/plugins/boxberry/boxberry-for-woocommerce.php:1140
Stack trace:
#0 /var/www/u2658971/data/www/site.ru/wp-content/plugins/boxberry/boxberry-for-woocommerce.php(1140): array_shift(NULL)
#1 /var/www/u2658971/data/www/site.ru/wp-includes/class-wp-hook.php(326): boxberry_put_choice_code(12472)
#2 /var/www/u2658971/data/www/site.ru/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters('', Array)
#3 /var/www/u2658971/data/www/site.ru/wp-includes/plugin.php(517): WP_Hook->do_action(Array)
#4 /var/www/u2658971/data/www/site.ru/wp-content/plugins/woocommerce/includes/data-stores/class-wc-order-data-store-cpt.php(89): do_action('woocommerce_new...', 12472, Object(WC_Order))
#5 /var/www/u2658971/data/www/site.ru/wp-content/plugins/woocommerce/includes/class-wc-data-store.php(169): WC_Order_Data_Store_CPT->create(Object(WC_Order))
#6 /var/www/u2658971/data/www/site.ru/wp-content/plugins/woocommerce/includes/abstracts/abstract-wc-order.php(189): WC_Data_Store->create(Object(WC_Order))
#7 /var/www/u2658971/data/www/site.ru/wp-content/plugins/woocommerce/includes/class-wc-order.php(221): WC_Abstract_Order->save()
#8 /var/www/u2658971/data/www/site.ru/wp-content/plugins/woocommerce/includes/class-wc-checkout.php(391): WC_Order->save()
#9 /var/www/u2658971/data/www/site.ru/wp-content/plugins/woocommerce/includes/class-wc-checkout.php(1183): WC_Checkout->create_order(Array)
#10 /var/www/u2658971/data/www/site.ru/wp-content/plugins/woocommerce/includes/class-wc-ajax.php(461): WC_Checkout->process_checkout()
#11 /var/www/u2658971/data/www/site.ru/wp-includes/class-wp-hook.php(324): WC_AJAX::checkout('')
#12 /var/www/u2658971/data/www/site.ru/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters('', Array)
#13 /var/www/u2658971/data/www/site.ru/wp-includes/plugin.php(517): WP_Hook->do_action(Array)
#14 /var/www/u2658971/data/www/site.ru/wp-content/plugins/woocommerce/includes/class-wc-ajax.php(90): do_action('wc_ajax_checkou...')
#15 /var/www/u2658971/data/www/site.ru/wp-includes/class-wp-hook.php(324): WC_AJAX::do_wc_ajax('')
#16 /var/www/u2658971/data/www/site.ru/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(false, Array)
#17 /var/www/u2658971/data/www/site.ru/wp-includes/plugin.php(517): WP_Hook->do_action(Array)
#18 /var/www/u2658971/data/www/site.ru/wp-includes/template-loader.php(13): do_action('template_redire...')
#19 /var/www/u2658971/data/www/site.ru/wp-blog-header.php(19): require_once('/var/www/u26589...')
#20 /var/www/u2658971/data/www/site.ru/index.php(17): require('/var/www/u26589...')
#21 {main}
  thrown в /var/www/u2658971/data/www/site.ru/wp-content/plugins/boxberry/boxberry-for-woocommerce.php на строке 1140

boxberry-for-woocommerce.php на строке 1140 это $shipping_method...
Код:
 function boxberry_put_choice_code($order_id)
    {
        $shipping_method      = array_shift($_POST[ 'shipping_method' ]);
        $shipping_method_name = preg_replace('/\d+/', '', $shipping_method);
        $array                = get_user_meta(get_current_user_id(), '_boxberry_array', true);

        if (isset($_COOKIE['bxb_code'], $_COOKIE['bxb_address'])) {
            update_post_meta($order_id, 'boxberry_code', sanitize_text_field($_COOKIE[ 'bxb_code' ]));
            update_post_meta($order_id, 'boxberry_address', sanitize_text_field($_COOKIE[ 'bxb_address' ]));
        }
        update_user_meta(get_current_user_id(), '_boxberry_array', array ());
    }
 

Nikson

Новичок
в 1140 строку сделал
Код:
$shipping_method      = is_array($_POST[ 'shipping_method' ]);
заработало, но естественно я смутно представляю причем тут боксбыр, в настройках плагина особо ничего не нашел, также при заказе сертификата отображается поле с пвз боксбыра — выглядит странно
 

Вложения

  • Untitled-1.jpg
    Untitled-1.jpg
    77 KB · Просмотры: 4
Сверху Снизу