2012-02-07 3 views
0

Paypalはiframeで開かないので、Paypalボタンによるチェックアウトが押されたときに新しいウィンドウまたはタブでpaypalを開こうとしていますMagento 1.4+新しいウィンドウを開くためにmagentoで "paypalでチェックアウト"をクリックしてください

私はtarget = "_ blank"をどこかに追加すると思いますが、どこを知りません。

は\アプリ\コード\コア\の魔道士のファイルのロードがあります\ペイパル\私が編集している知らない、ADN

私はPayPalのエクスプレスのためにこれを発見したコアファイルを使用せずにそれを行うことを好むだろうapp \ code \ core \ Mage \ Paypal \ Block \ Express \ Shortcut.php

protected $_startAction = 'paypal/express/start'; 

どうすれば新しいウィンドウで開くことができますか?この質問を自分で解決するために

+0

せずにそれを行っているではないでしょうが、これは、良いアイデアですあなたのサイトには2つのインスタンスが実行され、これは顧客の経験には理想的ではありません。 – ShaunOReilly

+0

iframeで開かないpaypalも、顧客体験には理想的ではありません。私はpaypalを使用することは理想的ではありませんが、iframeからpaypal expressにpaypalボタンを使い、新しいウィンドウを開くのが方法だと思われます。あなたが仕事にペイパルを得る別の方法を持っていたならば、イドは幸せでしょうか? – Jon

+0

私たちはiframeを使わずに使っていますが、まだ使っていない5人の顧客に、paypalにリダイレクトされて戻ってくるよう伝えます。 Googleのチェックアウトと同じです。ポップアップがブロックされている場合は、新しいウィンドウを表示すると、動作していないシステムがある可能性があります。 – ShaunOReilly

答えて

0

おかげでポール - 私が代わりに同じファイルにこれをしなかったし、それが働きました!ペイパルが戻ってリダイレクトするときので

変更(私のライン33)

<a id="<?php echo $shortcutHtmlId ?>" href="<?php echo $this->getCheckoutUrl()?>" target="_blank"> 

簡単に

<a id="<?php echo $shortcutHtmlId ?>" href="<?php echo $this->getCheckoutUrl()?>"> 

が、パウロの助け

1

、我々は最初のボタンがウェブサイト上でレンダリングされる方法を知っておく必要があります。

私たちは、最初に使用されているテンプレートを知る必要があり、私たちは本当に、深いディグブロックは、テンプレートをレンダリングするために使用されているかを確認する必要があります。

Admin > System > Configuration > Advanced > Developer > Debugを有効にするか、またはAdvanced Template Hints Moduleをダウンロードし、テンプレートヒントを表示しようとしているURLに?ath=1を追加してください。今

あなたがPayPalのボタンがfrontend/base/default/paypal/express/shortcut.phtmlを使用してレンダリングされていることを確認する必要があり、テンプレートのヒントでページを表示しています。

/yourmagentoinstallation/app/design/で閲覧を開始すると、そこにfrontend/というフォルダがあります。

今、私たちはそのテンプレートで何が起こっているのか、私たちはこのテンプレートが<a>, <span>, <input>とJavaScriptのビットを付加することを見ることができます見ることができます。

//<![CDATA[ 
    Event.observe('<?php echo $shortcutHtmlId ?>', 'click', function(event) { 
     <?php if ($this->getConfirmationUrl()): ?> 
      if (confirm('<?php echo Mage::helper('core')->jsQuoteEscape($this->getConfirmationMessage())?>')) { 
       this.href = '<?php echo $this->getConfirmationUrl() ?>'; 
      } 
     <?php endif; ?> 
     <?php if ($this->getIsInCatalogProduct()): ?> 
      $('pp_checkout_url').value = this.href; 
      productAddToCartForm.submit(this); 
      event.stop(); 
     <?php endif; ?> 
    }); 
//]]> 

ここでは、へ投稿するフォームのhrefを設定我々は空白にフォームのターゲットを設定する必要があり、変更することができるということは実際のリンクが存在しないため、我々はJavaScriptでこれを行うことができます:

入れ:

productAddToCartForm.setAttribute('target', '_blank');

上記

productAddToCartForm.submit(this);

+0

さんに感謝します。しかし、変更を加えた後も同じウィンドウで開きます。 1.4ではproductAddToCartForm.submit()にこれがありません。私はそれがdiffを作るかどうかわからないのですか? <?php if($ this-> getIsInCatalogProduct()):?> $( 'pp_checkout_url')。value = this.href; productAddToCartForm.submit(); event.stop(); <?php endif; ?> – Jon

関連する問題