В Woocommerce я хочу запретить пользователям добавлять в корзину, если выбран определенный атрибут.
Имя атрибута - «Время производства», а конкретное значение, которое мы хотим отключить при покупке, - «Срочно».
Код ниже по этой ссылке - Скрыть кнопку «Добавить в корзину» в вариантах продукта Woocommerce для определенного значения атрибута
Однако работает только с числами. Когда атрибут является текстом, он не работает.
add_filter( 'woocommerce_variation_is_purchasable', 'conditional_variation_is_purchasable', 20, 2 );
function conditional_variation_is_purchasable( $purchasable, $product ) {
## ---- Your settings ---- ##
$taxonomy = 'production-time';
$term_name = 'urgent';
## ---- The active code ---- ##
$found = false;
// Loop through all product attributes in the variation
foreach ( $product->get_variation_attributes() as $variation_attribute => $term_slug ){
$attribute_taxonomy = str_replace('attribute_', '', $variation_attribute); // The taxonomy
$term = get_term_by( 'slug', $term_slug, $taxonomy ); // The WP_Term object
// Searching for attribute 'pa_size' with value 'XL'
if($attribute_taxonomy == $taxonomy && $term->name == $term_name ){
$found = true;
break;
}
}
if( $found )
$purchasable = false;
return $purchasable;
}