您可以将评分存储为用户元。添加评分后,请使用将其添加到用户的评分中add_user_meta()
:
add_user_meta( $user_id, \'_ratings\', $rating, false );
最后一个参数告诉它将当前评级作为新项目添加到元中,而不是替换现有的。然后可以使用
get_user_meta()
:
get_user_meta( $user_id, \'_ratings\', false );
最后一个参数告诉它将分级转换为数组:
Array
(
[0] => 5
[1] => 5
[2] => 3
)
您可以通过循环这些来获得平均评分。您可能希望在每次更新评分元时计算平均值并将其存储为单独的元,因此您可以在每次页面加载时拉取该元,而不是每次计算。
您可能希望限制用户只对其他用户进行一次评级。每次用户对另一个用户进行评分时,您都可以更新另一个元,其中包含他们所使用的用户ID列表:
add_user_meta( $rating_user_id, \'_rated\', $rated_user_id, false );
然后,您可以在允许他们对用户进行评分之前进行检查:
$rated = get_user_meta( $rating_user_id, \'_rated\', \'false\' );
if ( ! in_array( $rated_user_id, $rated ) ) {
// do stuff here to allow rating
}