A resposta à sua pergunta é definitivamente não, não há customer_logged_inmais identificador, eu procurei o código e não consegui encontrar nenhum identificador de layout que pudesse fazer o truque.
Além disso, \dev\tests\static\testsuite\Magento\Test\Legacy\LayoutTest.phpvocê encontra o seguinte código:
/**
* List of obsolete nodes
*
* @var array
*/protected $_obsoleteNodes =['PRODUCT_TYPE_simple','PRODUCT_TYPE_configurable','PRODUCT_TYPE_grouped','PRODUCT_TYPE_bundle','PRODUCT_TYPE_virtual','PRODUCT_TYPE_downloadable','PRODUCT_TYPE_giftcard','catalog_category_default','catalog_category_layered','catalog_category_layered_nochildren','customer_logged_in','customer_logged_out','customer_logged_in_psc_handle','customer_logged_out_psc_handle','cms_page','sku_failed_products_handle','catalog_product_send','reference',];
O que, para mim, nos diz claramente que o customer_logged_inidentificador de layout está obsoleto agora.
Veja a resposta de Fabian para explicações sobre como isso é feito agora no Magento 2.
esses eventos são acionados quando o cliente efetua login e quando efetua logout , não em todas as solicitações.
Fabian Schmengler
8
Se alguém ainda está lutando com isso, escrevi um módulo rápido que adiciona as alças de layout customer_logged_in e customer_logged_out para você usar como no Magento 1
Como outros já apontaram, essas alças já se foram. Se você olhar o módulo Magento_Customer, verá que blocos como o link de registro são sempre adicionados, mas não renderizados se o cliente estiver logado . Parece que agora é a maneira preferida de mostrar elementos condicionalmente, dependendo do estado de login.
Mas essa não é uma solução para remover blocos com base em seus nomes, que foram definidos em outro lugar. Você pode recriar o recurso com um observador para layout_load_beforeessas chamadas $layout->addHandle('customer_logged_in')se o cliente estiver conectado.
Obrigado pela sua resposta. Claro, eu pensei em adicionar manipular isso no meu módulo personalizado. Mas poderia parecer um pico e eu queria usar uma maneira mais nativa. Obrigado pela explicação e exemplo
zhartaunik 15/03
0
Isso é muito estúpido. Eu preciso carregar o bloco / modelo / recurso apenas o cliente tem permissão, não apenas loggin ou loggout. Mas eu preciso escrever 1000 linhas de código para verificar se o usuário tem permissão para ver isso. Apenas bonita.
Se alguém ainda está lutando com isso, escrevi um módulo rápido que adiciona as alças de layout customer_logged_in e customer_logged_out para você usar como no Magento 1
http://frankclark.xyz/modules/magento-2-get-customer_logged_in-and-customer_logged_out-layout-handles
Desfrutar !
fonte
Como outros já apontaram, essas alças já se foram. Se você olhar o módulo Magento_Customer, verá que blocos como o link de registro são sempre adicionados, mas não renderizados se o cliente estiver logado . Parece que agora é a maneira preferida de mostrar elementos condicionalmente, dependendo do estado de login.
Mas essa não é uma solução para remover blocos com base em seus nomes, que foram definidos em outro lugar. Você pode recriar o recurso com um observador para
layout_load_before
essas chamadas$layout->addHandle('customer_logged_in')
se o cliente estiver conectado.fonte
Isso é muito estúpido. Eu preciso carregar o bloco / modelo / recurso apenas o cliente tem permissão, não apenas loggin ou loggout. Mas eu preciso escrever 1000 linhas de código para verificar se o usuário tem permissão para ver isso. Apenas bonita.
fonte