当用户选择贝宝付款方式时,在结帐表单中禁用 WooCommerce 中的帐单地址

Posted

技术标签:

【中文标题】当用户选择贝宝付款方式时,在结帐表单中禁用 WooCommerce 中的帐单地址【英文标题】:Disable billing address in WooCommerce in checkout form when user select paypal payment method 【发布时间】:2014-04-13 18:55:08 【问题描述】:

当用户在 WooCommerce wordpress 主题中选择贝宝付款方式时,我正在尝试禁用结帐页面中的结算字段。

一旦用户完成项目选择并进入结帐页面,如果用户选择了贝宝付款,那么结帐表单不应验证帐单字段,如果选择了任何其他付款方式,则它应该正常工作。

我搜索了很多,但找不到线索。请有人帮我解决这个问题。

提前致谢。

【问题讨论】:

【参考方案1】:
/* if you want the title of the payment method */
add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method' );
function ts_refresh_payment_method()
$chosen_payment_method = WC()->session->get('chosen_payment_method');  //Get the selected payment method

    // jQuery
    ?>
    <script type="text/javascript">
        (function($)
var cpm = '<?php echo $chosen_payment_method; ?>';
if(cpm == "paypal")
$(".woocommerce-billing-fields").hide();
else
$(".woocommerce-billing-fields").show();

            $( 'form.checkout' ).on( 'change', 'input[name^="payment_method"]', function() 
//alert(this.value);
if(this.value == "paypal")
$(".woocommerce-billing-fields").hide();
else
$(".woocommerce-billing-fields").show();


                $('body').trigger('update_checkout');
            );
alert($('body').trigger('update_checkout'));
        )(jQuery);
    </script>
    <?php


/*  */
add_filter('woocommerce_billing_fields','wpb_custom_billing_fields');
function wpb_custom_billing_fields( $fields = array() ) 
$chosen_payment_method = WC()->session->get('chosen_payment_method');
if($chosen_payment_method == "paypal")
$fields['billing_first_name']['required']= false;
$fields['billing_last_name']['required']= false;
$fields['billing_company']['required']  = false;
$fields['billing_email']['required']   = false;
$fields['billing_address_1']['required']= false;
$fields['billing_address_2']['required']= false;
$fields['billing_state']['required']   = false;
$fields['billing_city']['required']     = false;
$fields['billing_phone']['required']    = false;
$fields['billing_postcode']['required'] = false;
$fields['billing_country']['required']  = false;

return $fields;

【讨论】:

【参考方案2】:

看看PayPal for WooCommerce。它是免费的,它允许您启用 PayPal Express Checkout 而不是 PayPal Standard,后者对于使用 PayPal 付款的人来说更流畅。

【讨论】:

您好,谢谢您的回复。但您的回答不符合我的要求。当用户选择贝宝付款方式时,我想禁用结帐表单中的计费字段。 我不确定你是否明白我在说什么。 Express Checkout 基本上是通过完全跳过结帐页面来做到这一点的。 OP 希望代码在付款方式更改时更改/禁用计费字段。 对,我的回答通过允许您完全跳过结帐页面解决了这个问题。对于买家来说,这实际上是一种更好的体验,并且已被证明在应用时可以将网站上的转化率提高 20% 以上。只是想在这里提供帮助。谢谢你的否定。代表。

以上是关于当用户选择贝宝付款方式时,在结帐表单中禁用 WooCommerce 中的帐单地址的主要内容,如果未能解决你的问题,请参考以下文章

想要避免添加到购物车或结帐页面并想要直接使用贝宝付款方式

结帐页面中的 Woocommerce 付款方式检测

贝宝支付处理

市场的贝宝结帐

如何使用 Paypal Adeptive 获取 paykey 并在结帐时成功结帐?

贝宝自适应 API