【发布时间】:2018-07-03 05:28:28
【问题描述】:
我正在尝试为 Woocommerce 开发一个插件,它将新发布的产品信息发送到 Telegram 频道。我需要在产品发布时获取产品的价格和图片。但我的代码返回空。
我的代码:
add_action('transition_post_status', 'btb_send_telegram_post', 10, 3);
function btb_send_telegram_post( $new_status, $old_status, $post ) {
if(
$old_status != 'publish'
&& $new_status == 'publish'
&& !empty($post->ID)
&& in_array( $post->post_type,array( 'product'))
) {
// product is new published.
$product = wc_get_product ( $post->ID );
$message = $product->get_short_description()."\r\n";
$message .= "price : ". $product->get_price()."\r\n";
$message .= " regular price : ". $product->get_regular_price() ."\r\n";
$message .= "sale price : ". $product->get_sale_price()."\r\n";
btb_send_message($message);
}
我认为这是因为要发布的产品状态的变化发生在它完全保存在数据库中之前。因为当我在发布之前保存草稿时,它会返回正确的价格。为此,我需要执行以下两种方法之一:
- 在发布之前通过我的代码将产品保存为草稿。
- 使用在完全保存产品元数据后触发的另一个操作。
现在我不知道如何执行上述两种方法。 任何建议将被认真考虑。
谢谢。
【问题讨论】:
-
你好,在这个主题上使用hooks怎么样
product.created,product.updated和product.deleted我个人还没有使用它们。
标签: php wordpress woocommerce send product