纯代码实现WooCommerce在删除产品的时候自动删除产品图片

很多人使用woocommerce来创建网上商店B2C、外贸B2B网站,时间长了就会有非常多的产品。那么有些产品滞销了,这时候我们想删除掉产品,删除产品很简单,只需要在产品后台点击删除即可。但是这种删除不会把图片删除,那么不用的图片就会导致我们的网站上存在很多无用的图片。那么我们怎么实现在删除产品的时候也能同时自动把产品图片删除掉那,通过一段代码我们可以实现!

一、删除产品同时删除产品图片代码如下

add_action( 'before_delete_post', 'delete_product_images', 10, 1 );

function delete_product_images( $post_id )
{
    $product = wc_get_product( $post_id );

    if ( !$product ) {
        return;
    }

    $featured_image_id = $product->get_image_id();
    $image_galleries_id = $product->get_gallery_image_ids();

    if( !empty( $featured_image_id ) ) {
        wp_delete_post( $featured_image_id );
    }

    if( !empty( $image_galleries_id ) ) {
        foreach( $image_galleries_id as $single_image_id ) {
            wp_delete_post( $single_image_id );
        }
    }
}

二、代码放在什么位置那?

有3个地方可以放置代码,建议采用2和3中的位置(放主题中代码会随着主题升级而被覆盖)

  1. 主题functions.php中
  2. ✅子主题functions.php中
  3. ✅插件Code Snippets中(这个是专门管理wordpress代码的插件,保存的代码不会随着主题更新而消失覆盖)
主题function.php
image 21

三、注意事项

如果产品图片同时被其他产品使用,那么删除其中一个产品之后,这个图片会被同时删除。另外产品中的图片就无法使用了!

版权声明:除特殊注明外,本文均为原创文章,首发于自由超,自由超版权所有!    
转载说明:转载请注明原文链接https://zyc420.com/1034.html

留下评论

您的电子邮箱地址不会被公开。