Воеводский Михаил

Воеводский Михаил

Был в сети 30 марта 2026, 14:44
Заказы не принимаю
Tickets, minishop2, Collections…
Способов масса. Прежде, чем что-то выбирать, составьте подробное тз — соотнести потребности и возможности компонентов будет проще.
Но если чтение документации не помогает, Вам прямая дорога в раздел «Работа», ибо нагородить костылей на начальном этапе легко, а их поддержка превратится в настоящий кошмар.
Плагин правильнее на событие msOnSubmitOrder. Разница в том, что блокировать оформление заказа необходимо еще до его создания. Указанное событие вызывается самым первым, еще до создания нового объекта и проверки введенных полей.
А проверять на этом событии необходимо сумму в корзине.

Если делать именно таким образом, то не должно возникнуть необходимости изменять стандартный JS.
Однажды писал плагин для такой ситуации:
<?php
switch ($modx->event->name) {
	case 'OnMODXInit':
	        $output = '';
        	if (isset($_REQUEST['tv|price_from'])) {
	            $modx->setPlaceholder('price_from',(int) $_REQUEST['tv|price_from']);
        	    if (!strpos(',',$_REQUEST['tv|price_from'])) $_REQUEST['tv|price_from'] .= ',99999999';
	        }
        	if (isset($_REQUEST['tv|price_to'])) {
	            $modx->setPlaceholder('price_to',(int) $_REQUEST['tv|price_to']);
	            if (!strpos(',',$_REQUEST['tv|price_to'])) $_REQUEST['tv|price_to'] = '0,'.$_REQUEST['tv|price_to'];
	        }
        	break;
	default: break;
}
В текущем виде поля price_from и price_to предполагаются обычными текстовыми.