Плагины доставки от 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, если пусто.

2 ответа

  • 1
    Ярослав 2 мая 2019 20:04 #

    Аналогичная проблема при оформлении заказа:

    Warning: A non-numeric value encountered in .../wa-apps/shop/lib/classes/checkout/shopCheckoutConfirmation.class.php on line 119

    Как решить? Хотя бы временно

  • 1
    Syrnik.com 3 мая 2019 22:16 #

    Даёшь минимальное требование PHP 7.2 и обязательное указание типов аргументов и результата! :)

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите