更新变体产品价格 - 在产品页面中不可见 - Woocommerce

Posted

技术标签:

【中文标题】更新变体产品价格 - 在产品页面中不可见 - Woocommerce【英文标题】:Update variation product price - not visible in product page - Woocommerce 【发布时间】:2017-09-01 06:19:37 【问题描述】:

我已经定制了可变类型的进口产品。然后我制作了一个必须更新变体产品价格的文件。我正在使用 update_post_meta 方法。这些值出现在每个变体字段的编辑产品页面中,但似乎没有更新产品首页的价格。

我必须在管理面板中制作更新产品(通过单击更新按钮)才能使用新价格。

我尝试过使用 $product->variable_product_sync();但它似乎没有用。有任何想法吗?

我的代码示例:

foreach ($variations as $variationProduct)  
   $variationProductId =  $variationProduct["variation_id"];
   $productPrice = number_format($productPrice, 2, '.', '');
   update_post_meta( $variationProductId, '_regular_price', $productPrice);

对此有任何帮助或解决方案吗?

【问题讨论】:

【参考方案1】:

解决了!!最后我通过 woocommerce api 找到了它。如果您使用的是 woocommerce 2.7 或更高版本,则可以使用以下行:

$product->save();

【讨论】:

【参考方案2】:

请使用以下脚本更新变体价格。点击这里获取完整代码。 https://www.pearlbells.co.uk/bulk-update-product-variation-price-woocommerce/

function getExistingProducts($updatedPrices,$skuArray) 

$loop = new WP_Query(array('post_type' => array('product', 'product_variation'), 'posts_per_page' => -1));

while ($loop->have_posts()) : $loop->the_post();

    $id = get_the_ID();
    $product = wc_get_product( $id );
    $sku = get_post_meta($id, '_sku', true);

    if( in_array( $sku, $skuArray  ) ) 

        $attributes = $product->get_attributes();
        $attributes['medium-quantity-price']['value'] = $updatedPrices[$sku][4];
        $attributes['low-quantity-price']['value'] = $updatedPrices[$sku][3];
     $attributes['v-low-quantity-price']['value'] = $updatedPrices[$sku][2];
        update_post_meta( $id,'_product_attributes',$attributes);
        echo ' Update Sku : '.$sku.' '.php_EOL;

    

endwhile;


【讨论】:

以上是关于更新变体产品价格 - 在产品页面中不可见 - Woocommerce的主要内容,如果未能解决你的问题,请参考以下文章

隐藏产品可变价格,直到在 WooCommerce 中选择所有变体字段

更新 Woocommerce 3 中的产品可见性

自动更新订阅在 iTunes Connect 中不可见

在WooCommerce中取代可变产品定价

在 Woocommerce 可变产品上获取 jQuery 中选定的变体价格

预定的销售已结束,但在查看产品时,可变产品似乎仍在销售 - Woocommerce