纯代码实现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

三、注意事项

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

本文作者:自由超
本文标题:《纯代码实现WooCommerce在删除产品的时候自动删除产品图片》
本文链接:https://zyc420.com/1034.html
发布日期:2021年01月21日 11:46:30
更新日期:2024年03月06日 20:45:53
版权声明:除特殊注明,均为作者原创内容,遵守CC-BY-NC 4.0版权协议,转发请保留原文链接!
免责声明:文中如涉及第三方资源,均来自互联网,仅供学习研究,禁止商业使用,如有侵权,联系我们24小时内删除!
分享给更多人