PHP 按钮上的登录身份验证控制



需要在我的wp网站的按钮上设置登录控件。按钮的代码如下所示:

$enable_redirect = get_field('redirect_to_offer') ? get_field('redirect_to_offer') : array('');
        echo'<a href="' . esc_url(get_field('url')) . '" target="_blank" class="btn btn-color btn-deal show-coupon-code" data-target="#discount-modal" data-clipboard-text="' . esc_attr(get_field('coupon_code')) . '" data-redirect="' . $enable_redirect[0] . '">' . fw_ssd_get_option('show-code-text') . '</a>';
    }

我的目标是检查单击该按钮的用户是否登录:

if ( function_exists('um_profile_id') && !um_profile_id() && get_field('registered_members_only') ) {
wp_redirect(home_url('login/'));
exit;
}

但是我不知道应该把控制器代码放在哪里。F1请。

由于您的按钮 URL 是外部的,因此从头开始更改按钮 URL 似乎是一个更好的选择(如评论中所述(:

$enable_redirect = get_field( 'redirect_to_offer' ) ? get_field('redirect_to_offer') : array( '' );
if ( function_exists( 'um_profile_id' ) && ! um_profile_id() && get_field( 'registered_members_only' ) ) {
    $button_url = home_url( 'login/' );
} else {
    $button_url = get_field( 'url' );
}
echo sprintf( '<a href="%1$s" target="_blank" class="btn btn-color btn-deal show-coupon-code" data-target="#discount-modal" data-clipboard-text="%2$s" data-redirect="%3$s">%4$s</a>'
    esc_url( $button_url ),
    esc_attr( get_field( 'coupon_code' ) ),
    esc_attr( $enable_redirect[0] ),
    fw_ssd_get_option( 'show-code-text' )
);

登录状态定义最终按钮 URL。

注意:我在 other 中使用了占位符替换和 sprintf() 以使其更易于阅读。

最新更新