wp_set_comment_cookies() │ WP 3.4.0
Устанавливает куки (имя, почту, сайт), которые используются для идентификации неавторизованного пользователя при комментировании.
Возвращает
null
.
Использование
wp_set_comment_cookies( $comment, $user );
$comment(WP_Comment) (обязательный)
Объект комментария.
$user(объект) (обязательный)
Объект автора комментария.
Функция не будет ничего делать, если указанный пользователь существует. Это делается для того, чтобы куки хранились только для неавторизованных комментаторов.
$cookies_consent(true/false)
Дал ли согласие автор комментария сохранять куки.
Default: true
Примеры
#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 );
Добавить свой пример
Список изменений
С версии 3.4.0
Введена.
С версии 4.9.6
The $cookies_consent parameter was added.
Код wp_set_comment_cookies() wp set comment cookies
WP 6.7.2
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 );
}
Cвязанные функции