Php 设置可变产品的Woocommerce存档上显示的最大可用库存量

Php 设置可变产品的Woocommerce存档上显示的最大可用库存量,php,wordpress,woocommerce,stock,variable-product,Php,Wordpress,Woocommerce,Stock,Variable Product,我想设置Woocommerce商店页面上可用库存商品的最大数量 我使用的答案代码,这做了一个伟大的工作,显示在一个商业商店的变化可用库存 但我想显示一个最大值,比如说50,如果股票实际超过50。如果有721件库存商品,我只想让客户看到50件 我试图在现有代码中添加另一个if语句,但它只是在显示中添加了另一行,显示实际库存总量以及我的最大库存量50,如果总量超过50。以下内容将在库存量超过50时限制袜子数量显示,对于可变产品: add_action( 'woocommerce_after_shop

我想设置Woocommerce商店页面上可用库存商品的最大数量

我使用的答案代码,这做了一个伟大的工作,显示在一个商业商店的变化可用库存

但我想显示一个最大值,比如说50,如果股票实际超过50。如果有721件库存商品,我只想让客户看到50件


我试图在现有代码中添加另一个if语句,但它只是在显示中添加了另一行,显示实际库存总量以及我的最大库存量50,如果总量超过50。

以下内容将在库存量超过
50
时限制袜子数量显示,对于可变产品:

add_action( 'woocommerce_after_shop_loop_item', 'wc_loop_get_product_stock_availability_text', 10 );
function wc_loop_get_product_stock_availability_text() {
    global $wpdb, $product;

    $max_stock_qty = 50; // Maximum Number of Available Stock qty

    // For variable products
    if( $product->is_type('variable') ) {

        // Get the stock quantity sum of all product variations (children)
        $stock_quantity = $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
        ");

        if ( $stock_quantity > 0 ) {
            // Here we limit the sock quantity display to 50 when it's up to 50
            $stock_quantity = $stock_quantity >= $max_stock_qty ? $max_stock_qty : $stock_quantity;
            
            echo '<p class="stock in-stock">'. sprintf( __("%s in stock", "woocommerce"), $stock_quantity ).'</p>';
        } else {
            if ( is_numeric($stock_quantity) )
                echo '<p class="stock out-of-stock">' . __("Out of stock", "woocommerce") . '</p>';
            else
                return;
        }
    }
    // Other products types
    else {
        echo wc_get_stock_html( $product );
    }
}
add_action('woocommerce_在_shop_loop_item之后,'wc_loop_获取_产品_库存_可用性_text',10);
函数wc\u loop\u get\u product\u stock\u availability\u text(){
全球$wpdb,$product;
$max\u stock\u qty=50;//可用库存数量的最大数量
//对于可变产品
如果($product->is_类型('variable')){
//获取所有产品变体(子项)的库存数量总和
$stock\u quantity=$wpdb->get\u var(“
从{$wpdb->prefix}帖子中选择SUM(pm.meta_值)作为p
在p.ID=pm.post\u ID上将{$wpdb->prefix}postemta作为pm加入
其中p.post_类型=‘产品_变化’
p.post_status='publish'和p.post_parent='”。获取_id()
pm.meta_key=''u stock',pm.meta_值不为空
");
如果($stock_quantity>0){
//在这里,当袜子数量达到50时,我们将其显示限制为50
$stock\u quantity=$stock\u quantity>=$max\u stock\u quantity?$max\u stock\u quantity:$stock\u quantity;
echo'

'.sprintf(“%s库存”,“woocommerce”),$stock\u数量)。

; }否则{ 如果(是数字($stock\u quantity)) echo'

。“(缺货”,“woocommerce”)。

; 其他的 返回; } } //其他产品类型 否则{ echo wc_get_stock_html($product); } }
代码进入活动子主题(或活动主题)的functions.php文件。它应该有用


相关:

以下内容将限制袜子数量显示为
50
当超过
50
时,适用于各种产品:

add_action( 'woocommerce_after_shop_loop_item', 'wc_loop_get_product_stock_availability_text', 10 );
function wc_loop_get_product_stock_availability_text() {
    global $wpdb, $product;

    $max_stock_qty = 50; // Maximum Number of Available Stock qty

    // For variable products
    if( $product->is_type('variable') ) {

        // Get the stock quantity sum of all product variations (children)
        $stock_quantity = $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
        ");

        if ( $stock_quantity > 0 ) {
            // Here we limit the sock quantity display to 50 when it's up to 50
            $stock_quantity = $stock_quantity >= $max_stock_qty ? $max_stock_qty : $stock_quantity;
            
            echo '<p class="stock in-stock">'. sprintf( __("%s in stock", "woocommerce"), $stock_quantity ).'</p>';
        } else {
            if ( is_numeric($stock_quantity) )
                echo '<p class="stock out-of-stock">' . __("Out of stock", "woocommerce") . '</p>';
            else
                return;
        }
    }
    // Other products types
    else {
        echo wc_get_stock_html( $product );
    }
}
add_action('woocommerce_在_shop_loop_item之后,'wc_loop_获取_产品_库存_可用性_text',10);
函数wc\u loop\u get\u product\u stock\u availability\u text(){
全球$wpdb,$product;
$max\u stock\u qty=50;//可用库存数量的最大数量
//对于可变产品
如果($product->is_类型('variable')){
//获取所有产品变体(子项)的库存数量总和
$stock\u quantity=$wpdb->get\u var(“
从{$wpdb->prefix}帖子中选择SUM(pm.meta_值)作为p
在p.ID=pm.post\u ID上将{$wpdb->prefix}postemta作为pm加入
其中p.post_类型=‘产品_变化’
p.post_status='publish'和p.post_parent='”。获取_id()
pm.meta_key=''u stock',pm.meta_值不为空
");
如果($stock_quantity>0){
//在这里,当袜子数量达到50时,我们将其显示限制为50
$stock\u quantity=$stock\u quantity>=$max\u stock\u quantity?$max\u stock\u quantity:$stock\u quantity;
echo'

'.sprintf(“%s库存”,“woocommerce”),$stock\u数量)。

; }否则{ 如果(是数字($stock\u quantity)) echo'

。“(缺货”,“woocommerce”)。

; 其他的 返回; } } //其他产品类型 否则{ echo wc_get_stock_html($product); } }
代码进入活动子主题(或活动主题)的functions.php文件。它应该有用


相关:

是的,这非常有效!谢谢你的快速帮助。因为它不会让我投票,我想它不会让我检查答案。现在完成。再次感谢!是的,很好用!谢谢你的快速帮助。因为它不会让我投票,我想它不会让我检查答案。现在完成。再次感谢!