在 WordPress 中禁止用户删除某些文章类型中的文章
文 / @WordPress主题
自我介绍
小本本是一名WordPress开发者,有多年的WordPress开发经验,擅长使用WordPress开发各种Web应用,并且熟悉WordPress的各种功能和特性,能够熟练使用WordPress进行主题开发和插件开发。
禁止客户删除WordPress自定义文章类型订单
我们用WordPress开发过一个订单系统,当用户在前台提交了一个订单后,订单信息保存在一个自定义文章类型中,客服可以在后台查看、处理订单。为了防止客服不小心删除这个订单信息,我们需要禁用掉这个订单的删除功能,客服只能查看、编辑、不能删除订单。我们是通过下面的代码可以实现这个需求。
add_filter('map_meta_cap',function($caps,$cap,$user_id,$args)
{
//如果不是delete_post权限,什么都不做
if('delete_post' !== $cap || empty($args[0])){
return $caps;
}
//如果是指定的文章类型,修改权限为do_not_allow
if(in_array(get_post_type($args[0]),['messages','transaction'],true)){
$caps[] = 'do_not_allow';
}
return $caps;
},10,4);
移除后,文章类标的操作栏,就只剩下“编辑”这一个功能了,如下图:
移除批量操作中的“移至回收站”链接
虽然我们移除了用户删除文章类型的权限,但是文章类型列表批量编辑功能的“移至回收站”功能还在(如下图),如果我们选择了几篇文章,选择“移至回收站”操作,点击应用,WordPress会报错,告诉我们,我们没有权限删除文章。
我们可以通过下面的代码移除这个功能:
add_filter('bulk_actions-edit-message',function($actions)
{
unset($actions['trash']);
return $actions;
});
除了禁止用户删除文章,我们还可以禁止用户进行其他操作,根据需要对相应的权限进行限制就可以了,WordPress的权限列表请参考官方文档:WordPress角色和权限。如果需要其他角色的用户可以删除订单,可以在上面的代码中加上权限判断,有需要的朋友自行编辑,在这里就不再列出了。
相关文章
-
如何创建WordPress古腾堡编辑器的区块(PHP+原生JS) 2024-01-10 01:01:06
-
搭建一个WordPress网站需要多少成本 2023-11-06 00:09:51
-
Symlink介绍(附:如何使用Symlink进行WordPress开发) 2023-11-05 23:38:32
-
让WordPress实现数据库同步的插件:HyperDB 2023-10-24 23:40:49
-
allegro电商平台值得做吗(附:2023年Allegro注册流程指南) 2023-10-08 21:53:39
-
印度跨境电商平台有哪些(附:印度跨境电商做什么产品好) 2023-10-08 21:34:23
-
跨境电商必看的几大海外二手电商平台 2023-10-08 18:04:42
-
WordPress同城互联网产品解决方案:UBASE 2023-10-03 16:40:39
-
WordPress网站的安全插件:wordfence 2023-09-14 09:25:18
-
WordPress 6.3 支持在手动更新插件和主题失败后回滚旧版本 2023-08-28 16:58:45