Welcartで商品一覧に在庫数を出す

Welcartで在庫数を表示する際に気をつけることが2点あり。
Welcartのテンプレートで各商品ページを表示する際には、単に以下のコードを加えれば表示されると思いがちだ。

各商品ページで表示する場合

<div>残り在庫数は <?php usces_the_itemZaikoNum(); ?> です</div>

ところが、以下の2つのコードが重要である。

<?php usces_the_item(); ?>
<?php usces_have_skus(); ?>

Welcartのリファレンスには、「usces_have_skus() によりSKU情報がセットされていないと表示されません。」とあるのがこのことである。

在庫数を取得する前にこれらがセットされていないと取得できない。

wc_item_single.phpのソースには実はこれがセットされており、<?php usces_the_itemZaikoNum(); ?>を入れるだけで表示される。

しかしながら表示されない場合、これをチェックする必要あり。

商品一覧で在庫数を表示する場合

ここが一番ハマるところ。一覧ページで商品を表示する場合は画像や商品名、値段などは、usces_the_item()、usces_have_skus()がセットされていなくても表示できるが、在庫数は表示できない。そこで、各商品ページと同じようにこれらの2つのコードを表示させる前にセットする。

<?php if (have_posts()) : the_post(); ?>
 
  <?php usces_the_item(); ?> <!-- ←表示させる前にセットする -->
  <?php usces_have_skus(); ?> <!-- ←表示させる前にセットする -->
  <?php
  $zaikoNum = usces_the_itemZaikoNum('return');
  echo '在庫数:' . $zaikoNum;
  ?>
 
<?php endif; ?>

これで商品一覧ページにも在庫数を表示できる。