性价比最高的香港ASP、PHP主机提供商
做网站,就上凡科建站

WordPress 添加前端站内信 Cartpauj PM

Loading
1
Comodo SLL证书促销 - 免费ssl证书申请_ssl证书购买_ev ssl证书_https证书购买 - GDCA_数安时代

2014-04-29:该插件长期不更新,已有另外一个作者将该插件升级,并且改名为 Front End PM ,具体请看 WordPress 前端站内信插件 Front End PM

倡萌之前推荐过《WordPress 站内信插件:Private Messages For WordPress》该插件功能还是比较齐全的,如果是在WP后台使用的话,还相当不错,但是如果想在前端使用,就没那么简单了,虽然作者提供了一个简单的模板,但是倡萌测试发现,前端使用真的存在很多问题。而且该插件已将近一年没有更新了,没有后续支持的插件,也是个麻烦事。

所以倡萌今天要推荐一个专门在前端使用的站内信插件:Cartpauj PM,该插件后台只有简单的设置选项,所有功能都是在前台使用。

主要特色:

  • 支持管理员设置用户的信箱容量;
  • 支持管理员给所有用户发送公告;
  • 有新信息时可以邮件通知;
  • 支持用户自己设置是否接收信息、是否邮件通知;
  • 对话式的信息回复,信息交流一目了然;
  • 采用所见即所得的BBcode(UBB)编辑器;
  • 罗列所用用户,方便一键点击发布信息

有待提高:

  • 前端效果实在不是一般差;
  • 收件人使用的是用户名 username,而不是显示名display_name(一般网站都只显示用户的显示名),所以发站内信需要知道对方的用户名;
  • 目前不支持上传附件(作者计划实现)
  • 要是可以添加后台使用就完美了

已知问题:

信息的发送时间默认使用的是 格林尼治标准时间(GMT),和国内时间相差 8 小时。要修复这个问题,打开 pm-class.php 找到

current_time(‘mysql’, $gmt = 1) 将 $gmt = 1 改为 $gmt = 0  (似乎共有3处)。

默认前端显示效果:

cartpauj-pm-wpdaxue_com

对话式的信息流(已经过倡萌美化):

cartpauj-pm-0-wpdaxue_com

具体效果,请登录 WordPress大学 查看站内信。

在后台插件安装界面搜索 Cartpauj PM 即可在线安装,或者下载 Cartpauj PM

分享一些有用的调用代码:

1.调用最新公告

将代码添加到主题的 functions.php 或插件文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
 * 调用cartpauj_pm的公告
 */
function getLastAnnouncement(){
	global $wpdb; 
	// message_read = 12 表明这条是公告
	$results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ". $wpdb->prefix ."cartpauj_pm_messages WHERE message_read = 12 ORDER BY id DESC LIMIT 0 , 1" , '' ));
	return $results;
}
function the_getLastAnnouncement(){
	$announcements = getLastAnnouncement();
	foreach ($announcements as $announcement)
	{
		$announce .= "<b>".$announcement->message_title."</b>: "; // 显示公告标题
		$announce .=" <small>(".$announcement->date.")</small>"; //显示公告日期
		$announce .= $announcement->message_contents; // 显示公告内容
	}
	return $announce;
}

然后在需要显示的地方使用下面的代码调用:

1
<?php if(function_exists('the_getLastAnnouncement')) echo the_getLastAnnouncement(); ?>

2.调用当前用户未读站内信数量

将下面的代码添加到主题的 functions.php

1
2
3
4
5
6
7
8
9
10
11
12
/**
 * 获取未读站内信数量
 */
function unread_messages_number(){
	//如果用户已登录并且启用了 cartpauj PM 插件
	if(is_user_logged_in() && class_exists("cartpaujPM")){
		global $cartpaujPMS;
		$numNew = $cartpaujPMS->getNewMsgs();
		// 如有未读信息就显示提示内容
		if($numNew) echo "您有". $numNew ."条未读信息"; 
	}
}

然后使用下面的代码调用

1
<?php if(function_exists('unread_messages_number')) unread_messages_number(); ?>
支付宝扫码打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

关于 倡萌

一个疯狂的 WordPress 爱好者,喜欢折腾 WordPress 主题,分享 WordPress 资源。如果你也喜欢 WordPress,欢迎和我一起交流!

精彩推荐

WordPress 文章被评论时通知多个用户

WordPress 文章被评论时通知多个用户

WordPress 一键切换为其他用户身份登录

WordPress 一键切换为其他用户身份登录

23 条评论

  1. 倡萌大哥 怎么设置和你一样的样式啊,默认的好难看哦

  2. 这个东东升级成fep后,调用未读取消息的函数要改吗??

  3. 这个插件,用户发送信息给管理员后,我管理员打不开收信页面了,但是用户可以。

发表评论