使用 woocommerce hook 获取最近添加的产品

Get recently added product using woocommerce hook

我想在从 Woocommerce 管理员添加产品后发送 API 请求。实际上我想要的是,当用户向他的商店添加新产品(A 课程)时,API 请求将创建一个与 LMS 中的产品同名的课程。

我已成功挂钩产品创建事件,但不知道如何获取我在 woocommerce 中创建或添加的产品的数据。

这是我的代码:

add_action('transition_post_status', 'product_add', 10, 3);
 function product_add($new_status, $old_status, $post) {
 if( 
        $old_status != 'publish' 
        && $new_status == 'publish' 
        && !empty($post->ID) 
        && in_array( $post->post_type, 
            array( 'product') 
            )
        ) {
            //here I want to get the data of product that is added 
          }
 }

此代码运行良好,当我添加产品并在此函数内回显某些内容时,它运行良好。

只想获取商品的Name和Id。

谢谢。

此时,很容易获得与您发布的产品相关的任何数据,甚至更容易获得产品 ID 和产品名称。您将在下面找到从您的产品中获取任何相关数据的大部分可能性:

add_action('transition_post_status', 'action_product_add', 10, 3);
function action_product_add( $new_status, $old_status, $post ){
    if( 'publish' != $old_status && 'publish' != $new_status 
        && !empty($post->ID) && in_array( $post->post_type, array('product') ) ){

        // You can access to the post meta data directly
        $sku = get_post_meta( $post->ID, '_sku', true);

        // Or Get an instance of the product object (see below)
        $product = wc_get_product($post->ID);

        // Then you can use all WC_Product class and sub classes methods
        $price = $product->get_price(); // Get the product price

        // 1°) Get the product ID (You have it already)
        $product_id = $post->ID;
        // Or (compatibility with WC +3)
        $product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;

        // 2°) To get the name (the title)
        $name = $post->post_title;
        // Or
        $name = $product->get_title( );
    }
}

代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。

一切都经过测试并且可以正常工作。


参考:Class WC_Product methods