AJAX-Aufruf im Backend führt zu einer leeren update_option

In den Admin-Backend-Seiten bekomme ich einige Einstellungen in einem mehrdimensionalen Array gespeichert, aktualisiere sie und speichere sie dann erneut in einer AJAX-Callback-function. Das Problem ist, dass die gespeicherten Einstellungen leer sind, aber wenn ich das Array auf eine andere Option speichere, funktioniert es. Ich koche es auf den Code unten.

public function my_ajax_callback() { $options = get_option('user_manager_options'); // Saves the multidimensional array returned above. Excellent. update_option('test_option', $options); // Has a completely blank value in the database. Terrible and illogical. update_option('user_manager_options', $options); die(); } 

Das macht keinen Sinn und ich habe jetzt Stunden damit verbracht. Ich habe das Array mit mayable_serialize serialisiert, was nicht funktioniert hat.

Solutions Collecting From Web of "AJAX-Aufruf im Backend führt zu einer leeren update_option"

Ich habe herausgefunden, dass bei der Registrierung mit register_setting der zweite Parameter den Namen der zu speichernden und zu aktualisierenden Einstellungen enthält. Der Parameter wird hier übergeben, um ihn außerhalb des Plugins zu aktualisieren. Der AJAX-Callback gilt als außerhalb des Plugins.

Meine Registereinstellungen sind unten und die zweite Option ist die selbe wie die in get_option in meiner Frage. Für die Einstellungen, die ich ändern werde, verwende ich einfach einen anderen Namen.

 register_setting( 'user_manager_group', 'user_manager_options', array($this, 'sanitize') );