des1gner
С нами с 09 февраля 2019; Место в рейтинге пользователей: #1062Office - авторизация и регистрация через sms c одной формы
Кейс:
Клиент очень хотел, чтобы у него на странице входа, как у служб доставки, было одно поле — номер телефона. И всё. То есть, если ты новый — ты регистрируешься, если уже юзер — входишь.
Если с авторизацией через email такое можно заставить работать из коробки, то с телефоном пришлось помудрить. Далее — пошаговое описание решения.
Клиент очень хотел, чтобы у него на странице входа, как у служб доставки, было одно поле — номер телефона. И всё. То есть, если ты новый — ты регистрируешься, если уже юзер — входишь.
Если с авторизацией через email такое можно заставить работать из коробки, то с телефоном пришлось помудрить. Далее — пошаговое описание решения.
[ogImage] — генерация превью с текстом

Нужно красивое превью страницы в соцсетях?
Динамическое изменение цены в корзине от условий доставки
Всем добрый день. Помогите разобраться, 2 дня чтения интернета не дают результата :(
Пишу свой модуль доставки СДЭК. Не могу понять как динамически поменять стоимость доставки и общую цену в корзине при расчете сдэка.
написал свой класс стоимости доставки
{«success»:true,«message»:"",«data»:{«cost»:2430}}
но при этом в самой корзине или в оформленном заказе цена остается старой. Подскажите пожалуйста как правильно обновить стоимость доставки? Перепробовал уже все что можно. Видел подобные компоненты, цену обновляют…
сайт на котором тестирую mod.2f-vsk.ru
Спасибо.
Пишу свой модуль доставки СДЭК. Не могу понять как динамически поменять стоимость доставки и общую цену в корзине при расчете сдэка.
написал свой класс стоимости доставки
<?php
//проверяем на отсутствие классов и инициализируем классы msdeliveryhandler, CalculatePriceDeliveryCdek
if(!class_exists('msDeliveryInterface')) {
require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/minishop2/model/minishop2/msdeliveryhandler.class.php';
}
class msDeliveryHandlerCDEK extends msDeliveryHandler implements msDeliveryInterface {
public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) {
$cdekPrice = $_POST['cdekPrice'];
$fullcost = intval($cost) + intval($cdekPrice);
return $fullcost;
}
}
?>весь сдэк считает в js и там же я вызываю ajax с пересчетом цены $.ajax({
type: "POST",
url: "/assets/components/minishop2/action.php",
data: "ms2_action=order/getcost&ctx=web&cdekPrice="+data.result.price,
success: function(msg){
$.jGrowl('Обновление цены' , { theme: 'message-system', life: 2500 });
console.log(msg);
}
});ответ верный, получает стоимость из скрипта и прибавляет стоимость {«success»:true,«message»:"",«data»:{«cost»:2430}}
но при этом в самой корзине или в оформленном заказе цена остается старой. Подскажите пожалуйста как правильно обновить стоимость доставки? Перепробовал уже все что можно. Видел подобные компоненты, цену обновляют…
сайт на котором тестирую mod.2f-vsk.ru
Спасибо.
Корзина: обновить span с ценой
Привет!
Сломал голову, как перезагрузить только span с ценой у товара.
Сломал голову, как перезагрузить только span с ценой у товара.
Разная почта менеджера в зависимости от варианта доставки
Доброго времени суток, уважаемое сообщество!
Возникла необходимость отправлять письмо о новом заказе на разных менеджеров — разные email-адреса (в зависимости от выбранного клиентом варианта доставки). Облазил казалось бы все, но как внедрить такой функционал так и не понял :(
Возникла необходимость отправлять письмо о новом заказе на разных менеджеров — разные email-адреса (в зависимости от выбранного клиентом варианта доставки). Облазил казалось бы все, но как внедрить такой функционал так и не понял :(
Amp для modx
Наткнулся на плагин для revo AMP модх.
ссылка на github репозиторий
Кто реализовывал AMP на modx? Поделитесь любой информацией.
ссылка на github репозиторий
Кто реализовывал AMP на modx? Поделитесь любой информацией.
Обновление корзины или рефреш страницы
Добрый день!
Сделал плагин для добавления подарка при достижении определенной суммы. Код стандартен
Как обновить страницу с корзиной?
Сделал плагин для добавления подарка при достижении определенной суммы. Код стандартен
switch ($modx->event->name) {
case 'msOnAddToCart': case 'msOnChangeInCart': case 'msOnRemoveFromCart':
$cartArray = $cart->get();
$cartStatus = $cart->status();
if ($cartStatus['total_cost'] >= 100){
$cart->add(666);
$cartArray = $cart->get();
foreach ($cartArray as &$cartProduct) {
if ($cartProduct['id'] == 666) {
$cartProduct['count'] = 1;
}
}
}
else{
foreach ($cartArray as $key => $cartProduct) {
if ($cartProduct['id'] == 666) {
unset($cartArray[$key]);
}
}
}
$cart->set($cartArray);
break;
}подарок добавляется в корзину ($cart) все хорошо, но не знаю как обновить страницу с корзиной чтобы показать добавленный подарок в корзине. Тоже самое при удалении части заказа из корзины, если сумма заказа уменьшилась, я из $cart удаляю подарок, но страницу с корзиной не могу обновить. Как обновить страницу с корзиной?
Скрыть блок адрес доставки при самовывозе
Добрый день всем.
Возникла проблема, никак не могу скрыть блок «адрес доставки» при выборе способа доставки самовывоз.
Нашел на просторах сего замечательного сайта вот такую конструкцию
Но не пойму никак как заставить ее работать.
Пробывал через [[+delivery.id:]] но тоже не получилось…
Недавно начал работать с modx, не пинайте сильно, если вопросы вам покажутся дурными.
Minishop2 последней версии.
Возникла проблема, никак не могу скрыть блок «адрес доставки» при выборе способа доставки самовывоз.
Нашел на просторах сего замечательного сайта вот такую конструкцию
$(document).on('change', '[name="delivery"]', function() {
if ($('[name="delivery"]:checked').attr('id') == 'delivery_5') {
и развлекайся на здоровье...
}
}) Но не пойму никак как заставить ее работать.
Пробывал через [[+delivery.id:]] но тоже не получилось…
Недавно начал работать с modx, не пинайте сильно, если вопросы вам покажутся дурными.
Minishop2 последней версии.
Добавление своих полей в форму заказа [обновлено]
При разработке нескольких проектов, возникала необходимость в получении дополнительных данных от покупателей, а полей в miniShop2 ограниченное количество. Поиск готового решения результата не дал, поэтому предлагаю свой вариант.
Решение обновлено, убраны правки исходного кода минишопа, теперь при обновлении ничего не затрется, изменены ключи у полей
Решалось это следующим образом:
1. Добавлялись необходимые поля, для примера взяты тип плательщика, название организации и инн.
2. Добавлялся плагин срабатывающий при сохранении заказа и при подключении js минишопа в админке.
3. Редактировались настройки и записи словарей.
Более подробно далее
Решение обновлено, убраны правки исходного кода минишопа, теперь при обновлении ничего не затрется, изменены ключи у полей
Решалось это следующим образом:
1. Добавлялись необходимые поля, для примера взяты тип плательщика, название организации и инн.
2. Добавлялся плагин срабатывающий при сохранении заказа и при подключении js минишопа в админке.
3. Редактировались настройки и записи словарей.
Более подробно далее
Дополнительные поля профиля юзера (не extended)

Разрабатываю проект, в котором необходимо было реализовать более простое редактирование дополнительных полей профиля, чем есть из коробки. К слову, неудобное редактирование — это не единственный минус нативного способа расширения профиля полями. Ни для кого не секрет, что фильтрацию по JSON полям нормально не осуществить, только костылями. Фактически, мне надо было получить решение, которое бы расширяло стандартный код MODX, не трогая исходники, дабы сохранить
Пришёл к выводу, что буду расширять стандартную вкладку профиля «Общая информация». При желании можно чуть переписать код в событии OnUserFormPrerender и создать свою вкладку со своими полями.