Paypal 不会在 iframe 中打开,所以我试图在使用 Magento 1.4+ 按下带有 paypal 按钮的结帐时在新窗口或选项卡中打开 paypal
我想我在某处添加了一个 target="_blank",但我不知道在哪里。
\app\code\core\Mage\Paypal\中有大量文件,但我不知道要编辑哪些文件,我更愿意在不使用核心文件的情况下进行编辑
我在 app\code\core\Mage\Paypal\Block\Express\Shortcut.php 中找到了这个用于 paypal express
protected $_startAction = 'paypal/express/start';
如何在新窗口中打开它?
最佳答案
要自己解决这个问题,我们首先需要知道按钮在网站上是如何呈现的。
我们首先需要知道使用了哪个模板,如果我们真的需要深入挖掘,找出使用哪个 block 来渲染模板。
启用Template hints
在 Admin > System > Configuration > Advanced > Developer > Debug
或下载优秀的 Advanced Template Hints Module然后添加 ?ath=1
对于您尝试查看其模板提示的 URL。
现在,当您查看带有模板提示的页面时,您应该会看到 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);
关于magento - 在 magento 中单击 "checkout with paypal"打开新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9177532/