Наумов Алексей

Наумов Алексей

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
16 января 2024, 11:50
+1
Возможно и сделать. Но готового решения для данной задачи нет.
А Артур имел ввиду то, что описано в этом разделе документации.
Наумов Алексей
11 января 2024, 14:13
0
ну смотри…
AjaxForm лишь прокидывает данные на FormIt.
Для того, чтобы это все работало — при рендере формы в сессию записываются $scriptPtoperties с которыми вызывался AjaxForm, эти данные записаны в сессии с ключем, который передается в af_action.

Получается, что в сессии эти данные есть по крайней мере она не пуста)

Потом FormIt вызывает хуки по очереди:
spam он там как-то email проверяет, у тебя в форме я каких-либо email не вижу, думаю что в итоге этот хук вообще ничего не делает у тебя;
— далее правильно вызывать recaptchav3, судя по логам он с ошибкой работает. Если посмотрим в код, то сообщение в логе «Failed to load Recaptcha class» означает и то, что хук вернет false. Все, FormIt должен прекратить обработку, до хука email, который отправит письмо, дело не дойдет.
Наумов Алексей
11 января 2024, 13:18
0
хуки вызываются в порядке их указания:
&hooks=`spam,email,recaptchav3`
у вас значит проверка spam (не знаю, что там), далее отправляется письмо, далее проверка рекапчи… только смысл то её проверять, письмо уже отправлено.
Наумов Алексей
11 января 2024, 13:15
0
Ну вот тут было бы логично добавить проверку isset или array_key_exists. это скорее косяк компонента.

github.com/GulomovCreative/FetchIt/blob/master/core/components/fetchit/model/fetchit.class.php#L79
Наумов Алексей
11 января 2024, 13:11
0
Покажите вызовы сниппета AjaxForm на вашем сайте. Отправить форму с сайта без заполнения капчи точно невозможно?
Наумов Алексей
04 января 2024, 18:31
+1
Нет, не совместим. И названия таблиц и колонки немного разные, само ничего не подцепится.
Но скопировать данные sql запросом можно.
Наумов Алексей
29 декабря 2023, 15:08
0
sendRedirect сделает именно редирект на страницу
sendForward оставит текущий url, редиректа не будет, но вместо показа текущей страницы будет произведена «подмена» на указанную
Наумов Алексей
29 декабря 2023, 15:07
0
Чет я не понял.

410 код — это не редирект, это код ответа.

Если ты делаешь редирект, то минимальный пример это
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.ru/newdir/newpage.htm");
exit();
как видишь, есть Location, но нет тела страницы (html кода считай)

а если мы 404 хотим показывать, то мы отдаем
header("HTTP/1.1 404 Not Found");
и html код страницы. Браузер её покажет, просто будет код 404, который роботы и увидят.

А ты пытаешься сделать редирект и передать в него код 410.
Это не верно!
Тебе нужно в плагине сделать так:

$modx->sendForward(123, 'HTTP/1.1 410 Gone');
где 123 — это id страницы, в тексте которой будет написано «Страницы нет, код 410».
Наумов Алексей
28 декабря 2023, 11:01
0
В альт и титл картинки товара попали кавычки:
alt="Паллацио "Премиум""
Наумов Алексей
25 декабря 2023, 16:59
0
плагин на системное событие msOnBeforeCreateOrder, но похоже, что в него не поступают данные о стоимости доставки
Похоже, что должны поступать, судя по коду из msorderhandler.class.php:

// Раз
$delivery_cost = $this->getCost(false, true);
$cart_cost = $this->getCost(true, true) - $delivery_cost;
$num = $this->getNewOrderNum();

/** @var msOrder $msOrder */
// Два
$msOrder = $this->storageHandler->getForSubmit(
    compact('user_id', 'num', 'cart_cost', 'cart_status', 'delivery_cost')
);
// Три
$response = $this->ms2->invokeEvent('msOnBeforeCreateOrder', [
    'msOrder' => $msOrder,
    'order' => $this,
]);
Наумов Алексей
25 декабря 2023, 12:13
0
Может источник файлов не правильно настроен? Сложно сказать. Ошибки php в логах посмотрите.
Наумов Алексей
25 декабря 2023, 11:42
+1
Речь про объект cart в response? Там да, есть данные вроде товар id=3, кол-во 5. Вот только в метрику (как я понял) нужно передавать другое: не текущее кол-во товаров, а сколько именно его добавили в корзину или удалили. Ну типа было 5 товаров, мы 2 убрали нажатием на "-", осталось 3. Вот минишоп возвращает 3, а где взять 2 — вопрос.
Наумов Алексей
25 декабря 2023, 11:26
+1
Спасибо!
В принципе да, с miniShop2.Callbacks.Order.submit.response.success можно попробовать переписать скрипт, по идее должно сработать.

Про прием с расширением msCartHandler знаю, ведь хотелось обойтись без любого php кода, но такого способа в текущей реализации miniShop2 нет.
Наумов Алексей
24 декабря 2023, 12:57
0
В качестве визуального редактора в админке MODX можно использовать любой редактор, например, CKEditor
Наумов Алексей
23 декабря 2023, 12:30
0
На этапе создания конфига нужно добавлять поля, по которым фильтруем.
Если делаем много конфигов (для разных категорий, я же верно понял?) — придется много раз одни и те же поля добавлять. Предложил бы сделать отдельный список настроенных полей (фильтров), а уже в конфиге из него выбирать в 1 клик.
Наумов Алексей
20 декабря 2023, 20:18
0
Верно всё, я про эту особенность написал в тексте.
Пока у меня нет других идей, добавлять серверную часть я не хотел.
В общем это первая версия скрипта, может кто применит, появится больше опыта и наработок, скрипт станет лучше)

Кстати, в магазине modstore есть 2 дополнения, которые работают с google и отправляют данные средствами php.
Наумов Алексей
20 декабря 2023, 10:35
+1
Хук должен вернуть true, в хуке не должно быть иного вывода. Иначе исполнение прочих хуков приостанавливается. Посмотрите, что у вас в amocrm и unisender