Я использую WordPress 4.7.4 и WooCommerce 3.0.5.
Я обновил _sale_price, _price, _regular_price, используя meta_id с кодом ниже:
$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 заменить на идентификатор продукта
Других решений пока нет …