سؤال

لدي موقع Magento به أربعة متاجر.سيتم تخصيص وقت قطع مختلف لكل عميل لكل متجر.

يقتصر على المستخدم إضافة منتج من متجر واحد فقط في المرة الواحدة.عندما يأتي المستخدم للتحقق من الصفحة، يجب أن أحصل على الوقت المقطوع للمتجر الذي أضاف المنتج منه.

تمكنت من الحصول على رمز المتجر.

سمات العميل الخاصة بوقت التوقف عن العمل في المتجر هي كما يلي

`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

بناءً على المنتجات المضافة إلى سلة التسوق، حصلت على رمز المتجر سواء كان كذلكabc أو def أو هكذا.

الآن لا بد لي من الحصول على القيمة من كائن العميل على النحو التالي

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

للقيام بذلك لدي رمز المتجر على النحو التالي

$storeCode = "abc";

لا بد لي من استخدام ديناميكية على النحو التالي

$customer->getDeliveryCutoffTime.$storeCode();

لا يحصل على القيمة.كيف يمكنني جعلها ديناميكية؟

هل كانت مفيدة؟

المحلول

يحاول

$storeCode = ucfirst("abc");

$function = "getDeliveryCutoffTime".$storeCode;

$customer->$function();

نصائح أخرى

في PHP، يمكن القيام بذلك أيضًا على النحو التالي:

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

تستدعي أساليب getter "السحرية" هذه في Magento الطريقة getData() مؤخراً.لذا getDeliveryCutoffTimeAbc() سوف يؤدي إلى استدعاء ل getData("delivery_cutoff_time_abc").

لذلك يمكنك أيضًا الاتصال بهذا على الفور:

$storeCode = "abc";
$customer->getData("delivery_cutoff_time_" . $storeCode);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top