Николай Загумённов

Николай Загумённов

Был в сети 19 июня 2026, 19:34
Заказы не принимаю
Спасибо за помощь, цена меняется. Только не понятно как ее менять через аякс этим способом. Все равно пишет цену старую. Например есть кнопка "+" на связном товаре, нажали на нее и цена прибавилась к основному.

Я вроде разобрался у себя, вроде была трабла из-за компонента msDiscount(его плагина), он тоже работает с этим событием.
Вроде разобрался.
Основная проблема это мое не знание minishop2 да и вообще много каких моментов.
Оказывается цену можно легко менять, с помощью вызова события методом:
$response = $minishop2->invokeEvent('msOnGetProductPrice', $params);
Пользователь кликает на "+" или "-", посылая ajax запрос на обработчик, который вызывает событие.
Теперь нужно чтобы по вызову события происходили какие-то действия, в моем случае изменение цены.
Добавляем плагин на это событие:
<?php
if ($modx->event->name = 'msOnGetProductPrice') {
	if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
		
	    $values = & $modx->event->returnedValues;
	    	$values['price'] =  $_SESSION['new_price'];
	    
	} else {
		// тут действия которые должны происходить не через ajax
}