Paypal不会在iframe中打开,因此我尝试使用Magento 1.4 +按下使用paypal按钮结账时在新窗口或标签页中打开paypal,
我想我在某处添加了一个target =“_ blank”,但我不知道在哪里。
\ app \ code \ core \ Mage \ Paypal \中有大量文件,但我不知道要编辑哪个文件,adn更喜欢不使用核心文件来执行此操作
我在app \ code \ core \ Mage \ Paypal \ Block \ Express \ Shortcut.php
中找到了这个for paypal expressprotected $_startAction = 'paypal/express/start';
我如何在新窗口中打开它?
答案 0 :(得分:1)
要自己解决这个问题,我们首先需要知道按钮在网站上的呈现方式。
我们首先需要知道使用了哪个模板,如果我们确实需要深入挖掘,请找出用于渲染模板的块。
在Template hints
中启用Admin > System > Configuration > Advanced > Developer > Debug
或下载优秀Advanced Template Hints Module,只需为您尝试查看模板提示的网址添加?ath=1
。
现在,当您使用模板提示查看页面时,您应该看到使用frontend/base/default/paypal/express/shortcut.phtml
呈现PayPal按钮。
打开该文件,开始浏览/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);
答案 1 :(得分:0)
谢谢保罗 - 我这样做了相同的文件并且它有效!
改变(我的第33行)
<a id="<?php echo $shortcutHtmlId ?>" href="<?php echo $this->getCheckoutUrl()?>">
到
<a id="<?php echo $shortcutHtmlId ?>" href="<?php echo $this->getCheckoutUrl()?>" target="_blank">
很容易,但没有保罗的帮助就不会这样做