2017-05-14 68 views
2

我正在使用woocommerce產品插件插件,我希望在插件的下拉部分中顯示產品的價格。 目前我的代碼是這樣的如果沒有銷售價格,如何顯示woocommerce銷售價格或正常價格

<?php 
$loop = 0; 
$current_value = isset($_POST['addon-' . sanitize_title($addon['field-name']) ]) ? wc_clean($_POST[ 'addon-' . sanitize_title($addon['field-name']) ]) : ''; 
global $product; 
?> 
<p class="form-row form-row-wide addon-wrap-<?php echo sanitize_title($addon['field-name']); ?>"> 
    <select class="addon addon-select" name="addon-<?php echo sanitize_title($addon['field-name']); ?>"> 

     <?php if (! isset($addon['required'])) : ?> 
      <option value=""><?php _e('None', 'woocommerce-product-addons'); ?></option> 
     <?php else : ?> 
      <!--<option value=""><?php _e('Select an option...', 'woocommerce-product-addons'); ?></option>--> 
     <?php endif; ?> 

     <?php foreach ($addon['options'] as $i => $option) : 
      $loop ++; 
      $price = apply_filters('woocommerce_product_addons_option_price', 
       $option['price'] > 0 ? ' + ' . wc_price(get_product_addon_price_for_display($option['price'])) . '' : '', 
       $option, 
       $i, 
       'select' 
      ); 
      ?> 
      <option data-raw-price="<?php echo esc_attr($option['price']); ?>" data-price="<?php echo get_product_addon_price_for_display($option['price']); ?>" value="<?php echo sanitize_title($option['label']) . '-' . $loop; ?>" <?php selected($current_value, sanitize_title($option['label']) . '-' . $loop); ?>><?php echo wptexturize($option['label'] . ' ('); echo balanceTags($product->get_price_html()) . $price ?>)</option> 
     <?php endforeach; ?> 

    </select> 
</p> 

我使用這個回聲

$product->get_price_html() 

這是什麼一樣,雖然是顯示$「銷售價格」 $「價格」,但我只是想顯示如果沒有銷售價格,只是銷售價格或者只是產品價格。看下面的代碼,我將如何實現這一目標?

回答

10

很簡單。我們將編寫一個自定義函數,首先確定該產品是否正在銷售。然後它會根據之前定義的銷售條件返回正常銷售價格或銷售價格。因此,該函數將是─

/** 
* Returns product price based on sales. 
* 
* @return string 
*/ 
function the_dramatist_price_show() { 
    global $product; 
    if($product->is_on_sale()) { 
     return $product->get_sale_price(); 
    } 
    return $product->get_regular_price(); 
} 

現在調用這個函數the_dramatist_price_show()而不是$product->get_price_html()。您將獲得基於銷售價格或沒有貨幣符號的價格。

希望有所幫助。

+0

傳說!會給這個嘗試 – JPWeb

+0

完美工作,謝謝你! 看過一個類似方法的片段,但不太清楚如何實現它,但你的很容易和有幫助。乾杯 – JPWeb

0

本文適合我。你也可以試試這個。

如果你想獲得一個woocommerce產品的正常價格或銷售價格,你得到什麼,你需要了解以下內容:

如果產品沒有變化,你可以得到正常價格銷售價格就是這樣:

得到一個簡單的procut

<?php 
#the product must be instantiated above like $product = new WC_Product(); 
echo $product->regular_price; 
echo $product->sale_price; 
?> 

的價格如果產品有變化,如果你願意,你會得到什麼使用上面的代碼。

您需要獲取變體產品價格。

獲取一個產品的價格與變化

#1 Get product variations 
$product_variations = $product->get_available_variations(); 

#2 Get one variation id of a product 
$variation_product_id = $product_variations [0]['variation_id']; 

#3 Create the product object 
$variation_product = new WC_Product_Variation($variation_product_id); 

#4 Use the variation product object to get the variation prices 
echo $variation_product ->regular_price; 
echo $variation_product ->sale_price; 

這應該是所有的。

享受。

來源:http://www.w3bdeveloper.com/how-to/how-to-get-regular-price-of-a-product-in-wordpress-woocommerce/

相關問題