Вопрос по передаче данных в Democracy Poll
Добавил текстовое поле к голосованию. При голосовании нужно сохранить его значение в таблице БД wp_democracy_log.
Подскажите, пожалуйста, как передать его значение серверному скрипту для записи в БД?
Я так понял, за передачу данных со страницы AJAX-запросом отвечает файл democracy.js
Там есть раздел // AJAX
$.post( Dem.ajaxurl, data,
function( respond ){...}
Я добавил к объекту data переменную userNum
data.userNum = $('#dem_userNum') && $('#dem_userNum').val() ? parseInt($('#dem_userNum').val()) : 0
Теперь не могу найти, какой из скриптов получает data и как оттуда выдернуть интересующую меня userNum.
Вроде, запись логов происходит в class-DemPoll.php, в protected function add_logs().
return $wpdb->insert( $wpdb->democracy_log, array(
'ip' => $ip,
'qid' => $this->id,
'aids' => $this->votedFor,
'userid' => (int) get_current_user_id(),
'date' => current_time('mysql'),
'expire' => $this->get_expire_time(),
'ip_info' => Democracy_Poll::ip_info_format( $ip ),
'userNum' => ?????,
) );
В БД добавил поле userNum типа INT к таблице wp_democracy_log
Туплю уже 3 дня (((
Разобрался! Оказывается, по умолчанию был подключен не democracy.js, а democracy.min.js )))
А я правки делал в democracy.js.
В итоге, поменял код в class-Democracy_Poll.php
wp_enqueue_script( 'democracy', DEMOC_URL .'js/democracy.js', array(), DEM_VER, true )
и, на всякий случай
echo "\n<!--democracy-->\n" .'<script type="text/javascript">'. file_get_contents( DEMOC_PATH .'js/democracy.js' ) .'</script>'."\n";
и получил в class-DemPoll.php переменную $_REQUEST['userNum']
дальше - уже дело техники
Установил сниффер, определил, что запрос получает admin-ajax.php, но data.userNum из democracy.js туда не передается:
В class-Democracy_Poll.php есть метод _sanitize_request_vars добавил туда строку кода:
function _sanitize_request_vars(){ return array( 'act' => isset($_POST['dem_act']) ? $_POST['dem_act'] : false, 'pid' => isset($_POST['dem_pid']) ? absint( $_POST['dem_pid'] ) : false, 'aids' => isset($_POST['answer_ids']) ? wp_unslash( $_POST['answer_ids'] ) : false, // добавлено для передачи значения userNum 'userNum' => isset($_POST['userNum']) ? absint( $_POST['userNum'] ) : 0, );Но результат прежний. Похоже, туда тоже не доходит $_POST['userNum']