使用 WPDB 查询更新 Woocommerce 中的产品变体价格
Update product variations prices in Woocommerce with WPDB query
我正在使用 WordPress 4.7.4 和 WooCommerce 3.0.5。
我使用 meta_id
更新了 _sale_price
、_price
、_regular_price
,代码如下:
$meta_tbl = $wpdb->prefix.'postmeta';
foreach ($_POST['loop'] as $loop_k => $loop_v) {
$wpdb->update(
$meta_tbl,
array( 'meta_value' => $loop_v['price'] ),
array( 'meta_id' => $loop_v['price_meta_id'] ),
array( '%d' )
);
$wpdb->update(
$meta_tbl,
array( 'meta_value' => $loop_v['regular_price'] ),
array( 'meta_id' => $loop_v['regular_price_meta_id'] ),
array( '%d' )
);
$wpdb->update(
$meta_tbl,
array( 'meta_value' => $loop_v['sale_price'] ),
array( 'meta_id' => $loop_v['sale_price_meta_id'] ),
array( '%d' )
);
}
但是店铺页面还是显示商品的旧价格!我怎样才能正确地做到这一点?
尝试在您的代码后添加这一行。
wc_delete_product_transients( $post_id );
// $post_id 替换为产品 ID
我正在使用 WordPress 4.7.4 和 WooCommerce 3.0.5。
我使用 meta_id
更新了 _sale_price
、_price
、_regular_price
,代码如下:
$meta_tbl = $wpdb->prefix.'postmeta';
foreach ($_POST['loop'] as $loop_k => $loop_v) {
$wpdb->update(
$meta_tbl,
array( 'meta_value' => $loop_v['price'] ),
array( 'meta_id' => $loop_v['price_meta_id'] ),
array( '%d' )
);
$wpdb->update(
$meta_tbl,
array( 'meta_value' => $loop_v['regular_price'] ),
array( 'meta_id' => $loop_v['regular_price_meta_id'] ),
array( '%d' )
);
$wpdb->update(
$meta_tbl,
array( 'meta_value' => $loop_v['sale_price'] ),
array( 'meta_id' => $loop_v['sale_price_meta_id'] ),
array( '%d' )
);
}
但是店铺页面还是显示商品的旧价格!我怎样才能正确地做到这一点?
尝试在您的代码后添加这一行。
wc_delete_product_transients( $post_id );
// $post_id 替换为产品 ID