backend_prod_mass_actions

Изменяет список массовых действий в разделе «Товары → Каталог» в новом интерфейсе (2.0).

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

Shop-Script

Входящие параметры (передаются по ссылке)

$params['actions'] array Информация о доступных пользователю массовых действиях с товарами в виде массива, который можно модифицировать в коде плагина: скрывать стандартные либо добавлять собственные действия и группы действий.

Добавляемые элементы действий и групп действий должны представлять собой подмассивы со следующими ключами:
$params['actions'][]['id'] string (Для действий и групп действий) Строковый идентификатор, который должен начинаться с идентификатора плагина, чтобы избежать конфликтов с другими плагинами.
$params['actions'][]['name'] string (Для действий и групп действий) Локализованный текст ссылки действия или название группы действий.
$params['actions'][]['icon'] string (Только для действий) HTML/SVG-код иконки действия.
$params['actions'][]['pinned'] bool (Только для действий) Флаг, обозначающий отображение ссылки действия в горизонтальном меню. Если не указано true, то ссылка действия видна только во всплывающем вертикальном меню.
$params['actions'][]['action_url'] string (Только для действий) URL, на который нужно отправить AJAX-запрос с передачей информации о списке выбранных товаров в POST-параметре 'products_hash'. Контроллер, обрабатывающий запросы к этому URL, должен содержать реализацию нужного массового действия с товарами.
$params['actions'][]['redirect_url'] string (Только для действий) URL, на который нужно перенаправить пользователя с передачей информации о списке выбранных товаров в GET-параметре 'products_hash'. Контроллер, обрабатывающий запросы к этому URL, должен содержать реализацию нужного массового действия с товарами. Это значение может быть указано, если не указано значение action_url.
$params['actions'][]['dialog_url'] string (Только для действий) URL, на который нужно отправить AJAX-запрос с передачей информации о списке выбранных товаров в POST-параметре 'products_hash', чтобы открыть диалог waDialog. Это значение может быть указано, если не указаны значения action_url и redirect_url.

Контроллер, обрабатывающий запросы к этому URL, должен вернуть HTML-код для формирования содержимого диалога. JavaScript-код, который должен выполниться сразу после открытия диалога, нужно передать в качестве обработчика события wa_dialog_ready для jQuery-объекта диалога.

В массиве параметров события доступны
— информация о действии с товарами;
— содержимое отправленного POST-запроса;
— объект диалога;
— jQuery-объект диалога.

$params['actions'][]['custom_handler'] string (Только для действий) Значение, эквивалентное true, если при выборе действия необходимо выполнить произвольный JavaScript-код. Это значение может быть указано, если не указаны значения action_url, redirect_url и dialog_url. Произвольный JavaScript-код нужно передать в качестве обработчика события wa_custom_mass_action для jQuery-объекта с селектором '#js-products-page-content'.

В массиве параметров события доступны
— информация о действии с товарами;
— содержимое отправленного POST-запроса.

$params['actions'][]['actions'] array (Только для групп действий) Список действий, входящих в группу, в виде массива. Каждый элемент списка — массив с параметрами, описанными выше как доступные для действий.
… код плагина …

Результат работы плагина

Shop-Script

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

PHP

public function backendProdMassActions(&$params)
{
    $wa_app_url = wa()->getAppUrl(null, true);

    $params['actions']['organize']['actions'][] = [
        'id' => $this->id . '_action_1',
        'pinned' => true,
        'name' => _wp('My plugin’s action 1'),
        'icon' => '<i class="fas fa-user"></i>',
        'redirect_url' => $wa_app_url . $this->id . '/one/',
    ];

    $params['actions'][$this->id . '_group'] = [
        'id' => $this->id . '_group',
        'name' => _wp('My plugin’s action group'),
        'actions' => [
            [
                'id' => $this->id . '_action_2',
                'name' => _wp('My plugin’s action 2'),
                'icon' => '<i class="fas fa-user"></i>',
                'action_url' => $wa_app_url . $this->id . '/two/',
            ]
        ],
    ];
}