Получить цену товара WooCommerce по ID

8 мар. 2018 г., 12:22:10
Просмотры: 188K
Голосов: 19

Я создал шорткод для получения заголовка товара, изображения и цены. Я получаю все заголовки, ссылки и изображения правильно, но не получаю цену. Проблема в следующем:

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); Я полагаю, что эта функция неправильная

Есть идеи, как получить цену?

Спасибо

0
Все ответы на вопрос 1
4
49

Вы можете создать объект товара с помощью следующей функции:

$product = wc_get_product( $post_id );

После этого вы получите доступ ко всем данным товара. Все доступные методы можно найти здесь, но основные из них, которые вам понадобятся:

$product->get_regular_price();
$product->get_sale_price();
$product->get_price();
8 мар. 2018 г. 12:40:00
Комментарии

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

Accore LTD Accore LTD
8 мар. 2018 г. 12:52:30

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

Boris Kuzmanov Boris Kuzmanov
8 мар. 2018 г. 14:07:36

Это сломало мой локальный сервер

Ashwani Shukla Ashwani Shukla
23 авг. 2018 г. 15:33:02

Исправление ссылки на класс WC_Product и его методы:

https://woocommerce.github.io/code-reference/classes/WC-Product.html

stemon stemon
18 февр. 2022 г. 19:51:39