backend_prod_sku_fields
Позволяет добавлять дополнительные поля в форму редактирования модификации товара в новом интерфейсе (2.0).
Доступно начиная с версии 8.18.0.
Shop-Script
Входящие параметры (передаются по ссылке)
$params['product'] object Экземпляр класса
shopProduct со свойствами текущего товара.
… код плагина …
Результат работы плагина
{$backend_prod_sku_fields.$output}
Массив дополнительных полей для настройки модификаций товара. Каждый элемент, соответствующий отдельному полю, должен представлять собой подмассив со следующими ключами:
- 'type' — тип поля ('price' — для добавления дополнительных полей рядом с ценой артикула, 'input', 'textarea', 'select', '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 = $params['product'];
$values = [
'price' => [],
'textarea' => [],
'select' => [],
'input' => [],
'help' => [],
];
foreach (array_keys($product->getSkus()) as $variant_id) {
$values['price'][$variant_id] = rand(0, 10000);
$values['textarea'][$variant_id] = sprintf_wp('Variant #%d textarea value', $variant_id);
$values['select'][$variant_id] = floor(rand(0, 3));
$values['input'][$variant_id] = sprintf_wp('variant #%d input value', $variant_id);
$values['help'][$variant_id] = _wp('Everything’s fine.');
}
return [
[
'type' => 'price',
'id' => $this->id . '_price',
'name' => _wp('My plugin’s price'),
'css_class' => $this->id . '-price',
'validate' => [
'required' => true,
'numbers' => true,
],
'sku_values' => $values['price'],
'default_value' => '0',
],
[
'type' => 'input',
'id' => $this->id . '_input',
'name' => _wp('My plugin’s input'),
'css_class' => $this->id . '-input',
'tooltip' => _wp('My plugin’s input hint'),
'sku_values' => $values['input'],
'default_value' => 'default input value',
],
[
'type' => 'textarea',
'id' => $this->id . '_textarea',
'name' => _wp('My plugin’s textarea'),
'css_class' => $this->id . '-textarea',
'tooltip' => _wp('My plugin’s textarea hint'),
'sku_values' => $values['textarea'],
'default_value' => 'default textarea value',
],
[
'type' => 'select',
'id' => $this->id . '_select',
'name' => _wp('My plugin’s select'),
'css_class' => $this->id . '-select',
'tooltip' => _wp('My plugin’s select hint'),
'options' => [
[
'name' => _wp('zero'),
'value' => 0,
],
[
'name' => _wp('one'),
'value' => 1,
],
[
'name' => _wp('two'),
'value' => 2,
],
[
'name' => _wp('three'),
'value' => 3,
],
],
'sku_values' => $values['select'],
'default_value' => 0,
],
[
'type' => 'help',
'id' => $this->id . '_help',
'name' => _wp('My plugin’s notice'),
'css_class' => $this->id . '-help',
'placement' => 'bottom',
'sku_values' => $values['help'],
'default_value' => _wp('User, beware!'),
],
];
}









