За последние 24 часа нас посетили 17468 программистов и 1700 роботов. Сейчас ищет 1591 программист ...

Изменить баланс на личном счете (wp-recall)

Тема в разделе "PHP для новичков", создана пользователем Enot, 22 сен 2016.

  1. Enot

    Enot Новичок

    С нами с:
    22 сен 2016
    Сообщения:
    6
    Симпатии:
    0
    Здравствуйте, подскажите как при нажатии на кнопку/ссылку изменить баланс пользователя.

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

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

    Если кто поможет буду очень благодарен)
     
  2. Silver Soft

    Silver Soft Активный пользователь

    С нами с:
    5 авг 2011
    Сообщения:
    17
    Симпатии:
    1
    HTML:
    1. <a class='recall-button rcl-toggle-form-link' href='#'>
    в поле href введи ссылку на страницу, где будет производится расчет или же вешай событие и аяксом меняй

    PHP:
    1.  rcl_get_user_balance();
    возвращает баланс, который хранится скорей всего в БД, значит и менять значение нужно в БД

    в общем, начни с азов изучать PHP)

    http://www.intuit.ru/studies/courses/42/42/info

    http://phpfaq.ru/newbie/na_tanke
     
  3. Enot

    Enot Новичок

    С нами с:
    22 сен 2016
    Сообщения:
    6
    Симпатии:
    0
    @Silver Soft , я пробовал через яакс и в href вписывал url php-файла с выполнением функции типа key=value, но в этом файле есть спец функция !is_admin, а вордпресс ее считывает как ошибку синтаксиса.

    Если там через бд, то как можно к бд обратится через клик по кнопке или ссылке?

    Да, сейчас активно учу php, но как раз эту проблему именно сейчас и не могу решить, а ее нужно срочно. Я уже даже готов заплатить кому-то, кто помог бы)
     
  4. Enot

    Enot Новичок

    С нами с:
    22 сен 2016
    Сообщения:
    6
    Симпатии:
    0
  5. Silver Soft

    Silver Soft Активный пользователь

    С нами с:
    5 авг 2011
    Сообщения:
    17
    Симпатии:
    1
    если не аяксом, то в href пишешь куда обратится к примеру href="/refill/"
    далее, открываешь этот файл и пишешь там пополнение, в WP за БД отвечает $wpdb, к примеру


    PHP:
    1. $data = array('name'=> 'Иванов', 'balans'=>2000);
    2. $id = get_current_user_id();
    3. if ($id >0) $result = $wpdb->update('users', $data, array('id'=>$id));
    текущему пользователю меняет имя и баланс...
    тут нужно знать структуру таблицы, чтобы точно поля написать)
     
  6. EvilCoder

    EvilCoder Новичок

    С нами с:
    21 июл 2017
    Сообщения:
    8
    Симпатии:
    2
    В wp-recall за обновление баланса отвечает функция rcl_update_user_balance. Значит, изменить пользователю баланс можно как-то вот так:

    PHP:
    1. $user_id = get_current_user_id(); //Получаем текущий id пользователя
    2. $sum = 100; //Сумма которую нужно прибавить пользователю. Можно так же указать отрицательное число и отнять
    3. $user_count = rcl_get_user_balance($user_id)+$sum; //Прибавляем пользователю указанную сумму и сохраняем результат в переменную
    4. $comment = 'Комментарий к операции со счётом';
    5.  
    6. rcl_update_user_balance($user_count, $user_id, $comment); //Обновляем счёт пользователя