Я создаю систему уровня вверх для блога wordpress. Я считаю, что этот вопрос больше связан с Php и математикой, а не с Wordpress, поэтому я задаю здесь вопрос.Простые вычисления прогресса уровня PHP
Я хочу, чтобы пользователи получали «уровни», когда пользовательские поля (или вы можете назвать это xp) настраивают поле в несколько раз (Хотя я бы предпочел, чтобы требование xp увеличивалось экспоненциально, пожалуйста, посмотрите на запрос # 2 ниже).
У меня есть это в моем functions.php файл.
function movie_level() {
if (is_single()) {
global $post;
$movie_level = get_post_meta($post->ID, "movie_level", true);
if (!isset($movie_level) OR empty($movie_level) OR !is_numeric($movie_level)) {
$movie_level = 1;
add_post_meta($post->ID, "movie_level", $movie_level);
}
$vmeta = get_post_meta(get_the_ID(), 'ratings_score', true);
$movie_percentage_check = $vmeta/(25*$movie_level) * 100;
if ($movie_percentage_check == 100) {
$new_level = $movie_level + 1;
update_post_meta($post->ID, "movie_level", $new_level);
$update_rating = $vmeta + 1;
update_post_meta($post->ID, "ratings_score", $update_rating);
} return $movie_level;
}
}
Что она делает это добавить +1 к movie_movie уровня, когда рейтинги достигают 25.
В моем файле single.php я следующее:
$meta = get_post_meta(get_the_ID(), 'ratings_score', true);
$level= movie_level();
$perc = $meta/(25 * $level) * 100;
echo '<div class="progress large-6 small-12 columns "><span class="meter" style="width:'.$perc.'%"><span></span></span></div>';
echo movie_level();
Это показывает прогресс на следующий уровень с помощью компонента css.
проситКак я могу сделать $ перхлорэтилен начинается с 0% снова, когда будет достигнут новый уровень? При моем текущем уравнении индикатор выполнения всегда будет показывать прогресс, начиная с уровня 1 - уровень 3 (например), а не уровня 2 - уровень 3.
Как обновить код, чтобы требования к рейтингам экспоненциально возрастали каждый уровень и еще добиться того, чего я хотел в запросе # 1
Вы пробовали что-либо для выполнения дополнительных запросов? Покажите этот код, если он у вас есть. – naththedeveloper
Если вы хотите рассчитать проценты по значениям со «смещением», то, конечно, вы должны вычесть это смещение от обоих значений раньше. Допустим, что уровень 7 начинается с 400 очков, уровень 8 - 500, а у пользователя в настоящее время 471 балл. 500 - 400 - 100, 471 - 400 - 71 - составляет 71% «на» уровне семь. Работает так же, если значения не так «красиво» выбраны, как в этом примере, конечно. – CBroe
Вы имеете в виду '(5 * $ level)' во втором блоке кода, должно быть '25'? В противном случае я смущен, откуда приходит «5». – SpaceDog