解決済商品一覧ページ、複数SKUの価格の後ろに「〜」をつけたい

フォーラム 使い方全般 【解決済】商品一覧ページ、複数SKUの価格の後ろに「〜」をつけたい

  • このトピックには8件の返信、5人の参加者があり、最後にyamanocoにより9ヶ月、 2週前に更新されました。
9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • 投稿者
    投稿
  • #89908
    yamanoco
    参加者

    ——————————————-
    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; //商品が無い場合:終了 ?>`

    #89913
    ohnishi
    キーマスター

    こんにちは

    上記のコードについてですが、
    ダブル(シングル)クオーテーションが全角になっているや
    <p>の閉じタグ(</p>)がないなどが原因ではないでしょうか。

    一度、ご確認お願いします。

    #89915
    yamanoco
    参加者

    >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; //商品が無い場合:終了 ?>
    

    引き続きご確認いただけると大変助かります。
    どうぞよろしくお願いいたします。

    #89917
    あつお
    参加者

    >yamanoco様

    ブログ書いた当人です。
    ソース見たところ_isku_を取得する場所に問題ありですね。

    if ( !usces_have_zaiko_anyone() の前に書いてください。

    <?php
    $skus = get_post_meta($post->ID,'_isku_');
    if ( !usces_have_zaiko_anyone() ) ://商品が無い場合:売り切れ表示
    ?>

    yamanoco様のソースだと在庫なしの中に_isku_を取得する記述があるため、在庫がある場合にSKUの数が判定できません。

    ご確認ください。

    #89925
    yamanoco
    参加者

    >あつお様
    !! ご本人さま! ご確認いただきありがとうございます。
    ブログに書かれている他のものも参考にさせていただいており、大変助かっております。

    お教えくださったように修正したところ、無事表示することができました。
    どうもありがとうございます!!

    #100445
    yamanoco
    参加者

    以前解決できたと思ったこちらの問題なのですが、一覧表示させたときに
    複数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
    ——————————————–

    #100446
    wecanjapan
    参加者

    welcart2.7での仕様変更により、使用できない関数が使用されているためかもしれません。
    2.7以降へのアップデートについて注意喚起が度々されていましたが、確認されていますでしょうか。

    #100448
    ikeda
    キーマスター

    wecanjapan 様
    ご返信いただき誠にありがとうございます。

    yamanoco 様
    wecanjapan 様の仰るとおり、Welcart2.7 から商品データの仕様が変更になっておりますので、独自に行われたカスタマイズには修正が必要になる場合がございます。
    Welcart 2.7 の変更点とカスタマイズへの影響についてはこちらの記事をご確認いただけますでしょうか。
    カスタマイズの修正方法につきましてはこちらの資料をご参考にしていただければと思います。

    #100449
    yamanoco
    参加者

    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; //商品が無い場合:終了 ?>
    
9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • このトピックに返信するにはログインが必要です。