在 WooCommerce 自定义产品类型上显示库存状态
Displayed stock status on WooCommerce custom product type
我创建了名为 "event" 的自定义产品类型。在产品页面上,我想显示自定义库存状态,所以我使用此代码:
add_action( 'woocommerce_before_add_to_cart_form', 'yy', 15 );
function yy() {
global $post;
if( function_exists('get_product') ){
$product = get_product( $post->ID );
if( $product->is_type( 'event' ) ){
if ( $product->stock ) { // if manage stock is enabled
if ( number_format( $product->stock,0,'','' ) > 0 ) { // if stock is low
echo '<p class="stock in-stock">' . number_format($product->stock,0,'','') . ' in stock</p>';
} elseif ( number_format( $product->stock,0,'','' ) == 0 ) {
echo '<p class="stock out-of-stock">' . __('Out of stock', 'behold-basic') . '</p>';
}
}
};
}
}
但是当库存为 0 时什么也没有出现,应该是 "Out of stock"。可能是哪里出了问题?
您的代码自 WooCommerce 3 以来已经完全过时了……现在您应该尝试使用与库存相关的 WC_Product
methods 而不是 (如果您的自定义产品类型扩展 WC_Product
Class 应该是):
add_action( 'woocommerce_before_add_to_cart_form', 'before_add_to_cart_form_callback', 15 );
function before_add_to_cart_form_callback() {
global $product;
if( $product->is_type( 'event' ) ){
if ( $product->get_manage_stock() ) { // if manage stock is enabled
$stock = (int) $product->get_stock_quantity();
$status = $product->get_stock_status();
if ( $stock > 0 ) { // if stock is low
echo '<p class="stock in-stock">' . $stock . ' ' . __('in stock', 'behold-basic') ; '</p>';
} elseif ( $stock == 0 ) {
echo '<p class="stock out-of-stock">' . __('Out of stock', 'behold-basic') . '</p>';
}
}
}
}
它应该更好用……
我创建了名为 "event" 的自定义产品类型。在产品页面上,我想显示自定义库存状态,所以我使用此代码:
add_action( 'woocommerce_before_add_to_cart_form', 'yy', 15 );
function yy() {
global $post;
if( function_exists('get_product') ){
$product = get_product( $post->ID );
if( $product->is_type( 'event' ) ){
if ( $product->stock ) { // if manage stock is enabled
if ( number_format( $product->stock,0,'','' ) > 0 ) { // if stock is low
echo '<p class="stock in-stock">' . number_format($product->stock,0,'','') . ' in stock</p>';
} elseif ( number_format( $product->stock,0,'','' ) == 0 ) {
echo '<p class="stock out-of-stock">' . __('Out of stock', 'behold-basic') . '</p>';
}
}
};
}
}
但是当库存为 0 时什么也没有出现,应该是 "Out of stock"。可能是哪里出了问题?
您的代码自 WooCommerce 3 以来已经完全过时了……现在您应该尝试使用与库存相关的 WC_Product
methods 而不是 (如果您的自定义产品类型扩展 WC_Product
Class 应该是):
add_action( 'woocommerce_before_add_to_cart_form', 'before_add_to_cart_form_callback', 15 );
function before_add_to_cart_form_callback() {
global $product;
if( $product->is_type( 'event' ) ){
if ( $product->get_manage_stock() ) { // if manage stock is enabled
$stock = (int) $product->get_stock_quantity();
$status = $product->get_stock_status();
if ( $stock > 0 ) { // if stock is low
echo '<p class="stock in-stock">' . $stock . ' ' . __('in stock', 'behold-basic') ; '</p>';
} elseif ( $stock == 0 ) {
echo '<p class="stock out-of-stock">' . __('Out of stock', 'behold-basic') . '</p>';
}
}
}
}
它应该更好用……