Олег Бурмака

Олег Бурмака

Был в сети 02 февраля 2025, 13:22
Заказы не принимаю
Ну а как заставить mfilter сделать свою работу? Я то могу под категорией вручную вывести другую, могу и подменить адресс и отправить в коннектор запрос. Но внутри все равно идет проверка на фильтры, если там стоит
parents:categories
то ничего кроме них, я не могу получить.(Специально выделил, ибо возможно проблема как раз во мне)
То бишь, вы спрашиваете при каких условиях перестает нормально работать(у вас еще исправно), но уже ищете решение? Тут очень много факторов: что тормозит?(админка или выгрузка в фронтэнд(разные решение)), не очень удобно и эфективно работать? и т.д. Можно много привести и, думаю, для каждого из них можно найти здесь решение.
Как варианты: посмотреть response от работы процессора. И может быть, ты меняешь исправно, ошибки идут о других ресурсах, которые даже не участвуют? Ну, например: ты обновляешь для 1,2,3,4. А ошибки выбивает для 5 = 7, 6 =7. Собственно, нужно будет их и исправить потом
modx.pro/help/7566/ была похожая тема
DELETE FROM modx_site_content WHERE deleted = 1
— код от Василия. Через php ну или СУБД. Для товаров нужно еще будет почистить modx_ms2_products и modx_ms2_product_files. Также папку с картинками /assets/images/products/ по желанию. Если очистили не все товары, а только некоторые то мой вариант частично не подходит.
Нужно использовать
$miniShop2->cart->add();
У меня такой сниппет QuickOrdera — остался еще от старых программистов
$context = $modx->context->get('key');
if ($context == 'mgr' || empty($_POST['quick_order']) || empty($_POST['id']) || empty($_POST['customer'])) {
	return;
}


/**
 * @var miniShop2 $miniShop2
 */
$miniShop2 = $modx->getService('minishop2');
$miniShop2->initialize($context, array(
	'json_response' => false,
));
if (!($miniShop2 instanceof miniShop2)) {
   
	return;
}

$_POST['customer'] = array_merge(array(
	'delivery' => 1,
	'payment' => 1,
	'adress' => 'Quickbuy',
), $_POST['customer']);
foreach (array('email', 'phone', 'receiver', 'delivery', 'payment','adress') as $field) {
	$response = $miniShop2->order->add($field, $modx->getOption($field, $_POST['customer'], ''));
    
	if (empty($response['success'])) {
		return;
	}
}

$response = $miniShop2->cart->clean();

if (empty($response['success'])) {
	return;
}

$response = $miniShop2->cart->add($_POST['id'], $modx->getOption('count', $_POST, 1), $modx->getOption('options', $_POST, array()));


if (empty($response['success'])) {
	return;
}

$miniShop2->order->submit();
Что бесполезно? Не находит в словаре? Или не выводит на странице? Думаю здесь тривиальная проблема, компонент работает как часы. Берет название и через функцию достает из словаря. Проблемы могут быть разные, не правильная запись в словаре, не там создал запись в словаре, проблема в кодировке(очень сомнительно).
Ну если хочется аж тру MODX идеологию, то rtfm.modx.com/revolution/2.x/developing-in-modx/advanced-development/modx-services/modmail
$message = $modx->getChunk('myEmailTemplate');
 
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM,'me@example.org');
$modx->mail->set(modMail::MAIL_FROM_NAME,'Johnny Tester');
$modx->mail->set(modMail::MAIL_SUBJECT,'Check out my new email template!');
$modx->mail->address('to','user@example.com');
$modx->mail->address('reply-to','me@xexample.org');
$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
    $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
}
$modx->mail->reset();
Не знаю, актуально ли еще это. Все отправляю через mail() или smtp.