Получить цену товара WooCommerce по ID
Я создал шорткод для получения заголовка товара, изображения и цены. Я получаю все заголовки, ссылки и изображения правильно, но не получаю цену. Проблема в следующем:
add_shortcode('product_data','custom_product_function');
function custom_product_function($atts)
{
$post_id = $atts['id'];
$title = get_the_title($post_id);
$link = get_the_permalink($post_id);
$price = get_the_price($post_id); // Эта функция неправильная
$image = get_the_post_thumbnail($post_id, 'thumbnail');
$data ='<div class="releated-products wow fadeInUp"><a href="'.$link.'">'.$image.'<h5>'.$title.'</h5><h6>'.$price.'</h6></a></div>';
return $data;
}
$price = get_the_price($post_id);
Я полагаю, что эта функция неправильная
Есть идеи, как получить цену?
Спасибо

Вы можете создать объект товара с помощью следующей функции:
$product = wc_get_product( $post_id );
После этого вы получите доступ ко всем данным товара. Все доступные методы можно найти здесь, но основные из них, которые вам понадобятся:
$product->get_regular_price();
$product->get_sale_price();
$product->get_price();

спасибо за ответ. я уже смотрел это. проверю еще раз. но для этого мне нужно изменить свою функцию шорткода другим способом, верно? есть ли возможность сделать это внутри моего шорткода

Просто добавьте $product = wc_get_product( $post_id );
где-нибудь выше $price и установите $price = $product->get_price()
.

Исправление ссылки на класс WC_Product и его методы:
https://woocommerce.github.io/code-reference/classes/WC-Product.html
