Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Как избежать подмены рубрики через консоль браузера при публикации записи в WP Recall
5ответ(ов) в теме
shepot
не в сети 4 года
На сайте с 18.06.2018
Участник
Тем 12
Сообщения 34
1
19:24
Версия WP-Recall: 16.18.6

Эта тема в продолжение

Вы не можете просматривать опубликованные ссылки

Скорректируйте меня пожалуйста, если не прав.

Чтобы узнать, какую рубрику хочет привязать автор к записи в рамках хука rcl_preview_post делаю так: $post_string = implode($postdata['cats']['category']); и выдает ID рубрики, хотя по сути на момент публикации это не совсем ID, а value из формы. Проблема (или нет) в том, что с консоли браузера можно поменять это значение вручную и система "съест".

В случае, если измененный ID не существует, то запись попадает в Uncategorized, однако в админке видно, что запись не связана ни с одной рубрикой.

Почему пока что для меня это сырой вариант: в связи с моей задачей "проверять уникальность заголовка записи в выбранной рубрике". Пользователь через консоль браузера может подменить ID рубрики и тут не поможет даже проверка на то, существует такая рубрика или нет. Ведь подменить он может на ID существующей рубрики.

Может быть есть иной вариант определить, какую таксономию реально собирается привязать пользователь к записи?

Рубрики у меня в виде селекта:

Вы не можете просматривать опубликованные ссылки

--

Извините, если для этого вопроса нужно было продолжить в первой теме. Не прочувствовал еще. Поскольку вроде бы логично, что вопрос отдельный.

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18653
2
12:26

Здравствуйте.

Я не представляю как можно этому помешать - любые значения из скрытых полей можно подменить. Только если например это не закодированные значения. но и тогда в основном по простому - base64 например их кодировать, а на стороне php возвращать в числа.
Но если человек умеет через f12 делать пакости - не проще ли тогда административно вопросы решать? Не пропускать такие записи, накладывать ограничения на учётку...

1
shepot
не в сети 4 года
На сайте с 18.06.2018
Участник
Тем 12
Сообщения 34
3
20:11

Спасибо. К размышлению далее.

Может быть стоит подключить к этому делу jQuery и давать дополнительную проверку типа такого let catIndex = $('select option:selected').index(); и сопоставлять с тем порядком, в каком рубрики указаны в настройках формы публикации в админке? Хотя, это тоже так себе.

Другой вариант, чтобы в value="X" была генерируемая произвольная комбинация, непонятная с фронтенда. Это должно быть надежно. Да, в моем случае мне стоит этим заморочиться.

0
Preci
не в сети 3 недели
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
4
20:17

А в чем проблема?

Вы на стороне php проверяете есть ли такая рубрика и если ее нет - возвращаете ошибку, не публикуя запись.

Если рубрика есть - сверяете title с записями из указанной рубрики и решаете публиковать или нет

0
Андрей CS
не в сети 3 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16914
5
09:34

Если в настройках формы указаны определенные рубрики, то вы можете в своей функции сравнивать какие именно категории разрешены с той категорией что была передана. Для этого надо получить данные полей формы:

$formFields = new Rcl_Public_Form_Fields( array(
	'post_type'	 => 'post',
	'form_id'	 => 1
) );

затем получите данные отдельного поля

$field = $formFields->get_field( 'taxonomy-category' );

и уже смотрите, что находится внутри $field, если не ошибаюсь, перечень указанных ID терминов находится в
$field['values']

1
Вы не имеете права на публикацию сообщений в этой теме