Позвольте мне сказать проще.
Затем мы написали несколько функций, чтобы добавить еще 2 варианта к каждому продукту для размеров 2XL и 3XL (это футболки) с более высокой ценой!
Варианты добавлены красиво, однако, на передней части, цена не изменится, когда я выберу размер с увеличенной ценой если Я захожу на страницу редактирования продукта и нажимаю кнопку обновления. Только тогда цена, которая будет добавлена в корзину, изменится после выбора этого размера.
Как сделать так, чтобы изменения с увеличенной ценой отражались на интерфейсе, не нажимая кнопку обновления для каждого продукта?
Может быть, вам нужно бежать 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' );
Нашел решение! Мы должны были удалить временные метаданные каждого поста после вставки варианта.
$transient_name = 'wc_product_children_ids_' . $proudct_id;
delete_transient( $transient_name );