গ্রাহক ইতিমধ্যে নিউজলেটারে সাবস্ক্রাইব হয়েছে কিনা তা কীভাবে পরীক্ষা করবেন


14

গ্রাহক নিউজ লেটারে সাবস্ক্রাইব করেছেন কিনা তা আমার খতিয়ে দেখা দরকার। বর্তমানে আমি এই কোডটি ব্যবহার করছি এবং এটি কিছুই ফিরিয়ে দিচ্ছে না:

if (Mage::getSingleton('customer/session')->isLoggedIn()) {
    $status = Mage::getSingleton('customer/session')->getCustomer()->getIsSubscribed();
    echo $status;
    die();
}

এটি কিছুই দিচ্ছে না। কীভাবে এই কাজটি করবেন?

উত্তর:


21

বিকল্পভাবে আপনি এটি ব্যবহার করতে পারেন, যদি আপনার কাছে গ্রাহকের ইমেল ঠিকানা থাকে:

$subscriber = Mage::getModel('newsletter/subscriber')->loadByEmail($email);
if ($subscriber->getId()) {
     // put your logic here...
}

অথবা আপনার newsletter_subscriberযদি গ্রাহক আইডি থাকে তবে গ্রাহক আইডি রয়েছে কিনা তা পরীক্ষা করতে আপনি সরাসরি টেবিলটি চেক করতে পারেন।


3
আমি এই কোডটি ব্যবহার করেছি $ cri গ্রাহক = ম্যাজ :: getModel ('নিউজলেটার / গ্রাহক') -> লোডবাইমেইল ($ ইমেল); $ স্থিতি =-গ্রাহক-> হল সাবস্ক্রাইব ();
রেভিসনি

কোনও অতিথি গ্রাহক (গ্রাহকরা লগড নন) একই গ্রাহক সেশনে নেসলেটারের সাবস্ক্রাইব করেছেন কিনা তা আমি কীভাবে পরীক্ষা করতে পারি।
শাতিশ

@ রায়সনির দুর্দান্ত উত্তর !!! :)
জুনুফাফা

আপনি কি আমাকে বলতে পারবেন যে is_subscribedকোন সারণীতে সেভ রয়েছে বা এটি সেশনে সংরক্ষণ করা হয়েছে
এনডি 17

@ এনডি 17 নিউজলেটার গ্রাহকের স্থিতি সংরক্ষণ করা হয় `newsletter_subscriber`.`subscriber_status`। নোট করুন যে টেবিলের নামটি আপনার কনফিগারেশনের উপর নির্ভর করে একটি উপসর্গ থাকতে পারে।
ড্যারেন ফেল্টন

6

আপনাকে সাবস্ক্রিপশন স্থিতিও পরীক্ষা করতে হবে:

  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;
        }
    }

আপনার উত্তরটি অবশ্যই গ্রহণযোগ্য হওয়া উচিত, গ্রাহক সদস্যতা বাতিল বা মুলতুবি থাকলেও অন্যরা
অ্যালেক্স

4

আমার মতে উপরের উত্তরগুলির মধ্যে কোনওটিই খুব সুবিধাজনক নয় কারণ তারা হয় কিনা গ্রাহক প্রকৃত সাবস্ক্রাইব হয়েছে কিনা তা পরীক্ষা করে না বা সাবস্ক্রিপশন পাওয়া যায় নি এমন ক্ষেত্রে পরিচালনা করে না, তাই এখানে যায়:

$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();
    }
}

আমি এই কোডটি পর্যবেক্ষক.পিএইচপি ফাইলে যুক্ত করেছি তবে সাবস্ক্রাইব বা না পাওয়ার বিষয়ে কিছুই পাচ্ছি না।
সরফরাজ সিপাই

2

@ মুফাদ্দালের উত্তর প্রসারিত করতে:

$subscriberModel = Mage::getModel('newsletter/subscriber')->loadByEmail($email);
$subbed = ($subscriberModel->isSubscribed() ? true : false);

সাবস্ক্রিপশন রেকর্ড উপস্থিত রয়েছে কিনা এবং সাবস্ক্রিপশন স্থিতিটি সত্য কিনা তা আপনি পরীক্ষা করে দেখুন।


1
আপনি যদি সাবস্ক্রাইবড () ব্যবহার করেন তবে এটি ব্যবহারের দরকার নেই$subscriberModel->getId()
অমিত বেরা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.