Frage

Ich habe eine Magento-Website mit vier Geschäften.Für jeden Kunden wird für jedes Geschäft eine andere Annahmeschlusszeit zugewiesen.

Der Benutzer darf nur Produkte aus jeweils nur einem Geschäft hinzufügen.Wenn der Benutzer zur Check-out-Seite kommt, muss ich die Annahmeschlusszeit für das Geschäft abrufen, aus dem er das Produkt hinzugefügt hat.

Ich habe es geschafft, den Ladencode zu bekommen.

Kundenattribute für die Annahmeschlusszeit des Geschäfts sind wie folgt

`delivery_cutoff_time_abc` // here abc is the store code
`delivery_cutoff_time_def` // here def is the store code
`delivery_cutoff_time_ghi` // here ghi is the store code
`delivery_cutoff_time_jkl` // here jkl is the store code

Basierend auf den in den Warenkorb gelegten Produkten habe ich den Shop-Code erhalten, ob es sich umabc oder def oder so.

Jetzt muss ich den Wert vom Kundenobjekt wie folgt abrufen

$customer = Mage::getSingleton('customer/session')->getCustomer();
$customer->getDeliveryCutoffTimeAbc();

Dafür habe ich den folgenden Speichercode

$storeCode = "abc";

Ich muss dynamisch wie folgt verwenden

$customer->getDeliveryCutoffTime.$storeCode();

Es bekommt nicht den Wert.Wie kann ich es dynamisch machen?

War es hilfreich?

Lösung

Versuchen

$storeCode = ucfirst("abc");

$function = "getDeliveryCutoffTime".$storeCode;

$customer->$function();

Andere Tipps

In PHP kann dies auch so gemacht werden:

$storeCode = "abc";
$customer->{"getDeliveryCutoffTime" . ucfirst($storeCode)}();

Diese "magischen" Magento-Getter-Methoden rufen die Methode auf getData() schließlich.So getDeliveryCutoffTimeAbc() führt zu einem Anruf bei getData("delivery_cutoff_time_abc").

Du könntest das also auch gleich anrufen:

$storeCode = "abc";
$customer->getData("delivery_cutoff_time_" . $storeCode);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top