#php #wordpress #woocommerce #price #variations
#php #wordpress #woocommerce #Цена #варианты продукта
Вопрос:
Мне нужны аргументы. $blank_price
и $zero_price
. Если цена продукта оставлена пустой (не заполненной), на странице продукта будет отображаться значение $blank_price
аргумента, а если цена продукта установлена в 0, должно отображаться значение из $zero_price
аргумента.
Мне нужно, чтобы это работало как для простых, так и для переменных продуктов (вариаций).
Вот что у меня есть на данный момент, которое отлично работает для простых продуктов. Мне нужна помощь в добавлении кода для переменных продуктов.
Код:
add_filter( 'woocommerce_get_price_html', 'empty_and_zero_price_display', 20, 2 );
function empty_and_zero_price_display( $price, $product ) {
$blank_price = __('Price not yet set', 'woocommerce');
$zero_price = __('Free', 'woocommerce');
if( $product->is_type('simple') ) {
if ( '' === $product->get_price() ) {
return $blank_price;
} else if (0 == $product->get_price() ) {
return $zero_price;
}
}
return $price;
}
Приветствуется любая помощь.
Комментарии:
1. @LoicTheAztec вы помогли мне на днях, могу я попросить вас взглянуть на это (если у вас есть время)? Большое вам спасибо.
2. Я ответил на этот вопрос так…
Ответ №1:
Чтобы это работало и для вариантов переменного продукта, попробуйте этот слегка измененный код:
add_filter( 'woocommerce_get_price_html', 'empty_and_zero_price_display', 20, 2 );
function empty_and_zero_price_display( $price, $product ) {
$blank_price = __('Price not yet set', 'woocommerce');
$zero_price = __('Free', 'woocommerce');
if( ! $product->is_type('variable') ) {
if ( '' === $product->get_price() ) {
return $blank_price;
} else if (0 == $product->get_price() ) {
return $zero_price;
}
}
return $price;
}
Если вы хотите изменить отображаемый диапазон цен для переменных продуктов, это что-то другое, и вам следует предоставить более подробную информацию о том, как вы хотите, чтобы это отображалось (во всех различных комбинациях случаев).
Код вводится function.php файл вашей активной дочерней темы (или active theme). Протестировано и работает.