Как я могу проверить, являются ли текущие пользовательские баллы отрицательными с помощью модуля "Правила"?

Мой вопрос довольно прост: как я могу проверить, является ли текущее количество пользовательских баллов пользователя отрицательным с модулем правил? Я хотел бы создать действие, которое должно быть активировано, когда пользователю начисляются пользовательские баллы. Событие установлено, но я не знаю, как я могу установить условие.

Редактировать: я включил модуль фильтра PHP, чтобы получить опцию "Выполнить пользовательский код PHP" в условиях моего правила. (Я не знал, что должен был сделать это раньше...) Я использовал этот код, чтобы проверить отрицательные пользовательские баллы пользователя:

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 ответ

Решение

Я нашел правильный код:

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

Просто используйте этот фрагмент в условии выполнения пользовательского кода PHP. Это так просто!

Другие вопросы по тегам