複数のSKUの登録時、金額・カートボタンを1つにしたい

フォーラム その他 複数のSKUの登録時、金額・カートボタンを1つにしたい

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

    ——————————————-
    WordPress:6.3.1
    Welcart:2.8.22
    PHP:7.4.33
    Welcart専用の拡張プラグインとバージョン:wcex_afc_patch v6.1.6
    ——————————————-

    いつもWelcartを利用させていただき、ありがとうございます。
    現在オリジナルテーマにて、Welcartの構築を進めております。

    管理画面の商品ページより、4つのSKU価格を登録しました。
    更新をして表示を確認すると、以下のような表示になるかと思います。

    SKUコード(1)
    ● SKU表示名
    ● 金額
    ● 売価
    ● 在庫数
    ● カートへ入れるボタン

    SKUコード(2)
    ● SKU表示名
    ● 金額
    ● 売価
    ● 在庫数
    ● カートへ入れるボタン

    SKUコード(3)
    ● SKU表示名
    ● 金額
    ● 売価
    ● 在庫数
    ● カートへ入れるボタン

    SKUコード(4)
    ● SKU表示名
    ● 金額
    ● 売価
    ● 在庫数
    ● カートへ入れるボタン

    しかし、この表示方法だと、縦に長くなりすぎてしまうので、以下のように変更をしたいです。

    SKUコード(1)
    ● SKU表示名

    SKUコード(2)
    ● SKU表示名

    SKUコード(3)
    ● SKU表示名

    SKUコード(4)
    ● SKU表示名

    SKUコード(1) ~ SKUコード(4)
    ● 金額
    ● 売価
    ● 在庫数
    ● カートへ入れるボタン

    例えば、SKUコード(2)を選択したときだと、SKUコード(1) ~ SKUコード(4)の欄はSKUコード(2)の金額や売価などの情報を、SKUコード(4)を選択したときだと、SKUコード(1) ~ SKUコード(4)の欄はSKUコード(4)の金額や売価などの情報を表示するようにしたいです。

    ここについてはJavaScriptのタブ切り替えみたいな実装をすればできそうな感じはしています。
    しかし、「SKUの表示名」と「金額・売価・在庫数・カートへ入れるボタン」を分けて表示させる方法の検討がついておりません。

    コードを確認したところ、以下の部分に何かしらの変更を加えれば実現しそうだということは想像がつきました。

    ◆ wc_item_single.php

    <form action=”<?php echo esc_url( USCES_CART_URL ); ?>” method=”post”>
    <?php do { ?>
    ///////// 中略 /////////
    <?php } while ( usces_have_skus() ); ?>

    <?php do_action( ‘usces_action_single_item_inform’ ); ?>
    </form>

    ダメもとで「<?php do { ?> <?php } while ( usces_have_skus() ); ?>」を二つにして、「SKU表示名」のループ群と「SKUコード(1) ~ SKUコード(4)」のループ群を作ってみましたが、うまく表示させられませんでした。

    他に検索等で調べてみましたが、拡張プラグインでの実装以外にめぼしいものを見つけることができませんでした。

    拡張プラグインを使わずに、この実装を行うことは可能でしょうか?
    もしWordPressやPHP、Welcartに詳しい方がいらっしゃいましたら、ご教授いただけますと幸いでございます。

    どうぞよろしくお願いいたします。

    #100767
    wel_takawa
    参加者

    お世話になっております。
    解決方法を探してみたところ、下記のようにコードを変更することで、目的の仕様に一歩近づくことができました。

    ◆ wc_item_single

    1) 1回目の「usces_have_skus();」を削除。
    2) <?php do { ?> と <?php } while ( usces_have_skus() ); ?> を削除。
    3) <?php while ( usces_have_skus() ): ?> ~ <?php endwhile; ?> で2つのループを作成。
    4) 1回目の <?php while ( usces_have_skus() ): ?> ~ <?php endwhile; ?> 直下に <?php usces_reset_skus(); ?> を追加。

    上記でカートに入れるボタンをそれぞれ検証してみましたが、問題なく動作しておりました。
    whileのループでは、SKUに登録されている全ての値が取得されるんですね…。それに気づかずにハマっておりました。

    今のところこちらで問題なさそうなので、解決済みとさせていただきます。

    少しでもこの質問をご覧頂きました方々や、気にかけてくださった方々がいらっしゃいましたら、お礼申し上げます。

    また、何かしらの参考になりましたら幸いでございます。

2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。