Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Изменить баланс на личном счете (wp-recall)

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: внести изменения в php файл кликом на другой странице
Enot
Отправлено: 22 Сентября, 2016 - 19:46:07
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




Здравствуйте, подскажите как при нажатии на кнопку/ссылку изменить баланс пользователя.

Более развернуто:

Сайт на вордпресс, подключен плагин личного кабинета WP-Recall , в котором присутствует виджет "личный счет пользователя". Его можно пополнять и с него уже оплачивать покупки.
Хочу сделать акцию для пользователей, посредством денежного бонуса на их личный счет. Так вот этот счет должен пополнятся, когда сам пользователь нажмет на какую-то кнопку или ссылку. То есть нажал кнопку - хоп на счет +100 к текущему.
php код виджета, который выводится в сайдбаре сайта находится по стандартному пути вп-контент/плагинс/wp-recall/php file.php

Насколько я понял, то эта функция в файле phpfile.php отвечает за вывод в сайдбаре:
PHP:
скопировать код в буфер обмена
  1. function rcl_get_html_usercount(){
  2.     global $user_ID,$rmag_options;
  3.    
  4.     $id = rand(1,100);
  5.  
  6.     $usercount = '<div class="rcl-widget-balance" id="rcl-widget-balance-'.$id.'">';
  7.  
  8.     $user_count = rcl_get_user_balance();
  9.     if(!$user_count) $user_count = 0;
  10.    
  11.    
  12.  
  13.     $usercount .= '<div class="usercount" > <p class="usercount-text">Денег на вашем счёте</p><p class="usercount-num">'.$user_count.' '.rcl_get_primary_currency(1).'</p></div>';
  14.  
  15.  
  16.     $usercount = apply_filters('count_widget_rcl',$usercount);
  17.  
  18.     if($rmag_options['connect_sale']!='')
  19.         $usercount .= "<!-- <div class='rcl-toggle-form-balance'>"
  20.                 . "<a class='recall-button rcl-toggle-form-link' href='#'>"
  21.                 .__("Deposit",'wp-recall')
  22.                 ."</a>
  23.            </div>
  24.            <div class='rcl-form-balance'>              
  25.                ".rcl_form_user_balance(array('idform'=>$id))."
  26.            </div> -->";
  27.  
  28.     $usercount .= '</div>';
  29.  
  30.     return $usercount;
  31. }


Саму кнопку "пополнения" нужно сделать на совершенно другой страничке. Как заставить кнопку обратится к нужному пхп файлу и добавить +100 (например) к текущему значению ?

Пробовал добавить в этом же файле
PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['btn'])) $user_count = $user_count + 100;

но как-то не получилось)

Если кто поможет буду очень благодарен)
 
 Top
Enot
Отправлено: 24 Сентября, 2016 - 15:12:06
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




Готов заплатить за подсказку)
 
 Top
Строитель Модератор
Отправлено: 24 Сентября, 2016 - 15:20:58
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Enot пишет:
Как заставить кнопку обратится к нужному пхп файлу и добавить +100 (например) к текущему значению ?
Путь в action="" надо задать корректно.
(Добавление)
Enot, по такому принципу
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $user_count = 100;
  4.  
  5. if (isset($_POST['btn'])) {
  6.     $btn = $_POST['btn'];
  7.     $user_count += $btn;
  8.    
  9.     echo $user_count;
  10. }
  11.  
  12. ?>
  13.  
  14. <form action="" method="post">
  15.     <input type="text" name="btn" />
  16.     <input type="submit" value="ok"/>
  17. </form>
  18.  
  19.  

(Отредактировано автором: 24 Сентября, 2016 - 16:56:51)

 
 Top
Enot
Отправлено: 25 Сентября, 2016 - 21:13:37
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




Строитель, да, то что нужно. Только значение личного счета менялось до первой перезагрузки страницы. Решил сделать тоже самое, но через обращение к базе данных.

PHP:
скопировать код в буфер обмена
  1. function rcl_get_user_balance($user_id=false){
  2.     global $wpdb,$user_ID;
  3.     if(!$user_id) $user_id = $user_ID;
  4.     $balance = $wpdb->get_var($wpdb->prepare("SELECT user_balance FROM ".RMAG_PREF."users_balance WHERE user_id='%d'",$user_id));
  5.    
  6.     $btn = $balance + 100;
  7.     if (isset($_POST['btn'])) {
  8.  
  9.         $btn = $balance + 100;
  10.         $balance = $wpdb->insert( RMAG_PREF .'users_balance',
  11.     array( 'user_id' => $user_id, 'user_balance' => $btn));
  12.  
  13.         return $wpdb->update(RMAG_PREF .'users_balance',
  14.             array( 'user_balance' => $btn ),
  15.             array( 'user_id' => $user_id )
  16.         );
  17.        
  18.     }
  19.  
  20.     return $balance;
  21. }


Сначала взял баланс пользователя, потом добавил нужную мне сумму и вернул это в бд.

Строитель, дай свои реквизиты, скину на пиво) (Если с Украины и есть карта привата, то лучше ее)
 
 Top
Строитель Модератор
Отправлено: 25 Сентября, 2016 - 22:17:17
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Enot, отправил реквизиты в ЛС Улыбка
 
 Top
likvidator
Отправлено: 25 Сентября, 2016 - 22:21:35
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


Enot пишет:
Строитель, да, то что нужно. Только значение личного счета менялось до первой перезагрузки страницы. Решил сделать тоже самое, но через обращение к базе данных.

PHP:
скопировать код в буфер обмена
  1. function rcl_get_user_balance($user_id=false){
  2.     global $wpdb,$user_ID;
  3.     if(!$user_id) $user_id = $user_ID;
  4.     $balance = $wpdb->get_var($wpdb->prepare("SELECT user_balance FROM ".RMAG_PREF."users_balance WHERE user_id='%d'",$user_id));
  5.    
  6.     $btn = $balance + 100;
  7.     if (isset($_POST['btn'])) {
  8.  
  9.         $btn = $balance + 100;
  10.         $balance = $wpdb->insert( RMAG_PREF .'users_balance',
  11.     array( 'user_id' => $user_id, 'user_balance' => $btn));
  12.  
  13.         return $wpdb->update(RMAG_PREF .'users_balance',
  14.             array( 'user_balance' => $btn ),
  15.             array( 'user_id' => $user_id )
  16.         );
  17.        
  18.     }
  19.  
  20.     return $balance;
  21. }


Сначала взял баланс пользователя, потом добавил нужную мне сумму и вернул это в бд.

Строитель, дай свои реквизиты, скину на пиво) (Если с Украины и есть карта привата, то лучше ее)

А вы тут нигде не видите абуза?
 
 Top
Enot
Отправлено: 25 Сентября, 2016 - 22:39:34
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




likvidator, какого абуза? Растерялся
 
 Top
likvidator
Отправлено: 25 Сентября, 2016 - 22:45:35
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


Enot пишет:
likvidator, какого абуза? Растерялся

могу послать while(1) постов и получить баланс 100*while(1)
while(1)~бесконечность

(Отредактировано автором: 25 Сентября, 2016 - 22:46:19)

 
 Top
Enot
Отправлено: 25 Сентября, 2016 - 22:50:15
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




likvidator, насчет этого, так
CODE (html):
скопировать код в буфер обмена
  1. <input type="submit" name="btn" onclick="this.style.display='none';" value="ok"/>
- это все, что я смогу придумать)

Знаю, что не самым лучшим образом, может подкинете идею?) Радость
 
 Top
likvidator
Отправлено: 25 Сентября, 2016 - 22:52:47
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


Enot пишет:
likvidator, насчет этого, так
CODE (html):
скопировать код в буфер обмена
  1. <input type="submit" name="btn" onclick="this.style.display='none';" value="ok"/>
- это все, что я смогу придумать)

Знаю, что не самым лучшим образом, может подкинете идею?) Радость

поле в базе,иной флажок,аля "kit_start" - перед получением бонуса проверяем: 1/true - хрен тебе,а не бонус; 0/false - держи,братиш. Получили - ставим 1/true
 
 Top
Enot
Отправлено: 25 Сентября, 2016 - 22:56:26
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




likvidator пишет:
поле в базе,иной флажок,аля "kit_start" - перед получением бонуса проверяем: 1/true - хрен тебе,а не бонус; 0/false - держи,братиш. Получили - ставим 1/true


Можно языком для новичков? Радость Про "хрен тебе" и "держи, братишь" понял. Только куда и как вписывать не понял)
 
 Top
likvidator
Отправлено: 25 Сентября, 2016 - 22:59:08
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


Enot пишет:
likvidator пишет:
поле в базе,иной флажок,аля "kit_start" - перед получением бонуса проверяем: 1/true - хрен тебе,а не бонус; 0/false - держи,братиш. Получили - ставим 1/true


Можно языком для новичков? Радость Про "хрен тебе" и "держи, братишь" понял. Только куда и как вписывать не понял)

например, добавляем поле в таблицу с пользователями и оперируем им. Дефолт - 0, получил - 1. Т.е. для конкретного юзера берем значение из этого поля и смотрим,получал/не получал

(Отредактировано автором: 25 Сентября, 2016 - 22:59:45)

 
 Top
Enot
Отправлено: 25 Сентября, 2016 - 23:09:52
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




likvidator, походу понял. Только там будет несколько акций, для каждой из них разные условия. И, насколько я понял, если он получит вознаграждение за одну акцию, то уже не сможет за другую
 
 Top
likvidator
Отправлено: 25 Сентября, 2016 - 23:13:23
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


Enot пишет:
likvidator, походу понял. Только там будет несколько акций, для каждой из них разные условия. И, насколько я понял, если он получит вознаграждение за одну акцию, то уже не сможет за другую

сделайте таблицу с акциями: пользователь - номер акции - состояние приза. Заносите туда данные,оттуда чекайте,не знаю - ваш проект,ваша архитектура и идеи. Я заметил абуз - сообщил,все. У самого забот хватает.

(Отредактировано автором: 25 Сентября, 2016 - 23:18:11)

 
 Top
Enot
Отправлено: 25 Сентября, 2016 - 23:28:39
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




likvidator, да, хорошо, в любом случае спасибо за совет)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB