Добавить идентификатор пользователя к выходящей ссылке?

Вопрос или проблема

Пожалуйста, поймите, я новичок. Есть ли способ добавить 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, выполните следующие шаги:

  1. Откройте файл functions.php вашей темы и добавьте туда предоставленный PHP-код. Этот код определяет функцию создания шорткода.
  2. Используйте шорткод в нужной странице или посте, чтобы генерировать ссылки с добавленным ID пользователя.
  3. Если вами важно отслеживать действия неавторизованных пользователей, следует применить другой механизм, так как для неавторизованных пользователей значение ID будет равным ‘0’.

Таким образом, данное решение позволяет аккуратно и динамично добавлять нужную информацию в URL схему, сохраняя разграничение доступа для разных категорий пользователей, что особенно полезно в аналитике и отслеживании пользовательского поведения на сайте.

Оцените материал
Добавить комментарий

Капча загружается...