Как добавить пользовательские поля в форму комментария?
Здравствуйте!
У меня возникла проблема с добавлением пользовательских полей в форму комментария на моем сайте WordPress. Я хотел бы, чтобы пользователи могли оставить дополнительную информацию при оставлении комментария, например, свое имя и номер телефона. Я нашел несколько решений в Интернете, но пока не смог их успешно реализовать.
Можете ли вы помочь мне с этим? Мне нужно знать, как добавить пользовательские поля в форму комментария и сохранить их значение в базе данных WordPress. Вот пример кода, который я использую:
function add_custom_fields() {
$name = $_POST['name'];
$phone = $_POST['phone'];
$comment_id = get_comment_ID();
add_comment_meta($comment_id, 'name', $name);
add_comment_meta($comment_id, 'phone', $phone);
}
add_action('comment_post', 'add_custom_fields');
Код должен сохранять введенные значения полей 'name' и 'phone' при оставлении комментария. Однако, когда я проверяю комментарии в административной панели WordPress, эти значения отсутствуют.
Буду очень благодарен, если кто-нибудь сможет подсказать, что я делаю не так и как исправить эту проблему.
Заранее спасибо за помощь!
Ответы:
Проблема, с которой вы столкнулись, связана с неправильным использованием функций для добавления пользовательских полей в форму комментария и сохранения их значений в базе данных WordPress.
Вам нужно использовать функции, предоставляемые WordPress для работы с комментариями и метаданными комментариев. Вот исправленный код, который вы можете использовать для достижения вашей цели:
function add_custom_fields($comment_id) {
$name = $_POST['name'];
$phone = $_POST['phone'];
add_comment_meta($comment_id, 'name', $name);
add_comment_meta($comment_id, 'phone', $phone);
}
add_action('comment_post', 'add_custom_fields');
В этом коде я удалил строку $comment_id = get_comment_ID();, так как аргумент функции add_custom_fields уже предоставляет ID комментария. Значения полей 'name' и 'phone' получаются из массива $_POST, как вы уже делали в своем исходном коде. Далее, функции add_comment_meta используются для сохранения значений полей в базе данных.
Убедитесь, что вы используете этот исправленный код, сохраните его в файле functions.php вашей темы WordPress, и пользовательские поля должны успешно добавляться и сохраняться в базе данных при оставлении комментария.
Надеюсь, это поможет вам решить вашу проблему. Если у вас возникнут еще вопросы, не стесняйтесь задавать!
С уважением,
[Ваше имя]