我在Jomsocial中创建了一条规则,为邀请非用户的会员奖励积分。。但现在的问题是。。。即使也会获得积分
- 当会员进入"邀请好友"页面时
- 会员向用户发送电子邮件时获得的积分(从不检查用户是否为网络中的会员)
我该如何限制?
只有当电子邮件发送给"非用户"或非用户单击电子邮件正文中的链接时,我才需要奖励积分。
目前这是在components/com_community/libraries/mailq.php
中使用的函数:
public function send( $total = 100 )
{
$mailqModel = CFactory::getModel( 'mailq' );
$userModel = CFactory::getModel( 'user' );
$mails = $mailqModel->get( $total, true );
$jconfig = JFactory::getConfig();
$mailer = JFactory::getMailer();
$config = CFactory::getConfig();
$senderEmail = $jconfig->getValue('mailfrom');
$senderName = $jconfig->getValue('fromname');
以下代码用于奖励积分。我认为还需要添加一些条件来验证它:
if($senderName)
{
$JomSocialCheck = JPATH_BASE . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'userpoints.php';
if ( file_exists($JomSocialCheck)) {
include_once( JPATH_BASE . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'userpoints.php');
CuserPoints::assignPoint('com_user.add.friend');
}
}
我爷爷过去常说:"当你大喊大叫时——我听到了,当你说话时——我在听…";)
这两个问题之一,我相信你可以通过如下修改代码来解决:
if($senderName)
{
$JomSocialCheck = JPATH_BASE . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'userpoints.php';
if ( file_exists($JomSocialCheck)) {
include_once( JPATH_BASE . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'userpoints.php');
$user =& JFactory::getUser();
if($user->id) {
// he's already a user - do nothing
}
else {
CuserPoints::assignPoint('com_user.add.friend');
}
}
}