Abfrage Kundengruppe im Template unter 5.6 (bisher {$Shopware->System()->sUSERGROUP})

Hallo zusammen,

ich wollte gerade ein Template aus einer 5.4.3er Installation ins 5.6.6 übernehmen, allerdings scheint die Abfrage der Kundengruppe über das SwagGlobalVariables Plugin nicht mehr zu klappen.
Bisher habe ich die Kundengruppe über {if {$Shopware->System()->sUSERGROUP} == „H“} abgefragt.

Ich habe nun schon die Abfrage über die Smarty Variable {$smarty.session.Shopware.sUserGroupData['discount]} gefunden, welche unter 5.6.x wohl auch funktioniert.
Aber es ist mir noch nicht gelungen, darüber auch die Kundengruppe des Nutzers anzufragen und hier im Forum habe dazu leider auch keine Informationen gefunden.

Kann ich den Code des alten SwagGlobalVariables Plugins sonst anpassen, sodass die bisherige Abfrage wieder korrekt funktioniert?

 

 'onPostDispatch',
            'Enlight_Controller_Action_PostDispatchSecure_Widgets' => 'onPostDispatch'
        ];
    }

    /**
     * @param \Enlight_Controller_ActionEventArgs $args
     */
    public function onPostDispatch(\Enlight_Controller_ActionEventArgs $args)
    {
        $args->getSubject()->View()->assign('sUserLoggedIn', Shopware()->Modules()->Admin()->sCheckUser());
    }
}

 

Vielen Dank!

config.xml:

array_customer_groups
Shopware.apps.Base.store.CustomerGroup
 
   id
   name
   true

 

Controller:

$sqlQuery = $this->container->get('dbal_connection')->createQueryBuilder();
$sqlQuery->select('c.groupkey AS groupkey')
         ->from('s_core_customergroups', 'c')
         ->where('c.id IN (:groupId)')
         ->setParameter('groupId', $array_customer_groups, \Doctrine\DBAL\Connection::PARAM_INT_ARRAY);
$data = $sqlQuery->execute()->fetchAll();
$sqlQuery->getConnection()->close();
$view->assign('data', $data);


//optional
$sUserGroup = Shopware()->Session()->sUserGroup;
$view->assign('sUserGroup', $sUserGroup);

 

Smarty PHP:

{foreach from=$data item=dat}
  {if $dat['groupkey'] == $sUserData.additional.user.customergroup} {* oder mit == $sUserGroup aus controller *}
    {$dat['groupkey']}
  {/if}
{/foreach}

 

Viele Grüße

Hallo gwen,

ich stehte aktuell vor dem gleichen Problem, kann aber mit dem was du gepostet hast nicht wirklich was anfangen.

Kannst du eventuell etwas genauer beschreiben, wo die Zeilen überall hin gehören, wenn ich z. B. eine Meldung im Frontend anzeigen möchte, sobald ein Händler eingeloggt ist?

Ich wäre dir sehr dankbar  Halo

Grüße
Ronny

Hi sangrios,

wie hast du das Problem gelöst?

Grüße, Ronny

@sangrios schrieb:

Hallo zusammen,

ich wollte gerade ein Template aus einer 5.4.3er Installation ins 5.6.6 übernehmen, allerdings scheint die Abfrage der Kundengruppe über das SwagGlobalVariables Plugin nicht mehr zu klappen.
Bisher habe ich die Kundengruppe über {if {$Shopware->System()->sUSERGROUP} == „H“} abgefragt.

Ich habe nun schon die Abfrage über die Smarty Variable {$smarty.session.Shopware.sUserGroupData['discount]} gefunden, welche unter 5.6.x wohl auch funktioniert.
Aber es ist mir noch nicht gelungen, darüber auch die Kundengruppe des Nutzers anzufragen und hier im Forum habe dazu leider auch keine Informationen gefunden.

Kann ich den Code des alten SwagGlobalVariables Plugins sonst anpassen, sodass die bisherige Abfrage wieder korrekt funktioniert?

 

‚onPostDispatch‘,
‚Enlight_Controller_Action_PostDispatchSecure_Widgets‘ => ‚onPostDispatch‘
];
}

/**

  • @param \Enlight_Controller_ActionEventArgs $args
    */
    public function onPostDispatch(\Enlight_Controller_ActionEventArgs $args)
    {
    $args->getSubject()->View()->assign(‚sUserLoggedIn‘, Shopware()->Modules()->Admin()->sCheckUser());
    }
    }

 

Vielen Dank!

Wie wurde es denn nun gelöst? :slight_smile:

Laut der Debug-Ausgabe wird jetzt in der Variable $customerGroup die Kundengruppe ausgegeben, in meinem Fall so: ,A,

Daher jetzt die Abfrage im Template:

{if $customerGroup == „,A,“}
{/if}

So funktioniert das bei mir jetzt wie vorher.

Grüße
Ronny

1 Like

Hi Ronny,

das hat bei mir nicht funktioniert, habe es nun mit diesem Plugin gelöst: Globale Kunden Smarty-Variablen | Shopware Community Store

Und dann im Template:

{if $customer_data.groupKey == “H”}

{/if}

 

LG Florian

1 Like