2017-04-06 19 views
1

私は可変タイプのカスタムインポート製品を作っています。次に、バリエーション製品の価格を更新するファイルを作成しました。私はupdate_post_metaメソッドを使用しています。値は各パターンのフィールドにある商品の編集ページに表示されますが、商品の最初のページで価格を更新するようには見えません。バリエーション製品価格の更新 - 商品ページに表示されない - Woocommerce

新しい価格で作業するには、管理パネルの更新ボタンをクリックして更新する必要があります。

私は$ 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(); 
0

バリエーション価格を更新するには、次のスクリプトを使用してください。ここをクリックして完全なコードを入手してください。 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; 

} 
関連する問題