backend_prod_sku_fields

Позволяет добавлять дополнительные поля в форму редактирования артикула товара в новом редакторе товара.

Доступен начиная с версии 8.18.0.

Shop-Script
Входящие параметры
передаются по ссылке
$params['product'] shopProduct Объект свойств текущего товара.
… код плагина …
Результат работы плагина
{$backend_prod_sku_fields.}

Массив данных дополнительных полей артикулов товара. Для каждого поля должен быть сформирован подмассив с ключами, содержащими отдельные свойства поля:

  • 'type' — тип поля ('select', 'textarea', 'price' — для добавления дополнительных полей с ценой артикула, 'help' — для добавления произвольного фрагмента HTML-кода, например, подсказки для пользователя);
  • 'name' — локализованный заголовок поля;
  • 'default_value' — значение поля по умолчанию;
  • 'tooltip' — локализованный текст поясняющей подсказки для поля;
  • 'css_class' — имена CSS-классов, которые нужно применить к контейнеру с селектором 'div.wa-field', внутри которого добавляется поле плагина;
  • 'validate' — подмассив с необязательными булевыми ключами 'required' (поле является обязательным для заполнения) или 'numbers' (в поле можно вводить только числа);
  • 'sku_values' — значения поля для каждого артикула товара в виде массива с ID артикулов в качестве ключей.

Shop-Script

Пример кода плагина

PHP

public function backendProdSkuFields($params)
{
    /** @var shopProduct $product */
    $product = $params['product'];
    $skus_ids = array_keys($product->getSkus());

    $sku_values = [
        'price' => [],
        'textarea' => [],
        'help' => [],
    ];

    foreach ($skus_ids as $sku_id) {
        $sku_values['price'][$sku_id] = rand(0, 100);
        $sku_values['textarea'][$sku_id] = sprintf(_wp('My plugin’s textarea value for SKU #%d'), $sku_id);
        $sku_values['help'][$sku_id] = _wp('User, beware!');
    }

    return [
        [
            'type' => 'price',
            'id' => 'myplugin_price',
            'name' => _wp('My plugin’s price'),
            'css_class' => 'myplugin-class-price',
            'sku_values' => $sku_values['price'],
            'validation' => [
                'required' => true,
                'numbers' => true,
            ],
        ],
        [
            'type' => 'textarea',
            'id' => 'myplugin_textarea',
            'name' => _wp('My plugin’s textarea'),
            'css_class' => 'myplugin-class-textarea',
            'tooltip' => _wp('My plugin’s textarea hint'),
            'sku_values' => $sku_values['textarea'],
        ],
        [
            'type' => 'help',
            'id' => 'myplugin_help',
            'name' => _wp('My plugin’s hint'),
            'css_class' => 'myplugin-class-help',
            'placement' => 'bottom',
            'sku_values' => $sku_values['help'],
            // or show the same hint for all SKUs
            // 'default_value' => _wp('User, beware!'),
        ],
    ];
}