Как я могу проверить, являются ли текущие пользовательские баллы отрицательными с помощью модуля "Правила"?
Мой вопрос довольно прост: как я могу проверить, является ли текущее количество пользовательских баллов пользователя отрицательным с модулем правил? Я хотел бы создать действие, которое должно быть активировано, когда пользователю начисляются пользовательские баллы. Событие установлено, но я не знаю, как я могу установить условие.
Редактировать: я включил модуль фильтра 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. Это так просто!