У меня есть следующий код:
foreach ($loop->posts as $product) {
$currentPrice = get_post_meta($product->ID, '_regular_price', true);
update_post_meta( $product->ID, '_price', $currentPrice );
update_post_meta( $product->ID, '_regular_price', $currentPrice );
delete_metadata('post', $product->ID, '_sale_price');
if(in_array($i, $random_product)) {
$discount = rand(10,25) / 100;
$salePrice = $discount * $currentPrice;
$salePrice = ceil($currentPrice - $salePrice);
if($salePrice == $currentPrice) {
$salePrice = $currentPrice - 1;
}
if($currentPrice != '' || $currentPrice == '0') {
update_post_meta($product->ID, '_sale_price', $salePrice);
update_post_meta( $product->ID, '_price', $salePrice );
echo "Sale Item $i / Product ID $product->ID / Current Price $currentPrice / Sale Price $salePrice \n";
}
}
$i++;
}
По сути, я пытаюсь сделать так, чтобы каждый товар проходил через мой магазин, зацикливался на нем и, если он был в моем массиве (который представляет собой случайно сгенерированный массив идентификаторов товаров), должен выставить их на продажу и убедиться, что любой другой товар не продается.
Однако, когда я это делаю ... по какой-то причине все мои переменные продукты отображаются как недоступные, пока я не перехожу на страницу их продуктов и не нажимаю Варианты -> Установить статус -> В наличии
Я подумал, что буду умнее и поменяю его на управляемый запас и у меня в наличии будет 999 продуктов, но проблема все равно будет возникать.
Дело в том, что я не изменяю акцию только этой ценой ... однако именно этот код я запустил вручную, и это вызывает проблему.
Есть мысли?