বিলিং আকারে নিউজলেটার চেকবক্স যুক্ত করুন


11

আমি যখন ব্যবহারকারীরা সরাসরি চেকআউট প্রক্রিয়াতে নিবন্ধন করতে পছন্দ করি তখন আমি বিলিং আকারে চেকবক্স নিউজলেটার যুক্ত করতে চাই .. আমি কীভাবে এটি করতে পারি?


2
আপনার নিউজলেটার মেলিং প্রয়োজনের জন্য মেলচিম্প ব্যবহার করার কোনও পরিকল্পনা আছে বলে আপনি মনে করেন? ইজবিজারমার্টের ম্যাজমোনকি এক্সটেনশনে চেকআউট প্রক্রিয়াতে নিউজলেটার সাইনআপ যোগ করার জন্য একটি কনফিগারেশন বিকল্প রয়েছে।
ড্যারেন ফেলটন

উত্তর:


15

হাই আপনি বিলিং.এফটিএমটিএলে নীচে কোড যুক্ত করে এটি যুক্ত করতে পারেন

 <input type="checkbox" name="is_subscribed" 
  title="<?php echo $this->__('Sign Up for Newsletter') ?>" value="1"  checked="checked" class="checkbox" />

ইভেন্টটি ব্যবহার করে checkout_submit_all_afterগ্রাহককে নিউজলেটারে সাবস্ক্রাইব করুন

  <global>
 <events>
    <checkout_submit_all_after> <!-- identifier of the event we want to catch -->
        <observers>
          <checkout_submit_all_after_handler> <!-- identifier of the event handler -->
            <type>singleton</type> <!-- class method call type; valid are model, object and singleton -->
            <class>magento52274/observer</class> <!-- observers class alias -->
            <method>AssignNewletter</method>  <!-- observer's method to be called -->
            <args></args> <!-- additional arguments passed to observer -->
          </checkout_submit_all_after_handler>
        </observers>
      </checkout_submit_all_after>
    </events>
  </global>

এবং পর্যবেক্ষক কোডটি হ'ল:

   public function AssignNewletter($observer) {
            $event = $observer->getEvent();
            $order = $event->getOrder();
        $Quote =$event->getQuote();
        if (in_array($Quote()->getCheckoutMethod(), array('register','customer'))):

        if (Mage::app()->getFrontController()->getRequest()->getParam('is_subscribed')){
        $status = Mage::getModel('newsletter/subscriber')->subscribe($Quote->getBillingAddress()->getCustomerEmail());
        }
        endif;
   }

সম্পূর্ণ মডিউল:

পদক্ষেপ 1: কনফিগার করুন। এক্সএমএল app/code/local/Stackexchange/Magento52274/etc/এবং কোড হয়

<?xml version="1.0"?>
<config>
  <modules>
    <Stackexchange_Magento52274>
      <version>1.0.0</version>
    </Stackexchange_Magento52274>
  </modules>
  <global>
    <models>
      <magento52274>
        <class>Stackexchange_Magento52274_Model</class>
      </magento52274>
    </models>
    <events>
      <checkout_submit_all_after> <!-- identifier of the event we want to catch -->
        <observers>
          <checkout_submit_all_after_handler> <!-- identifier of the event handler -->
            <type>singleton</type> <!-- class method call type; valid are model, object and singleton -->
            <class>magento52274/observer</class> <!-- observers class alias -->
            <method>AssignNewletter</method>  <!-- observer's method to be called -->
          </checkout_submit_all_after_handler>
        </observers>
      </checkout_submit_all_after>
    </events>
  </global>
</config> 

Step2: তৈরি Observer.phpapp/code/local/Stackexchange/Magento52274/Model/এবং কোড

<?php
class Stackexchange_Magento52274_Model_Observer
{

    public function AssignNewletter(Varien_Event_Observer $observer)
    {
    $event = $observer->getEvent();
            $order = $event->getOrder();
        $Quote =$event->getQuote();
        if (in_array($Quote()->getCheckoutMethod(), array('register','customer'))):

            if Mage::app()->getFrontController()->getParam('is_subscribed', false)){
        $status = Mage::getModel('newsletter/subscriber')->subscribe($Quote->getBillingAddress()->getEmail());
         }
        endif;
    }

}

স্টিপি 3: মডিউল app/etc/modules/Stackexchange_Magento52274.xmlএবং কোড তৈরি করুন

<?xml version="1.0"?>
<config>
  <modules>
    <Stackexchange_Magento52274>
      <active>true</active>
      <codePool>local</codePool>
      <version>1.0.0</version>
    </Stackexchange_Magento52274>
  </modules>
</config>

ধাপ 4: এবং এছাড়াও এ নিউজলেটার ক্ষেত্র যোগ করার প্রয়োজন billing.phtmlএকটি

<input type="checkbox" name="is_subscribed" 
  title="<?php echo $this->__('Sign Up for Newsletter') ?>" value="1"  checked="checked" class="checkbox" />

2
এটি সম্ভবত সামান্য পরিষ্কার-পরিচ্ছন্নতা ব্যবহার করতে পারে - খুব কমপক্ষে, "সম্পূর্ণ মডিউল" এর অধীনে থাকা কিছু কোড উত্তরের সাথে কোডটির সাথে মেলে না।
মাইক

2
সুন্দর, ঠিক এটি -> getBillingAddress () -> getEmail () সর্বদা ইমেলটি পায় না, বিশেষত যখন কোনও পেপ্যাল ​​ইমেল জড়িত থাকে। getCustomerEmail নিরাপদ।
ক্লাদিউ ক্রিঙ্গা

দয়া করে এই উত্তরটিকে উপেক্ষা করুন। এটি কীভাবে এই অনেকগুলি উত্স পেতে পারে তা আমার কোনও ধারণা নেই। এই কাজ করবে না! আপনি checkout_submit_all_afterপর্যবেক্ষকদের মধ্যে বিলিং ফর্ম ক্ষেত্রগুলি অ্যাক্সেস করতে সক্ষম নন । দয়া করে এই বাস্তবায়নটির দিকে একবার নজর দিন: magento.stackexchange.com/questions/219460/…
মাইকেল থেসেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.