是否将用户ID附加到出站链接?

时间:2020-01-09 作者:Todd L

请容忍我,因为我是个新手。是否有方法将用户ID(也称为登录用户ID)附加到任何外部链接。例如,一个登录的用户单击一个链接,然后该链接附加该用户的ID。我尝试了WP current user,但在获取该用户ID以将其添加到我的报告中时遇到问题。

1 个回复
SO网友:Andy Mardell

您应该能够使用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="%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"]A link to a page[/link_with_id]

这将输出以下html:

<a href="https://domain.com/link?user_id=1">A link to a page</a>

或者,如果用户未登录,它将输出:

<a href="https://domain.com/link">A link to a page</a>

相关推荐

如何在联系人表单7中获取当前帖子ID wpcf7_BEVER_SEND_MAIL挂钩操作

我试图在发送之前处理CF7数据,并使用ACF函数更新当前帖子自定义字段,但我无法获取表单发送的当前帖子ID。我还尝试从全局$post变量获取ID,并获取\\u queryed\\u object\\u ID(),但也没有成功。你知道我怎样才能得到发送表单的帖子的ID吗?function dv_wpcf7_handle_form_data($wpcf7) { $submission = WPCF7_Submission::get_instance(); if