Обновление цен на варианты товаров в Woocommerce с помощью запроса WPDB

Я использую 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' )
            );
  }

Но по-прежнему на странице магазина отображается старая цена на товары! Как я могу сделать это правильно?


person Prafulla Kumar Sahu    schedule 05.05.2017    source источник


Ответы (1)


Попробуйте добавить эту строку после кода.

wc_delete_product_transients( $post_id );

// $post_id заменить идентификатором продукта

person mujuonly    schedule 05.05.2017
comment
Не работал для меня. Все равно показывает неправильную цену везде, кроме как в корзине. - person Karl Johan Vallner; 02.02.2018
comment
@KarlJohanVallner Используете ли вы какие-либо плагины для корректировки цен? Также попробуйте удалить временный кеш в WooCoommerce -> Статус -> Инструменты. - person mujuonly; 02.02.2018
comment
Никаких плагинов. По какой-то странной причине очистка кеша тоже ничего не дает. Но когда я вручную обновляю цену в разделе «Продукты», она работает отлично. - person Karl Johan Vallner; 03.02.2018