【问题标题】:Unable to get woocoommerce product variation id无法获取 woocommerce 产品变体 ID
【发布时间】:2015-04-21 19:22:28
【问题描述】:

我正在尝试更新产品中所有变体的特定字段,但不幸的是,我无法获得变体 ID 以更进一步。

基本上我正在做的是,我试图获取每个变体的库存值,如果库存值小于零,那么我将使用某些值更新特定字段(如下面的代码中所述)。

我已经通过手动输入任何自定义帖子/变体 ID 对此进行了测试,并且工作正常,根据其库存值更新该特定变体 ID。我被困在这里的只是我无法自己获取变体ID。

下面是我正在使用的代码:

global $post, $woocommerce;
$post_id = $variation->ID;

// Get specific data from the certain custom fields using get_post_meta( $post_id, $key, $single );
$stock = get_post_meta( $post_id, '_stock', true );

if ($stock < 1) {
    update_post_meta( $post_id, 'cuzd-prod-general-v', '20,25' );   
} else {
    update_post_meta( $post_id, 'cuzd-prod-general-v', '1,5' );
}

我不知道我在哪里获取这个的变体 ID 是错误的。

【问题讨论】:

    标签: php wordpress post woocommerce variations


    【解决方案1】:

    我能够通过使用以下代码更改来解决这个问题:

    // Values to be updated
        $in_stock   = '1,5';
        $out_of_stock   = '20,30';
    
    // Get variations        
        $args = array(
                     'post_type'     => 'product_variation',
                     'post_status'   => array( 'private', 'publish' ),
                     'numberposts'   => -1,
                     'orderby'       => 'menu_order',
                     'order'         => 'asc',
                     'post_parent'   => $post->ID
                 );
                 $variations = get_posts( $args ); 
    
        foreach ( $variations as $variation ) {
    
                     $variation_id           = absint( $variation->ID );$variable_id = $this['variation_id'];
                     $variation_post_status  = esc_attr( $variation->post_status );
                     $variation_data         = get_post_meta( $variation_id );
                     $variation_data['variation_post_id'] = $variation_id;
    
    
        // Get specific data from the certain custom fields using get_post_meta( $post_id, $key, $single );
        $stock = get_post_meta( $variation_data['variation_post_id'], '_stock', true ); 
    
    
        if ($stock < 1) {
            update_post_meta( $variation_data['variation_post_id'], 'cuzd-prod-general-v', $out_of_stock ); 
            } else {
                update_post_meta( $variation_data['variation_post_id'], 'cuzd-prod-general-v', $in_stock );
                }
        }
    

    【讨论】:

      猜你喜欢
      • 2015-12-31
      • 1970-01-01
      • 2023-03-14
      • 2016-12-05
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 2014-07-04
      相关资源
      最近更新 更多