La réponse à votre question est définitivement non, il n'y a plus de customer_logged_inpoignée, j'ai creusé dans le code et je n'ai trouvé aucune poignée de mise en page qui pourrait faire l'affaire.
En plus de cela sous \dev\tests\static\testsuite\Magento\Test\Legacy\LayoutTest.phpvous pouvez trouver le code suivant:
/**
* 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',];
Ce qui pour moi, nous indique clairement que la customer_logged_inpoignée de mise en page est obsolète maintenant.
Voir la réponse de Fabian pour des explications sur la façon dont cela se fait maintenant dans Magento 2.
ces événements sont déclenchés lorsque le client se connecte et lorsqu'il se déconnecte , pas à chaque demande.
Fabian Schmengler
8
Si quelqu'un a encore du mal avec cela, j'ai écrit un module rapide qui ajoute les poignées de disposition customer_logged_in et customer_logged_out pour que vous puissiez les utiliser comme dans Magento 1
Comme d'autres l'ont souligné, ces poignées ont maintenant disparu. Si vous regardez le module Magento_Customer, vous verrez que des blocs comme le lien d'enregistrement sont toujours ajoutés mais pas rendus si le client est connecté . Il semble que ce soit maintenant le moyen préféré d'afficher les éléments de manière conditionnelle en fonction de l'état de connexion.
Mais ce n'est pas une solution pour supprimer des blocs en fonction de leur nom, qui ont été définis ailleurs. Vous pouvez recréer la fonctionnalité avec un observateur pour les layout_load_beforeappels $layout->addHandle('customer_logged_in')si le client est connecté.
Merci pour votre réponse. Bien sûr, j'ai pensé à ajouter une poignée dans mon module personnalisé. Mais cela pourrait ressembler à un pic et je voulais utiliser de manière plus native. Merci pour l'explication et l'exemple
zhartaunik
0
C'est vraiment stupide. J'ai besoin de charger un bloc / un modèle / un recours, seul le client a la permission, pas seulement la connexion ou la déconnexion. Mais j'ai besoin d'écrire 1000 lignes de code pour vérifier si l'utilisateur a la permission de voir cela. Juste magnifique.
Si quelqu'un a encore du mal avec cela, j'ai écrit un module rapide qui ajoute les poignées de disposition customer_logged_in et customer_logged_out pour que vous puissiez les utiliser comme dans Magento 1
http://frankclark.xyz/modules/magento-2-get-customer_logged_in-and-customer_logged_out-layout-handles
Prendre plaisir !
la source
Comme d'autres l'ont souligné, ces poignées ont maintenant disparu. Si vous regardez le module Magento_Customer, vous verrez que des blocs comme le lien d'enregistrement sont toujours ajoutés mais pas rendus si le client est connecté . Il semble que ce soit maintenant le moyen préféré d'afficher les éléments de manière conditionnelle en fonction de l'état de connexion.
Mais ce n'est pas une solution pour supprimer des blocs en fonction de leur nom, qui ont été définis ailleurs. Vous pouvez recréer la fonctionnalité avec un observateur pour les
layout_load_before
appels$layout->addHandle('customer_logged_in')
si le client est connecté.la source
C'est vraiment stupide. J'ai besoin de charger un bloc / un modèle / un recours, seul le client a la permission, pas seulement la connexion ou la déconnexion. Mais j'ai besoin d'écrire 1000 lignes de code pour vérifier si l'utilisateur a la permission de voir cela. Juste magnifique.
la source