【发布时间】:2021-11-09 13:34:29
【问题描述】:
我想在创建新产品后将产品的库存数量及其变体与 Product_id(Post ID) 一起存储在自定义表中。为此,我使用 'transition_post_status' 挂钩并读取我使用 wp_postmeta 表 $prodcut_qty = get_post_meta($post->ID,'_stock'); 的库存值。
假设有产品 A(库存数量 = 10)和 A1(库存数量 = 10),A2(库存数量 = 20),A3(库存数量 = 30)是 A 的变体。所以我想要将上述所有详细信息存储在自定义表中。
My DB schema is {post_id bigint (20), user_id bigint (20), stock_quantity int (11),log_date DATE}
我无法读取产品变化的库存值。 我的代码是 -
function insert_custom_table($new_status, $old_status, $post )
{
global $post;
global $wpdb;
global $current_user;
if(isset($post->ID))
{
$current_post = $post->ID;
}
wp_get_current_user();
$user_id = $current_user->ID;
if ( $post->post_type !== 'product' ) {
return;
}else{
if ( 'publish' !== $new_status or 'publish' === $old_status ){
//Check if someone published a post first time.
return;
}else{
$prodcut_qty = get_post_meta($post->ID,'_stock');
//Unable to read stock values for product variations.
}
}
$stock_notes = 'New Stock';
$wpdb->insert( 'wp_woocommerce_stock_custom', array( 'post_ID' => $current_post, 'user_ID' => $user_id, 'stock_quantity'=> $prodcut_qty ,'notes'=> $stock_notes) );
}
我正在使用 woocommerce 5.5.2
更新:
我发现如果我们想在发布帖子后立即读取 postmeta 表,对于这种类型的任务挂钩 added_post_meta 工作正常。
【问题讨论】:
-
你用什么钩子?你应该使用 woocommerce_update_product 钩子hookr.io/actions/woocommerce_update_product
-
@MartinMirchev 我正在使用 transition_post_status' 钩子 & 我正在检查帖子类型为 'product' 像这样 $post->post_type !== 'product'
标签: php wordpress woocommerce