Re: [解決済み] 在庫ステータスの条件分岐「在庫僅少」が反映されない。

フォーラム 使い方全般 [解決済み] 在庫ステータスの条件分岐「在庫僅少」が反映されない。 Re: [解決済み] 在庫ステータスの条件分岐「在庫僅少」が反映されない。

#64157
nanbu
キーマスター

usces_have_zaiko()は在庫があるかどうかを返していますので、!usces_have_zaiko()の中では在庫がない時のステータス、elseでは在庫がある時のステータスを表示させると良いかと思います。

このようになります。

<?php $status = usces_get_itemZaiko( 'id' ); ?>
<?php if( !usces_have_zaiko() ) : ?>
<?php if( 2 === $status ): ?>
<?php echo apply_filters('usces_filters_single_sku_zaiko_message', __('ステータス2', 'usces')); ?>
<?php endif; ?>
<?php if( 3 === $status ): ?>
<?php echo apply_filters('usces_filters_single_sku_zaiko_message', __('ステータス3', 'usces')); ?>
<?php endif; ?>
<?php if( 4 === $status ): ?>
<?php echo apply_filters('usces_filters_single_sku_zaiko_message', __('ステータス4', 'usces')); ?>
<?php endif; ?>
<?php else : ?>
<?php if( 0 === $status ): ?>
<?php echo apply_filters('usces_filters_single_sku_zaiko_message', __('ステータス0', 'usces')); ?>
<?php endif; ?>
<?php if( 1 === $status ): ?>
<?php echo apply_filters('usces_filters_single_sku_zaiko_message', __('ステータス1', 'usces')); ?>
<?php endif; ?>
<?php endif; ?>

これを見ていただきますとわかります通り、usces_have_zaiko()の条件分岐を行う必要がございません。

そこでこのようになります。

<?php $status = usces_get_itemZaiko( 'id' ); ?>
<?php if( 0 === $status ): ?>
<?php echo apply_filters('usces_filters_single_sku_zaiko_message', __('ステータス0', 'usces')); ?>
<?php endif; ?>
<?php if( 1 === $status ): ?>
<?php echo apply_filters('usces_filters_single_sku_zaiko_message', __('ステータス1', 'usces')); ?>
<?php endif; ?>
<?php if( 2 === $status ): ?>
<?php echo apply_filters('usces_filters_single_sku_zaiko_message', __('ステータス2', 'usces')); ?>
<?php endif; ?>
<?php if( 3 === $status ): ?>
<?php echo apply_filters('usces_filters_single_sku_zaiko_message', __('ステータス3', 'usces')); ?>
<?php endif; ?>
<?php if( 4 === $status ): ?>
<?php echo apply_filters('usces_filters_single_sku_zaiko_message', __('ステータス4', 'usces')); ?>
<?php endif; ?>

更に、フックを使う必要がなければこのように書くこともできます。

<?php
$status = usces_get_itemZaiko( 'id' );
if( 0 === $status ):
echo 'ステータス0';
elseif( 1 === $status ):
echo 'ステータス1';
elseif( 2 === $status ):
echo 'ステータス2';
elseif( 3 === $status ):
echo 'ステータス3';
elseif( 4 === $status ):
echo 'ステータス4';
endif;
?>

また、この出力は、ステータス名を変えなければこのテンプレートタグと同じです。

<?php echo usces_get_itemZaiko( 'name' ); ?>