add_action( 'woocommerce_product_options_general_product_data', 'hiding_and_set_product_settings' );
function hiding_and_set_product_settings(){
## ==> Set HERE your targeted user role:
$targeted_user_role = 'administrator';
// Getting the current user object
$user = wp_get_current_user();
// getting the roles of current user
$user_roles = $user->roles;
if ( in_array($targeted_user_role, $user_roles) ){
## CSS RULES ## (change the opacity to 0 after testing)
// HERE Goes OUR CSS To hide 'virtual' and 'downloadable' checkboxes
?>
<style>
label[for="_virtual"], label[for="_downloadable"]{ opacity: 0.2; /* opacity: 0; */ }
</style>
<?php
## JQUERY SCRIPT ##
// Here we set as selected the 'virtual' and 'downloadable' checkboxes
?>
<script>
(function($){
$('input[name=_virtual]').prop('checked', true);
$('input[name=_downloadable]').prop('checked', true);
})(jQuery);
</script>
<?php
}
}
3条答案
按热度按时间yqlxgs2m1#
使用这个简单的解决方案:
o0lyfsai2#
仅对于虚拟产品,请参阅末尾的更新
这是可能的,但测试和解释很长时间,而且很复杂。您必须通过两种方式将此用户作为目标,即特定的用户角色或其用户角色的特定功能。
然后有可能用注入的css来隐藏一些设置,并使用javascript/jQuery来设置这些隐藏设置……
在下面的工作示例中,我使用jQuery启用了**
'virtual'
和'downloadable'
设置CheckBox,并使用不透明css规则…完全隐藏了它们我使用
woocommerce_product_options_general_product_data
**操作钩子中挂接的自定义函数,这样:代码放在活动子主题(或主题)的unction.php文件中,也可以放在任何插件文件中。
您必须使用您的特定目标用户角色来替换“管理员”用户角色。
您必须将不透明度设置为0,才能完全隐藏该复选框。
测试和工作
新增多个用户角色:
1.替换此行:
$TARGET_USER_ROLE=‘管理员’;
…在这条线上:
1.并同时替换此行:
IF(In_ARRAY($TARGET_USER_ROLE,$USER_ROLES)){
…在这条线上:
现在,代码将适用于许多用户定义的用户角色
默认设置虚拟选项(并隐藏):
要隐藏并默认设置虚拟选项,您将使用:
代码放在活动子主题(或主题)的unction.php文件中,也可以放在任何插件文件中。经过测试,效果良好。
frebpwbc3#
编辑
wp-content\plugins\dokan-lite\templates\products\download-virtual.php
文件以启用虚拟和可下载产品复选框。它将如下所示:
要隐藏这些选项,您可以使用带有“!Important”的css来覆盖此元素的内联css。将此文件添加到任何链接的css文件: