wp_get_current_commenter() WP 2.0.4

Отримує ім’я, пошту, URL поточного коментатора з куків. Використовується для форми коментарів.

Дані беруться з куків, які додаються неавторизованим користувачам під час коментування.

Очікує, що дані у куках вже очищені. Іноді є сенс перевірити дані, що повернулися.

Хуки з функції

Повертає

Массив. Масив даних у вигляді:

Array(
	[comment_author] => Kama
	[comment_author_email] => [email protected]
	[comment_author_url] => https://example.com/mypage
)

Використання

wp_get_current_commenter();

Приклади

0

#1 Демонстрація того, що отримує функція

Отримаємо значення полів форми коментування для неавторизованого користувача.

$commenter = wp_get_current_commenter();

print_r($commenter);
/*
Array(
	[comment_author] => Kama
	[comment_author_email] => [email protected]
	[comment_author_url] => https://example.com/mypage
)
*/
0

#2 Виведення полів форми коментування

Цей приклад показує як вивести поля: Ім’я, Пошта та Сайт із попереднім заповненням даних якщо вони є в куках:

// Отримаємо дані з куков
$commenter = wp_get_current_commenter();

// визначимо поля, які потрібно вивести
$req = get_option( 'require_name_email' ) ? ' <span class="required">*</span>' : '';

$aria_req = $req? " aria-required='true'" : '';
$html_req = $req? "required='required'" : '';

$fields = [
	'author' => '<p class="comment-form-author">' . '<label for="author">Ім'я' . $req . '</label>'.
				'<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30" maxlength="245"' . $aria_req. $html_req. ' /></p>',
	'email' => '<p class="comment-form-email"><label for="email">Email' . $req . '</label>'.
				'<input id="email" name="email" type="text" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30" maxlength="100" aria-describedby= "email-notes"'. $aria_req. $html_req. ' /></p>',
	'url' => '<p class="comment-form-url"><label for="url">Сайт</label> ' .
				'<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" maxlength="200" /></ ',
];

// виводимо наявні поля
foreach( $fields as $field ){
	echo $field;
}

нотатки

список змін

З версії 2.0.4Введено.

Код wp_get_current_commenter() WP 6.0.2

function wp_get_current_commenter() {
	// Cookies повинні бутизахищені.

	$comment_author = '';
	if ( isset ( $_COOKIE [ 'comment_author_' . COOKIEHASH ] ) ) {
		$comment_author = $_COOKIE[ 'comment_author_' . COOKIEHASH];
	}

	$comment_author_email = '';
	if ( isset ( $_COOKIE [ 'comment_author_email_' . COOKIEHASH ] ) ) {
		$comment_author_email = $_COOKIE[ 'comment_author_email_' . COOKIEHASH];
	}

	$comment_author_url = '';
	if ( isset ( $_COOKIE [ 'comment_author_url_' . COOKIEHASH ] ) ) {
		$comment_author_url = $_COOKIE['comment_author_url_' . COOKIEHASH];
	}

	/**
	 * Filters the current commenter's name, email, and URL.
	 *
	 * @ Since 3.1.0
	 *
	 * @param array $comment_author_data {
	 * An array of current commenter variables.
	 *
	 * @type string $comment_author Назва поточного коментаря, або empty string.
	 * @type string $comment_author_email Електронна адреса поточного коментаря, або empty string.
	 * @type string $comment_author_url URL-адреса з поточного коментаря, або empty string.
	 * }
	 */
	return apply_filters( 'wp_get_current_commenter', compact( 'comment_author', 'comment_author_email', 'comment_author_url' ) );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *