Привет!
Такая ситуация, хотел добавить уведомляху после добавления в корзину товара, пишут использовать my_changes модуль checkout.post.php, создал, модуль включен, пути корректные (частично работает, об этом ниже), кэш чищу.
Подключил, понял что работает на странице чекаута конкретно, а при вызове checkout.add по кнопке add-to-cart из каталога или главной, мод не срабатывает
Хотя именно он там должен срабатывать, вот судя по ответам по форуму и скрин из DOM приложил, там тоже видно…
Спойлер
После условия mode == add не работает, а точнее даже начиная cо строчки с условием при запросе POST.
Код позаимствован у уважаемого eComLabs c сайта SO
сheckout.post.php и сheckout.pre.php
echo "<script>console.log('Тут еще работает 1')</script>";
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
echo "<script>console.log('Тут уже не работает 2')</script>";
if ($mode == 'add') {
echo "<script>console.log('my_changes 3')</script>";
$added_products = Registry::get('view')->getTemplateVars('added_products');
if (!empty($added_products)) {
foreach ($added_products as $data) {
if (!empty($data['product_id']) && $data['product_id'] == THE_ID_OF_REQUIRED_PRODUCT) {
$msg = Registry::get('view')->fetch('addons/my_changes/custom_product_notification.tpl');
fn_set_notification('I', __('custom_product_notification_title'), $msg, 'I');
}
}
}
}
return;
}
После этого нашел тему, где сказали изменить в config.local.php параметр ‘disable_dhtml’ => false и ‘redirect_to_cart’ => false, редирект мне не требовался, однако и с ним и без него появилась другая проблема, но так же и успех определенный.
Наконец-то начали отрабатывать консоль логи описанные выше, плюс ко всему те, которые прописаны в checkout.PRE.php (код такой же как и у checkout.post.php) и оставленные там случайно после теста.
Однако после параметра ‘disable_dhtml’ => false падает сайт при добавлении в корзину c главной или категории с ошибкой, но зато в консоли перед падением видно все три дебажных строки.
Ошибка:
Спойлер
Pimple\Exception\UnknownIdentifierException
Message
Identifier “ajax” is not defined.
Error at
app/lib/vendor/pimple/pimple/src/Pimple/Container.php, line: 105
Backtrace
File: |
app/Tygh/Application.php |
Line: |
135 |
Function: |
offsetGet |
File: |
app/controllers/frontend/checkout.php |
Line: |
63 |
Function: |
offsetGet |
File: |
app/functions/fn.control.php |
Line: |
722 |
Function: |
include |
File: |
app/functions/fn.control.php |
Line: |
458 |
Function: |
fn_run_controller |
File: |
index.php |
Line: |
19 |
Function: |
fn_dispatch |
Помогите разобраться, пожалуйста