backend_prod

Позволяет добавлять дополнительное содержимое в общий макет страниц нового редактора товара: в боковую панель и основное содержимое. В подключаемом JavaScript-коде можно регистрировать обработчики событий для элементов, находящихся внутри контейнера с селектором '#wa-app' (кроме самого этого элемента — для него обработчики событий нужно регистрировать в JavaScript-коде, подключаемом с помощью хука backend_prod_layout).

Shop-Script
Входящие параметры
передаются по ссылке
$params['product'] shopProduct Объект свойств товара.
$params['section_id'] string Идентификатор текущей части раздела «Товары», например: 'product' — страница одного товара. В будущем планируется добавлять другие части — например, часть для управления списком товаров, у которой будет другой идентификатор.
… код плагина …
Результат работы плагина
{$backend_prod.header}

HTML-код дополнительного содержимого в правой верхней части страниц редактора товара.

{$backend_prod.bottom}

HTML-код дополнительного содержимого в нижней части страниц редактора товара.

{$backend_prod.sidebar_item}

HTML-код дополнительных элементов <li> в конце секции «Редактирование» главного меню редактора товара.

Shop-Script

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

PHP

public function backendProd($params)
{
    /** @var shopProduct $product */
    $product = $params['product'];
    $wa_app_url = wa()->getAppUrl('shop', true);

    // See 'custom_routing' event's description to add support for such URLs.
    $sidebar_item_url = "{$wa_app_url}products/{$product->id}/myplugin/";
    $sidebar_item_text = _wp('My plugin');
    $sidebar_item_hint = _wp('My plugin’s info');

    $sidebar_item = <<<HTML
        <li>
            <a href="{$sidebar_item_url}">
                <span>{$sidebar_item_text}</span>
                <span class="count">
                    <span class="wa-tooltip bottom-left" data-title="{$sidebar_item_hint}">
                        <i class="s-icon fas fa-question-circle"></i>
                    </span>
                </span>
            </a>
        </li>
HTML;

    $section_id = $params['section_id'];

    $bottom = <<<HTML
        <script>
        $(function () {
            console.log('My plugin works!', 'The section ID is "{$section_id}".');
        });
        </script>
HTML;

    $header_button_text = _wp('My plugin’s button');
    $header_button_message = _wp('My plugin’s message!');

    $header = <<<HTML
        <div class="s-details">
            <button onclick="alert('{$header_button_message}');">{$header_button_text}</button>
        </div>
HTML;

    return [
        'sidebar_item' => $sidebar_item,
        'bottom' => $bottom,
        'header' => $header,
    ];
}