W niektórych przypadkach możesz chcieć skonfigurować specjalną kategorię produktów „Wyprzedaż hurtowa”, która zawiera produkty dające dodatkowy rabat w oparciu o cenę hurtową, a nie cenę regularną.
Zamiast ręcznie dostosowywać ceny lub punkty procentowe, można to zrobić w kodzie, aby udzielić dodatkowego rabatu od ceny hurtowej dla produktów znajdujących się w tej kategorii „Wyprzedaż hurtowa”.
Zauważ, że mówię konkretnie o udzielaniu rabatu od ceny hurtowej, a nie ceny regularnej. Aby dostosować % rabatu od ceny regularnej, użyj funkcji rabatów procentowych dla kategorii produktów.
Jest to zaawansowany samouczek i powinien być wdrażany tylko wtedy, gdy dobrze rozumiesz role użytkowników i terminy kategorii produktów.
Dodaj poniższy fragment kodu do swojego pliku functions.php i dostosuj „slug” kategorii (użyłem tutaj „wholesale-on-sale”) oraz procent rabatu, który chcesz udzielić (tutaj użyto 0,5 dla 50% rabatu). Możesz również dodać więcej warunków „else if”, aby przetestować inne role lub inne kategorie.
/**
* Add further discount on top of a product's wholesale price.
* The function below give a further discount on the wholesale price for items in the "Wholesale On Sale" category.
* Important Note: Please adjust this functions code accordingly to fit your needs.
*/
function wwppAddDiscountToSaleCategory( $wholesalePrice , $product_id , $userWholesaleRole ) {
// Get all the category slugs this product belongs to
$terms = wp_get_post_terms( $product_id, 'product_cat' );
$categories = array();
foreach ( $terms as $term )
$categories[] = $term->slug;
/**
* Check if this product is under the "wholesale-on-sale" product category.
* Assuming that we wanted to apply 50% off on all products under this category on top of their existing wholesale price
* Please change 'wholesale-on-sale' category accordingly to fit your needs.
*/
if ( in_array( 'wholesale-on-sale', $categories ) ) {
/**
* Check if the current user have a role of 'wholesale_customer'.
* Assuming we wanted to have this effect on all users under 'wholesale_customer' role.
* Please change the role accordingly to fit your needs.
*/
if ( in_array( 'wholesale_customer', $userWholesaleRole ) ) {
/**
* In this example we are using 50% discount off from the product existing "wholesale price".
* Please change accordingly to fit your needs.
*/
if ( is_array( $wholesalePrice ) && isset( $wholesalePrice[ 'wholesale_price' ] ) )
$wholesalePrice[ 'wholesale_price' ] = $wholesalePrice[ 'wholesale_price' ] - ( $wholesalePrice[ 'wholesale_price' ] * 0.5 );
else
$wholesalePrice = $wholesalePrice - ( $wholesalePrice * 0.5 );
}
// You can add more else if conditions here if you want to test for other wholesale roles
}
// you can add more else if conditions here to test for other product categories
return $wholesalePrice;
}
add_filter( 'wwp_filter_wholesale_price_shop_v2', 'wwppAddDiscountToSaleCategory', 100, 3 );
add_filter( 'wwp_filter_wholesale_price_cart', 'wwppAddDiscountToSaleCategory', 100, 3 );
// You only need to uncomment this if you are using WooCommerce Wholesale Prices plugin lower than verison 1.6.x
// If you are on the latest version of our plugins, no need to uncomment this code to improve performance
// add_filter( 'wwp_filter_wholesale_price', 'wwppAddDiscountToSaleCategory', 100, 3 );
