Guardando opciones de api de wordpress con ajax,

He estado luchando con este problema desde hace bastante tiempo. Tengo una página de opciones para un tema y una sola opción registrada.

He estado tratando de actualizar la opción a través de ajax cada vez que un usuario presiona el botón Guardar, aquí está mi código.

JS:

       function save_main_options_ajax() {

        $('.main-options-form').submit( function () { 

            var b       =  $(this).serialize(),
                optdata =  { action : "wp_ajax_main_options_save", data: b };

            $.post( ajaxurl, b, function (response) {
                if (response == 1 ) { alert('sucess'); }
                else { alert(optdata);}
            });
            return false;               
        });
    }
save_main_options_ajax();

El php:

 function main_options_save_ajax() { 

        check_ajax_referer('_wpnonce', '_wpnonce' );

        $data = $_POST;
        unset($data['option_page'], $data['action'], $data['_wpnonce'], $data['_wp_http_referer']);


        if ( update_option('main_options', $data ) )
        { die(1); }
        else { die (0); }           
}
add_action('wp_ajax_main_options_save', 'main_options_save_ajax' );

La respuesta que veo en Firebug es 0. No estoy seguro de lo que me falta aquí, lo he intentado con algunas variaciones, pero nada parece funcionar.

Respuestas a la pregunta(2)

Su respuesta a la pregunta