Вопрос или проблема
Пожалуйста, поймите, я новичок. Есть ли способ добавить ID пользователя, то есть ID вошедшего пользователя, к любой внешней ссылке? Например, вошедший пользователь нажимает на ссылку, и ссылка затем добавляет ID этого пользователя. Я пытался использовать WP current user, но возникли проблемы с получением этого ID пользователя в моем отчете.
Вы можете использовать get_current_user_id()
. Обратите внимание, что он вернет ‘0’, если пользователь не вошел в систему.
<a href="https://example.com/?user_id=<?php echo get_current_user_id(); ?>">Link</a>
Обновление 2: Занялся от скуки, сделал плагин: https://github.com/AndyMardell/append-user-id/releases/tag/v1.0.0-alpha
Скачайте zip и установите 🙂 Отправлено в WordPress, но пока на рассмотрении.
Установка и использование: https://github.com/AndyMardell/append-user-id#installation
Обновление: вы не сможете сделать это без PHP. Но послушайте меня…
1) Добавьте следующий PHP код в файл functions.php
вашей темы:
function prefix_get_current_user_id( $atts, $content, $tag ) {
$atts = array_change_key_case( (array) $atts, CASE_LOWER );
$prefix_atts = shortcode_atts(
array( 'url' => '' ),
$atts,
$tag
);
if ( is_user_logged_in() ) {
$a_open = sprintf(
'<a href="https://wordpress.stackexchange.com/questions/356065/%s?user_id=%s">',
esc_url( $prefix_atts['url'] ),
get_current_user_id()
);
return $a_open . esc_html( $content ) . '</a>';
}
$a_open = sprintf(
'<a href="%s">',
esc_url( $prefix_atts['url'] )
);
return $a_open . esc_html( $content ) . '</a>';
}
function prefix_add_shortcodes() {
add_shortcode( 'link_with_id', 'prefix_get_current_user_id' );
}
add_action( 'init', 'prefix_add_shortcodes' );
2) Отредактируйте содержимое вашего поста/страницы и добавьте следующий шорткод:
[link_with_id url="https://domain.com/link"]Ссылка на страницу[/link_with_id]
Это выведет следующий html:
<a href="https://domain.com/link?user_id=1">Ссылка на страницу</a>
или, если пользователь не вошел в систему, отобразится:
<a href="https://domain.com/link">Ссылка на страницу</a>
Ответ или решение
Теория: В веб-разработке под "добавлением" информация к ссылкам подразумевается процесс, при котором динамические параметры вставляются в URL перед его передачей пользователю. В WordPress это можно сделать с помощью PHP и специальных функций, таких как get_current_user_id()
, которая возвращает идентификатор текущего залогиненного пользователя. Эта функция возвращает ‘0’, если пользователь не авторизован. Таким образом, добавление ID пользователя к ссылкам позволяет отслеживать действия пользователей и собирать статистику.
Пример: В приведенном вами примере действия сводятся к тому, чтобы использовать шорткод WordPress для автоматического добавления ID пользователя к URL ссылки. PHP код, добавленный в файл функции темы (functions.php
), создает шорткод [link_with_id url="URL"]Ссылка[/link_with_id]
. При использовании этого шорткода на странице WordPress, он динамически формирует ссылку, включающую ID пользователя, если пользователь авторизован. В противном случае генерируется простая ссылка без дополнительного параметра.
Применение: Чтобы реализовать данное решение на вашем сайте WordPress, выполните следующие шаги:
- Откройте файл
functions.php
вашей темы и добавьте туда предоставленный PHP-код. Этот код определяет функцию создания шорткода. - Используйте шорткод в нужной странице или посте, чтобы генерировать ссылки с добавленным ID пользователя.
- Если вами важно отслеживать действия неавторизованных пользователей, следует применить другой механизм, так как для неавторизованных пользователей значение ID будет равным ‘0’.
Таким образом, данное решение позволяет аккуратно и динамично добавлять нужную информацию в URL схему, сохраняя разграничение доступа для разных категорий пользователей, что особенно полезно в аналитике и отслеживании пользовательского поведения на сайте.