Drupal → Views фильтр "товар имеет опубликованную вариацию"
Простой плагин для Views, добавляющий фильтр "Товар имеет хоть одну опубликованную вариацию". Полезен когда у товаров может быть несколько вариаций и не хочется мучатся с агрегацией.
// src/Plugin/views/filter/ProductHasPublishedVariationViewsFilter.php /** * @ViewsFilter("product_has_published_variation") */ class ProductHasPublishedVariationViewsFilter extends FilterPluginBase { /** * {@inheritDoc} */ public function query() { $this->ensureMyTable(); $query = $this->query; /** @var \Drupal\views\Plugin\views\query\Sql $query */ $query->addWhereExpression($this->options['group'], " EXISTS ( SELECT * FROM {commerce_product_variation_field_data} WHERE {commerce_product_variation_field_data}.product_id = {$this->tableAlias}.product_id AND {commerce_product_variation_field_data}.status = 1 ) "); } }
// MODULENAME.views.inc /** * Implements hook_views_data_alter(). */ function MODULENAME_views_data_alter(array &$data) { $data['commerce_product_field_data']['has_published_variation'] = [ 'title' => t('Product has published variation'), 'help' => t('Product has published variation'), 'filter' => [ 'id' => 'product_has_published_variation', ], ]; }
Оставить комментарий