1. Home
  2. Knowledge Base
  3. WooCommerce Fees and Discounts
  4. Role Based Pricing
  5. Exclude products from role-based rules
  1. Home
  2. Knowledge Base
  3. WooCommerce Fees and Discounts
  4. Exclude products from role-based rules
  1. Home
  2. Knowledge Base
  3. Advanced Topics for Fees and Discounts
  4. Exclude products from role-based rules

Exclude products from role-based rules

You can exclude certain products by ID from your global role-based rules using the wcfad_exclude_from_role_based_rules filter as in the following snippet. Just replace the product IDs in the array:

<?php
// Exclude some products from global role-based rules
function wcfad_exclude_from_role_based_rules( $excluded ) {
return array( 15, 119 );
}
add_filter( 'wcfad_exclude_from_role_based_rules', 'wcfad_exclude_from_role_based_rules' );

If you would like to exclude all the products in one or more categories, you can use this snippet. Just change the name of the categories:

<?php
// Exclude all products within a category from global role-based rules
function wcfad_exclude_categories_from_role_based_rules( $excluded ) {
// Exclude all products in a category
$excluded = wc_get_products(
array(
'category' => array( 'fruit', 'vegetables' ),
'return' => 'ids'
)
);
// Include variations
if( $excluded ) {
foreach( $excluded as $excluded_id ) {
if( WC_Product_Factory::get_product_type( $excluded_id ) == 'variable' ) {
$product = wc_get_product( $excluded_id );
$children = $product->get_children();
$excluded = array_merge( $excluded, $children );
}
}
}
return array_values( $excluded );
}
add_filter( 'wcfad_exclude_from_role_based_rules', 'wcfad_exclude_categories_from_role_based_rules' );

Here’s how to add a snippet to your site.

Was this article helpful?

Related Articles