Почему не работает пример из темы о собственных полях в комментариях ?

Пробую реализовать вывод произвольных полей как описано в этом посте.

У меня есть дочерняя тема. В ней я создаю файл single-companies.php
В котором подключаю приведенный пример.

<?php get_template_part('template-parts/test'); ?>

test.php

<?php

// Добавляем поля для всех пользователей
add_action( 'comment_form_logged_in_after', 'extend_comment_custom_fields' );
add_action( 'comment_form_after_fields', 'extend_comment_custom_fields' );
function extend_comment_custom_fields() {

	echo '<p class="comment-form-title">'.
		'<label for="title">' . __( 'Comment Title' ) . '</label>'.
		'<input id="title" name="title" type="text" size="30"/></p>';

	echo '<p class="comment-form-rating">'.
		'<label for="rating">'. __('Rating') . '<span class="required">*</span></label>
			  <span class="commentratingbox">';

	for( $i=1; $i <= 5; $i++ ){
		echo '
		<label class="commentrating" style="display:inline-block;">
			<input type="radio" name="rating" id="rating" value="'. $i .'"/> '. $i .'
		</label>';
	}

	echo'</span></p>';
}

// Проверяем, заполнено ли поле "Рейтинг"
add_filter( 'preprocess_comment', 'verify_extend_comment_meta_data' );
function verify_extend_comment_meta_data( $commentdata ) {

	// ничего не делаем если это ответ на комментарий
	if ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] === 'replyto-comment' ) {
		return $commentdata;
	}

	if ( empty( $_POST['rating'] ) || ! (int)$_POST['rating'] ) {
		wp_die( __( 'Error: You did not add a rating. Hit the Back button on your Web browser and resubmit your comment with a rating.' ) );
	}

	return $commentdata;
}

add_action( 'comment_post', 'save_extend_comment_meta_data' );
function save_extend_comment_meta_data( $comment_id ){

	if( !empty( $_POST['phone'] ) ){
		$phone = sanitize_text_field($_POST['phone']);
		add_comment_meta( $comment_id, 'phone', $phone );
	}

	if( !empty( $_POST['title'] ) ){
		$title = sanitize_text_field($_POST['title']);
		add_comment_meta( $comment_id, 'title', $title );
	}

	if( !empty( $_POST['rating'] ) ){
		$rating = intval($_POST['rating']);
		add_comment_meta( $comment_id, 'rating', $rating );
	}

}

Оно замечательно отображает, делает проверку, но в базу данных commentmeta ничего не пишет (Тоесть только базовый комментарий сохраняет). В чём может быть проблема, подскажите, пожалуйста ?

Заметки к вопросу:
BlackStar 2.6 лет назад

Может ли это быть связано с тем что поменялся вывод, comment_post ? do_action( 'comment_post', $comment_id, $commentdata['comment_approved'], $commentdata ); Добавил в дефолтную тему... Таже проблема кастомные поля к комментарию не добавляет.

campusboy 2.6 лет назад

Какая у вас тема?

BlackStar 2.6 лет назад

Тема у меня самопальная. Нашел причину - add_action( 'comment_post', 'save_extend_comment_meta_data' ); Необходимо вызывать только из functions.php Поскольку я всё держал в шаблоне темлейта оно не срабатывало.

campusboy 2.6 лет назад

Ааа, ну это логично smile