Ich bin momentan dabei ein Plugin zu schreiben das mir ermöglicht einen Code im Registrierungsformular einzugeben. Wenn der Kunde sich dann registriert, wird er einer entsprechenden Kundengruppe zugewiesen. Je nach dem hinter welcher Kundengruppe der Code hinterlegt ist. Jetzt bin ich recht neu was die Plugin-Entwicklung angeht und bin da mehr am probieren. Ich dachte mir: Such dir ein Beispiel in dem vorhandene Fenster mit zusätzlichen Attributen ausgestattet werden. Da bin ich auf das hier gestoßen. Anfangs kam ich recht gut damit klar… wirkte mir so als würde ich es verstehen… aber mittendrin häuften sich dann die Fragen… [size=110]Welchen Event müsste ich registrieren ?[/size] Im beispiel: private function subscribeEvents() { $this-\>subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Backend\_Customer', 'onBackendCustomerPostDispatch' ); $this-\>subscribeEvent( 'Shopware\Models\Customer\Repository::getListQueryBuilder::after', 'afterGetListQueryBuilder' ); }
Aber ich bin mir fast sicher das ich das so nicht brauche weil ich ja eigentlich die Registrierung bearbeiten will. [size=110]Wie kann ich herausfinden welche Events ich für mich registrieren muss?[/size] In dem Beispiel steht auch das hier: public function afterGetListQueryBuilder(Enlight\_Hook\_HookArgs $arguments) { // get original builder $builder = $arguments-\>getReturn(); // add selection and join to original builder $builder-\>addSelect(array( 'attributes.swagCustomerPreferencesSize', 'attributes.swagCustomerPreferencesColor' )); $builder-\>leftJoin('customer.attribute', 'attributes'); $arguments-\>setReturn($builder); }
[size=110]Werden diese Attribute in der CamelCase Schreibweise automatisch erzeugt ?[/size] Also bsp: swagCustomerPreferencesSize [size=110]Kann ich den Klassen die ich erstelle einfach einen Konstruktor und Eigenschaften mit geben ?[/size] Beispiel: class Shopware\_Plugins\_Frontend\_customRegister\_Bootstrap extends Shopware\_Components\_Plugin\_Bootstrap { private $prefix; //Eigenschaft private function \_\_construct() { //Konstruktor $this-\>prefix = "dwza"; } protected function getEntityManager() { return Shopware()-\>Models(); } //... private function createAttributes() { $this-\>Application()-\>Models()-\>addAttribute( 's\_core\_customergroups', $this-\>prefix, //zb hier nutzen... 'customer\_groupcode', 'varchar(50)', true, null ); } }
[color=red]Also ich wäre auch bereit für Hilfe zu Zahlen falls es nötig ist.[/color] lg Dwza PS: Mein Ziel ist ein Feld auf dem Registrierunsformular zum Code eingeben und im Backend bei Kundengruppen (KG) ein extra Feld in der ich den jeweiligen Code eingeben kann. Der soll natürlich beim Registrieren abgefragt werden und wenn einer drin steht der zu einer KG passt dann wird diese KG dem Kunden zugewiesen.
Hat nicht mal jemand ne Antwort zu nur EINER Frage ?
Hey, wenn ich das richtig verstanden habe, benötigst du nur ein Feld wo man einen freischaltcode eingibt, im Backend könnte der Code aber auch in der Plugin Config hinterlegt sein oder soll es lieber bei den Kunden Gruppen sein. Wenn du das Plugin von uns entwickeln lassen möchtest, dann melde dich doch einfach Support@madco.de, du kannst dir bei uns auch Hilfe anfordern.
Eigentlich soll der Code in der Kundengruppe hinterlegt sein. Alles in allem wäre an sich die Hilfe lieber weil ich verstehen will wie das funktioniert.