2017-01-02 2 views
0

Ich habe diese Aktion, die die Crop-Werte abruft, wenn ich ein Bild im Bildeditor beschneiden und den Wert im DB-Datensatz aktualisieren (mit update_field(). So kann ich den Wert der aktualisieren Feld in der Datenbank, aber ich weiß nicht, wie man den Wert des Feldes im Nachhereditor setzt. Der Feldwert bleibt leer, und wenn der Benutzer den Posten aktualisiert, wird der Wert mit Nullwert überschrieben. Wie kann ich tun?Wordpress ACF Feld Update nach dem Abrufen des Wertes

add_action('wp_save_image_editor_file', 'save_crop_data'); 
function save_crop_data(){ 
    $attachment_id = $_REQUEST['postid']; 
    $parent = get_post_ancestors($attachment_id); 
    $post_id = $parent[0]; 
    update_field('crop_data', $_REQUEST['history'], $post_id); 
    return $saved; 
} 

Antwort

0

PHP

add_action('admin_enqueue_scripts', 'portfolio_admin_script'); 
function portfolio_admin_script() { 
    global $post_type; 
    if('portfolio' == $post_type) 
     wp_enqueue_script('portfolio-admin-script', get_stylesheet_directory_uri() . '/portfolio.js', array('jquery', 'media-editor'), '', true); 
} 

JAVASCRIPT (Datei portfolio.js)

jQuery(function ($) { 
    $(document).ajaxComplete(function (event, xhr, settings) { 
     //intercept the ajax event on media library close 
     if (typeof settings.data === 'string' && /action=get-post-thumbnail-html/.test(settings.data) && xhr.responseJSON && typeof xhr.responseJSON.data === 'string') { 
      var crop_data_stored = decodeURIComponent(getCookie("crop_values")); 
      crop_data_stored = crop_data_stored.replace(/\\"/g, '"'); 
      if (crop_data_stored != '' && $('#acf-field-crop_data').val() == '') { 
       jQuery('#acf-field-crop_data').val(crop_data_stored); 
       deleteCookie("crop_values"); 
      } 
     } 
    }); 

    function getCookie(name) { 
     var value = "; " + document.cookie; 
     var parts = value.split("; " + name + "="); 
     if (parts.length == 2) return parts.pop().split(";").shift(); 
    } 
    function deleteCookie(name) { 
     document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:01 GMT;"; 
    }; 
}); 
Verwandte Themen