Как получить идентификатор варианта переменного продукта в WooCommerce?

На странице одного продукта с переменным продуктом, когда я меняю другой вариант из раскрывающегося списка, я хочу показать цену из другого настраиваемого поля вместо цены варианта по умолчанию (это поле я уже создал на панели инструментов). Но я не нашел способа показать цену на странице продукта.

Вот мой код:

add_filter('woocommerce_product_variation_get_regular_price', 'custom_price', 99, 2 );
add_filter('woocommerce_product_variation_get_price', 'custom_price', 99, 2 );

function custom_price( $price, $product )
{
    return $price;
}

Внутри функции custom_price, если я получу идентификатор варианта, я мог бы сделать что-то вроде этого:

function custom_price( $price, $product )
{
    $variation_id = ???
    return get_post_meta( $variation_id, 'custom_field', true );
}

Как я могу получить идентификатор варианта внутри этой функции? Заранее спасибо.

Ответ ниже устарел начиная с WooCommerce 3 WC_Productget_variation_id()устарело и устарело. Он был заменен на $product->get_id()… Поэтому вам следует отказаться от ответа ниже, так как это неправильный ответ.

LoicTheAztec 28.05.2019 20:08
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
1 313
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете просто использовать $product->get_id();

add_filter('woocommerce_product_variation_get_regular_price', 'custom_price', 99, 2 );
add_filter('woocommerce_product_variation_get_price', 'custom_price', 99, 2 );

function custom_price( $price, $product )
{
    $variation_id = $product->get_id();

    return get_post_meta( $variation_id, 'custom_field', true );
}

Извините, но этот ответ устарел с WooCommerce 3 WC_Productget_variation_id()устарело и устарело.

LoicTheAztec 28.05.2019 20:11

Другие вопросы по теме