解決済商品一覧ページ、複数SKUの価格の後ろに「〜」をつけたい
-
投稿者投稿
-
2020年5月10日 12:36 AM #89908yamanoco参加者
——————————————-
WordPress のバージョン:5.4.1
Welcart のバージョン:1.9.30
PHP のバージョン:(例 7.2)
Welcart専用の拡張プラグインとバージョン:wcex_sku_select 1.1.5
ご利用のテーマ:自作子テーマ
症状を確認したブラウザ:chrome firefox safari
サーバー:(会社名、サービス名) ロリポップ
SSLの利用:(例 常時SSL) 共有SSL
——————————————–こんばんは。
welcart:商品一覧でSKUが複数ある商品はSKUごとの価格を表示する
https://securavita.net/welcart-itemlist-multiple-sku/
上記ページを参考に、商品一覧ページにて、1)商品がない場合売り切れの表示
2)それ以外の在庫がある商品でSKUが2つ以上の場合は
「¥●●●(税込)〜」というように最後に「〜」を入れて表示させる
3)それ以外は「¥●●●(税込)」と表記という条件分岐を作ろうとしているのですが、価格の後に「〜」が入らず困っています。
同じようなトピックも探したのですが、合うものがないようでした。
お分かりになられる方おりますでしょうか。`<?php if ( !usces_have_zaiko_anyone() ) ://商品が無い場合:売り切れ表示 ?>
<div class=”zaiko_status mb-10″>
<p class=”font-12 uppercase we-regular”>SOLD OUT</div>
<?php
$skus = get_post_meta($post->ID,’_isku_’);
elseif( count( $skus ) > 1 ) : //SKUが2つ以上の場合?>
<p class=”font-12 uppercase we-regular”>
<?php echo(‘¥’);?><?php usces_the_firstPrice(); ?>
<?php usces_guid_tax(); ?><em class=”tax”>(税込)</em>〜<?php else : ?>
<p class=”font-12 uppercase we-regular”>
<?php echo(‘¥’);?><?php usces_the_firstPrice(); ?>
<?php usces_guid_tax(); ?><em class=”tax”>(税込)</em><?php endif; //商品が無い場合:終了 ?>`
2020年5月11日 9:38 AM #89913ohnishiキーマスターこんにちは
上記のコードについてですが、
ダブル(シングル)クオーテーションが全角になっているや
<p>の閉じタグ(</p>)がないなどが原因ではないでしょうか。一度、ご確認お願いします。
2020年5月11日 11:09 AM #89915yamanoco参加者>ohnishi さま
ご確認ありがとうございます。あれ・・わたしが送ったコードは</p>がないですね・・。すみません。
<p>の閉じタグ、シングルクォーテーション、
ダブルクォーテーションを半角で全て打ち直しもしてみたのですが、
特に変わらないようでした。
改めてコードを送り直します。<?php if ( !usces_have_zaiko_anyone() ) ://商品が無い場合:売り切れ表示 ?> <div class="zaiko_status mb-10"> <p class="font-12 uppercase we-regular">SOLD OUT</p> </div> <?php $skus = get_post_meta($post->ID,'_isku_'); elseif( count( $skus ) > 1 ) : //SKUが2つ以上の場合?> <p class="font-12 uppercase we-regular"> <?php echo('¥');?><?php usces_the_firstPrice(); ?> <?php usces_guid_tax(); ?><em class="tax">(税込)</em>〜 </p> <?php else : ?> <p class="font-12 uppercase we-regular"> <?php echo('¥');?><?php usces_the_firstPrice(); ?> <?php usces_guid_tax();?><em class="tax">(税込)</em> </p> <?php endif; //商品が無い場合:終了 ?>
引き続きご確認いただけると大変助かります。
どうぞよろしくお願いいたします。2020年5月11日 2:05 PM #89917あつお参加者>yamanoco様
ブログ書いた当人です。
ソース見たところ_isku_を取得する場所に問題ありですね。if ( !usces_have_zaiko_anyone() の前に書いてください。
<?php $skus = get_post_meta($post->ID,'_isku_'); if ( !usces_have_zaiko_anyone() ) ://商品が無い場合:売り切れ表示 ?>
yamanoco様のソースだと在庫なしの中に_isku_を取得する記述があるため、在庫がある場合にSKUの数が判定できません。
ご確認ください。
2020年5月11日 7:01 PM #89925yamanoco参加者>あつお様
!! ご本人さま! ご確認いただきありがとうございます。
ブログに書かれている他のものも参考にさせていただいており、大変助かっております。お教えくださったように修正したところ、無事表示することができました。
どうもありがとうございます!!2023年7月14日 9:08 AM #100445yamanoco参加者以前解決できたと思ったこちらの問題なのですが、一覧表示させたときに
複数SKUの場合に「〜」の表示がでるものとでないものがあり、
どうも判別がわかりません。何かコードが間違っているのでしょうか・・。
<?php $skus = get_post_meta($post->ID,'_isku_'); if ( !usces_have_zaiko_anyone() ) ://商品が無い場合:売り切れ表示 ?> <div class="zaiko_status mb-10"> <p class="font-12 uppercase we-regular">SOLD OUT</p> </div> <?php elseif( count( $skus ) > 1 ) : //SKUが2つ以上の場合?> <p class="font-12 uppercase we-regular"> <?php echo('¥');?><?php usces_the_firstPrice(); ?> <?php usces_guid_tax(); ?>〜 </p> <?php else : ?> <p class="font-12 uppercase we-regular"> <?php echo('¥');?><?php usces_the_firstPrice(); ?> <?php usces_guid_tax();?> </p> <?php endif; //商品が無い場合:終了 ?>
もしお分かりになられる方いらっしゃいましたらお教えいただけると大変助かります。
どうぞよろしくお願いいたします。——————————————-
WordPress のバージョン:6.0.5
Welcart のバージョン:2.8.19
PHP のバージョン:(例 7.2)
Welcart専用の拡張プラグインとバージョン:wcex_sku_select 1.4.5
ご利用のテーマ:自作子テーマ
症状を確認したブラウザ:chrome firefox safari
サーバー:(会社名、サービス名) ロリポップ
SSLの利用:(例 常時SSL) 共有SSL
——————————————–2023年7月14日 10:06 AM #100446wecanjapan参加者welcart2.7での仕様変更により、使用できない関数が使用されているためかもしれません。
2.7以降へのアップデートについて注意喚起が度々されていましたが、確認されていますでしょうか。2023年7月14日 4:24 PM #100448ikedaキーマスター2023年7月14日 8:08 PM #100449yamanoco参加者wecanjapan 様
ikeda 様早々にご返信くださりありがとうございます。
Welcart2.7の仕様変更による関数が原因だったのですね。
失礼いたしました。以前は複数のSKUがあれば「〜」をいれるという仕様だったのを、
商品の仕様を考え、「最初と最後のSKUの価格が合っていなかったら」としました。参考ページを参照しながら、以下のように変更したところ、うまく表示できるようになりました。
お教えいただきありがとうございました。大変助かりました。<?php $sku = wel_get_sku( $post_id, $sku_code ); if ( !usces_have_zaiko_anyone() ) ://商品が無い場合:売り切れ表示 ?> <div class="zaiko_status mb-10"> <p class="font-12 uppercase we-regular">SOLD OUT</p> </div> <?php elseif( usces_the_firstPrice('return') == usces_the_lastPrice('return') ) : //最初のSKUと最後ののSKUの価格が同じ場合?> <p class="font-12 uppercase we-regular"> <?php echo('¥');?><?php usces_the_firstPrice(); ?> <?php usces_guid_tax(); ?> </p> <?php else : ?> <p class="font-12 uppercase we-regular"> <?php echo('¥');?><?php usces_the_firstPrice(); ?> <?php usces_guid_tax();?>〜 </p> <?php endif; //商品が無い場合:終了 ?>
-
投稿者投稿
- このトピックに返信するにはログインが必要です。