|
|
|
@ -7,40 +7,12 @@ use Timber\Integrations\WooCommerce\Product as TimberProduct; |
|
|
|
|
class CosmopetProduct extends TimberProduct { |
|
|
|
|
|
|
|
|
|
protected $sibling_categories = [ |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
'pa_compound', |
|
|
|
|
'pa_dog-size', |
|
|
|
|
'pa_reproductive-status', |
|
|
|
|
'pa_age-of-the-cat', |
|
|
|
|
'pa_age-of-the-dog', |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
'pa_age-of-the-cat', |
|
|
|
|
'pa_age-of-the-dog', |
|
|
|
|
'pa_compound', |
|
|
|
|
'pa_reproductive-status', |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
>>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
'pa_compound', |
|
|
|
|
'pa_dog-size', |
|
|
|
|
'pa_reproductive-status', |
|
|
|
|
'pa_age-of-the-cat', |
|
|
|
|
'pa_age-of-the-dog', |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
'pa_series', |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
public function __construct ($pid = null) { |
|
|
|
@ -74,27 +46,7 @@ class CosmopetProduct extends TimberProduct { |
|
|
|
|
|
|
|
|
|
// Получаем галерею изображений |
|
|
|
|
if ($this->product && method_exists($this->product, 'get_gallery_image_ids')) { |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
$gallery_image_ids = $this->product->get_gallery_image_ids(); |
|
|
|
|
======= |
|
|
|
|
$gallery_image_ids = $this->product->get_gallery_image_ids(); |
|
|
|
|
>>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
$gallery_image_ids = $this->product->get_gallery_image_ids(); |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
$gallery_image_ids = $this->product->get_gallery_image_ids(); |
|
|
|
|
======= |
|
|
|
|
$gallery_image_ids = $this->product->get_gallery_image_ids(); |
|
|
|
|
>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
|
|
|
|
|
$gallery_image_ids = $this->product->get_gallery_image_ids(); |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
} else { |
|
|
|
|
$gallery_image_ids = []; |
|
|
|
|
} |
|
|
|
@ -125,28 +77,8 @@ class CosmopetProduct extends TimberProduct { |
|
|
|
|
} |
|
|
|
|
else{ |
|
|
|
|
if ($this->product && method_exists($this->product, 'get_weight')) { |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
return $this->product->get_weight() ? $this->product->get_weight() . ' ' . $custom_measurement : ''; |
|
|
|
|
======= |
|
|
|
|
return $this->product->get_weight() ? $this->product->get_weight() . ' ' . $custom_measurement : ''; |
|
|
|
|
>>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
return $this->product->get_weight() ? $this->product->get_weight() . ' ' . $custom_measurement : ''; |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
return $this->product->get_weight() ? $this->product->get_weight() . ' ' . $custom_measurement : ''; |
|
|
|
|
======= |
|
|
|
|
return $this->product->get_weight() ? $this->product->get_weight() . ' ' . $custom_measurement : ''; |
|
|
|
|
>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
} |
|
|
|
|
======= |
|
|
|
|
return $this->product->get_weight() ? $this->product->get_weight() . ' ' . $custom_measurement : ''; |
|
|
|
|
} |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
return ''; |
|
|
|
|
} |
|
|
|
|
return ''; |
|
|
|
@ -183,24 +115,6 @@ class CosmopetProduct extends TimberProduct { |
|
|
|
|
if ( $cat->slug === 'korm' ) { |
|
|
|
|
$is_food = true; |
|
|
|
|
} elseif ( $cat->slug === 'lakomstva' ) { |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
$product_categories = $this->product->get_category_ids(); |
|
|
|
|
|
|
|
|
|
$is_food = false; |
|
|
|
|
$is_treats = false; |
|
|
|
|
// Определяем тип товара (корм или лакомство) |
|
|
|
|
foreach ($product_categories as $cat) { |
|
|
|
|
if ($cat == 365) { |
|
|
|
|
$is_food = true; |
|
|
|
|
} elseif ($cat == 367) { |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
>>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
$is_treats = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -309,26 +223,7 @@ class CosmopetProduct extends TimberProduct { |
|
|
|
|
// Extract just the posts in sorted order |
|
|
|
|
$sorted_siblings = array_map(function($item) { |
|
|
|
|
return $item['post']; |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
}, $siblings_with_weights); |
|
|
|
|
======= |
|
|
|
|
}, $siblings_with_weights); |
|
|
|
|
>>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
}, $siblings_with_weights); |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
}, $siblings_with_weights); |
|
|
|
|
======= |
|
|
|
|
}, $siblings_with_weights); |
|
|
|
|
>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
}, $siblings_with_weights); |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
return $sorted_siblings; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -376,62 +271,7 @@ class CosmopetProduct extends TimberProduct { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
|
|
|
|
|
// Получаем упорядоченные таксономии |
|
|
|
|
$ordered_taxonomies = $this->getOrderedTaxonomies(); |
|
|
|
|
|
|
|
|
|
// Инициализируем конструктор для всех таксономий |
|
|
|
|
foreach ($this->sibling_categories as $taxonomy) { |
|
|
|
|
if (isset($current_product_attributes[$taxonomy])) { |
|
|
|
|
$constructor[$taxonomy] = [ |
|
|
|
|
'taxonomy' => $taxonomy, |
|
|
|
|
'label' => $this->getAttributeLabel($taxonomy), |
|
|
|
|
'current_value' => $this->getCurrentAttributeValue($taxonomy), |
|
|
|
|
'options' => [] |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ОБХОДИМ МАССИВ ТОВАРОВ ТОЛЬКО ОДИН РАЗ |
|
|
|
|
foreach ($all_products as $product) { |
|
|
|
|
// Получаем все атрибуты сравниваемого товара за один раз |
|
|
|
|
$compare_attributes = []; |
|
|
|
|
$compare_weight = $product->getNumericWeight(); |
|
|
|
|
|
|
|
|
|
foreach ($this->sibling_categories as $taxonomy) { |
|
|
|
|
$terms = get_the_terms($product->id, $taxonomy); |
|
|
|
|
if ($terms && !is_wp_error($terms)) { |
|
|
|
|
$compare_attributes[$taxonomy] = array_map(function($term) { |
|
|
|
|
return $term->term_id; |
|
|
|
|
}, $terms); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Проверяем, подходит ли товар для каждой таксономии |
|
|
|
|
foreach ($this->sibling_categories as $taxonomy) { |
|
|
|
|
// Пропускаем, если у текущего товара нет значения для этой категории |
|
|
|
|
if (!isset($current_product_attributes[$taxonomy])) { |
|
|
|
|
continue; |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
// Отладочная информация |
|
|
|
|
error_log("=== Конструктор товара ==="); |
|
|
|
|
error_log("Текущий товар ID: " . $this->id); |
|
|
|
|
error_log("Текущий вес (числовой): " . $current_weight); |
|
|
|
|
error_log("Всего товаров в коллекции: " . count($all_products)); |
|
|
|
|
error_log("Атрибуты текущего товара: " . print_r($current_product_attributes, true)); |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
|
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
|
|
|
|
|
// Получаем упорядоченные таксономии |
|
|
|
|
$ordered_taxonomies = $this->getOrderedTaxonomies(); |
|
|
|
@ -463,81 +303,17 @@ class CosmopetProduct extends TimberProduct { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
|
|
|
|
|
// Группируем товары по атрибутам |
|
|
|
|
foreach ($this->sibling_categories as $taxonomy) { |
|
|
|
|
// Проверяем, есть ли у текущего товара значение для этой категории |
|
|
|
|
if (!isset($current_product_attributes[$taxonomy])) { |
|
|
|
|
error_log("Пропускаем $taxonomy - нет значения у текущего товара"); |
|
|
|
|
continue; // Пропускаем, если у товара нет значения для этой категории |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
$constructor[$taxonomy] = [ |
|
|
|
|
'taxonomy' => $taxonomy, |
|
|
|
|
'label' => $this->getAttributeLabel($taxonomy), |
|
|
|
|
'current_value' => $this->getCurrentAttributeValue($taxonomy), |
|
|
|
|
'options' => [] |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
error_log("Обрабатываем атрибут: $taxonomy"); |
|
|
|
|
error_log("Атрибуты текущего товара для проверки: " . print_r($current_product_attributes, true)); |
|
|
|
|
|
|
|
|
|
foreach ($all_products as $product) { |
|
|
|
|
// Получаем атрибуты сравниваемого товара |
|
|
|
|
$compare_attributes = []; |
|
|
|
|
foreach ($this->sibling_categories as $compare_taxonomy) { |
|
|
|
|
$terms = get_the_terms($product->id, $compare_taxonomy); |
|
|
|
|
if ($terms && !is_wp_error($terms)) { |
|
|
|
|
$compare_attributes[$compare_taxonomy] = array_map(function($term) { |
|
|
|
|
return $term->term_id; |
|
|
|
|
}, $terms); |
|
|
|
|
} |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
>>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
// Проверяем, подходит ли товар для каждой таксономии |
|
|
|
|
foreach ($this->sibling_categories as $taxonomy) { |
|
|
|
|
// Пропускаем, если у текущего товара нет значения для этой категории |
|
|
|
|
if (!isset($current_product_attributes[$taxonomy])) { |
|
|
|
|
continue; |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Проверяем, совпадают ли все остальные атрибуты и вес |
|
|
|
|
$attributes_match = true; |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
|
|
|
|
|
// Проверяем все атрибуты кроме текущей таксономии |
|
|
|
|
======= |
|
|
|
|
$differences = []; |
|
|
|
|
|
|
|
|
|
// Проверяем только атрибуты из sibling_categories |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
>>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
|
|
|
|
|
// Проверяем все атрибуты кроме текущей таксономии |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
|
|
|
|
|
$differences = []; |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
foreach ($this->sibling_categories as $compare_taxonomy) { |
|
|
|
|
if ($compare_taxonomy === $taxonomy) { |
|
|
|
|
continue; // Пропускаем проверяемую категорию |
|
|
|
@ -548,23 +324,6 @@ class CosmopetProduct extends TimberProduct { |
|
|
|
|
// Проверяем, есть ли у сравниваемого товара значение для этой категории |
|
|
|
|
if (!isset($compare_attributes[$compare_taxonomy])) { |
|
|
|
|
$attributes_match = false; |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
$differences[] = "Нет атрибута $compare_taxonomy у сравниваемого товара"; |
|
|
|
|
>>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
======= |
|
|
|
|
$differences[] = "Нет атрибута $compare_taxonomy у сравниваемого товара"; |
|
|
|
|
>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
$differences[] = "Нет атрибута $compare_taxonomy у сравниваемого товара"; |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -575,23 +334,6 @@ class CosmopetProduct extends TimberProduct { |
|
|
|
|
if (array_diff($current_values, $compare_values) !== [] || |
|
|
|
|
array_diff($compare_values, $current_values) !== []) { |
|
|
|
|
$attributes_match = false; |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
$differences[] = "Не совпадают значения для $compare_taxonomy"; |
|
|
|
|
>>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
======= |
|
|
|
|
$differences[] = "Не совпадают значения для $compare_taxonomy"; |
|
|
|
|
>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
$differences[] = "Не совпадают значения для $compare_taxonomy"; |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -600,81 +342,18 @@ class CosmopetProduct extends TimberProduct { |
|
|
|
|
else { |
|
|
|
|
if (isset($compare_attributes[$compare_taxonomy])) { |
|
|
|
|
$attributes_match = false; |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
$differences[] = "У сравниваемого товара есть атрибут $compare_taxonomy, а у текущего нет"; |
|
|
|
|
>>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
======= |
|
|
|
|
$differences[] = "У сравниваемого товара есть атрибут $compare_taxonomy, а у текущего нет"; |
|
|
|
|
>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
|
|
|
|
|
$differences[] = "У сравниваемого товара есть атрибут $compare_taxonomy, а у текущего нет"; |
|
|
|
|
|
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Проверяем вес (числовое сравнение) |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
if (abs($current_weight - $compare_weight) > 0.01) { |
|
|
|
|
$attributes_match = false; |
|
|
|
|
======= |
|
|
|
|
======= |
|
|
|
|
|
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
$compare_weight = $product->getNumericWeight(); |
|
|
|
|
if (abs($current_weight - $compare_weight) > 0.01) { // Используем небольшой допуск для float |
|
|
|
|
$attributes_match = false; |
|
|
|
|
$differences[] = "Не совпадает вес: текущий '$current_weight' vs сравниваемый '$compare_weight'"; |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
>>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
if (abs($current_weight - $compare_weight) > 0.01) { |
|
|
|
|
$attributes_match = false; |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Если все атрибуты и вес совпадают, добавляем товар в группу |
|
|
|
|
if ($attributes_match) { |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
error_log("Товар {$product->id} подходит для атрибута $taxonomy"); |
|
|
|
|
>>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
======= |
|
|
|
|
error_log("Товар {$product->id} подходит для атрибута $taxonomy"); |
|
|
|
|
>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
|
|
|
|
|
error_log("Товар {$product->id} подходит для атрибута $taxonomy"); |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
$product_terms = get_the_terms($product->id, $taxonomy); |
|
|
|
|
if ($product_terms && !is_wp_error($product_terms)) { |
|
|
|
|
foreach ($product_terms as $term) { |
|
|
|
@ -682,48 +361,15 @@ class CosmopetProduct extends TimberProduct { |
|
|
|
|
if (!isset($constructor[$taxonomy]['options'][$option_key])) { |
|
|
|
|
$constructor[$taxonomy]['options'][$option_key] = [ |
|
|
|
|
'term_id' => $term->term_id, |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
'name' => $this->getTermName($term->term_id, $taxonomy), |
|
|
|
|
'slug' => $term->slug, |
|
|
|
|
'icon' => $this->getTermIcon($term->term_id, $taxonomy), |
|
|
|
|
======= |
|
|
|
|
'name' => $term->name, |
|
|
|
|
'slug' => $term->slug, |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
>>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
'name' => $this->getTermName($term->term_id, $taxonomy), |
|
|
|
|
'slug' => $term->slug, |
|
|
|
|
'icon' => $this->getTermIcon($term->term_id, $taxonomy), |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
'name' => $this->getTermName($term->term_id, $taxonomy), |
|
|
|
|
'slug' => $term->slug, |
|
|
|
|
'icon' => $this->getTermIcon($term->term_id, $taxonomy), |
|
|
|
|
|
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
'products' => [] |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
$constructor[$taxonomy]['options'][$option_key]['products'][] = $product; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -762,88 +408,6 @@ class CosmopetProduct extends TimberProduct { |
|
|
|
|
'pa_compound' => pll__('ВКУС КОРМА'), |
|
|
|
|
'pa_reproductive-status' => pll__('ВИД КОШКИ'), |
|
|
|
|
'pa_series' => pll__('СЕРИЯ'), |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
} else { |
|
|
|
|
error_log("Товар {$product->id} НЕ подходит для атрибута $taxonomy. Причины: " . implode(', ', $differences)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
error_log("Найдено опций для $taxonomy: " . count($constructor[$taxonomy]['options'])); |
|
|
|
|
|
|
|
|
|
// Показываем детали найденных опций |
|
|
|
|
foreach ($constructor[$taxonomy]['options'] as $option_id => $option) { |
|
|
|
|
error_log("Опция $option_id ({$option['name']}): " . count($option['products']) . " товаров"); |
|
|
|
|
foreach ($option['products'] as $product) { |
|
|
|
|
error_log(" - Товар {$product->id}: {$product->title}"); |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
// Сортируем опции по порядку терминов для каждой таксономии |
|
|
|
|
foreach ($constructor as $taxonomy => $taxonomy_data) { |
|
|
|
|
if (isset($ordered_taxonomies[$taxonomy])) { |
|
|
|
|
$ordered_options = []; |
|
|
|
|
foreach ($ordered_taxonomies[$taxonomy] as $term) { |
|
|
|
|
if (isset($constructor[$taxonomy]['options'][$term->term_id])) { |
|
|
|
|
$ordered_options[$term->term_id] = $constructor[$taxonomy]['options'][$term->term_id]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
$constructor[$taxonomy]['options'] = $ordered_options; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Сортируем итоговый конструктор по порядку таксономий |
|
|
|
|
$ordered_constructor = []; |
|
|
|
|
foreach ($this->sibling_categories as $taxonomy) { |
|
|
|
|
if (isset($constructor[$taxonomy])) { |
|
|
|
|
$ordered_constructor[$taxonomy] = $constructor[$taxonomy]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $ordered_constructor; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected function getAttributeLabel($taxonomy) { |
|
|
|
|
// Fallback на старые метки |
|
|
|
|
$labels = [ |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
error_log("Итоговый конструктор: " . print_r($constructor, true)); |
|
|
|
|
return $constructor; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected function getAttributeLabel($taxonomy) { |
|
|
|
|
$labels = [ |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
'pa_age-of-the-cat' => 'ВОЗРАСТ КОШКИ', |
|
|
|
|
'pa_age-of-the-dog' => 'ВОЗРАСТ СОБАКИ', |
|
|
|
|
'pa_compound' => 'ВКУС КОРМА', |
|
|
|
|
'pa_reproductive-status' => 'РЕПРОДУКТИВНЫЙ СТАТУС', |
|
|
|
|
'pa_series' => 'СЕРИЯ', |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
>>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
'pa_age-of-the-cat' => pll__('ВОЗРАСТ КОШКИ'), |
|
|
|
|
'pa_age-of-the-dog' => pll__('ВОЗРАСТ СОБАКИ'), |
|
|
|
|
'pa_dog-size' => pll__('РАЗМЕР СОБАКИ'), |
|
|
|
|
'pa_compound' => pll__('ВКУС КОРМА'), |
|
|
|
|
'pa_reproductive-status' => pll__('ВИД КОШКИ'), |
|
|
|
|
'pa_series' => pll__('СЕРИЯ'), |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
|
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
return $labels[$taxonomy] ?? wc_attribute_label($taxonomy); |
|
|
|
@ -857,16 +421,6 @@ class CosmopetProduct extends TimberProduct { |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
/** |
|
|
|
|
* Получает таксономии в правильном порядке с учетом сортировки |
|
|
|
|
* @return array Массив таксономий с их порядком |
|
|
|
@ -1032,19 +586,6 @@ class CosmopetProduct extends TimberProduct { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
<<<<<<< HEAD |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) |
|
|
|
|
======= |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) |
|
|
|
|
======= |
|
|
|
|
>>>>>>> 598bddea (Andrei | добавил попап для отображения всех характеристик товара) |
|
|
|
|
public function getAllAttributes() { |
|
|
|
|
$attributes = []; |
|
|
|
|
foreach ($this->sibling_categories as $taxonomy) { |
|
|
|
@ -1062,6 +603,7 @@ class CosmopetProduct extends TimberProduct { |
|
|
|
|
} |
|
|
|
|
return $attributes; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function getPriceWithCurrency(){ |
|
|
|
|
$price = $this->product->get_price() . ' ' . get_woocommerce_currency_symbol(); |
|
|
|
|
return $price; |
|
|
|
@ -1115,6 +657,5 @@ class CosmopetProduct extends TimberProduct { |
|
|
|
|
} |
|
|
|
|
return $related_products; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}; |