5ответ(ов) в теме
В форму публикации добавляю произвольное поле input, которое в последующем при публикации поста должно проверятся на уникальность.
Делаю так:
в файле /add-on/publicpost/js/scripts.js в функцию function rcl_publish(e) добавляю следующий код для получения значения требуемого поля:
if(post_type == 'user-doc'){ var chk2 = document.getElementById("unp_2").value; };
затем в той же функции, в массив данных dataString, добавляю переменную chk2, для передачи формы аяксом.
jQuery.ajax({ type: 'POST', data: dataString, dataType: 'json', url: Rcl.ajaxurl,
Далее по моей задумке, аякс отправляет данные в обработчик и уже в обработчике идёт проверка поля "unp_2", как-то так:
$duplicate = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM wp_postmeta WHERE meta_key = 'unp_2' AND meta_value = $unp_value ")); if ($duplicate >= 1) { 'возвращаем ERROR'}..
Вопрос в том, где сам обработчик данной формы, в файле /add-on/publicpost/index.php много функций и какая отвечает за публикацию поста я не пойму.
данные передаются на стороне php в функцию rcl_preview_post и там проверяются, поэтому было бы логично отойти от идеи править js, а также добавить свою проверку именно в этой функции.
Сейчас там нет хука, но в обновлении будет добавлен экшн rcl_preview_post, который будет передавать полученные данные публикации, а уже через него можно будет получить их в свою функцию, проверить и выдать нужный ответ в зависимости от результата проверки.
Вы не имеете права на публикацию сообщений в этой теме