app/code/local에서 직접 모듈을 만들어야합니다. 예를 들어 Moak/Vip 디렉토리를 만듭니다. 모듈의 루트가됩니다.
<?xml version="1.0"?>
<config>
<modules>
<Moak_Vip>
<active>true</active>
<codePool>local</codePool>
<self_name>Moak VIP module</self_name>
</Moak_Vip >
</modules>
</config>
그런 다음, 모듈 디렉토리에 다음과 같은 구조를 필요 : 순서 젠토는 다음과 같은 내용으로 등/모듈 Moak_Vip.xml라는 이름의 파일을 생성, 존재 여부를 확인하기 위해에서
파일 :
- 등/config.xml에
- 모델/Observer.php
config.xml은 모듈을 정의하고 지정된 이벤트에 대한 이벤트 리스너를 선언합니다 (한 페이지 체크 아웃 프로세스가 완료되면 checkout_onepage_controller_success_action
이 전송되고 지불이 확인되면 sales_order_payment_pay
이 전송됩니다).
새 엔티티를 저장하지 않으므로 DB 설정이 필요하지 않습니다. 그래서 설정 파일은 다음과 같은 것이 같이 보일 것이다 :
이제
<?xml version="1.0"?>
<config>
<modules>
<Moak_Vip>
<version>0.1.0</version>
</Moak_Vip>
</modules>
<global>
<models>
<moak>
<class>Moak_Vip_Model</class>
</moak>
</models>
<events>
<sales_order_payment_pay>
<observers>
<moak_observer>
<type>singleton</type>
<class>moak/observer</class>
<method>checkVipCustomer</method>
</moak_observer>
</observers>
</sales_order_payment_pay >
</events>
</global>
</config>
, 당신의 관찰자 방법 checkVipCustomer
당신이 순서, 고객에 대한 모든 정보를 검색 할 수있는 이벤트 객체를 받아야한다 ... 그리고 수정을 수행 너는 좋아한다. app/code/core/Mage /.../ Model/... 에서 Magento 모델 클래스를 살펴보고 해당 객체를 탐색하는 방법을 확인하십시오.
예 :
<?php
class Moak_Vip_Model_Observer
{
public function checkVipCustomer($event)
{
$order = $event->getInvoice()->getOrder(); // Mage_Sales_Model_Order
/*
- Check order amount
- Get customer object
- Set Group id
- $customer->save();
*/
return $this;
}
}
주 내가 여기에 쓴 코드의 테스트 때문에 취급에주의하지했습니다! 도움이 되었으면 좋겠다. Magento는 힘든 학습 곡선을 가지고있다 ... 행운을 빈다!
이것은 훌륭한 친구입니다. 아마도 약간 오래된 것 같지만 Magento가 이벤트/관찰자 패턴을 구현 한 방법에 대한 좋은 아이디어를 제공했습니다. 건배! –
config.xml의 "computeExpirationDate"는 아마도 "checkVipCustomer"여야합니다. –
맞아요. @ KaeVerens, 대답을 편집했습니다. – Julien