如何在 Woocommerce 中获取付款方式的 ID?

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

也许有人知道,如何添加一个条件:如果付款金额小于3000 - 某些付款方式被隐藏?

例如有2种付款方式:

  • 现金
  • 网上支付

金额低于3000,“现金”方式隐藏。

据我了解,我需要获取支付网关ID,然后应用代码片段:

add_filter( 'woocommerce_available_payment_gateways', 'custom_paypal_disable_manager' );
function custom_paypal_disable_manager( $available_gateways ) {
   if ( $total_amount < 3000 ) {
      unset( $available_gateways['ID payment gateway'] );
   return $available_gateways;
}

但是我不知道如何获取支付网关ID(支付方式有好几种,都是由不同的插件实现的)。 也许有一种方法可以获取列表中所有支付网关的ID。

如有任何信息,我将不胜感激。

php wordpress woocommerce payment-gateway payment-method
2个回答
2
投票

获取付款方式ID

使用以下代码,将显示在前端页脚附近,付款 ID 仅对管理员和商店管理用户角色可见

add_action( 'wp_footer', 'display_payment_method_ids_for_admins' );
function display_payment_method_ids_for_admins(){
    if( current_user_can( 'administrator') || current_user_can( 'shop_manager') ) {
        $available_gateways = WC()->payment_gateways->get_available_payment_gateways();

        if ( ! $available_gateways ) {
            return;
        }
        $output_html = '<table style="max-width:480px;border:solid 1px #ccc;">
        <thead><tr><td>Payment Title</td><td>Payment ID</td></tr></thead>
        <tbody>';

        foreach( $available_gateways as $payment_id => $gateway ) {
            $output_html .= '<tr><td>'.$gateway->get_title().'</td><td><code>'.$payment_id.'</code></td></tr>';
        }
        echo '<pre>'.$output_html.'</tbody></table></pre>';
    }
}

代码位于活动子主题(或活动主题)的functions.php 文件中。
使用后,请将其取下。

enter image description here


1
投票

我相信您应该能够使用浏览器中的开发人员工具获取 ID。对我来说,上面的代码显示的值与我在代码中看到的值完全相同。 LEFT: Payment id with a code; RIGHT: IDs marked red in devtools

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