Customizer Selective Refresh wird nicht ordnungsgemäß mit dem gespeicherten Wert aktualisiert

Ich war einige Tage dabei und habe sogar einige Fragen, Anleitungen und den Quellcode nachgeschlagen. Etwas ist für mich einfach falsch, aber ich kann es nicht genau herausfinden.

Ziel: Ich muss ein selektives Reload für ein bestimmtes Element auf der Seite verwenden, wenn sich der Wert geändert hat.

Problem: Wenn ich eine Customizer-Einstellung ändere, wird sie durch die eigene Ajax-function von WordPress gesendet. Ich sehe jedoch keine Möglichkeit, diese function oder verwandte functionen anzuhängen, um zu überprüfen, ob die Anforderung zuerst verarbeitet wurde, bevor der Teil der Seite aktualisiert wurde, den ich aktualisieren möchte.

Ich habe auch bemerkt, dass es jedes Mal, wenn ich das Konsolenfenster auf Netzwerkaktivität überprüfe, im Grunde eine Race-Bedingung gibt, bei der der Ajax fast neben der Aktualisierung ausgetriggers wird.

Nehmen wir zum Beispiel an, dass der Wert in der database 2 ist und ich ihn in 4 ändere. Der Callback bei der selektiven Aktualisierung return GetOption("logo_alignment", true); gibt 2 zurück und der erwartete Wert ist 4.

PHP Control-Objekt zum Rendern seines Callbacks:

 "refresh" => array( "selector" => ".main-menu", "render_callback" => function() { // return main_menu(true); return GetOption("logo_alignment", true); } ) 

GetOption-function:

 function GetOption($option, $debug = false) { $customizerOptions = _object(apply_filters("customize_changeset_data", array())); if (isset($customizerOptions->{$option})) { // var_dump("Customizer $option found as ".$customizerOptions->{$option}); return $customizerOptions->{$option}; } else { return null; } } 

Das Javascript:

 (function ($) { wp.customize("logo_alignment", function(value) { value.bind(function(newval) { console.log("Logo Alignment: "+newval); }); value.bind("saved", function() { console.log("Saved!"); }) this.selectiveRefresh.bind("render-partials-response", function(response) { // Issue it partially here. The response of the triggered event. // However the data has been acquired before the ajax was able to finish updating the database. console.log(response); }); }); })(jQuery); 

Ich kann bestätigen, dass das Steuerelement dem Customizer korrekt hinzugefügt wurde, dass das Steuerelement aktualisiert wird und der neue Wert in der database gespeichert wird.

Irgendwelche Vorschläge oder Hilfe würden sehr geschätzt werden. Wenn weitere Informationen benötigt werden, fragen Sie bitte.

Dies sind die Seiten, auf die ich hingewiesen habe:

Wie wird die partielle und vollständige Seitenaktualisierung im selben Abschnitt des Customizers gemischt?

Wie implementiere ich eine selektive Aktualisierung mit einer Anpassungseinstellung?

Customize Changesets Technical Design Decisions

Selective Refresh in the Customizer

https://github.com/WordPress/WordPress/blob/master/wp-includes/js/customize-selective-refresh.js

Solutions Collecting From Web of "Customizer Selective Refresh wird nicht ordnungsgemäß mit dem gespeicherten Wert aktualisiert"