要自己解决这个问题,我们首先需要知道如何在网站上呈现按钮。
我们首先需要知道使用了哪个模板,如果我们确实需要深入挖掘,请找出使用哪个Block来渲染模板。
启用Template hints
在Admin > System > Configuration > Advanced > Developer > Debug
或下载优秀的Advanced Template Hints Module,只需将?ath=1
添加到您试图查看模板提示的URL即可。
现在,当您使用模板提示查看页面时,您应该看到使用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);
这是一个好主意,因为当贝宝重定向回到您的网站,您将有两个运行实例,这对客户体验来说并不理想。 – ShaunOReilly 2012-02-08 01:58:35
贝宝没有在iframe中打开也不是客户体验的理想选择。我的意思是使用贝宝在所有不是理想的,但它似乎如果你想使用贝宝的PayPal按钮表达从一个iframe,打开一个新的窗口是方式。如果你有另一种方法让贝宝工作,我会很高兴吗? – Jon 2012-02-08 15:38:24
我们在不使用iframe的情况下使用它,但我们只是告诉他们(尚未使用它的5位客户)他们将被重定向到paypal,然后返回。与Google结帐相同。如果弹出窗口被阻止,那么如果尝试新窗口,则可能会有非工作系统。 – ShaunOReilly 2012-02-08 20:14:06