Search code examples
phpwordpresswoocommercehook-woocommerce

How to use woocommerce_trash_{$post_type} action hook


I am trying to read product value when admin click on trash for a product (image attached).

enter image description here

After some searching i found that woocommerce_trash_{$post_type} hook can be use for this purpose.

I found the details on class-wc-product-data-store-cpt.php line 307 @version 3.0.0

And I applied the code:

add_action('woocommerce_trash_product', 'My_custom_trash_product');
function My_custom_trash_product($product_id) {
    error_log(print_r($product_id, true));
}

But it is not firing. I am using WooCommerce 6.0.0. Any advice?


Solution

  • See: Trash/delete product hooks don't fire

    We don't control the WordPress UI delete and trash functionality, so it bypasses CRUD completely.

    If you need to detect these events across CRUD and across WordPress UI, use wp_trash_post and wp_delete_post actions. If we ever have our own UI (not WP UI) we'll be able to consistently fire them everywhere.

    So alternatively you can use:

    /**
     * Fires before a post is sent to the Trash.
     *
     * @since 3.3.0
     *
     * @param int $post_id Post ID.
     */
    function action_wp_trash_post( $post_id ) {
        error_log( print_r( $post_id, true ) );
    }
    add_action( 'wp_trash_post', 'action_wp_trash_post', 10, 1 );