답변:
또는 고객의 이메일 주소가있는 경우이를 시도 할 수 있습니다.
$subscriber = Mage::getModel('newsletter/subscriber')->loadByEmail($email);
if ($subscriber->getId()) {
// put your logic here...
}
또는 newsletter_subscriber
고객 ID가있는 경우 고객 ID가 있는지 여부를 확인하기 위해 테이블을 직접 체크인 할 수 있습니다 .
is_subscribed
있다 저장하는 테이블 또는 세션에서 저장을하다
`newsletter_subscriber`.`subscriber_status`
. 테이블 이름은 구성에 따라 접두사를 가질 수 있습니다.
구독 상태도 확인해야합니다.
if(Mage::getSingleton('customer/session')->isLoggedIn()){
$email = Mage::getSingleton('customer/session')->getCustomer()->getData('email');
$subscriber = Mage::getModel('newsletter/subscriber')->loadByEmail($email);
if($subscriber->getId())
{
$isSubscribed = $subscriber->getData('subscriber_status') == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
}
}
내 의견으로는 위의 답변 중 어느 것도 고객이 실제로 가입했는지 확인하지 않거나 가입을 찾지 못한 경우를 처리하지 않는다는 점에서 매우 편리하지 않습니다.
$customerIsSubscribed = false;
$customer = Mage::getSingleton('customer/session')->getCustomer();
if ($customer) {
$customerEmail = $customer->getEmail();
$subscriber = Mage::getModel('newsletter/subscriber')->loadByEmail($customerEmail);
if ($subscriber) {
$customerIsSubscribed = $subscriber->isSubscribed();
}
}