Плагины доставки от Webasyst
Если я правильно понимаю, то в новых версиях шопскрипта был переработан класс shopCheckoutConfirmation.class.php
Теперь, если оформляешь заказ через плагин Самовывоз, то получаем предупреждение:
[17-Apr-2019 15:01:28 Europe/Moscow] PHP Warning: A non-numeric value encountered in wa-apps/shop/lib/classes/checkout/shopCheckoutConfirmation.class.php on line 120
Проверил дампом параметры заказа, которые передаются в shopCheckoutConfirmation
array( 'contact' => waContact object { * id => 0 * data => array( 'firstname' => 'Александр', 'lastname' => 'Реферал', 'middlename' => '', 'phone' => array( 0 => array( 'value' => '4636346', 'ext' => '', ), ), 'email' => array( 0 => array( 'value' => '6684@654.ru', 'ext' => '', 'status' => 'unconfirmed', ), ), 'kommentarii8' => '', 'address' => array( 3 => array( 'data' => array( 'street' => '', 'city' => '', 'region' => '28', 'zip' => '', 'country' => 'rus', ), 'ext' => 'shipping', ), ), 'password' => '-----', ) * settings => NULL }, 'total' => 1290.0, 'items' => array( 1754 => array( 'id' => '1754', 'code' => '-----', 'contact_id' => NULL, 'product_id' => '2767', 'sku_id' => '48512', 'create_datetime' => '2019-04-17 15:56:41', 'quantity' => '1', 'type' => 'product', 'service_id' => NULL, 'service_variant_id' => NULL, 'parent_id' => NULL, 'product' => array( 'id' => '2767', 'id_1c' => NULL, 'name' => 'Визитница на 40 карт Краст Шоколад', 'summary' => '', 'meta_title' => '', 'meta_keywords' => '', 'meta_description' => '', 'description' => '', 'contact_id' => '1', 'create_datetime' => '2019-04-15 10:33:36', 'edit_datetime' => '2019-04-15 10:33:53', 'status' => '1', 'type_id' => '1', 'image_id' => '8809', 'image_filename' => '', 'video_url' => NULL, 'sku_id' => '48508', 'ext' => 'JPG', 'url' => 'vizitnitsa-na-40-kart-krast-shokeolad', 'rating' => '0.00', 'price' => '1290.0000', 'compare_price' => '0.0000', 'currency' => 'RUB', 'min_price' => '1290.0000', 'max_price' => '1290.0000', 'tax_id' => '0', 'count' => NULL, 'cross_selling' => NULL, 'upselling' => NULL, 'rating_count' => '0', 'total_sales' => '0.0000', 'category_id' => '34', 'badge' => NULL, 'sku_type' => '1', 'base_price_selectable' => '1290.0000', 'compare_price_selectable' => '0.0000', 'purchase_price_selectable' => '0.0000', 'sku_count' => '11', 'original_price' => '1290.0000', 'original_compare_price' => '0.0000', 'unconverted_currency' => 'RUB', 'unconverted_price' => '1290.0000', 'frontend_price' => '1290.0000', 'unconverted_min_price' => '1290.0000', 'frontend_min_price' => '1290.0000', 'unconverted_max_price' => '1290.0000', 'frontend_max_price' => '1290.0000', 'unconverted_compare_price' => '0.0000', 'frontend_compare_price' => '0.0000', ), 'sku_code' => '', 'purchase_price' => '0.0000', 'compare_price' => '0.0000', 'sku_name' => 'Серый', 'currency' => 'RUB', 'price' => '1290.0000', 'name' => 'Визитница на 40 карт Краст Шоколад (Серый)', 'sku_file_name' => '', 'tax' => 0, 'tax_percent' => NULL, 'tax_included' => 0, ), ), 'shipping' => '', 'id' => NULL, 'currency' => 'RUB', 'discount' => 0, )
Как видим из дампа, в $order['shipping'] вместо 0 стоит ''. Это и вызывает предупреждение. Думаю, если в одном плагине доставки такое, то может быть и во многих других. Имхо нужно в движке проверять этот параметр на empty и заменять на 0, если пусто.
3 ответа
Аналогичная проблема при оформлении заказа:
Warning: A non-numeric value encountered in .../wa-apps/shop/lib/classes/checkout/shopCheckoutConfirmation.class.php on line 119
Как решить? Хотя бы временно
Даёшь минимальное требование PHP 7.2 и обязательное указание типов аргументов и результата! :)
Март 2021, php 7.4 - такая же проблема выскочила. Причем только в одном заказе.
wa-plugins/shipping/russianpost/lib/russianpostShipping.class.php on line 333