Я пытаюсь внести изменения в способ, которым цена появляется в зависимости от различных состояний.
Цель состоит в том, чтобы, если продукт «Нет в наличии» ПРОДАНО появляется вместо цены, тогда, если цена пуста Цена не указана вместо этого появляется цена.
Если ничего из вышеперечисленного не отмечено, отображается как обычно, цена.
Мне удалось сделать это после проверки способа изменения ценника:
add_filter( 'woocommerce_get_price_html', 'wpa83367_price_html', 100, 2 );
function wpa83368_price_html( $price,$product ){
// return $product->price;
if(!$product->is_in_stock()){
return 'SOLD';
} else {
if ( !$product->price > 0 ) {
return 'POA';
} else {
return $price;
}
}
}
Это не работает. Цена исчезает. Я знаю, что здесь что-то не так, и я знаю, что, возможно, подход не правильный. Может ли кто-нибудь помочь мне с этим?
Вам всегда нужно что-то возвращать. Я делаю это иногда, но в целом я стараюсь избегать многократных операторов возврата, из-за чего сложно понять, где что-то пошло не так.
И у вас было несоответствие копирования / вставки в именах функций. Вы бы видели, что если бы вы разработали с WP_DEBUG
включен.
Пересмотренная функция:
add_filter( 'woocommerce_get_price_html', 'wpa83367_price_html', 100, 2 );
function wpa83367_price_html( $price,$product ){
if(!$product->is_in_stock()){
$price = 'SOLD';
} else if ( !$product->price > 0 ) {
$price = 'POA';
}
return $price;
}
Других решений пока нет …