在庫状態の呼び出しがうまくいかなかった
3件の投稿を表示中 - 1 - 3件目 (全3件中)
-
投稿者投稿
-
2015年8月7日 4:19 PM #75287
yousan
参加者こんにちは!
少し悩んだ箇所がありましてとある関数を追加しました。
他の方のお役に立てればと思い投稿します。問題はループ文のなかで在庫状況を呼び出せませんでした。
標準テーマでは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_*)を使うとうまくいくかもしれないです。
修正、解決の希望などではなく、どなたかが検索された際に役立てば幸いです。2015年8月7日 6:56 PM #75297kitamuuu
参加者ループ内で、usces_the_item()の後にusces_have_skus()を使って$usces->itemskuに値をセットすると呼び出せるようになると思います。
2015年8月19日 1:39 PM #75438yousan
参加者アドバイスありがとうございますー!
確かに
usces_the_item();しか呼んでいませんでした。
usces_have_skus()を呼べばよかったのですね。 -
投稿者投稿
3件の投稿を表示中 - 1 - 3件目 (全3件中)
- このトピックに返信するにはログインが必要です。
PAGE TOP