как получить идентификатор сеанса клиента на html-странице magento 2
Я использую один пользовательский платежный модуль и хочу сделать код в html-файле. Путь
app/code/Custom/Payment/view/frontend/web/template/payment/custompayment.html
И мой код
$om = \Magento\Framework\App\ObjectManager::getInstance();
$customerSession = $om->get('Magento\Customer\Model\Session');
if($customerSession->isLoggedIn()){
-----------code ---------
}
Js-файл, который я пытаюсь сделать, но не работает
define(
[
'jquery',
'Magento_Customer/js/customer-data',
'Magento_Checkout/js/view/payment/default'
],
function (Component) {
'use strict';
var getCustomerInfo = function () {
var customer = customerData.get('customer');
return customer();
};
var isLoggedIn = function (customerInfo) {
customerInfo = customerInfo || getCustomerInfo();
return customerInfo && customerInfo.firstname;
};
return Component.extend({
defaults: {
template: 'XJ_Payment/payment/custompayment'
},
/** Returns send check to info */
getMailingAddress: function() {
return window.checkoutConfig.payment.checkmo.mailingAddress;
},
});
}
);
Но я не могу получить результат. я знаю, что этот код идеально подойдет, если я включу файл контроллера или модели. но все же я сталкиваюсь с проблемой, которая выводится после -> во второй строке весь код печатается на интерфейсе. я не могу понять, что происходит.
Не могли бы вы, пожалуйста, подсказать мне, как решить эту проблему?
1 answers
По умолчанию в Magento невозможно добавить PHP-код в html-шаблон. Мы можем получить клиента из локального хранилища. Мы можем прочитать больше здесь: Как проверить, что клиент вошел в систему на интерфейсе в Magento 2.1?
ОБНОВЛЕНИЕ:
В возвращаемом js должно быть:
return Component.extend({
defaults: {
template: 'XJ_Payment/payment/xjpayment'
},
var customerInfo = getCustomerInfo();
/** Returns send check to info */
getMailingAddress: function() {
return window.checkoutConfig.payment.checkmo.mailingAddress;
},
isLoggedIn : isLoggedIn(customerInfo)
});
В вашем html-шаблоне:
......
<!-- ko if: isLoggedIn() -->
<span>Customer is logged</span>
<!-- /ko -->
......
Не забудьте удалить статическое содержимое и запустить снова.