Хочу добавить скидку на все товары в категории.Я попробовал эту функцию здесь:
add_filter( 'woocommerce_get_price', 'custom_price_sale', 10, 2 );
function custom_price_sale( $price, $product ) {
if ( has_term( 'promocje-i-outlet', 'product_cat' ) ) {
$price = $price * ( 1 - 0.25 );
}
return $price;
}
Когда я использую только это без if()
:
$price = $price * ( 1 - 0.25 );
, она отлично работает, и я вижу скидку на синглСтраница товара, в виджете корзины, на странице корзины, на странице оформления заказа и в заказе.Но когда я пытаюсь установить скидку для определенного продукта в категории, продукт добавляется в корзину с обычной ценой и без скидки.
Я также пытался использовать это здесь:
get_the_terms( $product->ID, 'product_cat' );
Затем создайте массив категорий и используйте это:
if ( in_array( 'promocje-i-outlet', $kategoria ) ) {
$price = $price * ( 1 - 0.25 );
}
Но эффект тот же - динамическое ценообразование не работает, и я получаю это предупреждение:
Предупреждение: in_array () ожидает, что параметр 2 будет массивом, значение NULL
Что я делаю не так?