簡體   English   中英

從 WP_Query 循環獲取 WooCommerce 產品屬性

[英]Getting a WooCommerce Product Properties from WP_Query Loop

我有一個使用 WP_Query 循環遍歷產品帖子類型的函數。 在此功能中,我可以從帖子對象中獲取產品帖子的永久鏈接、標題、圖像等內容。 但是,對於循環中的每個產品,我需要訪問產品對象,因為我想計算和顯示評論評級。 我使用全局 $product 然后 $product->get_rating_count() 等來獲取所需的數據。 然而,在調試另一段代碼時,我發現眾所周知的“ID 被錯誤調用”。 不應直接訪問產品屬性。 此函數的錯誤。

一切仍然有效(關閉調試),但我想確保它在 WooCommerce 的未來版本中仍然有效。 有誰知道我可以從 WP_Query 循環(即通過產品帖子類型循環)訪問產品對象屬性而不會出現此錯誤?

這是我的代碼....

<?php
// Get the product rating
global $product;
if ( 'no' === get_option( 'woocommerce_enable_review_rating' ) ) {
return;
}
$rating_count = $product->get_rating_count();
$review_count = $product->get_review_count();
$average      = $product->get_average_rating();
if ( $rating_count > 0 ) : ?>
<div class="woocommerce-product-rating">
  <?php echo wc_get_rating_html( $average, $rating_count ); ?>
  <?php if ( comments_open() ) : ?>
  <a href="<?php echo get_permalink( $product->ID ); ?>#reviews" class="woocommerce-review-link" rel="nofollow">(
    <?php printf( _n( '%s customer review', '%s customer reviews', $review_count, 'woocommerce' ), '<span class="count">' . esc_html( $review_count ) . '</span>' ); ?>)
  </a>
  <?php endif ?>
</div>
<?php endif; ?>

任何幫助將非常感激! 干杯!

$product變量是WC_Product類的一個實例,它不同於WP_Post類。 您可以在此處閱讀有關WC_Product API 的信息:

https://docs.woocommerce.com/wc-apidocs/class-WC_Product.html

在這種情況下獲取產品 ID 的正確方法是使用get_id方法:

$product->get_id()

我想我需要睡一會兒......

今天早上再次看了這個之后,我可以看到一些東西,因為某種原因我以前在上釉。 我為產品的鏈接調用了 $product->ID,但當然現在應該是 $product->get_id()。 有了這個改變,它現在可以工作了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM