Володя

Володя

С нами с 18 декабря 2012; Место в рейтинге пользователей: #6
Володя
15 мая 2018, 15:10
4
+1
как минимум переделать так
<?php


if ($modx->event->name === 'OnDocFormSave') {
   
    if($mode == 'new'){
        $modx->log(1, 'Новый');
        
        if (!$user = $modx->getAuthenticatedUser('web')) {
            // не получен пользователь
            return;
        }
        
        $user_id = $user->get('id');
        if (!$user_money_profile = $modx->getObject('msCustomerProfile', $user_id)) {
            // не получе профиль пользователя
            return;
        }
        
        $balance = (float)$user_money_profile->get('account');
       
        if (!empty($_POST['pricetpl'])){
            if ($balance >= 100) {
                $new_balance = $balance - 100;
                $user_money_profile->set('account', $new_balance);
                $user_money_profile->save();
                $modx->log(1, 'Списал баланс');
            }else { $modx->log(1, 'Недостаточно средств');}
        }
    }
}
Володя
14 мая 2018, 17:59
0
Возможно когда будет нечем заняться или потребуется такая возможность.
Вы можете сделать это самостоятельно и прислать PR.
Володя
14 мая 2018, 17:55
0
Добрый вечер.
Мне нужно в колонку заказов либо товаров добавить два столбца: made_in и tags. Вроде бы оба из стандартного функционала minishop2.

Естественно в таблице заказов их точно нет. В таблице товаров попробуйте как
data_made_in и products_options
Володя
13 мая 2018, 17:11
+1
Все основны моменты изложены в документации.
Не нужно ичего додумывать, если у вас какие либо сложности стоит писать в ТП.

Какие либо новшества будут документированы после обкатки…
Спасибо.
Володя
16 апреля 2018, 14:19
0
Достаточно просто грохнуть папку core/cache
и все должно нормализоваться
Володя
16 апреля 2018, 08:37
0
Доброе утро.
Расчет стоимости идет на событие UserEventsOnBeforeGetOrderCost
Пример плагина есть в комплекте UserEventsExample, вам нужно только изменить его под свою логику.
Добавьте после строчки

$data = $orderHandler->get();

$modx->log(1, print_r($data, 1));
и увидите в логе все доступные переменные. Вам нужно взять кол-во часов и перемножить на стоимость часа.

Если возникли трудности — пишите в ТП.
Спасибо!
Володя
16 апреля 2018, 08:24
0
П.С.2: Может быть последнее обновление не было выложено? отсюда и проблемы?
Свежая версия пакета всегда доступна в репозитории магазина
Володя
16 апреля 2018, 08:24
0
П.С. в инструкции нет примера вызова для формы 5.
[[!dadata.form?
    &selector=`#dadata-form5`
	&suggestions=`{
        'inn': {
            'type': 'PARTY',
            'restrict_value': 'true',
            'params': {
                'return': {
                    'keys': ['data.inn']
                }
            },
            'subject': {
                'kpp': 'kpp',
                'ogrn': 'ogrn',
                'name-full':'name.full',
                'name-short_with_opf':'name.short_with_opf'
            }
        }
	}`
]]
Володя
16 апреля 2018, 08:22
0
В параметре «subject» не получается использовать данные 2го уровня в многомерных объектах. Например, не работает следующий код:
Используйте расширенный класс обработки данных, он идет в комплекте с пакетом, нужно только его прописать в настройках.
dadata_format_handler_class
Extended
Володя
13 апреля 2018, 13:15
+1
Разрешить php в fenom. Настройка pdotools_fenom_phpда
Володя
13 апреля 2018, 10:10
1
0
.msfavorites-total-all .msfavorites-total:before {
	content: "Y";
}
.msfavorites-total-all .msfavorites-total[data-value="0"]:before {
	content: "X";
}
Володя
12 апреля 2018, 19:10
0
Добрый вечер.
Все верно, для работы с заказами в МС предусмотренно отдельное апи. В данном пакете оно не реализовано.
Володя
11 апреля 2018, 15:14
0
потому что неверно указываете идентификатор
joxi.ru/bmoBgdMhxKKvVr
Володя
11 апреля 2018, 13:36
0
и так и эдак пробовал. Не выходит.
а плагину данное событие назначили?
Можно чуть подробнее?
пользуйтесь поиском по OnDocFormPrerender, примеров более чем достаточно.
Володя
11 апреля 2018, 11:21
0
аналогично
public function getNum()
    {
        $cur = date('ym');
        $num = 0;
        $c = $this->modx->newQuery('msOrder');
        $c->where(array('num:LIKE' => "{$cur}%"));
        $c->select('num');
        $c->sortby('id', 'DESC');
        $c->limit(1);
        if ($c->prepare() && $c->stmt->execute()) {
            $num = $c->stmt->fetchColumn();
        }
        if (empty($num)) {
            $num = '500';
        }
        $num = explode('/', $num);
        $num = end($num)  + 1;
        return $num;
    }
Володя
11 апреля 2018, 09:15
0
Все работает.
Вот и отлично.

для разных групп пользователей или конкретных пользователей
Плагин на OnDocFormPrerender, в зависимости от пользователя/группы пользователя прятать лишние поля.

Если просто прятать не вариант, а нужно действительно серьезные изменения админки то переопределять miniShop2.panel.Product
Володя
11 апреля 2018, 09:09
0
переопределить класс заказа

в нем переопределить метод getNum()

думаю достаточно поменять одну строчку
$num = date('ym') . '/0';
на
$num = date('ym') . '/500';

public function getNum()
    {
        $cur = date('ym');
        $num = 0;
        $c = $this->modx->newQuery('msOrder');
        $c->where(array('num:LIKE' => "{$cur}%"));
        $c->select('num');
        $c->sortby('id', 'DESC');
        $c->limit(1);
        if ($c->prepare() && $c->stmt->execute()) {
            $num = $c->stmt->fetchColumn();
        }
        if (empty($num)) {
            $num = date('ym') . '/500';
        }
        $num = explode('/', $num);
        $num = $cur . '/' . ($num[1] + 1);
        return $num;
    }
Володя
02 апреля 2018, 16:53
0
где найти шаблон экспортируемой таблицы?
нет никакого шаблона экспортируемой таблицы. Массив данных с помощью библиотеки spout экспортируется в файл нужного формата.

Если вам нужно обработать строку то можно использовать событие msStatOrdersOnPrepareExportRow
например
if (is_array($row) AND isset($row['createdon'])) {
    $row['createdon'] = date('d.m', strtotime($row['createdon']));
    
    $modx->event->returnedValues['row'] = $row;
}
можно добавить аналогичное событие по завершению, для вставки информации в конец файла. Не более…

Или зря покупал, получается?
все компоненты доступны для тестиривания на modhost.pro/. Прежде чем что то покупать можно удостоверится нужно ли оно вам.
Володя
30 марта 2018, 11:07
0
Возможно ли по событию получать цену old_price, если открывается в модальном окне msCart?
поясните. Открывается корзина а получать цену old_price чего ???