2

Magento 1.9 への登録が成功した後、すべての顧客をカスタム ページにリダイレクトしたいと考えています。

私は多くのことを試しました。まず、コアの顧客アカウント コントローラーのオーバーライドに成功しました。

次のアクションをカスタマイズしようとしました。

  • createPostAction
  • _successProcessRegistration
  • _ようこそお客様

リダイレクト URL を設定しようとするか、BeforeAuthUrl を設定する

    //$successUrl = $this->_getUrl('*/*/index', array('_secure' => true));
    $successUrl = $this->_getUrl('*/*/success');
    $this->_getSession()->setBeforeAuthUrl('http://test.local/customer/account/success/');
    if ($this->_getSession()->getBeforeAuthUrl()) {
        $successUrl = $this->_getSession()->getBeforeAuthUrl(true);
    }
    return $successUrl;

ここで、$successUrl が返された場合は正しいことに注意してください。この URL を破棄し、常に顧客/アカウント/インデックスに戻ると想定しているポスト Dispatch メソッドがいくつかあることがわかります。

このトピックに関するいくつかの投稿を読みましたが、この質問を解決する決定的な答えが見つかりません。

これに対する解決策として他の場所で提示された手順に従う試みで、非表示のフォーム要素「success_url」を設定しました。

1 回限りの登録成功ページを表示できるようにするために従う必要がある、完全で正しいプロセスは何ですか?

4

3 に答える 3

1

これは正しい方法で行っています。これは、顧客をカスタム URL にリダイレクトする最良の方法です。

  1. customer accountcontroller find _welcomeCustomer メソッドに移動します。
  2. $successUrl = $this->_getUrl('*/*/index', array('_secure' => true));このコードをカスタム URL に置き換えて検索します$successUrl = $this->_getUrl('costomURL', array('_secure' => true));

それは私にとってはうまくいきます。

于 2014-09-07T14:21:42.720 に答える
1

イベントオブザーバーをしたい場合this for customer successfully then you can do this using

お客様successfully magento triggerイベント後customer_register_success

これは、カスタムページに再質問するオブザーバーを呼び出します

  Mage::app()->getResponse()->setRedirct($Yourdreicurll);

詳細:

ステップ 1: 作成 - 詳細config.xmlhttp://www.amitbera.com/create-an-magento-extension-with-custom-database-table/#sthash.JSktrUD0.dpuf を参照してください。app/code/community/Amit/Custommodule/etc/

<?xml version="1.0" ?>
<config>
    <modules>
        <Amit_Custommodule>
            <version>1.0.0</version>
        </Amit_Custommodule>
    </modules>
    <global>
        <models>
            <custommodule>
                <class>Amit_Custommodule_Model</class>
            </custommodule>
        </models>
    </global>
    <frontend>
      <events>
          <customer_register_success>
        <observers>
          <notify_user>
            <class>custommodule/observer</class>
            <method>myredirection</method>
          </notify_user>
        </observers>
          </customer_register_success>     
        </events>
    </frontend>
</config>

ステップ2:

モジュール制御ファイル モジュール名を app/etc/modules/ に Amit_Custommodule.xml として作成します。

それのコードは

<?xml version="1.0"?>
<config>
    <modules>
        <Amit_Custommodule>
            <codePool>community</codePool>
            <active>true</active>
        </Amit_Custommodule>
    </modules>
</config>

ステップ3:

Amit>Custommodule>Model で、observer.php を作成します。

コードは

 <?php
    class Amit_Custommodule_Model_Observer {
        public function myredirection(Varien_Event_Observer $observer) {
        $AccountController = $observer->getEvent()->getAccountController();

        $Customer = $observer->getEvent()->getCustomer();

         $response1 = Mage::app()->getResponse(); // observers have event args

            $url = 'http://www.example.com/';
            $response1->setRedirect($url);
            Mage::app()->getFrontController()->sendResponse();

        return;
      }
    }
于 2014-09-07T14:38:53.157 に答える