Показывать цену в пользовательском цикле продукта Woocommerce - PullRequest
0 голосов
/ 27 июня 2018

Я пользуюсь Woocommerce Bookings только с заполненной базовой стоимостью. Других правил нет. Как отобразить цену товара в такой петле?

<?php
$args = array( 'post_type' => 'product', 'posts_per_page' => -1 );
$loop = new WP_Query( $args );

<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
ID is: <?php the_ID(); ?>
Title is: <?php the_title(); ?>
Price: <?php echo esc_html( get_post_meta( get_the_ID(), '_regular_price', true ) ); ?>

<?php endwhile; wp_reset_query(); ?>

Поле цены ничего не показывало

UPDATE

другой код, который я пробовал:

<?php
global $woocommerce;
$product = new WC_Product_Booking($productID);
$base_price = $product->get_price();
$product_data = $product->get_data();
$product_pricing = get_post_meta( $product_id, '_wc_booking_pricing', true);
?>

<?php echo $product_pricing; ?> 
<?php echo $base_price;?>

оба также возвращают нулевое значение

ДРУГОЙ ПОПРОБОВАТЬ

<?php
global $woocommerce;
$product = new WC_Product_Booking($productID);
$product = wc_get_product( $product_id );

$base_price = $product->get_price();
$product_data = $product->get_data();

$product_pricing = $product_data['pricing'];
foreach($product_pricing as $key => $princing ){
   $pricing_type           = $princing['type'];
   $pricing_base_cost      = $princing['base_cost'];
   $pricing_base_modifier  = $princing['base_modifier'];
   $pricing_cost           = $princing['cost']; 
   $pricing_modifier       = $princing['modifier'];
   $pricing_from           = $princing['from'];
   $pricing_to             = $princing['to'];
}

$pricing_data = get_post_meta( $product_id, '_wc_booking_pricing', false); ?>

<?php echo $pricing_data; ?>

ничего не работает :( они все либо показывают пробелы, либо показывают ноль. Кто-нибудь может помочь указать правильное направление?

большое спасибо

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Попробуйте (из документов ):

$product = new WC_Product_Booking($productID);
//don't know if you need 'echo'
echo $product->get_price_html()

Если нет, я думаю, что логика второго фрагмента в порядке, но, вероятно, productID! = PostID , поэтому другое решение будет:

  • найдите postID для этого productID
  • вызов get_post_meta ( postID , '_wc_booking_pricing', true);
  • печать цены

EDIT


Мой ответ слишком длинный для публикации в комментариях.

Вы уверены, что правильно настроили продукт от wp-admin?

Чтобы сделать второе предложение, вам нужен доступ к базе данных. Получите идентификатор сообщения (продукта) в wp-admin, когда вы создаете / изменяете его, в URL-адресе должно быть что-то вроде {URL} /wp-admin/id=123.

.

Получив идентификатор, перейдите в таблицу wp_post_meta в БД, найдите все поля с этим post_id и проверьте, можете ли вы найти правильную цену.

Как только вы его найдете, вы можете вызвать get_post_meta (correctID, correctKey)

0 голосов
/ 27 июня 2018

Кажется, что вы тянете правильный мета-ключ, может быть связан с вами с помощью esc_url(), тогда как вы должны использовать просто esc_html(). Я бы попробовал это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...