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!'), ], ]; }