malevi
@malevi

Как сделать произвольное поле в комментариях видное и для зарегистрированных пользователей?

с помощью фильтра add_filter('comment_form_defaults', 'add_field'); добавил произвольное поле в форму комментариев. Проблема в том, что это поле видно только незарегистрированным. А должно быть видно всем.

Как сделать так, чтобы его видели и зарегистрированные пользователи?

function wph_add_like_field($default) {
    $commenter = wp_get_current_commenter();
    $default['fields']['email'] .= '
        <p class="like_btn activeCheck"><label><span>Лайк</span><input id="like" name="like" size="30" 
        type="checkbox" checked /></label>
        </p>';
    return $default;
}

//сохранение поля в комментарии
function wph_save_like_field($comment_id) {
    add_comment_meta($comment_id, 'like', $_POST['like']);
}
add_filter('comment_form_defaults', 'wph_add_like_field');
add_action('comment_post', 'wph_save_like_field');
  • Вопрос задан
  • 138 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Для добавления произвольного поля используйте фильтр comment_form_default_fields а не comment_form_defaults. А еще есть фильтр comment_form_fields.

Подробнее: https://core.trac.wordpress.org/browser/tags/4.7/s...

Вот так поле будет доступно над textarea и для гостей, и для авторизованных пользователей:
function additional_fields () {

  echo '<p class="comment-form-rating">';
  echo '<label for="rating">' . __( 'Rating', 'textdomain' ) . '<span class="required">*</span></label>';
  // html вашего инпута тут
  echo '</p>';

}
add_action( 'comment_form_logged_in_after', 'additional_fields' );
add_action( 'comment_form_after_fields', 'additional_fields' );
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы