簡體   English   中英

Woocommerce隱藏用戶角色的支付網關

[英]Woocommerce hide payment gateway for user roles

大家好,我在wordpress / woocomerce網站上有一種貨到付款的付款方式,我想對客戶用戶角色隱藏,但未登錄用戶。

我一直在上下搜索,而我發現附近的唯一一件事就是這段代碼。

function paypal_disable_manager( $available_gateways ) 

{global $woocommerce;

if ( isset( $available_gateways['paypal'] ) && current_user_can('customer') ) {

unset( $available_gateways['paypal'] );

}

return $available_gateways;

}

add_filter( 'woocommerce_available_payment_gateways','paypal_disable_manager' );

有人能夠幫助我修改此代碼以使其適合我的使用。 先感謝您!

提到為您嘗試過的代碼。 它運作良好。 Lemme知道是否同樣適用於您。

function wdm_disable_cod( $available_gateways ) {

    //check whether the avaiable payment gateways have Cash on delivery and user is not logged in or he is a user with role customer
    if ( isset($available_gateways['cod']) && (current_user_can('customer') || ! is_user_logged_in()) ) {

        //remove the cash on delivery payment gateway from the available gateways.

         unset($available_gateways['cod']);
     }
     return $available_gateways;
}

add_filter('woocommerce_available_payment_gateways', 'wdm_disable_cod', 99, 1);
<?php
//--- Filter for remove any payment gateway as per the user role selected --
add_filter('woocommerce_available_payment_gateways','filter_gateways',1);
function filter_gateways($gateways){
    global $woocommerce, $current_user;

    if ( is_user_logged_in() ) {        
        $userRole = implode(',',$current_user->roles);
        if($userRole == 'my_user_role'){
            //-- Remove casho on delivery if following user have logged in
            unset($gateways['cod']);        
        }   
    }else{
        //-- Hide COD if user not logged in 
        unset($gateways['cod']);
    }           
 return $gateways;
}
?>

//-試試這個,我已經按照最小訂單限制使用了此代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM