WooCommerce добавление вариантов продукта программно с другой ценой не будет отражаться на странице продукта

Позвольте мне сказать проще.

  1. У нас есть продукты с атрибутами цвета и размера в базе данных
  2. Продукты все переменные продукты
  3. Добавлены вариации для каждого цвета и размера «Любой».

Затем мы написали несколько функций, чтобы добавить еще 2 варианта к каждому продукту для размеров 2XL и 3XL (это футболки) с более высокой ценой!

Варианты добавлены красиво, однако, на передней части, цена не изменится, когда я выберу размер с увеличенной ценой если Я захожу на страницу редактирования продукта и нажимаю кнопку обновления. Только тогда цена, которая будет добавлена ​​в корзину, изменится после выбора этого размера.

Как сделать так, чтобы изменения с увеличенной ценой отражались на интерфейсе, не нажимая кнопку обновления для каждого продукта?

0

Решение

Может быть, вам нужно бежать variable_product_sync() на каждый переменный продукт?

function so_run_once(){

$variable_products = get_posts( array(
'posts_per_page'=> -1,
'post_type'     => 'product',
'fields'        => 'ids',
'post_status'   => 'publish',
'tax_query' => array(
array(
'taxonomy' => 'product_type',
'field'    => 'slug',
'terms'    => 'variable',
),
)
) );

if( $variable_products ) foreach( $variable_products as $product_id ){
$_product = wc_get_product( $product_id );
$_product->variable_product_sync();
}
}
add_action( 'admin_init', 'so_run_once' );
0

Другие решения

Нашел решение! Мы должны были удалить временные метаданные каждого поста после вставки варианта.

$transient_name = 'wc_product_children_ids_' . $proudct_id;
delete_transient( $transient_name );
0

По вопросам рекламы [email protected]