En algunos casos, es posible que desee configurar una categoría de producto especial “Al por mayor en oferta” que contenga artículos que ofrezcan un descuento adicional basado en el precio al por mayor, no en el precio normal.
En lugar de tener que ajustar manualmente los precios o los porcentajes, es posible hacerlo en el código para ofrecer un descuento adicional sobre el precio al por mayor para los artículos que aparecen en esta categoría “Al por mayor en oferta”.
Tenga en cuenta que hablo específicamente de aplicar el descuento sobre el precio al por mayor, no sobre el precio normal. Para ajustar el % de descuento sobre el precio normal, utilice la función de descuentos por porcentaje de categoría de producto.
Este es un tutorial avanzado y solo debe implementarse si tiene un buen conocimiento de los roles de usuario y los términos de categoría de producto.
Añada el siguiente fragmento de código a su functions.php y ajuste la etiqueta de la categoría (he utilizado “wholesale-on-sale” aquí) y el porcentaje de descuento que desea aplicar (se utiliza 0.5 aquí para un 50% de descuento). También puede añadir más condiciones “else if” para probar otros roles u otras categorías.
/**
* 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 );
