!
也想出现在这里? 联系我们
广告位

WordPress 禁止用户删除某些文章类型中的文章

我们用 WordPress 开发过一个订单系统,当用户在前台提交了一个订单后,订单信息保存在一个自定义文章类型中,客服可以在后台查看、处理订单。为了z [ # r ? +防止客服不小心删除这个订单信息,我们需要禁用掉这个订单的删除功能,客服只能查看,编辑、不能删除订单。我们是通过下面的代+ r H |码可以实现这个需求,移除用户删除某个文章类型的权限:

  1. add_filter( 'map_meta_cap', functio? 5 W t g 2 9 9 fn ( $caps, $cap, $user_id, $args )
  2. {
  3. // 如果不是 delete_post 权限,什么都F ` / C 3 7不做
  4. if( 'delete_post' !== $cap || ek C pmpty( $args[0] ) ){
  5. return $caps;
  6. }
  7. // 如果是指定的文章类型,修改权限为 do_not_ac ~ P Z 6 ) R 9llow
  8. if( in_array( get_post_type( $argF \ Ns[0] )C y u z C $ U, [m V `; 'messages', 'transaction' ]W h 7 ^ 0 E Z f -;, true ) ){
  9. $caF q U K h Aps[] = 'do_5 L r knot_allow';
  10. }
  11. return $caps;
  12. }, 10, 4 );

移除后,文章类标的操作栏,就只剩下 “C 6 h编辑” 这一n x m s : Q ] c个功能了,如下图:

虽然我们移除了用户删除文章类型的权限,但是文章类型列表批t e b * ) C ~ n量编辑功能的 “移至回收站” 功能还在(如下图),如果我们选E } \ O 8择了几篇文章,选择“移[ o M h . QB 7 A + s ( j w回收站” 操V H \作,点击应用p [ Y w , V { @ 7,WordPress 会报错,告诉我们,我们没有权限删除文章。

我们可以通过下面的代码移除这个功能:

  1. add_filter('bulk_actions-edit-message', function ($actionf P ] y 7 y 6 ss)
  2. {
  3. unset($action4 ! !s[9 W : N { ~ v; 'tras[ s s 8 9 $h' ])@ U ^ v S;
  4. return $actions;
  5. });

除了禁止用户删除文章,我们还可以禁止用户进行其他操作,根据需要对相应的权限进行限制就可以了,WordPress 的权限列表请参考官方文档:WordPress 角色和权限。如果需要其他角色的用户可以删除订单,可以在上面的代码中加上权限判断,有需要的朋友自行编辑,在这里就不再列出了。

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

如何在指定文章类型中禁用古腾堡编辑器

2022-7-29 11:16:31

WordPress教程

Simple Custom Post Order - 文章及分类拖动排序插件

2022-7-29 11:18:18

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索