# wp_set_comment_cookies()

URL: https://chugunov.pro/api-wordpress/functions/wp_set_comment_cookies/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 3.4.0.

## Сигнатура

```php
wp_set_comment_cookies( WP_Comment $comment, WP_User $user, bool $cookies_consent = true )
```

## Описание

Устанавливает cookie, используемые для хранения идентификационных данных неавторизованного комментатора. Обычно применяется для отображения предыдущих комментариев этого комментатора, всё ещё находящихся на модерации.

## Параметры

- `$comment` `WP_Comment` — обязательный. Объект комментария.
- `$user` `WP_User` — обязательный. Объект пользователя автора комментария. Пользователь может не существовать.
- `$cookies_consent` `bool` — необязательный, по умолчанию `true`. Согласие автора комментария на хранение cookie.

## Исходный код

Файл: `wp-includes/comment.php:581`

```php
function wp_set_comment_cookies( $comment, $user, $cookies_consent = true ) {
	// If the user already exists, or the user opted out of cookies, don't set cookies.
	if ( $user->exists() ) {
		return;
	}

	if ( false === $cookies_consent ) {
		// Remove any existing cookies.
		$past = time() - YEAR_IN_SECONDS;
		setcookie( 'comment_author_' . COOKIEHASH, ' ', $past, COOKIEPATH, COOKIE_DOMAIN );
		setcookie( 'comment_author_email_' . COOKIEHASH, ' ', $past, COOKIEPATH, COOKIE_DOMAIN );
		setcookie( 'comment_author_url_' . COOKIEHASH, ' ', $past, COOKIEPATH, COOKIE_DOMAIN );

		return;
	}

	/**
	 * Filters the lifetime of the comment cookie in seconds.
	 *
	 * @since 2.8.0
	 * @since 6.6.0 The default `$seconds` value changed from 30000000 to YEAR_IN_SECONDS.
	 *
	 * @param int $seconds Comment cookie lifetime. Default YEAR_IN_SECONDS.
	 */
	$comment_cookie_lifetime = time() + apply_filters( 'comment_cookie_lifetime', YEAR_IN_SECONDS );

	$secure = ( 'https' === parse_url( home_url(), PHP_URL_SCHEME ) );

	setcookie( 'comment_author_' . COOKIEHASH, $comment->comment_author, $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure );
	setcookie( 'comment_author_email_' . COOKIEHASH, $comment->comment_author_email, $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure );
	setcookie( 'comment_author_url_' . COOKIEHASH, esc_url( $comment->comment_author_url ), $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure );
}
```

## История изменений

- 4.9.6 — The $cookies_consent parameter was added.
- 3.4.0 — Introduced.

## Связанные

Использует: [`esc_url`](https://chugunov.pro/api-wordpress/functions/esc_url/), [`home_url`](https://chugunov.pro/api-wordpress/functions/home_url/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_set_comment_cookies/
