Câu trả lời:
app/code/Custom/Module/view/frontend/templates/sample.phtml
<script type="text/javascript">
require([
'jquery',
'jquery/jquery.cookie'
], function ($) {
$(document).ready(function () {
var check_cookie = $.cookie('foo'); // Get Cookie Value
var date = new Date();
var minutes = 60;
date.setTime(date.getTime() + (minutes * 60 * 1000));
$.cookie('foo', '', {path: '/', expires: -1}); // Expire Cookie
$.cookie('foo', 'bar', {expires: date}); // Set Cookie Expiry Time
$.cookie('foo', 'setvalue'); // Set Cookie Value
}
});
</script>
Bài viết hữu ích về phía PHP: https://webkul.com/blog/set-get-data-cookie-magento2/
Bạn có thể lưu trữ cookie trong tệp js bằng phương pháp bên dưới,
define([
'jquery',
'mage/cookies'
], function ($) {
$.cookie('cookiename', cookievalue);
});
mage/cookies
dành cho Magento 1?
$.cookie()
và $.mage.cookies.set()
?
Trong target.phtml
, thêm mã js như dưới đây.
<script>
require([
'jquery',
'mage/cookies'
], function ($) {
$.cookie('cookie_name', 'value', { path: '/' });//Set the cookies
});
</script>
Nếu bạn muốn nhận giá trị từ một trang khác, hãy chú ý cài đặt đường dẫn
{ path: '/' }
!Vì cookie chỉ có thể truy cập vào đường dẫn được chỉ định và bất kỳ đường dẫn phụ nào , nên thảo luận thêm về điều này bạn có thể thấy ở đây Đường dẫn cookie và khả năng truy cập của nó vào các trang thư mục con .
<script>
require([
'jquery',
'mage/cookies'
], function ($) {
var temp = $.cookie('cookie_name');//Get the cookies
});
</script>
Chỉ trong trường hợp bạn cần mở hoặc không sử dụng phương thức sau khi kiểm tra cookie:
require(
[
'jquery',
'Magento_Ui/js/modal/modal',
'jquery/jquery.cookie'
],
Đây là thứ tự đúng nếu không phương thức sẽ không hoạt động
mage/cookie
cho hầu hết các trường hợp sử dụng. Làm như vậy sẽ tự động sử dụng cấu hình cookie cho cửa hàng Magento mà không cần xác định rõ ràng chúng vớijquery/jquery.cookie
.