Этот код немного устарел со времен Woocommerce 3, так как $product->id
необходимо заменить на $product->get_id()
... Попробуйте вместо этого (где 534 - идентификатор соответствующего продукта, где кнопка добавления в корзину не появится) :
add_filter('woocommerce_is_purchasable', 'purchasable_product_customizations', 10, 2 );
function purchasable_product_customizations( $is_purchasable, $product ) {
if( in_array( $product->get_id() == 534 )
$is_purchasable = false;
return $is_purchasable;
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Протестировано и работает.
Если ваш идентификатор продукта является переменным продуктом
Для переменного идентификатора продукта, в котором вы хотите отключить все варианты, вы замените эту строку:
if( in_array( $product->get_id() == 534 )
этим:
if( in_array( $product->get_parent_id() == 534 )
Если это все еще не работает, значит, что что-то еще взаимодействует и создает проблемы, как некоторые настройки, сделанные вами, вашей темой или плагином ...Также это может быть потому, что вы не добавляете этот код в нужном месте.