启用 WooCommerce 我的帐户付款方式,允许客户添加付款方式

问题描述 投票:0回答:1

我试图允许客户添加付款方式,就像他或她可以编辑他们的地址和其他所有内容一样。

所以,我将此代码添加到

My account => Payment Methods
。但点击后,它只是说“新的付款方式只能在结账时添加”之类的。

那么,有什么解决办法吗?

add_action( 'woocommerce_after_account_payment_methods', 'add_payment_method_from_my_account' );
function add_payment_method_from_my_account() { ?>

    <a class="button" href="<?php echo esc_url( wc_get_endpoint_url( 'add-payment-method' ) ); ?>">
    <?php esc_html_e( 'Add payment method', 'woocommerce' ); ?></a>
    
    <?php
}
php woocommerce hook-woocommerce account payment-method
1个回答
0
投票

您需要完全不同的东西,因为所需的支付网关需要支持“add_ payment_method”功能(或“令牌化”功能)

因此我们不需要您的代码(以及您添加的所有其他相关代码)。

但是,我们可以为某些定义的支付网关启用“add_ payment_method”功能。

删除/禁用所有相关代码并使用以下挂钩函数:

add_filter( 'woocommerce_payment_gateway_supports', 'filter_payment_gateway_supports', 10, 3 );
function filter_payment_gateway_supports( $supports, $feature, $payment_gateway ) {
    // Here in the array, set the allowed payment method IDs (slugs)
    $allowed_payment_method_ids = array('bacs', 'cheque', 'cod');

    if ( in_array($payment_gateway->id, $allowed_payment_method_ids ) && $feature === 'add_payment_method' ) {
        $supports = true;
    }
    return $supports;
}

代码位于子主题的functions.php 文件中(或插件中)。已测试并有效。

这次“付款方式”菜单项出现在“我的帐户”菜单项中,当转到“付款方式”部分时,有一个功能“添加付款方式”按钮。

© www.soinside.com 2019 - 2024. All rights reserved.