大家好,又是我,废话连篇的我,前段时间在社区里发布过关于b2提醒的插件演示,很可惜的告诉大家,那个版本需要改好多文件,而且春哥只要已更新,代码就得重新做,个人能力有限,也确实找不到什么办法可以优化,但是我这里又做了个新的,代码很轻量,非常少,上传即用(不需要修改任何文件)但是您要注意的是我没有做后台修改功能,本来是要打算做的,但是总出bug,就放到下一个版本吧,今天刚看到有人在b2的社区问我这个事,我就加急一下吧,下一个版本会推出有新的私信会自动通过邮箱发送给用户,第一时间让用户知道(除非你的用户完全不看邮箱)。您可以在这个页面浏览更新状态和一些介绍;下载地址在最下面,如果你不想读可以直接跳过。
如果你不想开侧栏,但又想在前端能收到私信提醒的,完全可以看过来~
https://www.devskyr.com/9524.html
开发制作思路
最开始我采用的是抓取dmsg.count的方式,并让js在前端创建一个div来当提示框,但是今天从10点折腾到16点一直没弄明白,总是会出错或者不管有没有消息都会弹出窗口的问题,最终改了思路,我去查看了一下数据库有没有存储私信,于是我就打开了数据库;
诶你别说,还真就发现了,然后我就开始围着数据库这方面想;ID应该就是私信ID(全站的第几个私信)mark(也许是这两个用户之间谁最开始发动的话题,这个真不知道,猜的)from就是哪个用户发的,to就是谁收到的,date顾名思义就是时间,status这个先不说,我先说一件离谱的事;
离谱的事
最开始我还在想,春哥这数据表如何判定的已读呢,如果没有判定那前端是怎么有提示的呢,我就开始陷入了无限的死循环,然后就开始写什么,写这个用json的储存方式,用PHP获取to表单id的总量,并记录在一个创建的json文件中,当用户点开私信列表后统计在json中,等来新的数据时让PHP比对json和数据库中的数是否一致,如果不一致就弹出窗口,等点击私信列表后将json和数据库同步,也就不展示了,是个好办法(纯傻逼),然后就开始写,写着写着发现不对了,旧用户的表单不好弄,而且这得多少个数据表但啊!!!于是我就放弃了,我彻底陷入了沉思,随后我又发现这数据表中有个status是干嘛的,我突然看到数据表的内容0、1这不就是数据的真假判定吗,于是我试着发送一个消息,表单中0,于是我用另一个浏览器登陆另一个账号观看信息,表单中1,这不就是已读判定吗!!!然后自己夸了夸自己(差点把自己骂死)。所以说,这个status就是已读的判定,原谅我的无知。
接上面的开发思路
这回好办了,有数据库在我怕什么呢,于是我就选择创建插件的方式并调用wp-config.php的数据库内容,获取一系列的数据,让PHP比对数据,并将弹窗仅展示给消息中有0值的用户,大功告成。于是这个离谱的插件就出现了,日后你也可以多关注我们的官网,会出一些新的东西,如果你很想要那个多自定义性的,麻烦等着我的更新,我需要清理大脑好好琢磨琢磨(学学技术),请不要直接转载我的插件,麻烦您转发时请备注我们的页面链接:https://www.devskyr.com/9524.html虽然没有多少代码,但也希望各位的支持,转发请一定转发我们文章页的链接或产品详情的页面链接,不要直接转载插件!!!麻烦了!!!
相关原创插件推荐
WordPress封禁用户插件
将Wordpress用户设置限制登陆,有效限制微信等第三方登录
https://www.devskyr.com/wpdisu
WordPress媒体使用Webdav
将Wordpress所有上传(包括用户在前端上传)自动上传并使用Webdav的链接
开发中,请耐心等待
7B2的私信弹窗通知插件
主题的提醒不够醒目,很多“瞎子”用户完全看不到,此插件完美解决私信通知问题。
https://www.devskyr.com/9524.html
如果您对我们团队刚兴趣,可以向我们取得联系。
本文编辑编写:Xxiao王同学的基本信息 – DevSkyr
关于DJOT:联合运营 – DevSkyr
如果你也热爱写代码,并且想让自己的代码帮到更多人,您可以加入我们!我们一起创作这一切!
加入我们:https://www.rutno.com/contact
有代码疑问或者合作请加QQ122022099(不常看)或微信Ubigsea
最新紧急情况!!!代码通过上传的方式会有报错,这也是因为我在线上环境测试引起的,<strong>不过请忽略,功能正常可用</strong>,只不过是会提示一个信息,<strong>实际上以及开启了!!!</strong>
今天紧急发布的一个视频(11.27-22:00)
请注意自己的表单,之前有无效的情况是表单的问题!!!
有一个代码小错误在插件目录(wp-content/plugins/(插件名))下面的只有一个PHP文件,在第89行有一个位置是dev_zrz_directmessage,这个dev是我的数据库表前缀,我忘记修改了,实在抱歉!!!需要将这个改为您的数据库表前缀。
怎么查看我的表前缀?点开你的网站根目录,找到“wp-config.php”在大约70行左右有个:
$table_prefix = ‘dev_’;
这个就是你的表前缀。
感谢user100055的基本信息 – DevSkyr的提醒!!!
测试下载
这个属实牛炸了,厉害,佩服!
似乎开启后没效果,不明白是啥原因,只看到插件安装页面的系统提示:
这个插件在启用的过程中产生了5 个字符的异常输出。 如果您遇到了「headers already sent」错误、联合 Feed(如 RSS)出错等问题,请尝试禁用或移除本插件。
用了两个测试环境,都是一样,不起作用,一个是php8.1+mysql8.0,另一个是php7.3+mysql5.7,两个都不起作用
您可能其他的插件有冲突,方便截屏看看嘛
没装任何插件,又试了下,死活没反应😂,是个全新的站测试的,debug日志里显示:Error Type:Database,Details:Table ‘lwhasia.dev_zrz_directmessage’ doesn’t exist for query SELECT COUNT(*) FROM dev_zrz_directmessage WHERE `to` = 1 AND `status` = 0 made by do_action(‘wp_ajax_check_direct_messages’), WP_Hook->do_action, WP_Hook->apply_filters, check_direct_messages
看来是无缘了😭,还是感谢大佬开发此插件,等以后说不定哪天突然就又能用了
这个是私信的提醒,您确定是用私信测试的,而不是关注这些?我刚才又搭建了两个站点,都没问题的呀
我查了一下,请忽略这个提示,启动就可以了,你可以创建另一个账号给这个账号私信,再在首页刷新一下试试
过来试用
我调试了一下,有一个错误记录,但看不懂:
[27-Nov-2024 21:40:03 UTC] WordPress database error Table ‘lwhasia.dev_zrz_directmessage’ doesn’t exist for query
SELECT COUNT(*) FROM dev_zrz_directmessage
WHERE to = 1 AND status = 0
made by do_action(‘wp_ajax_check_direct_messages’), WP_Hook->do_action, WP_Hook->apply_filters, check_direct_messages
不用调,忽略那个错误就好了
这个属实牛炸了,厉害,佩服!
谢谢大佬的支持!
cscscsc
感谢感谢,先保存下来
这个属实牛炸了,厉害,佩服!
不错不错,试试看
我终于等来了,太不容易了
kankan
感谢分享
1.你插件里的数据表前缀不是通用的wp_,你用的是dev_
2.直接get_user_meta( $user_id, ‘b2_dmsg_unread’, true );就能判断了,根本不用去找zrz_directmessage这张表。
奥对对对!!!我给忘了,这就修改一下,感谢大佬提醒
感谢分享
点赞 试试看
下载试试看