Нужна индивидуальная цена для товаров для магазина woocommerce из functions.php

Я хочу получить персонализированную оценку с functions.php. Для страницы магазина woocommerce я хочу, чтобы результат был следующим. Я создал пользовательскую таксономию (команду), и я применяю специальную цену от бэкэнда.

Например:

1. Taxonomy : Team1 a) Product Id : 17, Price =222; //Original price $45 b) Product Id : 18, Price = 444; // Original price $55 2. Taxonomy : Team2 a) Product Id : 17, Price =999; //Original price $45 b) Product Id : 18, Price = 888; // Original price $55 

Как я могу получить свой пример вывода с помощью следующего кода? Если какие-либо изменения или модификации, пожалуйста, дайте мне знать.

Я использую следующий код:

 add_filter( 'woocommerce_get_regular_price', function ($price, $productd ) { foreach($_SESSION['my_array'] as $id => $price1) : $regular_price = get_post_meta(get_the_ID(), '_regular_price'); $price = $regular_price[0]; if(get_the_ID() == $id) : return $price1; else : return $price; endif; endforeach; }, 10, 2 ); 

Спасибо, Сатя

Как только я исправил ошибки анализа, код из вашего комментария работает.

 add_filter('woocommerce_get_price','change_price', 10, 2); add_filter('woocommerce_get_regular_price','change_price', 10, 2); add_filter('woocommerce_get_sale_price','change_price', 10, 2); function change_price($price, $productd){ if($productd->id == 16): $price = 160; endif; return $price; } 

Изменив это, чтобы проверять продукты в определенном таксономии, мы просто используем has_term( $term, $taxonomy, $post ) . Вам нужно будет скорректировать срок и налоговые слизни.

 add_filter('woocommerce_get_price','change_price', 10, 2); add_filter('woocommerce_get_regular_price','change_price', 10, 2); add_filter('woocommerce_get_sale_price','change_price', 10, 2); function change_price($price, $productd){ if( has_term( 'team1', 'teams', $productd->id ) ): $price = 160; endif; return $price; } 

Обновить

Читая свой новый вопрос, кажется, что вы идете по этому поводу (я все равно мог вас недопонимать). Если продукт 1 находится в обеих командах 1 и 2, вы можете изменить цену на странице таксономии с помощью is_taxonomy("team-A") но все функции add_to_cart() не будут знать, чтобы использовать правильную цену, потому что не будет способ определить, какую цену он должен использовать на основе термина (поскольку продукт находится в обоих терминах).

Если вы хотите отображать разные цены для разных групп пользователей, тогда вам понадобятся пользовательские возможности пользователя и использовать их для проверки, если текущий пользователь имеет эту кепку или нет .ex: current_user_can('team-b') .