2017-05-14 4 views
2

アドオンのドロップダウンリストに商品の価格を表示したい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(); 
} 

今すぐ$product->get_price_html()の代わりに、この関数を呼び出しthe_dramatist_price_show() BE-ます。あなたは通貨記号なしで販売されているかどうかに基づいて価格を得るでしょう。

希望に役立ちます。

+0

legend!これを試してみてください – JPWeb

+0

、完璧に働いてくれてありがとう! 同様の方法のスニペットを見たことがありますが、実装方法はあまり分かりませんでしたが、あなたのものはとても簡単で便利でした。乾杯 – JPWeb

0

この記事は私のために働いた。あなたもこれを試すことができます。製品は何のバリエーションを持っていない

場合は、通常価格と販売を取得することができます:あなたはwoocommerce製品の通常価格や販売価格を取得したいとあなたは何を取得されていない場合

は、次の知っている必要がありますちょうどそのような価格:

製品はバリエーションを持っている場合は、あなたがする場合は、あなたが何を取得します

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

シンプルprocutの価格を取得します。上記のコードを使用してください。

バリエーション製品の価格を取得する必要があります。

はすべてあるべきバリエーション

#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/

関連する問題