Создание новых полей комментариев
-
Доброго времени суток всем!
Проблема не нова, но справиться сам не смог, т.к. запутался в названиях классов, вероятно в моей тебе они по другому названы:
Делаю отзывы о компании. Дорабатываю форму комментариев на WordPress 4.9.8.
Добавил новые поля:
— Организация/ФИО/Должность;
— Дата приобретения;
— Описание ранее купленного товара.Вновь-созданные поля прекрасно и красиво выводятся, доступны к заполнению — с этой частью я справился, см.:
https://ukrtehnoservis.com/o-nas/otzyvy-i-kommentarii-o-kompanii/Но, после заполнения и отправки, новые поля не выводятся в виде полноценного комментария (см. тщетные попытки по ссылке выше).
Я нашел информацию о том, что новые поля как-бы не заносятся в базу, но толком пояснений не было.
Вычитал, что вывод новых мета-полей производится в 2 этапа:
получение значений методом: get_comment_meta() с последующим выводом через фильтр comment_text.Но, беда в том, что не нахожу в файле (тема dt-the7) comments.hph ничего подобного. Там есть только:
$commenter = wp_get_current_commenter(); $req = get_option( 'require_name_email' ); $aria_req = ( $req ? " aria-required='true'" : '' ); $required_text = sprintf( ............
и вывод в конце страницы:
<?php comment_form( $comment_form_args ) ?>
Код, который я дописал в дочернюю тему dt-the7-child:
add_filter( 'comment_form_default_fields', 'comment_form_changed_field' ); function comment_form_changed_field( $fields ) { $fields['purchased_machines'] = '<p class="comment-form-comment"><label class="assistive-text" for="purchased_machines">' . __( 'purchased_machines', 'the7mk2' ) . '</label><textarea id="purchased_machines" placeholder="*Что было приобретено у УкрТехноСервис: (Спираль/шнек/силос/др.- укажите характеристики)" name="purchased_machines" cols="45" rows="3" aria-required="true"></textarea></p>'; $fields['purchase_date'] = '<p class="comment-form-comment">' . '<label class="assistive-text" for="purchase_date">' . __( 'purchase_date', 'the7mk2' ) . '</label>' . '<input id="purchase_date" name="purchase_date" type="text" placeholder="* Дата покупки оборудования / (Отслуживший срок)" size="40"/></p>'; return $fields; } add_action( 'comment_post', 'save_extend_comment_meta_data' ); function save_extend_comment_meta_data( $comment_id ) { if ( ! empty( $_POST['purchased_machines'] ) ) { $purchased_machines = sanitize_text_field( $_POST['purchased_machines'] ); add_comment_meta( $comment_id, 'purchased_machines', $purchased_machines ); } if ( ! empty( $_POST['purchase_date'] ) ) { $purchase_date = sanitize_text_field( $_POST['purchase_date'] ); add_comment_meta( $comment_id, 'purchase_date', $purchase_date ); } }
- Тема изменена 5 лет, 5 месяцев назад пользователем . Причина: для оформления кода есть кнопочка code
Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]
- Тема «Создание новых полей комментариев» закрыта для новых ответов.