When building custom functions and using hooks and filters, you may want to apply those changes to a unique product id: “If product id = xxx, then execute this function”.

Honestly, I tried to do that with the simplest of all solutions (is_single WordPress conditional tag) but it didn’t work for me. Hopefully, I can help you solve this in 2 seconds!

WooCommerce problem: is_single() doesn’t work for product IDs

add_action( 'woocommerce_before_single_product', 'bbloomer_run_this_for_specific_product_id' );

function bbloomer_run_this_for_specific_product_id() {
if ( is_single( 123 ) ) {
 
// whatever you try to do here for product id = 123 won't work
 
}
 
}

Solution: check $product->get_id() instead

add_action( 'woocommerce_before_single_product', 'bbloomer_run_this_for_specific_product_id' );

function bbloomer_run_this_for_specific_product_id() {
global $product;
if ( $product->get_id() == 123 ) {
 
// whatever you try to do here for product id = 123 will work
 
}
 
}
Share:

Leave a Reply