Khi bạn xóa sản phẩm trong woocommerce và bạn muốn xóa luôn cả hình ảnh trong thư viện, theo cách thông thường là bạn sẽ làm là xóa thủ công từng ảnh, hay sử dụng plugins scan để xóa rất mất thời, mà độ chính xác chưa chắc đã cao thì giải pháp đơn giản mà Themewp chia sẻ dưới đây sẽ dành cho bạn cho bạn giải quyết một cách nhanh chóng và an toàn.
Bạn mở tập tin functions.php của Theme mà bạn đang sử dụng và dán đoạn mã dưới đây vào trước khi xóa sản phẩm. Đoạn code dưới đây sẽ giúp bạn có thể xóa toàn bộ các file đính kèm, các hình ảnh ngay sau khi thực hiện việc xóa sản phẩm, xóa bài viết trong wordpress. Việc này sẽ giúp mọi người có thể giảm được dung lượng web, dọn được các file không cần thiết.
/*Xóa ảnh khi xóa sản phẩm*/ function delete_all_attached_media( $post_id ) { if ( get_post_type($post_id) == "product" ) { $attachments = get_attached_media( '', $post_id ); foreach ($attachments as $attachment) { wp_delete_attachment( $attachment->ID, 'true' ); } } } add_action( 'before_delete_post', 'delete_all_attached_media' );
Chức năng của đoạn code này nó sẽ lấy toàn bộ các file đính kèm với $post_id được chỉ định, sau đó nó sẽ lấy id các file đính kém đó và xóa bằng hàm wp_delete_attachment. Sau đó sẽ hook vào vị trí trước khi thực hiện xóa post.
Rất đơn giản phải không nào. Bạn kiểm tra và thử nghiệm nhé. Chúc bạn thành công !