У меня проблема, которая поворачивает голову. Я объясню ситуацию … Я работаю над проектом с opencart, и я создал кнопку, которая работает следующим образом: когда вы нажимаете на нее, она должна отправить владельцу веб-сайта все, что находится внутри корзины покупок, и эти продукты собираются вместе с данными о клиентах и могут отправлять электронную почту только в том случае, если пользователь зарегистрирован, тогда проблема начинается.
Это кнопка, на которую кликнет клик:
<div class="checkout-button"><a id="button-quotation" class="button">click me</a></div>
Затем через AJAX вызывается функция PHP, чтобы проверить это:
$(document).ready(function(){ $('#button-quotation').click(function(){ var clickBtnValue = $(this).val(); var ajaxurl = 'index.php?route=checkout/cart/quotation', data = {'action': clickBtnValue}; $.post(ajaxurl, data, function (response) { alert("works!!"); }); });});
И здесь есть функция перенаправления, которая отправит клиента на страницу входа в систему, если она не занесена в журнал:
public function quotation(){ if (!$this->customer->isLogged()) { $this->session->data['redirect'] = $this->url->link('checkout/cart', '', 'SSL'); $this->redirect($this->url->link('account/login', '', 'SSL')); } }
Я могу заставить электронные письма работать, но я не могу запустить перенаправление, если клиент не зашел на сайт. Кто-нибудь может мне помочь?
Если вы перенаправляете в свою PHP-функцию, будет перенаправлен только запрос AJAX.
Что вы должны сделать: пусть функция возвращает данные, которые указывают на JavaScript, что он должен выдать перенаправление на вашу страницу входа.
См. Также этот вопрос: Как управлять запросом перенаправления после вызова JQuery Ajax
Вы можете отправить URL-адрес в ajax и перенаправить через javascript.
window.location.href = response.your_login_url ;