Woocommerce 产品发布、更新和删除挂钩

Woocommerce Product publish, update and delete hooks

我需要 Woocommerce 产品发布、更新和删除挂钩,如果有人知道请告诉我。

我找到了这个钩子:

add_action('transition_post_status', 'wpse_110037_new_posts', 10, 3);
 function wpse_110037_new_posts($new_status, $old_status, $post) {
 if( 
        $old_status != 'publish' 
        && $new_status == 'publish' 
        && !empty($post->ID) 
        && in_array( $post->post_type, 
            array( 'product') 
            )
        ) {
          //add some cde here
     }

  }

但它只显示产品 ID、标题、发布状态等....但我想要产品价格、类别、标签、品牌和库存状态。

所以如果有人知道请重播我。

谢谢, 科坦.

Woocommerce 产品基本上是 wordpress 帖子。您可以使用 wordpress 挂钩

add_action( 'before_delete_post', 'wpse_110037_new_posts' );
add_action( 'save_post', 'wpse_110037_new_posts' );

function wpse_110037_new_posts($post_id){
    $WC_Product = wc_get_product( $post_id);
}

wc_get_product() 将 return WC_Product 对象,您可以从中获取产品详细信息。

如果不是草稿,我更喜欢检查状态。你也可以有第三个参数update来检查它是否是一个更新

add_action( 'save_post', array($this, 'wpse1511_create_or_update_product' ), 10, 3);

function wpse1511_create_or_update_product($post_id, $post, $update){
    if ($post->post_status != 'publish' || $post->post_type != 'product') {
        return;
    }

    if (!$product = wc_get_product( $post )) {
        return;
    }

    // Make something with $product
    // You can also check $update
}

WC 更新数据库中的产品后,此挂钩将 运行:

add_action('save_post_product', 'ns_sync_on_product_save', 10, 3);

function ns_sync_on_product_save( $post_id, $post, $update ) {
   $product = wc_get_product( $post_id );
}