product_presave

Срабатывает перед сохранением товара: при редактировании товара вручную или при импорте.

Shop-Script
Входящие параметры
передаются по ссылке
$params array Массив параметров.
$params['data'] array Свойства данных товара перед сохранением. Не меняется плагинами.
$params['dirty'] array Массив полей, которые должны быть обновлены. Плагины могут менять этот массив, чтобы влиять на сохранение.
$params['new_data'] array Массив данных, которые нужно сохранить. Плагины могут менять этот массив, чтобы влиять на сохранение.
$params['instance'] shopProduct Экземпляр класса shopProduct, соответствующий сохраняемому товару.
… код плагина …
Результат работы плагина
$return['result']

bool=false Значение, которое нужно вернуть, чтобы сигнализировать об ошибке. В противном случае обработчик хука не должен возвращать значение.

$return['error']

string Сообщение об ошибке.

Shop-Script

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

PHP

public function productPresave($params)
{
    if (!empty($params['new_data']['description']) && strpos($params['new_data']['description'], '#') !== false) {
        return array(
            'result' => false,
            'error' => _wp('# character is not allowed in product descriptions.'),
        );
    }
}