Как показать обычную цену по умолчанию для Woocommerce/WordPress на основе цены продажи?
Woocommerce — это мощный плагин/фреймворк, который позволяет настроить интернет-магазин с помощью WordPress. Вы можете редактировать атрибуты для каждого товара, но иногда у вас так много товаров, что может потребоваться время, чтобы обновить конкретный атрибут для товара.
Например, если вы забыли указать обычную цену товара, она не будет отображаться кросс-шрифтом, например ~100.00 GBP~. Но было бы неплохо указать обычную цену, чтобы покупатели чувствовали, что товары продаются (дешевле), и это, безусловно, увеличивает скорость покупки.
Вы можете написать сложный SQL для обновления метаданных, но это будет рискованно и может быть не таким гибким, как следующий метод. Поместите следующий код PHP в шаблон functions.php вашей дочерней темы.
function helloacm_regular_price( $price, $product) {
$price_factor = 1.3; // show sale price * 1.3
$sale_price = $product->get_sale_price(); // get sale price
if (!is_numeric($sale_price)) { // sale price not set
return $price; // return default price.
}
$exp_price = $sale_price * $price_factor; // get expected regular price
if ($price > 0) { // if regular price is filled
if ($price < $sale_price) { // if it is even smaller than sale price
return $exp_price; // return corrected regular price
}
return $price; // otherwise return the input regular price
}
return $exp_price; // return the default regular price
}
add_filter( 'woocommerce_get_regular_price', 'helloacm_regular_price', 10, 2);
Вот и все. Если обычная цена не введена, будет показана обычная цена по умолчанию, которая равна $price_factor, умноженной на цену продажи. В противном случае будет проведена проверка безопасности, чтобы убедиться, что обычная цена всегда выше, чем цена продажи.
Это не изменяет базу данных, поэтому считается самым безопасным способом обмана. Фильтр woocommerce_get_regular_price добавляется перед возвратом обычной цены.