Я хочу перенаправить пользователя на требуемый URL-адрес после отправки формы на веб-сайте?

#php #woocommerce

#php #woocommerce

Вопрос:

Я хочу перенаправить пользователя на этот URL «https://rosaryshop-online.com/?page_id=99 «. После нажатия кнопки регистрации.

Он просто остается там, и после регистрации отображается пустая страница, код работает нормально. Все, что я хочу, это перенаправить пользователя на другую страницу

 function 
bbloomer_separate_registration_form() {
if ( is_admin() ) return;
if ( is_user_logged_in() ) return;
ob_start();


do_action( 'woocommerce_before_customer_login_form' );

?>
  <form method="post" class="woocommerce-form woocommerce-form-register register" <?php do_action( 'woocommerce_register_form_tag' ); ?> >

     <?php do_action( 'woocommerce_register_form_start' ); ?>

     <?php if ( 'no' === get_option( 'woocommerce_registration_generate_username' ) ) : ?>

        <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
           <label for="reg_username"><?php esc_html_e( 'Username', 'woocommerce' ); ?> <span class="required">*</span></label>
           <input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="username" id="reg_username" autocomplete="username" value="<?php echo ( ! empty( $_POST['username'] ) ) ? esc_attr( wp_unslash( $_POST['username'] ) ) : ''; ?>" /><?php // @codingStandardsIgnoreLine ?>
        </p>

     <?php endif; ?>

     <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
        <label for="reg_email"><?php esc_html_e( 'Email address', 'woocommerce' ); ?> <span class="required">*</span></label>
        <input type="email" class="woocommerce-Input woocommerce-Input--text input-text" name="email" id="reg_email" autocomplete="email" value="<?php echo ( ! empty( $_POST['email'] ) ) ? esc_attr( wp_unslash( $_POST['email'] ) ) : ''; ?>" /><?php // @codingStandardsIgnoreLine ?>
     </p>

     <?php if ( 'no' === get_option( 'woocommerce_registration_generate_password' ) ) : ?>

        <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
           <label for="reg_password"><?php esc_html_e( 'Password', 'woocommerce' ); ?> <span class="required">*</span></label>
           <input type="password" class="woocommerce-Input woocommerce-Input--text input-text" name="password" id="reg_password" autocomplete="new-password" />
        </p>

     <?php else : ?>

        <p><?php esc_html_e( 'A password will be sent to your email address.', 'woocommerce' ); ?></p>

     <?php endif; ?>

     <?php do_action( 'woocommerce_register_form' ); ?>

     <p class="woocommerce-FormRow form-row">
        <?php wp_nonce_field( 'woocommerce-register', 'woocommerce-register-nonce' ); ?>
        <button type="submit" class="woocommerce-Button woocommerce-button button woocommerce-form-register__submit" name="register" value="<?php esc_attr_e( 'Register', 'woocommerce' ); ?>"><?php esc_html_e( 'Register', 'woocommerce' ); ?>  </button>
         
     
     </p>

     <?php do_action( 'woocommerce_register_form_end' ); ?>

  </form>
 

Ответ №1:

Вы можете использовать перехват registration_redirect, как описано в справочнике WordPress.

 add_filter( 'registration_redirect', 'my_redirect_page' );
function my_redirect_page( $registration_redirect ) {
    return home_url('/my-account');
}
 

Комментарии:

1. мне это не помогло. возможно, я помещаю код не в то место. Также URL-адрес страницы моей учетной записи » rosaryshop-online.com/?page_id=99 » .

2. Вы можете поместить его в свою тему functions.php . Кроме того, просто измените «/ my-account» на любую строку, которую вы хотите использовать в качестве пути.