2017-03-02 60 views
3

我想在添加Woocommerce管理產品後發送API請求。其實我想要的是,當用戶向他的商店添加新產品(A課程)時,API請求將創建一個與LMS中產品名稱相同的課程。使用woocommerce hook獲取最近添加的產品

我已成功勾掛產品創建活動,但不知道如何獲取我在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 
      } 
} 

此代碼工作正常,當我添加的產品,呼應東西在這個函數內正常工作。

只想獲取產品的名稱和ID。

謝謝。

回答

1

在這一點上,很容易獲得任何相關數據到您的已發佈產品,甚至更多的只是獲得產品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