Перед публикацией этого вопроса я пробовал решение, размещенное здесь https://support.woothemes.com/hc/en-us/articles/202828575-Redirect-to-a-custom-page-after-logging-in
Мне нужно перенаправить пользователя на конкретную страницу продукта после регистрации.
Вход для перенаправления, показанный на этом сайте, сработал для меня.
Но редирект регистрации не работает.
Я использую twentysixteen тему с woocommerce.
Любая помощь???
Ниже код работал как шарм. Предложено ….
add_filter('woocommerce_login_redirect', 'wcs_login_redirect'); function wcs_login_redirect( $redirect ) { $redirect = '/product/pay-to-book'; return $redirect; } add_action( 'register_form', 'hiddern_redirect_url' ); function hiddern_redirect_url() { ?> <input type="hidden" name="redir_post_register" value="<?php echo '/product/pay-to-book'; ?>" /> <?php } add_filter ( 'woocommerce_registration_redirect', 'redirect_post_registration'); function redirect_post_registration( $redirect ) { if ( $_POST['redir_post_register'] ) { $redirect = $_POST['redir_post_register']; } return $redirect; }
Сначала вам нужно добавить скрытое поле в регистрационную форму, которая может содержать URL-адрес, в который вы хотите перенаправить регистрацию пользователя. Ниже код поможет вам в этом:
<?php add_action( 'register_form', 'hiddern_redirect_url' ); function hiddern_redirect_url() { ?> <input type="hidden" name="redir_post_register" value="<?php echo get_site_url(); ?>" /> <?php } ?>
Затем, используя woocommerce_registration_redirect
вы можете изменить URL перенаправления по умолчанию на то, что вы только что установили выше. См. Код ниже:
add_filter ( 'woocommerce_registration_redirect', 'redirect_post_registration'); function redirect_post_registration( $redirect ) { if ( $_POST['redir_post_register'] ) { $redirect = $_POST['redir_post_register']; } return $redirect; }
Вам нужно добавить оба вышеописанных фрагмента кода в файл functions.php вашей темы. Также вам нужно изменить <?php echo get_site_url(); ?>
<?php echo get_site_url(); ?>
в первом фрагменте кода к URL-адресу продукта, который вы хотите.