Show Messages from Message Manger after Redirect
I am currently using the message manager to display a series of messages from my controller.
$this->_messageManager->addSuccessMessage(__("All requested products have been added to the cart."));
When the controller sends back the HTTP response i am forcing a redirect to the cart page.
window.location.href = "/checkout/cart";
The issue with this is that the messages appear on the current page the HTTP request was sent from and then the redirect occurs, so the messages are on screen for half a second then the page changes.
What i want ideally is for the messages to be displayed on the cart page.
I have a feeling this is occuring because i am setting the messages in php and then forcing the redirect in the Javascript, after the response has been received. Looking at some Magento core files, the best way to do it is to redirect from the php itself, which makes the page redirect and the display and necessary messages.
When i redirect through php however, the response that is received is the html for the page i want to redirect to and the browser does not change URL.
Has anyone had this issue before and how can i solve it? I have tried a few different methods of doing this but none seem to work.
1.
return $this->resultRedirectFactory->create()->setPath('checkout/cart', ['_current' => true]);
2.
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setPath('checkout/cart');
return $resultRedirect;
magento2 controllers redirect
add a comment |
I am currently using the message manager to display a series of messages from my controller.
$this->_messageManager->addSuccessMessage(__("All requested products have been added to the cart."));
When the controller sends back the HTTP response i am forcing a redirect to the cart page.
window.location.href = "/checkout/cart";
The issue with this is that the messages appear on the current page the HTTP request was sent from and then the redirect occurs, so the messages are on screen for half a second then the page changes.
What i want ideally is for the messages to be displayed on the cart page.
I have a feeling this is occuring because i am setting the messages in php and then forcing the redirect in the Javascript, after the response has been received. Looking at some Magento core files, the best way to do it is to redirect from the php itself, which makes the page redirect and the display and necessary messages.
When i redirect through php however, the response that is received is the html for the page i want to redirect to and the browser does not change URL.
Has anyone had this issue before and how can i solve it? I have tried a few different methods of doing this but none seem to work.
1.
return $this->resultRedirectFactory->create()->setPath('checkout/cart', ['_current' => true]);
2.
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setPath('checkout/cart');
return $resultRedirect;
magento2 controllers redirect
add a comment |
I am currently using the message manager to display a series of messages from my controller.
$this->_messageManager->addSuccessMessage(__("All requested products have been added to the cart."));
When the controller sends back the HTTP response i am forcing a redirect to the cart page.
window.location.href = "/checkout/cart";
The issue with this is that the messages appear on the current page the HTTP request was sent from and then the redirect occurs, so the messages are on screen for half a second then the page changes.
What i want ideally is for the messages to be displayed on the cart page.
I have a feeling this is occuring because i am setting the messages in php and then forcing the redirect in the Javascript, after the response has been received. Looking at some Magento core files, the best way to do it is to redirect from the php itself, which makes the page redirect and the display and necessary messages.
When i redirect through php however, the response that is received is the html for the page i want to redirect to and the browser does not change URL.
Has anyone had this issue before and how can i solve it? I have tried a few different methods of doing this but none seem to work.
1.
return $this->resultRedirectFactory->create()->setPath('checkout/cart', ['_current' => true]);
2.
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setPath('checkout/cart');
return $resultRedirect;
magento2 controllers redirect
I am currently using the message manager to display a series of messages from my controller.
$this->_messageManager->addSuccessMessage(__("All requested products have been added to the cart."));
When the controller sends back the HTTP response i am forcing a redirect to the cart page.
window.location.href = "/checkout/cart";
The issue with this is that the messages appear on the current page the HTTP request was sent from and then the redirect occurs, so the messages are on screen for half a second then the page changes.
What i want ideally is for the messages to be displayed on the cart page.
I have a feeling this is occuring because i am setting the messages in php and then forcing the redirect in the Javascript, after the response has been received. Looking at some Magento core files, the best way to do it is to redirect from the php itself, which makes the page redirect and the display and necessary messages.
When i redirect through php however, the response that is received is the html for the page i want to redirect to and the browser does not change URL.
Has anyone had this issue before and how can i solve it? I have tried a few different methods of doing this but none seem to work.
1.
return $this->resultRedirectFactory->create()->setPath('checkout/cart', ['_current' => true]);
2.
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setPath('checkout/cart');
return $resultRedirect;
magento2 controllers redirect
magento2 controllers redirect
asked 23 mins ago
vmpvmp
14813
14813
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "479"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f258068%2fshow-messages-from-message-manger-after-redirect%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f258068%2fshow-messages-from-message-manger-after-redirect%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown