隐藏WooCommerce中客户用户角色的结帐帐单字段

时间:2019-02-04 12:45:20

标签: php woocommerce

问题:如何添加仅基于用户角色(在本例中为客户)隐藏计费字段的代码。

使用以下代码,我们可以对已登录用户隐藏购物车中的帐单详细信息:

var submessages = mongoose.Schema({
  date: String,
  type: String,
  title: String,
  text: String
});

var subitems = new mongoose.Schema({
  title: String,
  messages: [submessages]
});

var menuItems = new mongoose.Schema({
  title : String,
  subitem: [subitems]
}, {collection: 'menu_items'});

module.exports = mongoose.model("menu_items", menuItems);

2 个答案:

答案 0 :(得分:1)

使用可与用户角色配合使用的WordPress current_user_can()条件函数,例如:

add_filter( 'woocommerce_checkout_fields', 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
    if( current_user_can('customer') ){
        exec($fields['billing']);
        $fields['billing'] = array();
    }
    return $fields;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。应该可以。

答案 1 :(得分:0)

出于某种原因,在我的情况下,这仍然显示 billing_first_name_field。还有标题。以下代码工作正常:

add_filter( 'woocommerce_checkout_fields', 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
    if( current_user_can('customer') ){
        exec($fields['billing']);
        unset($fields['billing']); //this was changed
    }
    return $fields;
}