Support

Account

Home Forums Add-ons Gallery Field Delete All Images In Gallery At Once Reply To: Delete All Images In Gallery At Once

  • I’ve rewritten a little bit to also delete the images from the media library

    functions.php

    function azrClearButton( $field ) {
    		global $post;
    		echo '<p style="text-align:right"><a href="#" class="acf-button button button-primary acf-gallery-clear" data-postid="'.$post->ID.'">Delete all Images</a></p>';
    	}
    	add_action('acf/render_field/type=gallery', 'azrClearButton', 10, 1 );
    	
    	function azrDeleteImagesFromGallery() {		
    
    		?>
    		<script type="text/javascript">
    			(function($) {
    				var azr_TemplateDir = "<?php bloginfo('template_directory') ?>"
    				$('.acf-gallery-clear').click(function() {
    					console.log('test');
    					var postid = $(this).data('postid');
    					$.ajax({ 
    					    type: 'post', 
    					    url: azr_TemplateDir+'/ajax/delete-gallery.ajax.php',
    					    data: {'postid': postid}, 
    					    dataType: 'json',
    						success: function (data) { 
    							location.reload();
    						}
    					});
    				});
    			
    			})(jQuery);	
    		</script>
    		<?php
    	}
    	add_action('acf/input/admin_footer', 'azrDeleteImagesFromGallery');
    

    AJAX FILE

    require('../../../../wp-load.php');
    global $post;
    $postid = $_POST['postid'];
    $args = array(
    	'post_type' => 'attachment',
    	'posts_per_page' => -1,
    	'post_status' => 'any',
    	'post_parent' => $postid
    ); 
    $attachments = get_posts($args);
    foreach($attachments as $attachment) :
    	wp_delete_attachment($attachment->ID, true );
    endforeach;