/** * Hide attributes if they correspond to filtered-out variations. * * @param string $output original output * @param array $attribute attribute data * @param array $values attribute values * @return string modified output */ public function bundled_item_attribute($output, $attribute, $values) { if ($attribute['is_variation']) { $variation_attribute_values = array(); $bundled_item = $this->get_bundled_item($this->listing_attributes_of); $bundled_item_variations = $bundled_item->get_product_variations(); if (empty($bundled_item_variations)) { return $output; } $attribute_key = 'attribute_' . sanitize_title($attribute['name']); // Find active attribute values from the bundled item variation data. foreach ($bundled_item_variations as $variation_data) { if (isset($variation_data['attributes'][$attribute_key])) { $variation_attribute_values[] = $variation_data['attributes'][$attribute_key]; $variation_attribute_values = array_unique($variation_attribute_values); } } if (!empty($variation_attribute_values) && in_array('', $variation_attribute_values)) { return $output; } $attribute_name = $attribute['name']; $filtered_values = array(); if ($attribute['is_taxonomy']) { $product_terms = WC_PB_Core_Compatibility::wc_get_product_terms($bundled_item->product_id, $attribute_name, array('fields' => 'all')); foreach ($product_terms as $product_term) { if (in_array($product_term->slug, $variation_attribute_values)) { $filtered_values[] = $product_term->name; } } return wpautop(wptexturize(implode(', ', $filtered_values))); } else { foreach ($values as $value) { $check_value = WC_PB_Core_Compatibility::is_wc_version_gte_2_4() ? $value : sanitize_title($value); if (in_array($check_value, $variation_attribute_values)) { $filtered_values[] = $value; } } return wpautop(wptexturize(implode(', ', $filtered_values))); } } return $output; }
function wc_bundles_get_product_terms($product_id, $attribute_name, $args) { _deprecated_function('wc_bundles_get_product_terms', '4.13.1', 'WC_PB_Core_Compatibility::wc_get_product_terms'); return WC_PB_Core_Compatibility::wc_get_product_terms($product_id, $attribute_name, $args); }