قصر الفئة على شريحة عملاء محددة
-
29-09-2020 - |
سؤال
في متجري (mage-EE v12) لدي فئة أريد قصرها على شريحة معينة من العملاء.هل يعرف أحد طريقة يمكنني القيام بها؟
على سبيل المثال، إذا قمت بإعداد شريحة، أريد أن يتمكن العملاء في هذه الشريحة من الوصول إلى الكتالوج الكامل، ولكن إذا لم يندرج العملاء ضمن هذه الشريحة، فلن يكون لديهم إمكانية رؤية الفئة المقيدة؟
أي أفكار ؟
هتافات
المحلول
لمتطلباتكم.
- تحتاج أولاً إلى إنشاء مجموعة عملاء جديدة من المشرف.
- تعيين شريحة عملاء محددة لهذه المجموعة.
- ثم استخدم الحدث/المراقب
catalog_controller_category_init_before
منع العميل من الذهاب إلى هذه الفئة باستثناء تلك الفئة المحددة
التكوين.xml :
<config>
<global>
<config>
<events>
<catalog_controller_category_init_after>
<observers>
<redirect_to_account>
<class>[ModuleNameSpace]_[ModuleName]_Model_Observer/class>
<method>redirectNotLogged</method>
</redirect_to_account>
</observers>
</catalog_controller_category_init_after>
</events>
</config>
</global>
</config>
المراقب.php
<?php
class [ModuleNameSpace]_[ModuleName]_Model_Observer{
public function redirectNotLogged(Varien_Event_Observer $observer)
{
$action = strtolower(Mage::app()->getRequest()->getActionName());
$controller = strtolower(Mage::app()->getRequest()->getControllerName());
$controller_action= $observer->getEvent()->getControllerAction();
$category = $observer->getEvent()->getCategory();
/* if category is not Match with your category then continue default behave */
if($category->getId()!='YOUR_CATEGORY_ID'):
return true;
endif;
/* Customer group id match and then previllage to access that category page.*/
if (Mage::getSingleton('customer/session')->isLoggedIn() && Mage::getSingleton('customer/session')->getCustomerGroupId()=='CUSTOMER_GROUP_ID') {
return true;
}
Mage::app()->getResponse()->setRedirect($_SERVER['HTTP_REFERER']);
Mage::app()->getResponse()->sendResponse();
exit;
}
}
أو استخدم الامتداد مثل
لا تنتمي إلى magento.stackexchange