- Роль «Ценообразование». У меня есть этот набор для скидки на все продукты для определенных ролей.
- Расширенное ценообразование бренда. У меня есть этот набор для скидки на определенные бренды в зависимости от роли пользователя.
Я не хочу, чтобы они были объединены, и сейчас они делают это и выполняются отдельно друг от друга, причем ролевое ценообразование имеет приоритет над расширенным ценообразованием бренда.
Клиент, роль которого предполагает скидку 5 %, покупает товар, принадлежащий бренду. скидка 10%. Я хочу, чтобы брендовая скидка 10 % переопределяла ролевую скидку, чтобы применялась только скидка 10 %.
Я также должен упомянуть, что я использую следующий код, чтобы исключить товары со скидкой из на дополнительную скидку, если это имеет к этому какое-то отношение.
Код: Выделить всё
add_filter( 'woocommerce_dynamic_pricing_process_product_discounts', 'wc_dynamic_pricing_is_product_eligible', 10, 4 );
function wc_dynamic_pricing_is_product_eligible( $eligible, $product, $discounter_name, $discounter_object ) {
remove_action( 'woocommerce_product_is_on_sale', array(
WC_Dynamic_Pricing::instance(),
'on_get_product_is_on_sale'
), 10, 2 );
remove_filter( 'woocommerce_dynamic_pricing_process_product_discounts', 'wc_dynamic_pricing_is_product_eligible', 10, 4 );
if ( $product->is_on_sale() ) {
$eligible = false;
}
add_filter( 'woocommerce_dynamic_pricing_process_product_discounts', 'wc_dynamic_pricing_is_product_eligible', 10, 4 );
add_action( 'woocommerce_product_is_on_sale', array(
WC_Dynamic_Pricing::instance(),
'on_get_product_is_on_sale'
), 10, 2 );
return $eligible;
}
Надеюсь, мне все было понятно.
Подробнее здесь: https://stackoverflow.com/questions/769 ... s-combinat