I’m using ajax to post the form data. In the end I want to redirect to homepage. I’m trying following code, it does not work. It returns error 302.
How can I redirect in the following function? Thanks.

add_action('wp_ajax_nopriv_custom_register', 'custom_register');
add_action('wp_ajax_custom_register', 'custom_register');

function custom_register(){

    //process

    wp_redirect( home_url() );
    exit;
}

2 Answers
2

The AJAX request runs in the background. Redirects here do not affect the main page. And 302 is not an error, it is just a status code.

Your AJAX response should return either the URL and the status code to the calling page or just a number like 1. Then you handle the redirect in the calling page:

jQuery( document ).ready( function( $ ) {
    var url="<?php echo home_url(); ?>";
    $( '#ajaxtrigger' ).on( 'click',
        function() {
            $.post( ajaxurl, {}, function( response ) {
                if ( 1 == response )
                    top.location.replace(url);
            });
            return false;
        }
    );
});

Leave a Reply

Your email address will not be published. Required fields are marked *