전에 1.8.1
내가이 일을 어떤 방법을 잘 모르는 것 같아요, 당신도 지역 코드 풀의 추상적 인 핵심 클래스를 무시하거나 모든 단일 자식 클래스 (추한, 내가 아는)를 다시 작성해야합니다.
그때부터 1.8.1
그들은 행사를 소개했습니다 customer_address_validation_after
. 나는 그것을 자랑스럽게 생각하지 않더라도 반사를 사용하여 유효성 검사를 제거했습니다. 문제를 해결할 수는 없지만 어쨌든 게시하겠다고 생각했습니다.
/**
* Validate address ignoring phone-related errors
*
* Internally uses reflexion. Maybe not the most
* efficient or clean implementation, but allows
* this functionality to be implemented without
* the need to rewrite 3 core classes.
*
* Listens to:
* - customer_address_validation_after
*
* @param Varien_Event_Observer $observer Event observer
*/
public function validateAddress(Varien_Event_Observer $observer)
{
/* @var $address Mage_Customer_Model_Address_Abstract */
$address = $observer->getAddress();
if (!$address) {
return;
}
$prop = new ReflectionProperty('Mage_Customer_Model_Address_Abstract', '_errors');
if (!$prop) {
return;
}
$prop->setAccessible(true);
$errors = $prop->getValue($address);
$prop->setValue($address, array());
$errorMessage = $this->getErrorMessage();
foreach ($errors as $error) {
if ($error !== $errorMessage) {
$address->addError($error);
}
}
}
/**
* Get standard error message
*
* @return string
*/
protected function getErrorMessage()
{
return Mage::helper('customer')->__('Please enter the telephone number.');
}
또한 필 요하지 않은 파일을 정의하는 업데이트 스크립트를 작성하고 프런트 엔드 유효성 검사를 제거하기 위해 모든 양식을 편집했습니다. 내가 말했듯이 최상의 솔루션은 아니지만 3-4 클래스 IMHO를 다시 작성하는 것이 좋습니다.
UPDATE는
핵심 팀은 이벤트 랩 customer_address_validation_after
에서 조건부 시작에서 1.9.0
스루 1.9.1.1
(정말 ... 나에게 아무 의미 왜 궁금) 내 솔루션 그래서 것이다 불행하게도 이러한 버전없는 일. 조건부는에서 운 좋게 제거되었습니다 1.9.2
.