내 생각은 다음과 같습니다. 체크 아웃 페이지가로드되기 전에 관찰자가 controller_action_predispatch_checkout_onepage_index
이벤트에 설정되었습니다. 관찰자에서 고객이 특정 그룹에 속하는지 여부를 확인한 후 해당 그룹을 장바구니 페이지로 리디렉션하고 오류 메시지를 표시합니다. 마 젠토 코드로 번역
, 그 결과는 다음과 같습니다
이
전나무 우리는 이벤트에 후크 우리 config.xml
<frontend>
<events>
<controller_action_predispatch_checkout_onepage_index>
<observers>
<your_module>
<class>your_module/observer</class>
<method>banCheckout</method>
</your_module>
</observers>
</controller_action_predispatch_checkout_onepage_index>
</events>
</frontend>
에 우리의 관찰자에 : 마음에
public function banCheckout(Varien_Event_Observer $observer)
{
$customerSession = Mage::getSingleton('customer/session');
if (!$customerSession->isLoggedIn()) {
return $this;
}
$groupId = $customerSession->getCustomer()->getGroupId();
if ($groupId == 1) {
Mage::getSingleton('checkout/session')->addError(
Mage::helper('checkout')->__('Your error message.')
);
$action = $observer->getEvent()->getControllerAction();
$action->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
$action->setFlag('', Mage_Core_Controller_Varien_Action::FLAG_NO_DISPATCH, true);
}
return $this;
}
유지 이것은 단순한 예일뿐입니다.
LoggedIn Customer가 필수 카테고리에없는 경우 BuyNow 버튼에서 조건을 사용하면 –
버튼이 표시됩니다. 감사합니다 Pavan, CMS에서 해당 옵션에 액세스 할 수 있습니까? 장바구니 규칙을 추가하는 것과 비슷합니까? – user2607163