Ребята помогите, пожалуйста. Я совсем не понимаю как мне это сделать. Сайт на wordpress. Установлены плагины для платного доступа и млм Ultimate Membership Pro и Ultimate Affiliate Pro. Они между собой связаны. Человек при регистрации вносит какую-то плату (зависит от плана подписки) и внесённые средства должны получать процент в зависимости от суммы оплаты. Поставили задачу: Есть 3 плана подписки 1) Человек внес сумму например 10000 и с этого момента ему каждый месяц должно на счет капать по 25% от этой суммы в течении 6 месяцев причем в течении каждого месяца эти проценты (25% от 10000 = 2500) должны поступать равными частями каждый день (2500/колличество дней). 2) Человек внес сумму например 100000 и с этого момента ему каждый месяц должно на счет капать по 40% от этой суммы в течении 9 месяцев причем в течении каждого месяца эти проценты (40% от 100000 = 40000) должны поступать равными частями каждый день (40000/колличество дней). 3) Человек внес сумму например 1000000 и с этого момента ему каждый месяц должно на счет капать по 60% от этой суммы в течении 9 месяцев причем в течении каждого месяца эти проценты (60% от 1000000 = 600000) должны поступать равными частями каждый день (600000/колличество дней).
Также надо чтобы все эти процентные изменения человек видел в своём личном кабинете. (С этим я справлюсь сама)
Простите меня, я ещё глупая и только начинаю всё изучать, а тут сразу же такая задача. Заранее спасибо.
Как я вижу решение данной проблемы: У каждого плана есть свой ID в базе данных. У каждого плана есть своя стоимость. При выборе какого либо плана пользователь получает определённый ранг или что-то такое. У каждого ранга есть свой ID в базе. Отталкиваясь от этого можно предположить, что если пользователь получил ранг с, например, ID 4, то он внёс 10000 и с этого момента начинается отсчёт 6 месяцев и начисление процентов. Т.е. с помощью, возможно, php? мы можем узнать в базе у кого ранг с ID=4 и статус 1 (активирован) и присвоить ему определённый скрипт расчёта процентов.
<?php
/*Скрипт для 10000*/
mysql_query($query);
/* Отбираем из базы нужный ранг */
$query = "SELECT * FROM wp_ihc_user_levels WHERE level_id = \\\"4\\\" AND status != '0'";
/* Присваиваем level_id который равен 4 значение суммы (т.е. level_id="4" = 10000?) */
/* С даты из таблицы wp_ihc_user_levels и столбца start_time до даты в
столбце expire_time начислять проценты к 10000 */
$row = ['start_time'];
$row = ['expire_time'];
/* Дата */
$row['start_time'] = strtotime($row['start_time']);
$row['expire_time'] = strtotime($row['expire_time']);
/* Сумма */
$amount = 10000;
/* Даты начала и окончания */
$start = strtotime('start_time');
$end = strtotime('expire_time');
/* вычисляем количество месяцев (не знаю надо ли это делать если заранее известно их количество) */
$month = idate('m', $end) - idate('m', $start);
/* Начисляем процент */
$amountWithPct = $amount + 25 * $month;
/* Выводим результат */
printf(
"%s Было %s Стало $%.2F", date('d.m.Y', $row['start_time']), $amountWithPct);
?>
Так как я пробую написать у меня не получается вычислить количество месяцев от даты окончания до даты начала начисления процентов + не работает само начисление. Я прекрасно понимаю, что есть ошибки, но пока мне не хватает знаний.
Изучая всё подряд я дошла до такого варианта, но он всё равно не работает так как надо.
<?php
error_reporting(-1);
header('Content-Type: text/html; charset=utf-8');
//Скрипт для 10000
require_once 'connection.php'; // подключаем скрипт
// подключаемся к серверу
$link = mysqli_connect($host, $user, $password, $database)
or die("Ошибка подключения к базе" . mysqli_error($link));
mysqli_query($query);
$res = mysqli_query($link,"SELECT * FROM `wp_ihc_user_levels` WHERE `level_id`= 1 AND `status` != 0") or die("Ошибка выборки" . mysqli_error($link));
if($res) { //если запрос успешный
while($row = mysqli_fetch_array($res))
$start = ['start_time'];
$end = ['expire_time'];
/* Дата */
$start['start_time'] = strtotime($start['start_time']);
$end['expire_time'] = strtotime($end['expire_time']);
/* Даты начала и окончания */
$start = strtotime('start_time');
$end = strtotime('expire_time');
$now = time(); // текущее время (метка времени)
$reg_date = strtotime($start['start_time']); // какая-то дата в строке
$datediff = $now - $reg_date; // получаем разность дат (в секундах)
/* Начисляем процент */
$amount = 10000;
$proc = 25; //Процентов за всё время
$proc_d =25/$datediff; //Процентов в день
$proc = $amount/100*$proc; // высчитываем процент от числа
$proc_d = $amount/100*$proc_d; // высчитываем процент в день от числа
$amountWithPct_all = $amount + $proc; // суммируем число с процентами от этого числа
$amountWithPct_d = $amount + $proc_d; // суммируем число с процентами в день от этого числа
round ($amountWithPct_all); // округляем
round ($amountWithPct_d); // округляем
{
//выводим как нам надо
echo "ДАТА НАЧАЛА:<br><br>";
echo date("d.m.Y h:m:s",strtotime($start)),'<br><br>';
echo "ДАТА ОКОНЧАНИЯ:<br><br>";
echo date('d.m.Y h:m:s',strtotime($end)),'<br><br>';
echo "Прошло дней:<br><br>";
echo floor($datediff / (60 * 60 * 24)),'<br><br>'; // вычисляем количество дней из разности дат
echo "Сумма на данный момент: $amountWithPct_d<br><br>";
echo "Итоговая сумма: $amountWithPct_all<br><br>";
}
}
mysqli_free_result($res); //очищаем занятую память - она уже не нужна
mysqli_close($link);
?>
Даты почему-то всегда выводятся такие 1970-01-01, соответственно сумма с процентами на данный момент выводится странная. Вот так выглядит результат: ДАТА НАЧАЛА:
01.01.1970 03:01:00
ДАТА ОКОНЧАНИЯ:
01.01.1970 03:01:00
Прошло дней:
18113
Сумма на данный момент: (10000.000001597),'
'Итоговая сумма: (12500),'
' Где ошибки не пойму. Подскажите, пожалуйста. Вот так выглядит таблица в БД.
UPD: Кусок с обращением в пустоту, предложенный DaemonHK, исправила. Больше такого не вижу. Пожалуйста, ткните носом в ошибки. Я уже почти отчаялась.
<?php
error_reporting(-1);
header('Content-Type: text/html; charset=utf-8');
require_once 'connection.php';
$link = mysqli_connect($host, $user, $password, $database);
if (!$link) {
echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error();
exit;
}
$sql = mysqli_query($link, 'SELECT `user_id`, `level_id`, `start_time`, `expire_time`, `status` FROM `wp_ihc_user_levels` WHERE `level_id`=1');
while ($result = mysqli_fetch_array($sql)) {
$start=($result['start_time']);
$end=($result['expire_time']);
$level=($result['level_id']);
$user_id=($result['user_id']);
$status=($result['status']);
$now = time();
$datediff = date('d.m.Y') - date("d.m.Y", strtotime($result['start_time']));
$amount = 10000;
$proc = 25;
$proc_d =0.25*$datediff;
$proc = $amount/100*$proc;
$proc_d = $amount/100*$proc_d;
$amountWithPct_all = $amount + $proc;
$amountWithPct_d = $amount + $proc_d;
round ($amountWithPct_all);
round ($amountWithPct_d);
echo "Дата начала: {$start}<br>";
echo "Дата окончания: {$end}<br>";
echo "Прошло дней: {$datediff}<br>";
echo "Внесено: {$amount} ₽<br>";
echo "Заработано на данный момент: $proc_d ₽<br><br>";
echo "Cумма на конец периода: $amountWithPct_all ₽<br><br>";
}
?>
Вот так стало работать. Выводит правильные даты и правильно считает. Правда выводит всех пользователей с level_id=1. Но и это уже неплохо. Всем спасибо. Вопрос можно закрывать.
<?php
error_reporting(-1);
header('Content-Type: text/html; charset=utf-8');
require_once 'connection.php';
$link = mysqli_connect($host, $user, $password, $database);
if (!$link) {
echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error();
exit;
}
$sql = mysqli_query($link, 'SELECT `user_id`, `level_id`, `start_time`, `expire_time`, `status` FROM `wp_ihc_user_levels` WHERE `level_id`=1');
while ($result = mysqli_fetch_array($sql)) {
$start=($result['start_time']);
$end=($result['expire_time']);
$level=($result['level_id']);
$user_id=($result['user_id']);
$status=($result['status']);
$now = time();
$datediff = date('d.m.Y') - date("d.m.Y", strtotime($result['start_time']));
$amount = 10000;
$proc = 25;
$proc_d =0.25*$datediff;
$proc = $amount/100*$proc;
$proc_d = $amount/100*$proc_d;
$amountWithPct_all = $amount + $proc;
$amountWithPct_d = $amount + $proc_d;
round ($amountWithPct_all);
round ($amountWithPct_d);
echo "Дата начала: {$start}<br>";
echo "Дата окончания: {$end}<br>";
echo "Прошло дней: {$datediff}<br>";
echo "Внесено: {$amount} ₽<br>";
echo "Заработано на данный момент: $proc_d ₽<br><br>";
echo "Cумма на конец периода: $amountWithPct_all ₽<br><br>";
}
?>
Вот так стало работать. Выводит правильные даты и правильно считает. Правда выводит всех пользователей с level_id=1. Но и это уже неплохо. Всем спасибо. Вопрос можно закрывать.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Всем привет, еще только изучаю язык, строго не судите такой вопрос: все номера телефонов в тексте записанные в формате +375XXYYYYYYY с помощью regex заменить...
при создании активити происходит выбор какой фрагмент отобразить на основе Extras в intent, и при выборе не первого фрагмента, а второго или третьего...
Есть небольшая проблема - нужно найти индекс элемента в стринговом массиве с помощью IndexOfВот кусок моего кода: