问题是$product
对象不存在于您尝试访问它的位置(当您在编辑器中点击“发布”时)。
正如Jacob Peattie在评论中提到的,您可能会从$post
对象但是,你可以得到$product
对象的$post->ID
然后使用对象中可用的“get\\uu0”方法获取所需的值。
以下是您修改后的代码,用于通过$product
:
function sync_on_product_save( $new_status, $old_status, $post ) {
if (
$old_status != \'publish\'
&& $new_status == \'publish\'
&& ! empty( $post->ID )
&& in_array( $post->post_type, array( \'product\' ) )
) {
// Get the product object for this ID:
$product = wc_get_product( $post->ID );
// Use "get_" methods for values:
$product_sku = $product->get_sku();
$product_name = $product->get_name();
$product_price = $product->get_price();
$product_desc = $product->get_description();
// Do what you need for 3rd party here...
}
}
add_action( \'transition_post_status\', \'sync_on_product_save\', 10, 3 );