Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 112 комментариев

Dima
Dima
Была моя же проблема в неправильном расчете.
Я получал моментальный/текущий расчет, но не учитывал дальнейшую обработку уже, скорее, в момент заказа.

Немного подправил класс доставки и использовал не текущую стоимость $cart, а именно передаваемую $cost
<?php

if(!class_exists('msDeliveryInterface')) {
    require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/msdeliveryhandler.class.php';
}
class msDeliveryHandler_cdekwidget extends msDeliveryHandler implements msDeliveryInterface {
    public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0.0) {
        session_start();
        $delivery_cost = $_SESSION['cdek_delivery_price'] ?? 0; 
        return $cost + $delivery_cost;
    }
}
Максим
Максим
У меня не работает с Login. Когда сниппет возвращает false, страница сыпется в 500-ю ошибку (в консоле на вкладе Сеть). Login 1.9.12. К логам сервера нет доступа, в логах MODX ничего нет.
Я же правильно понимаю, что название сниппета нужно добавлять в preHooks? Больше ведь ничего не надо делать? (ну кроме вызова сниппет в html-форме)
Евгений Webinmd
Евгений Webinmd
Рендер находится тут github.com/modx-pro/miniShop2/blob/master/assets/components/minishop2/js/mgr/misc/ms2.utils.js#L15

Но это вам придется менять исходники. Если делать правильно, то надо расширять эту таблицу и выводить свои поля. Это чуть сложнее. Пример подобного расширения таблиц описан тут modx.pro/howto/24899
Андрей
Андрей
Поправка, не только в админку, но и на сайт, просто раньше я сначала в админку заходил, потом на сайт. Сегодня попробовал на сайт — то же самое, первый раз только с VPN, а потом работает, до перезагрузки компа
Александр
Александр
Я делаю так:

$countidsection = $modx->getCount('DeQuestions', array('tabl_param' => $param));
        
    if ($countidsection == 0) {
    	$dequestions = $modx->newObject('DeQuestions');
    	...
    	...
    	...
    };
И бывают дубли (

Попробую предложенный вами вариант.

Или вообще думаю сделать так:
if ($countidsection == 0) {
	// если объекта нет - создать
	...
	...
	...
} else {
	// если есть совпадение - перезаписать значения
	...
	...
	...
};
Александр Туниеков
Александр Туниеков
Я обычно делаю
if(!$obj = $modx->getObject($class,$search)){
    $obj = $modx->newObject( ...
}
И дублирование у меня нет. Но может потому, что у меня $search по индексированным полям ^-^.
Нейросеть советует транзакции или
Также, желательно добавить уникальный индекс в базе данных на поле tabl_param, что обеспечит дополнительную защиту от дублирования на уровне СУБД.
Андрей
Андрей
Так я чтобы войти в админку итак включаю VPN, по умолчанию он у меня выключен. Включаю, вхожу, выключаю. если снова нужно войти, например на другой сайт или после обновления, снова включаю, вхожу, выключаю.
Винду я регулярно перезагружаю, это длится не день и не месяц, какое-то время я ждал, думал может кеш или что-то там еще, само пройдет, но не проходит.
Дмитрий Середюк
Дмитрий Середюк
PHPMailer не поддерживают из коробки OAuth 2.0 (GPT в помощь).
Попробуйте отключить Security Defaults.

Но если нужно все же с OAuth 2.0 то GPT нынче могут подсказать поэтапно что да как нужно сделать, пробуйте