jQuery.fn.upload_image = function( button ) {
var button_id = button.attr('id');
var field_id = button_id.replace( '_button', '' );
// If the media frame already exists, reopen it.
if ( file_frame ) {
file_frame.open();
return;
}
// Create the media frame.
file_frame = wp.media.frames.file_frame = wp.media({
title: jQuery( this ).data( 'uploader_title' ),
button: {
text: jQuery( this ).data( 'uploader_button_text' ),
},
multiple: false
});
// When an image is selected, run a callback.
file_frame.on( 'select', function() {
var attachment = file_frame.state().get('selection').first().toJSON();
jQuery("#"+field_id).val(attachment.id);
jQuery("#listingimage img").attr('src',attachment.url);
jQuery( '#listingimage img' ).show();
jQuery( '#' + button_id ).attr( 'id', 'remove_image_button' );
jQuery( '#remove_image_button' ).text( 'Remove image' );
});
// Finally, open the modal
file_frame.open();
};
jQuery('#listingimage').on( 'click', '#upload_image_button', function( event ) {
event.preventDefault();
jQuery.fn.upload_listing_image( jQuery(this) );
});
jQuery('#listingimage').on( 'click', '#remove_image_button', function( event ) {
event.preventDefault();
jQuery( '#upload_image' ).val( '' );
jQuery( '#listingimage img' ).attr( 'src', '' );
jQuery( '#listingimage img' ).hide();
jQuery( this ).attr( 'id', 'upload_image_button' );
jQuery( '#upload_image_button' ).text( 'Set image' );
});
});