【问题标题】:Hide paypal payment button隐藏贝宝付款按钮
【发布时间】:2023-01-28 01:46:02
【问题描述】:

我想隐藏贝宝付款按钮。我正在使用贝宝 Javascript SDK。我知道我可以使用 disable-fundings 来禁用信用卡等等。但是没有paypal的选项。我之前使用自己选择的付款方式。我尝试过使用 jQuery,但它不起作用:

<script>
$( document ).ready(function() {
    $( ".paypal-button-row.paypal-button-number-0" ).hide();
});
</script>

paypal 支付按钮由 Javascript SDK 在名为“paypal-button-container”的 div 中呈现。这会创建一个包含所有付款按钮的 iframe。

<div id="buttons-container" class="buttons-container"...

里面是其他带有按钮的div。我想隐藏的按钮是这个 div:

<div class="paypal-button-row paypal-button-number-0 paypal-button-layout-vertical paypal-button-shape-rect paypal-button-number-multiple paypal-button-env-sandbox paypal-button-color-gold paypal-button-text-color-black paypal-logo-color-blue ...  ">

我认为首先我必须进入 iframe,然后找到该元素。 目前我正在尝试这个

if ($( "#paypal-button-container" ).contents().find(".paypal-button-row.paypal-button-number-0")) {
            console.log("found");
            $( ".paypal-button-row.paypal-button-number-0" ).hide();
        }

控制台输出“找到”。但它不会隐藏 div。同时,我发现即使使用 .find("abc"),控制台也始终显示“found”。

有任何想法吗?

【问题讨论】:

  • 如果不分享更多细节,就不可能告诉你如何做到这一点。但是任何 CSS 选择器火柴您要隐藏的按钮(您目前尚未共享)应该没问题
  • 如果你总是想隐藏给定的元素,为什么不为此使用静态 CSS?
  • 那太好了。但它不会工作,因为 iframe 来自不同的域。我刚刚尝试了这个:$("iframe[id*='jsx-iframe']").on('load', function(){ console.log("iframe loaded"); $("iframe[id*='jsx-iframe']").contents().find(".paypal-button-number-0").hide(); }); 并收到此错误:未捕获的 DOMException:阻止了来源为“...”的框架访问跨域框架。看起来这是不可能的。
  • 请通过编辑为您的问题添加所有说明

标签: paypal


【解决方案1】:

看来你真正要找的是rendering standalone buttons.

请注意,为例如显示此类独立/独立按钮。单选按钮功能或使用您自己的按钮布局不用于避免/隐藏在网站某处以与其他支付方式同等显眼的方式呈现 PayPal 选项。如果您没有将 PayPal 付款方式与其他选项一起使用,则 PayPal 帐户的处理可能会被停用,因为这违反了其服务条款。


if ($( "#paypal-button-container" ).contents().find(".paypal-button-row.paypal-button-number-0"))

不应使用这种方法,但仅供参考,使用 jQuery 的问题是您需要在调用它后使用 .length,并对其进行测试。注意区别:

if ( $('#myElement').length ) {
    console.log('#myElement was actually found')
}

if ( $('#myElement') ) {
    console.log('This will always be true regardless...')
}

它也可能执行得太早,而不是在按钮完全呈现之后。但无论如何,没有理由这样做,请参阅上面的独立按钮文档。

【讨论】:

    【解决方案2】:

    听起来不错。使用独立按钮,它看起来像是在工作。 我已经为它添加了脚本。

    var FUNDING_SOURCES = [
                paypal.FUNDING.<?php echo $paymentMethod; ?>
            ];
    
            // Loop over each funding source/payment method
            FUNDING_SOURCES.forEach(function(fundingSource) {
    
                // Initialize the buttons
                var button = paypal.Buttons({
                    fundingSource: fundingSource
                });
    
                // Check if the button is eligible
                if (button.isEligible()) {
    
                    // Render the standalone button for that funding source
                    button.render('#paypal-button-container');
                }
            });
    

    我会继续测试它。 当然,我们也提供 Paypal 作为付款方式。

    【讨论】:

      【解决方案3】:

      简单的:

      <script 
      src="https://www.paypal.com/sdk/js?client-id=sb&currency=EUR&disable-funding=card,sofort">
      </script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-25
        • 2020-03-17
        • 2016-06-17
        • 2022-01-23
        • 2017-12-15
        • 2013-09-22
        • 2012-07-20
        • 2016-05-27
        相关资源
        最近更新 更多