Andrei | conflict fix

pull/34/head
Andrei 2 months ago
commit 3176223154
  1. 5
      wp-content/themes/cosmopet/modules/popup/assets/css/gp-style-desktop.css
  2. 185
      wp-content/themes/cosmopet/modules/shop/components/catalog/component-controller.php

@ -28,6 +28,11 @@
filter: blur(0); filter: blur(0);
} }
.wpfFilterLayoutVer, .wpfFilterLayoutHor {
display: grid;
grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 720px) { @media (max-width: 720px) {
.modal__aside { .modal__aside {
width: 100% !important; /* Полная ширина на мобильных */ width: 100% !important; /* Полная ширина на мобильных */

@ -1,17 +1,26 @@
<?php <?php
wp_enqueue_script( 'shop_scripts', get_template_directory_uri() . '/woocommerce/assets/js/gp-main.js', 'jquery', '', true); wp_enqueue_script('shop_scripts', get_template_directory_uri() . '/woocommerce/assets/js/gp-main.js', ['jquery'], '', true);
wp_enqueue_style( 'shop_styles_core', get_template_directory_uri() . '/woocommerce/assets/css/gp-style-core.css'); wp_enqueue_style('shop_styles_core', get_template_directory_uri() . '/woocommerce/assets/css/gp-style-core.css');
wp_enqueue_style( 'shop_styles_desktop', get_template_directory_uri() . '/woocommerce/assets/css/gp-style-desktop.css'); wp_enqueue_style('shop_styles_desktop', get_template_directory_uri() . '/woocommerce/assets/css/gp-style-desktop.css');
wp_enqueue_style( 'shop_styles_tablet', get_template_directory_uri() . '/woocommerce/assets/css/gp-style-tablet.css'); wp_enqueue_style('shop_styles_tablet', get_template_directory_uri() . '/woocommerce/assets/css/gp-style-tablet.css');
wp_enqueue_style( 'shop_styles_mobile', get_template_directory_uri() . '/woocommerce/assets/css/gp-style-mobile.css'); wp_enqueue_style('shop_styles_mobile', get_template_directory_uri() . '/woocommerce/assets/css/gp-style-mobile.css');
wp_enqueue_style( 'shop_styles_order', get_template_directory_uri() . '/woocommerce/assets/css/gp-style-order.css'); wp_enqueue_style('shop_styles_order', get_template_directory_uri() . '/woocommerce/assets/css/gp-style-order.css');
wp_enqueue_style( 'shop_styles_ultra', get_template_directory_uri() . '/woocommerce/assets/css/gp-style-ultra.css'); wp_enqueue_style('shop_styles_ultra', get_template_directory_uri() . '/woocommerce/assets/css/gp-style-ultra.css');
function get_active_woobewoo_filters_for_twig() { function get_active_woobewoo_filters_for_twig() {
$filters = []; $filters = [];
error_log('=== WooBeWoo: фильтры проверяются ==='); error_log('=== WooBeWoo: фильтры проверяются ===');
// Получаем все атрибуты WooCommerce
$attribute_taxonomies = wc_get_attribute_taxonomies();
$valid_taxonomies = [];
foreach ($attribute_taxonomies as $attr) {
$taxonomy = 'pa_' . $attr->attribute_name;
$valid_taxonomies[$taxonomy] = $attr->attribute_label;
}
error_log('→ Доступные таксономии атрибутов: ' . implode(', ', array_keys($valid_taxonomies)));
foreach ($_GET as $key => $value) { foreach ($_GET as $key => $value) {
error_log("Ключ: $key => " . print_r($value, true)); error_log("Ключ: $key => " . print_r($value, true));
@ -22,22 +31,34 @@
$slugs = is_array($value) ? $value : preg_split('/[\|,]/', $value); $slugs = is_array($value) ? $value : preg_split('/[\|,]/', $value);
error_log("→ Slugs: " . implode(', ', $slugs)); error_log("→ Slugs: " . implode(', ', $slugs));
// Попробуем с pa_ и без, в зависимости от существования таксономии
$taxonomy = taxonomy_exists('pa_' . $raw_taxonomy) ? 'pa_' . $raw_taxonomy : $raw_taxonomy; $taxonomy = taxonomy_exists('pa_' . $raw_taxonomy) ? 'pa_' . $raw_taxonomy : $raw_taxonomy;
error_log("→ Проверяемая таксономия: $taxonomy, существует: " . (taxonomy_exists($taxonomy) ? 'Да' : 'Нет'));
foreach ($slugs as $slug) {
$term = get_term_by('slug', $slug, $taxonomy); if (taxonomy_exists($taxonomy)) {
foreach ($slugs as $slug) {
if ($term) { $term = get_term_by('slug', $slug, $taxonomy);
error_log("✔ Найден термин: {$term->name} (ID: {$term->term_id}) в таксономии: $taxonomy"); if ($term) {
error_log("✔ Найден термин: {$term->name} (ID: {$term->term_id}) в таксономии: $taxonomy");
$filters[] = [
'id' => $term->term_id,
'name' => $term->name,
'slug' => $term->slug,
'taxonomy' => $taxonomy,
];
} else {
error_log("✖ Термин не найден: $slug в таксономии: $taxonomy");
}
}
} else {
error_log("→ Таксономия $taxonomy не существует, обрабатываем как кастомный фильтр");
foreach ($slugs as $slug) {
$filters[] = [ $filters[] = [
'id' => $term->term_id, 'id' => $slug,
'name' => $term->name, 'name' => ucfirst(str_replace('-', ' ', $slug)),
'slug' => $term->slug, 'slug' => $slug,
'taxonomy' => $taxonomy, 'taxonomy' => $raw_taxonomy,
]; ];
} else { error_log("✔ Добавлен кастомный фильтр: $slug для $raw_taxonomy");
error_log("✖ Термин не найден: $slug в таксономии: $taxonomy");
} }
} }
} }
@ -50,73 +71,67 @@
return $filters; return $filters;
} }
$context = Timber::context();
$context['criteria_for_new_product'] = date('Y-m-d', strtotime('-30 days'));
$context['posts_per_page'] = 12;
$context = Timber::context(); $queried_object = get_queried_object();
//$context['posts'] = Timber::get_posts();
$context['criteria_for_new_product'] = date('Y-m-d', strtotime('-30 days'));
// Задаем количество постов для подзагрузки Ajax
$context['posts_per_page'] = 12;
$queried_object = get_queried_object(); if (is_product_category() || is_tax()) {
$term_id = $queried_object->term_id;
if (is_product_category() || is_tax()) { $context['category_type'] = 'product_cat';
$term_id = $queried_object->term_id; $context['category_id'] = $term_id;
$context['category_type'] = 'product_cat'; $context['category'] = get_term($term_id, 'product_cat');
$context['category_id'] = $term_id; $context['category_link'] = get_term_link($term_id, 'product_cat');
$context['category'] = get_term($term_id, 'product_cat'); $context['category_title'] = single_term_title('', false);
$context['category_link'] = get_term_link($term_id, 'product_cat'); }
$context['category_title'] = single_term_title('', false);
}
if (is_tax()) {
$context['category_type'] = $queried_object->taxonomy;
$context['category'] = get_term($term_id, $context['category_type']);
$context['category_link'] = get_term_link($term_id, $context['category_type']);
$context['category_title'] = single_term_title('', false);
}
$args = array(
'post_type' => 'product',
'post_status' => 'publish',
'posts_per_page' => $context['posts_per_page'],
'paged' => 1,
'has_password' => FALSE
);
$count_args = array(
'post_type' => 'product',
'post_status' => 'publish',
'posts_per_page' => -1,
'has_password' => FALSE
);
if ($context['category_id'] != NULL) {
$categories = [
'tax_query' => array(
array(
'taxonomy' => $context['category_type'],
'terms' => $context['category_id'],
'operator' => 'IN'
),
array(
'taxonomy' => 'product_visibility',
'field' => 'slug',
'terms' => 'exclude-from-catalog',
'operator' => 'NOT IN'
)
)
];
$args = array_merge($args, $categories);
$count_args = array_merge($count_args, $categories);
}
$context['active_filters'] = get_active_woobewoo_filters_for_twig(); if (is_tax()) {
$context['category_type'] = $queried_object->taxonomy;
$context['category'] = get_term($term_id, $context['category_type']);
$context['category_link'] = get_term_link($term_id, $context['category_type']);
$context['category_title'] = single_term_title('', false);
}
$context['posts'] = Timber::get_posts($args); $args = [
$context['count'] = count(Timber::get_posts($count_args)); 'post_type' => 'product',
$context['sidebar_filters'] = Timber::get_widgets('sidebar_filters'); 'post_status' => 'publish',
'posts_per_page' => $context['posts_per_page'],
'paged' => 1,
'has_password' => false,
];
$count_args = [
'post_type' => 'product',
'post_status' => 'publish',
'posts_per_page' => -1,
'has_password' => false,
];
if ($context['category_id'] != null) {
$categories = [
'tax_query' => [
[
'taxonomy' => $context['category_type'],
'terms' => $context['category_id'],
'operator' => 'IN',
],
[
'taxonomy' => 'product_visibility',
'field' => 'slug',
'terms' => 'exclude-from-catalog',
'operator' => 'NOT IN',
],
],
];
$args = array_merge($args, $categories);
$count_args = array_merge($count_args, $categories);
}
Timber::render('_pages/shop/archive-product.twig', $context); $context['active_filters'] = get_active_woobewoo_filters_for_twig();
$context['posts'] = Timber::get_posts($args);
$context['count'] = count(Timber::get_posts($count_args));
$context['sidebar_filters'] = Timber::get_widgets('sidebar_filters');
Timber::render('_pages/shop/archive-product.twig', $context);
?> ?>
Loading…
Cancel
Save