WordPress 添加前端站内信 Cartpauj PM


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;
}

/**
* 调用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(); ?>

<?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 ."条未读信息"; 
	}
}

/**
* 获取未读站内信数量
*/
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(); ?>

<?php if(function_exists(‘unread_messages_number’)) unread_messages_number(); ?>

本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、Ps等软件的安装与卸载,精通CSS、JavaScript、PHP、ASP、C、C++、C#、Java、Ruby、Perl、Lisp、Python、Objective-C、ActionScript、Pascal等单词的拼写,熟悉Windows、Linux、OS X、Android、iOS、WP8等系统的开关机。

通过下面的方式来联系我们:

电邮:138762189@qq.com

联系QQ:点击这里给我发消息

官方站:www.tadke.com

※ ※ 联系请加我的企鹅号 ※※

※ ※技术支持请微信联系站长 ※※

Copyright © 2023 Tadke.com. 琼ICP备20000547号