Хм. А где в админке мне посмотреть баланс пользователя?
Это из под администратора должно быть видно или из под самого пользователя?
Я смотрю в ХХХ_rmag_users_balance - и там нет записей и не добавляются. Хотя,
-----------
function rcl_add_user_balance( $money, $user_id, $comment = '' ) {
global $wpdb;
$result = $wpdb->insert( RMAG_PREF . 'users_balance', array( 'user_id' => $user_id, 'user_balance' => $money ) );
....
----------
$result = 1
Не понимаю...
Из админки, разумеется, все работает, баланс добавляется и изменяется...
Наверное, проблема в том, что rcl_update_user_balance я вызываю из ajax-обработчика? Там может чего-то не хватать для обращения к БД? (странно, что ошибок нет 🙁 )
Перед вызовом я сохраняю свои данные в свои таблицы - с БД проблем нет...
AndrewIOOO сказал(а)
Наверное, проблема в том, что rcl_update_user_balance я вызываю из ajax-обработчика?
вот и проверьте
if( function_exists( 'rcl_update_user_balance' ))
- в области видимости она или ее не существует. Хотя тогда была бы фатальная ошибка что вы к неизвестной функции обращаетесь...
Описание работы функции
- я проблем у себя в работе с ней не замечал
Вы из вашей ajax функции передаете в rcl_update_user_balance
и дебажите rcl_update_user_balance уже из ajax?
или вы все это время просто вызываете rcl_update_user_balance не из ajax?
тогда вдвойне странно что она получает на вход данные. Данные доходят до wpdb вордпресса и на этом провал. Что-то вы делаете неверно - или дебажите или еще что
Из под ajax'а. Я добавляю строку с вызовом функции, которая пишет в файл передаваемые ей значения... Добавляю уже прямо в в код rcl_update_user_balance, и в лог пишу то, что получает rcl_update_user_balance, а раз в файл пишется, значит вся цепочка отрабатывает... И именно в момент ajax-обращения...
Буду искать. Отпишусь...
Нашёл.
Дело было вообще не в плагине, и ни с его аддонами (в чем собственно я и не сомневался).
А дело в $wpdb, и в том, что я, как уже писал, до вызова функций плагина, обрабатывал свои данные. И т.к. обработка затрагивает несколько таблиц, использовал транзакции, и соответственно, устанавливал SET AUTOCOMMIT = 0;... И, увы,... добавив позднее вызов функций плагина, я не побеспокоился восстановить перед ними SET AUTOCOMMIT = 1; Поэтому запросы, которые они отправляли в БД, выполнялись, но результаты не записывались...
Тему можно не только закрыть, а может и вовсе удалить, ибо она не о плагине.