Дмитрий

Дмитрий

С нами с 27 мая 2016; Место в рейтинге пользователей: #1313

Пересчет цены от общей сумы в корзине minishop2

Доброго дня, очень надеюсь на Вашу помощь… Есть розничная цена (price) и оптовая (old_price). Если сумма заказа меньше 2000 руб — цена розничная, если больше — оптовая.
Сам плагин
<?php
switch ($modx->event->name) {
    case 'msOnChangeInCart': case 'msOnAddToCart': case 'msOnRemoveFromCart': 
        $total_cost_min = $cart->status()['total_cost_min'];
        
        $tmp = $cart->get();
        
        if ($total_cost_min > 200) {
            foreach ($tmp as $key1 => $value) {
                if ($product = $modx->getObject('msProduct', $value['id'])) {

                    $price = $product->get('price');
                    $old_price = $product->get('old_price');
                    $price = $old_price - $rate;
                	$tmp[$key1]['price'] = $price;
                    $modx->log(modX::LOG_LEVEL_ERROR, "cart: ".print_r($price,1) );
                	
                	
                }
            }
        }
        else {
            foreach ($tmp as $key1 => $value) {
                if ($product = $modx->getObject('msProduct', $value['id'])) {
                	$tmp[$key1]['price'] = $product->get('price');
                }
            }
        }
        $cart->set($tmp);
    break;
}
total_cost_min — это сумма заказа с розничной ценой.
Вроде все работает. Но не могу сделать динамическое обновление цен в корзине. Вернее они меняются только у того товара, у которого изменяешь количество, а все остальные не пересчитываются, только после перезагрузке страницы.
Понимаю что надо править default.js где-то в этом месте
status: function (status) {
            if (status['total_count'] < 1) {
                location.reload();
            } else {
                //var $cart = $(miniShop2.Cart.cart);
                var $miniCarts = $(miniShop2.Cart.miniCart).add(miniShop2.Cart.miniCartClass);
                if (status['total_count'] > 0 && $miniCarts.length > 0) {
                    $miniCarts.each(function (index, cart) {
                        if (!$(cart).hasClass(miniShop2.Cart.miniCartNotEmptyClass)) {
                            $(cart).addClass(miniShop2.Cart.miniCartNotEmptyClass);
                        }
                    });
                }
                $(miniShop2.Cart.totalWeight).text(miniShop2.Utils.formatWeight(status['total_weight']));
                $(miniShop2.Cart.totalCount).text(status['total_count']);
                $(miniShop2.Cart.totalCost).text(miniShop2.Utils.formatPrice(status['total_cost']));
                $(miniShop2.Cart.totalDiscount).text(miniShop2.Utils.formatPrice(status['total_discount']));
                if (typeof(status['cost']) === 'number') {
                    $(miniShop2.Cart.cost, '#' + status['key']).text(miniShop2.Utils.formatPrice(status['cost']));
                }
                
                    $(miniShop2.Cart.price2, '#' + status['key']).text(miniShop2.Utils.formatPrice(status['price2']));
  
                if ($(miniShop2.Order.orderCost, miniShop2.Order.order).length) {
                    miniShop2.Order.getcost();
                }
            }
        },
Дмитрий
19 мая 2022, 11:23
modx.pro
663
0

Вывод "Показано 14 из 66" в pdotools с &ajaxMode=`button`

Есть ли возможность вывести «Показано 14 из 66» в pdotools с &ajaxMode=`button`
[[!pdoPage? &tpl=`blog-min` &includeTVs=`img_news` &limit=`15` &where=`{"isfolder:=":0}`  &offset=`1`
	&ajaxMode=`button`
	&ajaxTplMore=`@INLINE <div class="blog-b__controls"><button class="blog-b__more section__btn btn btn-more" style="display: flex;width: auto;">показать ещё статьи<svg><use xlink:href="assets/templates/sdke/img/icons/ui/sprite.svg#doc-ic"></use></svg></button></div>` ]]
Общее число можно вывести с помощью [[+page.total]], а как быть с первым параметром?
Дмитрий
19 марта 2022, 13:27
modx.pro
192
0

Спам Formit(AjaxForm) + reCaptcha V3

Дмитрий
31 января 2022, 09:21
modx.pro
170
0

Drag and Drop для FormIt и AjaxForm

4 1
Есть форма FormIt+Ajaxform с прикреплением файлов . Все работает.
Нужно добавить Drag and Drop (пробовал с помощью www.dropzonejs.com/) но файлы не долетают.
Пишите свои цену и срок.
Дмитрий
02 марта 2021, 20:44
modx.pro
171
0

Dropzone для FormIt и AjaxForm

Создал форму с помощью FormIt и AjaxForm, добавил загрузку файлов по инструкции itchief.ru/lessons/modx-revo/modx-formit-email-with-attachment
Все работает, файлы прикрепляются
Пытался добавить dropzonej
<script src="assets/js/dropzone.js"></script>
<link rel="stylesheet" href="assets/css/dropzone.css">
<form action="" method="post"  enctype="multipart/form-data" class="dropzone">
    <div class="fallback">
    <input name="file" type="file" multiple />
    </div>
    <input id="individual_name" type="text" class="input-text" name="individual_name" placeholder="Имя*" value="[[!+fi.individual_name]]">
    <input id="individual_phone" type="text" class="input-text" name="individual_phone" placeholder="Телефон*" value="[[!+fi.individual_phone]]">
    <input id="individual_mail" type="email" class="input-text" name="individual_mail" placeholder="E-mail*" value="[[!+fi.individual_mail]]">
    <input id="contact_send" class="buttom btn-lg" name="send" type="submit" value="Отправить" disabled>
</form>
Форма отправляется, файлы не прикрепляются. И к тому же Dropzone становится вся форма, а не область
Дмитрий
01 марта 2021, 22:58
modx.pro
286
0

mfilter2 фильтр по родителю, когда товар в нескольких категориях

Вывожу фильтp с помощью кода
[[!mFilter2?
					&limit=`15`
					&includeTVs=`nal,icon,rashem,dlina`
					&showHidden=`0`
					&prepareTVs=`1`
                    &processTVs=`icon`
					&element=`msProducts`
					&filters=`
						ms|price:number,
						parent:categories,
						ms|vendor:vendors,
						msoption|color:default,
						tv|mkw:default,
						tv|dlina:default,
						tv|kompl:default
					`
					&tpls=`tpl.msProducts1.row`
					&class=`msProduct`
					&sort=`price:asc`
					&tplOuter=`tpl.mFilter2.outer1`
					&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
					&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
					
					&tplFilter.row.resource|parent=`tpl.mFilter2.filter.categories_pr`
					&tplFilter.row.msoption|color=`tpl.mFilter2.filter.checkbox_kW`
					&tplFilter.row.msoption|size=`tpl.mFilter2.filter.checkbox_m`
					&tplFilter.row.tv|dlina=`tpl.mFilter2.filter.checkbox_m`
				]]
Но в фильтре родителя выводятся и категории из других разделов, к которым привязаны товары из нужной категории. Как их убрать?
Дмитрий
20 января 2021, 15:38
modx.pro
436
0