こんにちは!
少し悩んだ箇所がありましてとある関数を追加しました。
他の方のお役に立てればと思い投稿します。
問題はループ文のなかで在庫状況を呼び出せませんでした。
標準テーマではusces_get_itemZaiko(‘id’)を呼び出すようですが、なぜかうまくいきませんでした。
query_postsからwhileループで回していたのですが、usces_get_itemZaiko(‘id’)がうまく動きませんでした。
呼び出し部
<?php $args = array('category_name'=>'item', 'order' => 'ASC','posts_per_page'=> -1);
$posts = query_posts( $args); ?>
<?php while (have_posts()) : the_post(); usces_the_item(); ?>
$status = aroma_get_itemZaiko( 'id' );
switch( $status ){
case 0:
echo '<span class="zaiko_ari">在庫あり</span>';
break;
case 1:
echo '<span class="few">残りわずか</span>';
break;
case 2:
echo '<span class="soldout">売り切れ</span>';
break;
case 3:
echo '<span class="waiting">入荷待ち</span>';
break;
}
?>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
以下をfunctions.phpに追加してうまく動きました。
<?php
function my_get_itemZaiko( $field = 'name', $post_id=NULL, $sku=NULL ) {
global $usces;
if( empty($sku) ){
if(isset($usces->itemsku['stock'])) {
$num = $usces->itemsku['stock'];
} else {
$num = (int)$usces->itemskus[0]['stock'];
}
}else{
$skus = $usces->get_skus( $post_id, 'code' );
$num = (int)$skus[$sku]['stock'];
}
if( 'id' == $field ){
$res = $num;
}else{
$res = $usces->zaiko_status[$num];
}
return $res;
}
もしかすると他の標準関数(usces_*)を使うとうまくいくかもしれないです。
修正、解決の希望などではなく、どなたかが検索された際に役立てば幸いです。
-
このトピックはyousanが9年、 3ヶ月前に変更しました。
-
このトピックはyousanが9年、 3ヶ月前に変更しました。