La respuesta a su pregunta es definitivamente no, ya no hay un customer_logged_inidentificador, he cavado en el código y no pude encontrar ningún identificador de diseño que pudiera hacer el truco.
Además de eso \dev\tests\static\testsuite\Magento\Test\Legacy\LayoutTest.php, puede encontrar el siguiente 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',];
Lo que para mí, claramente nos dice que el customer_logged_incontrolador de diseño está obsoleto ahora.
Consulte la respuesta de Fabian para obtener explicaciones sobre cómo se hace ahora en Magento 2.
esos eventos se activan cuando el cliente inicia sesión y cuando cierra la sesión , no en cada solicitud.
Fabian Schmengler
8
Si alguien todavía está luchando con esto, escribí un módulo rápido que agrega los controladores de diseño customer_logged_in y customer_logged_out para que pueda usarlos como en Magento 1
Como otros han señalado, estos mangos ya no están. Si observa el módulo Magento_Customer, verá que los bloques como el enlace de registro siempre se agregan pero no se representan si el cliente ha iniciado sesión . Parece que esta es la forma preferida de mostrar elementos condicionalmente dependiendo del estado de inicio de sesión.
Pero esta no es una solución para eliminar bloques basados en su nombre, que se definieron en otro lugar. Puede volver a crear la función con un observador para layout_load_beforeesas llamadas $layout->addHandle('customer_logged_in')si el cliente ha iniciado sesión.
Gracias por su respuesta. Claro que pensé en agregar el controlador en mi módulo personalizado. Pero podría parecer un pico y quería usar una forma más nativa. Gracias por la explicación y el ejemplo
zhartaunik
0
Esto es muy estupido. Necesito cargar bloque / plantilla / recurso solo el cliente tiene permiso, no solo iniciar sesión o cerrar sesión. Pero necesito escribir 1000 líneas de código para verificar si el usuario tiene permiso para ver esto. Simplemente hermoso.
Si alguien todavía está luchando con esto, escribí un módulo rápido que agrega los controladores de diseño customer_logged_in y customer_logged_out para que pueda usarlos como en Magento 1
http://frankclark.xyz/modules/magento-2-get-customer_logged_in-and-customer_logged_out-layout-handles
¡A disfrutar!
fuente
Como otros han señalado, estos mangos ya no están. Si observa el módulo Magento_Customer, verá que los bloques como el enlace de registro siempre se agregan pero no se representan si el cliente ha iniciado sesión . Parece que esta es la forma preferida de mostrar elementos condicionalmente dependiendo del estado de inicio de sesión.
Pero esta no es una solución para eliminar bloques basados en su nombre, que se definieron en otro lugar. Puede volver a crear la función con un observador para
layout_load_before
esas llamadas$layout->addHandle('customer_logged_in')
si el cliente ha iniciado sesión.fuente
Esto es muy estupido. Necesito cargar bloque / plantilla / recurso solo el cliente tiene permiso, no solo iniciar sesión o cerrar sesión. Pero necesito escribir 1000 líneas de código para verificar si el usuario tiene permiso para ver esto. Simplemente hermoso.
fuente