Обновление товара из фронтэнда процессорами.
Обновление товара из фронтэнда процессорами не авторизованными пользователями, получаю ошибку permission_denied
Когда авторизован в админке, все работает. Хочу повесить на плагин.
Как быть. Баловался с правами политики доступа анонимам. Не помогло…
или как вот такой вот запрос переделать на save();
Может кто что подскажет.
Спасибо!
Когда авторизован в админке, все работает. Хочу повесить на плагин.
Как быть. Баловался с правами политики доступа анонимам. Не помогло…
или как вот такой вот запрос переделать на save();
$query = $modx->newQuery('msProduct');
$query->leftJoin('msProductData', 'Data');
$query -> where(array(
'Data.old_price:>' => 0
));
$results = $modx->getCollection('msProduct', $query);
foreach($results as $res){
if(time() >= strtotime($res->get('shareunpub'))){
$fields = $res->toArray();
$fields['price'] = $fields['old_price'];
$fields['old_price'] = '';
$fields['options-shareid'] = '';
$fields['options-sharecount'] = '';
$fields['options-shareunpub'] = '';
$response = $modx->runProcessor('resource/update', $fields);
}
}
Как то так…Может кто что подскажет.
Спасибо!
Комментарии: 2
поиск может подсказать, ну а если нужно просто обновить данные, то можно и без процессора.
И что странно, так то что в таком случае проблем с правами не возникает.
И что странно, так то что в таком случае проблем с правами не возникает.
$res->set('price', $fields['old_price']);
$res->save();
Да. Спасибо! Разобрался реализовал все же через save().
Получилось как то так:
Получилось как то так:
if(time() >= strtotime($res->get('shareunpub'))){
$count++;
$res->set('price', $res->get('old_price'));
$res->set('old_price', '');
$res->set('options',[
'sharecount' => '',
'shareid' => '',
'shareunpub' => ''
]);
$res->save();
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.