如何使用规则模块检查当前用户点是否为负值?

时间:2013-10-26 13:26:55

标签: php drupal-7 drupal-rules userpoints

我的问题非常简单:如何使用规则模块检查用户当前的用户点数量是否为负值?我想创建一个应该在用户被授予用户点数时激活的操作。事件已设定,但我不知道如何设定条件。

编辑:我启用了PHP过滤器模块,以便在规则的条件下获得“执行自定义PHP代码”选项。 (我之前不知道我必须做this ...)我使用此代码来检查用户的用户点是否为负数:

global $user;
$num_pts = userpoints_get_current_points($user->uid, 'all');
$neg_pts = $num_pts < 0;

不幸的是,即使用户点数量为负数,它也总是被评估为“假”。我也试过这个:

$num_pts = userpoints_get_current_points([userpoints-transaction:user]->uid, 'all');
$neg_pts = $num_pts < 0;

但这也不起作用(同样的原因)。在这两种情况下我都没有收到任何错误消息。

这些代码段是否有误?正确的看起来怎么样?

1 个答案:

答案 0 :(得分:0)

我找到了正确的代码:

global $user;
$num_pts = userpoints_get_current_points($user->uid, 'all');
if ($num_pts < 0) {return TRUE;}

只需在执行自定义PHP代码条件中使用此代码段即可。就这么简单!