2015-05-19 3 views
2

Я пытаюсь перенаправить пользователя после регистрации Woocommerce. Я пробовал все, и он не работает.Переадресация Woocommerce после регистрации

Я пробовал некоторые методы, найденные в Интернете, но они не работали ...

Когда я изменяю «MyAccount» другому Permalink он просто зависает при нажатии кнопки регистр .. не знаю, почему.

wp_safe_redirect(apply_filters('woocommerce_registration_redirect', wp_get_referer() ? wp_get_referer() : wc_get_page_permalink('welcome')) 

Я даже попробовал с идентификатором страницы

wp_safe_redirect(apply_filters('woocommerce_registration_redirect', wp_get_referer() ? wp_get_referer() : wc_get_page_permalink('1072')) 

Любая помощь?

ответ

7

Принятый ответ не работает для меня. То, что сработало для меня это:

// After registration, logout the user and redirect to home page 
function custom_registration_redirect() { 
    wp_logout(); 
    return home_url('/'); 
} 
add_action('woocommerce_registration_redirect', 'custom_registration_redirect', 2); 
+1

Это тоже работало для меня – shahar

+0

Это не удастся, если вы отключите Woocommerce –

1

Вы хотите использовать фильтр, как это:

function plugin_registration_redirect() { 
    return home_url('/page-to-show'); 
} 

add_filter('registration_redirect', 'plugin_registration_redirect'); 

Или, в частности к коду:

function plugin_registration_redirect() { 
    $url = wp_get_referer() ? wp_get_referer() : wc_get_page_permalink('welcome'); 
    return $url; 
} 

add_filter('registration_redirect', 'plugin_registration_redirect'); 
+1

Ничего себе .. после нескольких часов поиска решения, которое сработало. Спасибо!!! –

1

WP WooCommerce Перенаправление является WordPress плагин для перенаправления вашего сайта WooCommerce после зарегистрируйтесь или авторизуйтесь! Вы можете установить любую настраиваемую страницу или настраивать переадресацию в соответствии с ролью пользователя.

Вы можете установить регистрацию пользователя и зарегистрировать страницу перенаправления без каких-либо знаний о пробках на своем веб-сайте WooCommerce. Ваш клиент сокращает время для использования этого плагина и легко получает свое место назначения.

Я разработал плагин для этой проблемы. Также дается реферат необработанного кода для перенаправления без какого-либо плагина.

//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); 

Если вы чувствуете удобство работы с плагином или без кода? Вы можете скачать и установить мой плагин "WP WooCommerce Redirect"

1

Важное обновление (работает на последней версии 3.2.x)


Сначала woocommerce_registration_redirectпредставляет собой фильтр крючок, но НЕ крюк действия.

Фильтр крючок всегда, по крайней мере один аргумент и всегда требуют, чтобы вернуть что-то. Это может быть главный аргумент функции (первый) или какое-то нестандартное значение.

Правильный протестировано и функциональный код:

add_filter('woocommerce_registration_redirect', 'custom_redirection_after_registration', 10, 1); 
function custom_redirection_after_registration($redirection_url){ 
    // Change the redirection Url 
    $redirection_url = get_home_url(); // Home page 

    return $redirection_url; // Always return something 
} 

код идет в function.php файл вашей активной темы ребенка (или темы) ...


Некоторых общих перенаправления URLs используются в WooCommerce:

  • Получить "Home" URL страницы: $redirection_url = get_home_url();
  • Получить "Магазин" URL страницы: $redirection_url = get_permalink(wc_get_page_id('shop'));
  • Получить "Корзину" page Url: $redirection_url = wc_get_cart_url();
  • Получить страницу "Оформить заказ" Адрес электронной почты: $redirection_url = wc_get_checkout_url();
  • Получить «Моя учетная запись» или регистрация URL страницы:
    $redirection_url = get_permalink(wc_get_page_id('myaccount'));
  • Получить другую должность или страницы по ID: $redirection_url = get_permalink($post_id);
    (где $post_id является идентификатор записи или страницы)
  • Получить должность или страниц путь (пример): $redirection_url = home_url('/product/ninja/');
0

Добавить этот фильтр в функции темы файла.

function filter_woocommerce_registration_redirect($var) { 
    // make filter magic happen here... 
    return get_page_link(3598); // 3598 id page id. 
}; 

Добавить фильтр:

add_filter('woocommerce_registration_redirect', 
    'filter_woocommerce_registration_redirect', 10, 1); 
0

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

function custom_user_registration_redirect() { 
return home_url('/'); 
} 
add_action('woocommerce_registration_redirect', 'custom_user_registration_redirect', 2); 
Смежные вопросы