Процент при пополнении

  • Автор темы Lis1988
  • Дата начала
Lis1988
Местный
Сообщения
32
Реакции
5
Подскажите пожалуйста, как сделать так чтобы при пополнении к примеру на 100 руб был бонус 50%, при пополнении 200 руб бонус 100 % при пополнении 500 руб бонус 200%
 
AriCosmo
Участник
Сообщения
515
Реакции
115
Skype
Воспользуйтесь поиском сайта, данный вопрос 40 раз расписывался!
 
TyTuKeT
Участник
Сообщения
219
Реакции
37
Lis1988 написал(а):
Подскажите пожалуйста, как сделать так чтобы при пополнении к примеру на 100 руб был бонус 50%, при пополнении 200 руб бонус 100 % при пополнении 500 руб бонус 200%
Можно так попробовать.

PHP:
    $serebroproc = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) );
   
    if($procent = $ik_payment_amount >= 0.01 and $ik_payment_amount < 100) { 
    $insertproc = $serebroproc + ($serebroproc * 50/100); //50% от 0.01 копеики до 100 рублей.
    }elseif ($ik_payment_amount >= 100 and $ik_payment_amount < 200) {
    $insertproc = $serebroproc + ($serebroproc * 100/100); //100% от 100 рублей до 200 рублей.
    }elseif ($ik_payment_amount >= 200 and $ik_payment_amount < 500) {
    $insertproc = $serebroproc + ($serebroproc * 200/100); //200% от 200 рублей до 500 рублей.
    }elseif ($ik_payment_amount >= 500 and $ik_payment_amount < 50000) {
    $insertproc = $serebroproc + ($serebroproc * 200/100); //200% от 500 рублей до 50000 рублей.
    }else{
    $insertproc = 0;
}

//в запросе в базе изменить money_b = money_b + '$serebro' на money_b = money_b + '$serebroproc'
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
TyTuKeT написал(а):
Можно так попробовать.

PHP:
    $serebroproc = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) );
 
    if($procent = $ik_payment_amount >= 0.01 and $ik_payment_amount < 100) {
    $insertproc = $serebroproc + ($serebroproc * 50/100); //50% от 0.01 копеики до 100 рублей.
    }elseif ($ik_payment_amount >= 100 and $ik_payment_amount < 200) {
    $insertproc = $serebroproc + ($serebroproc * 100/100); //100% от 100 рублей до 200 рублей.
    }elseif ($ik_payment_amount >= 200 and $ik_payment_amount < 500) {
    $insertproc = $serebroproc + ($serebroproc * 200/100); //200% от 200 рублей до 500 рублей.
    }elseif ($ik_payment_amount >= 500 and $ik_payment_amount < 50000) {
    $insertproc = $serebroproc + ($serebroproc * 200/100); //200% от 500 рублей до 50000 рублей.
    }else{
    $insertproc = 0;
}

//в запросе в базе изменить money_b = money_b + '$serebro' на money_b = money_b + '$serebroproc'
Можно проще:

$serebro = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) ); //ну это есть по умолчанию в мерчанте.

$serebroproc = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) );

if($ik_payment_amount >= 100){
$serebro = $serebroproc * 1.5;
}
if($ik_payment_amount >= 200){
$serebro = $serebroproc * 2;
}
if($ik_payment_amount >= 500){
$serebro = $serebroproc * 3;
}

и никаких запросов и прочего больше менять нигде не надо..
 
TyTuKeT
Участник
Сообщения
219
Реакции
37
skroliks написал(а):
Можно проще:

$serebro = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) ); //ну это есть по умолчанию в мерчанте.

$serebroproc = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) );

if($ik_payment_amount >= 100){
$serebro = $serebroproc * 1.5;
}
if($ik_payment_amount >= 200){
$serebro = $serebroproc * 2;
}
if($ik_payment_amount >= 500){
$serebro = $serebroproc * 3;
}

и никаких запросов и прочего больше менять нигде не надо..
при таком раскладе нужно удалить будет

PHP:
   $serebro = intval($ins_sum <= 0.01) ? ($serebro + ($serebro * 0.5) ) : $serebro;
   $serebro = intval($ins_sum >= 0.01) ? ($serebro + ($serebro * 0.25) ) : $serebro;
иначе накидает процентов
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
TyTuKeT написал(а):
при таком раскладе нужно удалить будет

PHP:
   $serebro = intval($ins_sum <= 0.01) ? ($serebro + ($serebro * 0.5) ) : $serebro;
   $serebro = intval($ins_sum >= 0.01) ? ($serebro + ($serebro * 0.25) ) : $serebro;
иначе накидает процентов
Ну это у тебя оно такого вида, у меня:
$serebro = intval($ins_sum <= 0.01) ? ($serebro) : $serebro;
У всех по разному.. Так что - да, кто будет код забирать - не забудьте поменять аналогичную строку на ту, которую я дал или вообще удалить :)
 
Lis1988
Местный
Сообщения
32
Реакции
5
skroliks написал(а):
Можно проще:

$serebro = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) ); //ну это есть по умолчанию в мерчанте.

$serebroproc = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) );

if($ik_payment_amount >= 100){
$serebro = $serebroproc * 1.5;
}
if($ik_payment_amount >= 200){
$serebro = $serebroproc * 2;
}
if($ik_payment_amount >= 500){
$serebro = $serebroproc * 3;
}

и никаких запросов и прочего больше менять нигде не надо..
А после каких строк вставлять?
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
После:

# Зачисляем баланс
$serebro = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) );
$db->Query("SELECT insert_sum FROM db_users_b WHERE id = '{$user_id}' LIMIT 1");
$ins_sum = $db->FetchRow


Дальше вставляешь:

serebroproc = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) );
$serebro = intval($ins_sum <= 0.01) ? ($serebro) : $serebro;

if($ik_payment_amount >= 100){
$serebro = $serebroproc * 1.5;
}
if($ik_payment_amount >= 200){
$serebro = $serebroproc * 2;
}
if($ik_payment_amount >= 500){
$serebro = $serebroproc * 3;
}

 
Lis1988
Местный
Сообщения
32
Реакции
5
skroliks написал(а):
После:

# Зачисляем баланс
$serebro = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) );
$db->Query("SELECT insert_sum FROM db_users_b WHERE id = '{$user_id}' LIMIT 1");
$ins_sum = $db->FetchRow


Дальше вставляешь:

serebroproc = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) );
$serebro = intval($ins_sum <= 0.01) ? ($serebro) : $serebro;

if($ik_payment_amount >= 100){
$serebro = $serebroproc * 1.5;
}
if($ik_payment_amount >= 200){
$serebro = $serebroproc * 2;
}
if($ik_payment_amount >= 500){
$serebro = $serebroproc * 3;
}
1.5, 2, 3 это как понимаю процент
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #10
Ну да, 50%, 100% и 200%
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #12
Если с этим кодом писать 0.5, то получится вообще только половина..
Чтобы было понятнее можно написать так:
if($ik_payment_amount >= 100){
$serebro = $serebroproc + $serebroproc * 0.5;
}

но зачем усложнять, если и без этого правильно? :)
 
APTEMOH
Участник
Сообщения
889
Реакции
256
Telegram
APTEMOH
  • #13
Промежутки можно запилить так:

Код:
// до 100 рублей +20%, от 101-500 50% от 501+ 100%
       if ($ins_sum >= 1 AND $ins_sum <= 100) {
          $serebro = ($serebro + ($serebro * 0.2) );
       }

       if ($ins_sum >= 101 AND $ins_sum <= 500) {
          $serebro = ($serebro + ($serebro * 0.5) );
       }

       if ($ins_sum >= 501 AND $ins_sum <= 10000) {
          $serebro = ($serebro + ($serebro * 1) );
       }
$ins_sum - думаю понимаете что это :)

Ну и всеми любимый бонус:

Код:
//при первом пополнений +50%!
      $serebro = intval($ins_sum <= 0.01) ? ($serebro + ($serebro * 0.5) ) : ($serebro + ($serebro * 0) ) ;
 
kondor
Участник
Сообщения
27
Реакции
1
  • #14
подскажите кто нибудь,человек пополнил 170руб.первый раз, получил 25500 серебра,только как ?че то я мозг сломал.
вот код :
$serebro = intval($ins_sum <= 0.01) ? ($serebro + ($serebro * 0.5) ) : $serebro;
$serebro = intval($ins_sum >= 99.99) ? ($serebro + ($serebro * 2.0) ) : $serebro;
$add_tree = ( $ik_payment_amount >= 499.99) ? 0 : 0;
$lsb = time();
$to_referer = ($serebro * 0.10);
 
Kojo
Участник
Сообщения
286
Реакции
53
  • #15
kondor написал(а):
подскажите кто нибудь,человек пополнил 170руб.первый раз, получил 25500 серебра,только как ?че то я мозг сломал.
вот код :
$serebro = intval($ins_sum <= 0.01) ? ($serebro + ($serebro * 0.5) ) : $serebro;
$serebro = intval($ins_sum >= 99.99) ? ($serebro + ($serebro * 2.0) ) : $serebro;
$add_tree = ( $ik_payment_amount >= 499.99) ? 0 : 0;
$lsb = time();
$to_referer = ($serebro * 0.10);
вот так:))
$serebro = intval($ins_sum <= 0.01) ? ($serebro + ($serebro * 0.5) ) : $serebro;
 
kondor
Участник
Сообщения
27
Реакции
1
  • #16
Kojo написал(а):
вот так:))
$serebro = intval($ins_sum <= 0.01) ? ($serebro + ($serebro * 0.5) ) : $serebro;
в процентах посчитал это 150%выдало
 
Kojo
Участник
Сообщения
286
Реакции
53
  • #17
kondor написал(а):
в процентах посчитал это 150%выдало
Ну всё, правильно. 25500 серебра это 150% при пополнении 170 руб
 
kondor
Участник
Сообщения
27
Реакции
1
  • #18
Kojo написал(а):
Ну всё, правильно. 25500 серебра это 150% при пополнении 170 руб
так а в коде разве 150% выставлено?
 
Kojo
Участник
Сообщения
286
Реакции
53
  • #19
kondor
Участник
Сообщения
27
Реакции
1
  • #20
Последнее редактирование:
Сверху