wp_set_comment_cookies

Устанавливает куки (имя, почту, сайт), которые используются для идентификации неавторизованного пользователя при комментировании.

Хуки из функции:
comment_cookie_lifetime
Возвращает

NULL – ничего.

Использование

wp_set_comment_cookies( $comment, $user );
$comment(WP_Comment) (обязательный)
Объект комментария.
$user(объект) (обязательный)

Объект автора комментария.

Ничего не делает если указанный в $user пользователь существует… В этот параметр можно передавать текущего пользователя и если он определился, то функция ничего не будет делать.

Примеры

#1 Установка куков комментатора

Вообще в WordPress такие куки устанавливаются при публикации комментария, через событие

do_action( 'set_comment_cookies', $comment, $user );

в файле wp-comments-post.php

Но в этом примере мы установим их отдельно, например когда мы публикуем комментарий не через файл wp-comments-post.php, а как-то по-своему…

$user = wp_get_current_user();
$comment = get_comment( $id = 255 );

wp_set_comment_cookies( $comment, $user );

Код из


wp-includes/comment.php

WP 4.7.2

<?php
function wp_set_comment_cookies($comment, $user) {
	if ( $user->exists() )
		return;

	/**
	 * Filters the lifetime of the comment cookie in seconds.
	 *
	 * @since 2.8.0
	 *
	 * @param int $seconds Comment cookie lifetime. Default 30000000.
	 */
	$comment_cookie_lifetime = apply_filters( 'comment_cookie_lifetime', 30000000 );
	$secure = ( 'https' === parse_url( home_url(), PHP_URL_SCHEME ) );
	setcookie( 'comment_author_' . COOKIEHASH, $comment->comment_author, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure );
	setcookie( 'comment_author_email_' . COOKIEHASH, $comment->comment_author_email, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure );
	setcookie( 'comment_author_url_' . COOKIEHASH, esc_url($comment->comment_author_url), time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure );
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *