我想在我的store 页面上显示可用的产品变体的属性(有库存的).我的代码完成了这项工作,但我得到的不是属性名称,而是属性的缩写名称,这看起来确实很糟糕.我应该做什么或改变什么?
代码如下所示:
add_action( 'woocommerce_after_shop_loop_item', 'display_loop_item_stock_notice', 90 );
function display_loop_item_stock_notice() {
global $product, $wpdb;
$is_in_stock = $product->is_in_stock();
$backordered = $product->is_on_backorder();
//Dla wariacji:
if($product->is_type('variable'))
{
$stock_qty = $wpdb->get_var("
SELECT SUM(pm.meta_value) FROM {$wpdb->prefix}posts as p
JOIN {$wpdb->prefix}postmeta as pm ON p.ID = pm.post_id
WHERE p.post_type = 'product_variation'
AND p.post_status = 'publish' AND p.post_parent = '".get_the_id()."'
AND pm.meta_key = '_stock' AND pm.meta_value IS NOT NULL");
//Dla wariacji w magazynie:
if($stock_qty > 0)
{
echo '<span style="color:green; font-weight:bold;"> Opcje dostępne z magazynu:</span></br>';
foreach ( $product->get_available_variations() as $key ) {
$variation = wc_get_product( $key['variation_id'] );
$stock = $variation->get_availability();
$stock_quantity = $variation->get_stock_quantity();
if($variation->is_in_stock( ) && $stock_quantity > 0)
{
$attr_string = array();
foreach ( $key['attributes'] as $attr_name => $attr_value ) {
$attr_string[] = $attr_value;
echo $variation->attribute_value;
}
echo '<span style="color:green;">'. implode( ', ', $attr_string ). ': ' . $stock_quantity. ' sztuk</span> </br>';}
}
}
//Dla braków na magazynie:
else
{
echo $backordered !== 'no' && $stock_qty <= 0 ? '<span style="color:#33b0c7; "> Dostępny na zamówienie </span>' : '<span style="color:red;"> Brak w magazynie</span>';
}
}
以下是它在store 页面上的外观:
属性选项通常如下所示: variation options个
谢谢你的帮助!