У меня есть скрипт, который программно обновляет цены на продукты woocommerce. Теперь я пытаюсь отключить/установить частный вариант, если нет цены из моего канала.Варианты продукта Woocommerce «исчезают» после программного изменения статуса
Вот код:
$query = "UPDATE wp_posts SET
post_status = %s
WHERE ID = %s";
$result = $wpdb->get_results($wpdb->prepare($query, 'private', $post_id));
Хотя дб, кажется, правильно обновлены изменения не отражаются в сор. На самом деле вариация продукта полностью исчезает как в бэкэнд, так и в интерфейсе.
Похоже, сор не видит изменения на всех ...
В качестве теста я пытался реверс и установить изменение private
обратно public
с тем же результатом.
Я также попытался синхронизировать изменения после обновления БД с:
$_product = wc_get_product($post_parent_id);
$_product->variable_product_sync();
или
do_action('woocommerce_variable_product_sync', $post_parent_id);
но результат тот же.
Есть ли у кого-нибудь идеи, что здесь происходит?
Благодаря