使WooCommerce结账时的订单备注字段仅在前端按管理员级别用户角色可见

时间:2021-06-09 作者:Joey Payne

我有一段代码,允许我在签出时为所有用户(无论是否登录)隐藏“订单注释”字段,但我想问是否有人编写了一段代码,对所有人(管理员除外)隐藏了同一字段。

本质上,我希望站点管理员级别的用户能够在签出时添加订单注释,而不是其他人。

当前代码段是:

// Removes Order Notes Title - Additional Information & Notes Field
add_filter( \'woocommerce_enable_order_notes_field\', \'__return_false\', 9999 );
// Remove Order Notes Field
add_filter( \'woocommerce_checkout_fields\' , \'remove_order_notes\' );
function remove_order_notes( $fields ) {
     unset($fields[\'order\'][\'order_comments\']);
     return $fields;
}

1 个回复
SO网友:Buttered_Toast

您可以使用添加管理员检查current_user_can(), 像这样的

function remove_order_notes( $fields ) {
    if (current_user_can(\'administrator\')) return $fields;

    unset($fields[\'order\'][\'order_comments\']);
    return $fields;
}
如果当前用户是admin,则返回所有字段。

相关推荐

Execute shortcodes in PHP

我在帖子编辑器中添加了一个地理位置快捷码,可以根据用户的位置显示不同的信息,将其放在帖子页面的内容中,效果非常好。如何在主题的PHP文件中执行此短代码[地理位置][地理位置]?我正在使用免费修改Wordpress主题,我想添加一个新的<span>[geolocation][/geolocation]Information text content</span> 但在主题的内部。php文件,我如何才能做到这一点?如果我直接加上<span>[geolocation][/ge