【发布时间】:2021-02-10 11:56:54
【问题描述】:
我想在 Magento 2 中将 Paypal 快速结帐按钮从付款部分移到结帐页面的顶部。
【问题讨论】:
标签: paypal magento2 payment-gateway checkout express-checkout
我想在 Magento 2 中将 Paypal 快速结帐按钮从付款部分移到结帐页面的顶部。
【问题讨论】:
标签: paypal magento2 payment-gateway checkout express-checkout
Magento 的 Paypal 配置有一个选项可以在“查看购物车”页面上显示 PayPal 快捷方式,这是您绝对应该做的主要事情。它使人们可以将一些东西添加到他们的购物车,然后点击转到 PayPal,而不必手动将他们所有的地址和付款信息输入到 Magento,因为它只是从他们的 Paypal 帐户中提取的。
您还可以在每个产品页面上显示相同的 PayPal 快捷方式。
【讨论】:
我已经通过这种方式实现了。
自定义/模块/视图/前端/布局/checkout_index_index.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="checkout" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="content">
<block class="Magento\Paypal\Block\Express\InContext\Minicart\SmartButton" name="checkout.right.logo" template="Custom_Module::express/in-context/shortcut/button.phtml" before="-">
</block>
</referenceContainer>
</body>
</page>
自定义/模块/视图/前端/模板/express/in-context/shortcut/button.phtml
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
/**
* @var \Magento\Paypal\Block\Express\InContext\Minicart\SmartButton $block
*/
$widget = $this->helper(\Magento\Framework\Json\Helper\Data::class)->jsonDecode($block->getJsInitParams());
$widgetConfig = $this->helper(\Magento\Framework\Json\Helper\Data::class)->jsonEncode($widget['Magento_Paypal/js/in-context/button']);
?>
<div data-mage-init='{"Magento_Paypal/js/in-context/button":<?= /* @noEscape */ $widgetConfig ?>}'
class="paypal checkout paypal-logo paypal-express-in-context-mini-cart-container">
</div>
【讨论】: