如何将特定用户(WooCommerce登录而不是WordPress管理页面登录)重定向到特定页面

时间:2016-10-19 作者:viki

我正在开发一个woocommerce网站,用户只购买了一种产品。他/她应该在登录时自动重定向到该产品页面。因此,如果有50个客户,我希望他们在登录后被重定向到50个不同的页面

1 个回复
最合适的回答,由SO网友:Benoti 整理而成

您可以在函数中使用过滤器“login\\u redirect”,以创建您需要验证用户角色、检查订单并获取订单中的产品id的功能。然后,您将能够获取此产品的永久链接并重定向用户。

举个小例子,正如你所说的,他们只能购买一种产品,这是可行的,

add_filter( \'login_redirect\', \'login_customer_redirect\', 10, 3 );

function login_customer_redirect($redirect_to, $request, $user){

  if ( isset( $user->roles ) && is_array( $user->roles ) ) {

    if ( in_array( \'administrator\', $user->roles ) ) {
        // redirect them to the default place
        return $redirect_to;
    }
    //check for customers
    elseif ( in_array( \'customer\', $user->roles ) ) {

        $user_order = new WC_Order($user->ID);
        $items = $user_order->get_items();

        foreach ($items as $item) {
            $product_id = $item[\'product_id\'];
        }
        $redirect_to = get_permalink($product_id);

        return $redirect_to;
    } else {
        return home_url();
    }
  } else {
    return $redirect_to;
  }
}