2012-06-25 6 views
0

목표 : 트랜잭션 전자 메일을 보낼 때마다 보내기 전에 템플릿 텍스트 문자열을 도우미 클래스를 통해 전달하십시오.Magento - 보내기 전에 트랜잭션 전자 메일을 교환하십시오.

기본적으로 나는 원하는 방식으로 작업하고 있습니다. 약간 짜증나는 한가지를 제외하고. /app/code/core/Mage/Model/Email/Template.php를 로컬 변형으로 복사하고 getProcessedTemplate() 메소드 (줄 319)에 한 줄을 추가했습니다.

결과가 반환되기 직전에, 헬퍼를 통해 전달하고 내 이메일은 이제 끝내줍니다. 그러나, 나는 오히려 핵심을 해킹 할 필요없이이 작업을 할 수 있습니다. 새 이벤트와 옵저버를 만들어야합니까? 더 친숙한 방법이 있습니까?

답변

2

core/email_template 클래스의 경우 불행히도 실제/유용한 이벤트 후크가 없습니다. 또한이 클래스를 확장하는 두 가지 클래스가 있습니다. 즉, 포함 경로 우선 순위를 사용하는 것이 모든 경우에 정의를 사용하는 유일한 방법입니다.

getProcessedTemplate() 메서드는 _templateFilter 개체의 filter() 메서드를 호출합니다. 은 구성을 통해 core/email_template의 클래스 재 작성을 구현하고 재정의 된 _construct_templateFilter을 자신의 템플릿 필터 클래스를 사용하여 filter()의 정의에 필요한 것을 추가하도록 설정할 수 있습니다. 그러나 다른 코드가 setTemplateFilter()으로 전화하는 것을 막을 수있는 것은 없으므로 해당 조건을 수용해야합니다. Mage_Newsletter_Model_Queue가이를 수행합니다.

당신이 원하는 답변은 아니지만 HTH.

+0

그래, 그게 내가 추측 한 것 같아. 다른 어떤 것과도 충돌하지 않을 단순한 라인에 대해 많은 불만이있는 것 같습니다. Ben에게 감사드립니다. – pspahn

관련 문제