2012-08-14 69 views
4

我已經搜索了這個答案,使用插件,仍然沒有任何作品。 我希望我的網站用戶在登錄/註冊後重定向到主頁。Woocommerce/WordPress的 - 重定向用戶登錄主頁

目前,用戶登錄並重定向到我的帳戶頁面。

Woocommerce提供此代碼,但它沒有爲我工作:

/* 
* goes in theme functions.php or a custom plugin 
* 
* By default login goes to my account 
**/ 
add_filter('woocommerce_login_widget_redirect', 'custom_login_redirect'); 

function custom_login_redirect($redirect_to) { 
    $redirect_to = 'http://anypage.com'; 
} 

我也試圖用彼得的重定向插件,但由於woocommerce繞過WP-login.php中這是行不通的。

的思考?

+0

任何人都有這個想法嗎? – Whit 2012-08-20 16:29:27

回答

1

修復它們只會在您使用登錄窗口小部件時提供作品。所有你需要做的是將用戶重定向登錄到您的主頁後是添加到您的登錄表單:

<input type="hidden" name="redirect" value="<?php echo get_home_url(); ?>" /> 
+1

只要您在用戶登錄之前知道要重定向的頁面,就可以。這通常是在用戶登錄後,在檢查角色和其他詳細信息之後做出的決定。 – Jason 2013-02-22 13:10:57

+0

這工作就像一個魅力。沒有黑客,沒有插件。謝謝! – cfx 2013-12-27 21:54:01

-1

也包括這對使用WP-login.php中標準的WordPress登錄表單登錄:

add_filter('login_redirect', 'custom_login_redirect'); 

我使用這個過濾器和你給出的一個過濾器函數,並捕獲用戶可以登錄的兩個位置(WP和WC)。

也只是注意到了明顯的問題。你在你的過濾功能有這樣的:

$redirect_to = 'http://anypage.com'; 

,但你需要這樣的:

return 'http://anypage.com'; 

$ return_url從以前的過濾器傳遞的,所以你可以檢查一下,再決定是否去改變它。

編輯:

其實,我需要糾正這一些。它看起來像woocommerce_login_widget_redirect過濾器用於設置窗口小部件登錄窗體中的重定向參數。這意味着只有當用戶登錄時而不是纔會觸發並顯示小部件登錄表單。它不能被用來決定在哪裏向用戶發送他們在登錄後。

的WP login_redirect過濾火災在用戶已登錄,並且可以修改登錄表單,使您可以發送任何redirect_to的網址將用戶重定向到其他頁面。

此外,WooCommerce登錄窗口小部件不處理您認爲它會執行的登錄。登錄過程通過woocommerce-ajax.php中的AJAX進行處理。您會在那裏看到重定向網址未通過woocommerce_login_widget_redirect過濾器傳遞,因此無法修改。我打算把它作爲WooCommerce的pull請求提出,因爲我相信它應該被過濾掉。

https://github.com/woothemes/woocommerce/pull/2508

3

您可以下載http://wordpress.org/extend/plugins/peters-login-redirect/和窗口小部件登錄替換此。PHP

<input type="hidden" name="redirect_to" class="redirect_to" value="<?php echo $redirect_to; ?> 

<input type="hidden" name="redirect_to" class="redirect_to" value="<?php echo site_url('/wp-content/plugins/peters-login-redirect/wplogin_redirect_control.php/'); ?>" /> 

這樣,你可以使用彼得斯登錄重定向到重定向使用woocommerce登錄窗體部件全球和特定用戶。

請確保您更改了「使用外部重定向文件,如果您使用插件(如Gigya)繞過常規WordPress重定向過程(並且只允許一個固定的重定向URL),請將其設置爲」是「。將網址重定向到%s「設置爲」YES「。

希望這會有所幫助。

0

使用上的functions.php這個代碼

add_action('wp_logout','go_home'); 
function go_home(){ 
    wp_redirect(home_url()); 
    exit(); 
} 
0

這樣做:

轉到管理> Woocommerce>設置>常規

查找 「客戶帳戶」 下的「 Cart,Checkout and Accounts「

取消選中「防止客戶訪問WordPress管理員」

保存更改並測試!

3

使用此代碼上的functions.php

add_filter('woocommerce_login_redirect', 'wc_login_redirect'); 
function wc_login_redirect($redirect_to) { 
    $redirect_to = 'https://www.google.co.in/'; 
    return $redirect_to; 
} 
0

您可以設置根據用戶角色重定向。下面給出了重定向的代碼,並且我爲入門級用戶開發了一個WooCommerce Login or Register Redirect plugin,也沒有爲技術或非程序員開發。

//Redirect users to custom URL based on their role after login 

function wp_woo_custom_redirect($redirect, $user) { 

// Get the first of all the roles assigned to the user 
$role = $user->roles[0]; 
$dashboard = admin_url(); 
$myaccount = get_permalink(wc_get_page_id('my-account')); 

if($role == 'administrator') { 

    //Redirect administrators to the dashboard 
    $admin_redirect = get_option('admin_redirect'); 
    $redirect = $admin_redirect; 
} elseif ($role == 'shop-manager') { 

    //Redirect shop managers to the dashboard 
    $shop_manager_redirect = get_option('shop_manager_redirect'); 
    $redirect = $shop_manager_redirect; 
} elseif ($role == 'customer' || $role == 'subscriber') { 

    //Redirect customers and subscribers to the "My Account" page 
    $customer_redirect = get_option('customer_redirect'); 
    $redirect = $customer_redirect; 
} else { 

    //Redirect any other role to the previous visited page or, if not available, to the home 
    $redirect = wp_get_referer() ? wp_get_referer() : home_url(); 
} 
return $redirect; 
} 
add_filter('woocommerce_login_redirect', 'wp_woo_custom_redirect', 10, 2);