こちらのページを参考にさせてもらいました。
まめ子さん
http://welcustom.net/show-count-stocks/
ネットで出ている情報。商品詳細ページのテンプレートは「wc_item_single.php」。
ここに上記ページに載っている
<?php
$stock_rest
= usces_the_itemZaikoNum(
'return'
);
if
( usces_get_itemZaiko(
'id'
) <= 1 ){
if
(
$stock_rest
>= 15 ){
//在庫数が15以上の場合
echo
'在庫有り'
;
}
elseif
( 0 <
$stock_rest
&&
$stock_rest
< 15 ){
//在庫数が0より大きく15未満の場合
echo
$stock_rest
.
'点在庫有り'
;
}
}
else
{
//その他の場合
usces_the_itemZaikoStatus();
//在庫状態を表示
}
?>
<div class="field"><?php _e('stock status', 'usces'); ?> : <?php usces_the_itemZaikoStatus(); ?>
の下に貼り付けてやると、しっかりと在庫数が表示されました。
ありがたや、ありがたや。
なのですが、このデフォルトテンプレートは商品画像がサムネイルだけ、投稿の本文は出ない、など外観を成形するにはかなりの手間がかかりそうでした。
途中まで作っていた自作のテンプレにしよう、ということで、上記スクリプトを貼り付け。
ところが、これだけではなにも表示してくれません。
さんざん検索して探し回ったのですが、結局見つからず、試しに「wc_item_single.php」の中身をそっくりそのまま自作テンプレに「ctrl + A」-->>「ctrl + V」したところ、まったく同じに動作しました。場所やファイル名は関係ないということ。
ならば、スクリプトのどこかに秘密が隠されているに違いない。
といことで、自作の内容を元に戻し、「wc_item_single.php」のなかのめぼしい個所を下の方に貼り付けてみました。
それがこちら。
<!--価格表示 テスト ここから-->
<!--デフォルト テンプレ部分-->
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<?php usces_remove_filter(); ?>
<?php usces_the_item(); ?>
<?php if(usces_sku_num() === 1) : usces_have_skus(); ?>
<div class="field"><?php _e('stock status', 'usces'); ?> : <?php usces_the_itemZaikoStatus(); ?></div>
<?php endif; ?>
<!--デフォルト テンプレ部分 おわり-->
<!--在庫数を実数表示 いただいた箇所-->
<?php
$stock_rest
= usces_the_itemZaikoNum(
'return'
);
if
( usces_get_itemZaiko(
'id'
) <= 1 ){
if
(
$stock_rest
>= 15 ){
//在庫数が15以上の場合
echo
'在庫有り'
;
}
elseif
( 0 <
$stock_rest
&&
$stock_rest
< 15 ){
//在庫数が0より大きく15未満の場合
echo
$stock_rest
.
'点在庫有り'
;
}
}
else
{
//その他の場合
usces_the_itemZaikoStatus();
//在庫状態を表示
}
<!--在庫数を実数表示(終了)-->
</div>
<!--価格表示 テスト ここまで-->
「デフォルト テンプレ部分」はもとは、ほかにもたくさんのタグやらがあるのですが、関係なさそうなのは削除。
これでも必要最小限かどうかはわかりませんが、何とか在庫数を表示することができました。
ちなみに<?php endif; ?>は
Parse error: syntax error, unexpected $end in
というエラーが出たので入れました。
ループの閉じ忘れだそうです。
オリジナルはもっと下の方で閉じているのでしょう。
参考ページ
https://php1st.com/578/
さらに、不用なタグを削除。
とりあえず(というのは、まだメール送信まで確認していないので。)完成形はこんな感じ。
一覧ページでは問題なかったのですが、詳細ページ(SINGLE PAGE)では、カートボタンと数量設定フォームが消えてしまったので、
<?php wp_reset_query(); ?>
しました。
上部の3行はおまじないのようなものなのでしょう。
これを消すと下が働きません。
<!--在庫数 ここから-->
<?php usces_the_item(); ?>
<?php if(usces_sku_num() === 1) : usces_have_skus(); ?>
<?php endif; ?>
<!--在庫数を実数表示-->
<?php
$stock_rest = usces_the_itemZaikoNum('return');
if ( $stock_rest < 6 ){ //在庫数が6未満の場合
echo '残りわずか';
echo $stock_rest. '個となりました';
} elseif ( $stock_rest > 6 ) { //その他の場合
usces_the_itemZaikoStatus(); //在庫状態を表示
}
?>
<!--在庫数を実数表示(終了)-->
<!--在庫数 ここまで-->
<?php wp_reset_query(); ?>
これで、自作テンプレでも在庫数取得&表示が可能になるので、「在庫がなくなったら、こうしよう・・・。」といった希望が叶えられそうですゎ。
今のところ6個未満で在庫数を表示し購買意欲を煽るシステムにしています。