いつも参考にさせてもらっています。
WordPress で Woocommerceを使ってWeb Site を作成しています。Woocommerce 標準のショートコードの場合、バリエーションの価格のみを表示する事が出来ない為、関数を作ってショートコードで任意の価格のみを出力したいのですが上手くいきません。下記のコードは海外の Web Site で見つけたものですが、エラーで動作しませんし、出力もショートコードになっていません。
WordPress:5.3.2–ja
php:7.2.27
php
1//これが関数です 2function get_variation_price_by_id($product_id, $variation_id){ 3 $currency_symbol = get_woocommerce_currency_symbol(); 4 $product = new WC_Product_Variable($product_id); 5 $variations = $product->get_available_variations(); 6 $var_data = []; 7 foreach ($variations as $variation) { 8 if($variation['variation_id'] == $variation_id){ 9 $display_regular_price = $variation['display_regular_price'].'<span class="currency">'. $currency_symbol .'</span>'; 10 $display_price = $variation['display_price'].'<span class="currency">'. $currency_symbol .'</span>'; 11 } 12 } 13 14 //Check if Regular price is equal with Sale price (Display price) 15 if ($display_regular_price == $display_price){ 16 $display_price = false; 17 } 18 19 $priceArray = array( 20 'display_regular_price' => $display_regular_price, 21 'display_price' => $display_price 22 ); 23 $priceObject = (object)$priceArray; 24 return $priceObject; 25} 26 27//以下は出力したい場所に書くコードです。9を製品IDに、15を製品バリエーションIDに変更します。 28<?php 29 variation_price = get_variation_price_by_id(9, 15); 30 echo $variation_price -> display_regular_price; 31 echo $variation_price -> display_price; 32?>
質問1、関数のどの部分を改変すればエラーが出なくなりますか?
質問2、ショートコードで出力する場合はどのように書き直せばよろしいでしょうか?
詳しい方がおりましたら、ご教授の程よろしくお願いいたします。
エラー内容追加させていただきました。
functions.php に上記関数を追加しますと
$var_data = [];
部分がシンタックスエラーになりますが、無視してアップロードしましてもブラウザ上エラーは確認できません。
そして functions.php 以外の php ファイルに下記コードをアップロードしますと
php
1<?php 2 variation_price = get_variation_price_by_id(9, 15); 3 echo $variation_price -> display_regular_price; 4 echo $variation_price -> display_price; 5?>
Parse error: syntax error, unexpected '=' in /home///public_html/**/wp-content/themes//category-***.php on line 87
となり87行目は
variation_price = get_variation_price_by_id(9, 15);
こちらになります。引き続きどうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー