点击magento中的“checkout with paypal”打开新窗口

时间:2012-02-07 13:57:42

标签: magento paypal magento-1.4

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 express
protected $_startAction = 'paypal/express/start';

我如何在新窗口中打开它?

2 个答案:

答案 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">

很容易,但没有保罗的帮助就不会这样做