Woocommerce 删除产品时,也会自动删除产品图库和产品图片

Mat*_*tun 2 wordpress woocommerce

我正在尝试以下操作:

当产品页面被删除(永久)时,它还应该删除:附加到帖子的产品图库和产品图片。

我尝试了我在以下位置找到的解决方案:https : //wordpress.stackexchange.com/questions/109793/delete-related-media-upon-page-deletion

但这对我不起作用。

小智 9

虽然这是一个老问题,但我还是留在这里,以防将来有人找它。

由于您想删除产品图片,您可以尝试使用这些简洁方便的 woocommerce 功能来获取附件 id。

像这样的东西:

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 );
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

对我来说很好用。

  • 不要做@Mahmoud Eidarous 所做的事情。切勿编辑 WordPress 核心文件。 (3认同)
  • @MahmoudEidarous 你是对的。不要按照马哈茂德的建议去做。切勿编辑 WordPress 核心文件。如果您想添加自定义代码,请将其添加到您的自定义主题、子主题或自定义插件中。 (2认同)
  • @Spyros 是绝对正确的,编辑核心 WP 文件不是正确的方法。要安全、正确地实现这样的功能,“最简单”的方法是将代码添加到子主题的functions.php 文件中。:) (2认同)