wordpress WooCommerce库存编号显示

35g0bw71  于 2023-03-07  发布在  WordPress
关注(0)|答案(2)|浏览(273)

我一直试图摆脱我们的WordPress/WooCommerce网站上的产品页面上的确切库存编号。理想情况下,它显示在股票,只有1或2只剩下股票时,只有1或2可用,或者已经卖光了。我已经尝试了许多代码片段在这里找到堆栈溢出,但他们似乎没有改变任何东西。还有标准的woocommerce设置在产品〉库存不要'不显示任何库存编号没有任何作用。在前端它一直显示可用性:准确的库存量。有人能帮我吗?
将这些代码片段添加到我的子主题的functions.php中,甚至添加到代码片段插件中,似乎对我没有任何帮助:

add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 1, 2);
function wcs_custom_get_availability( $availability, $_product ) {
    
    // Change In Stock Text
    if ( $_product->is_in_stock() ) {
        $availability['availability'] = __('Available!', 'woocommerce');
    }
    // Change Out of Stock Text
    if ( ! $_product->is_in_stock() ) {
        $availability['availability'] = __('Sold Out', 'woocommerce');
    }
    return $availability;
}
gxwragnw

gxwragnw1#

更好的方法是使用woocommerce_get_availability_text而不是woocommerce_get_availability,这样只过滤可用性文本,并在woocommerce_get_availability之后调用。

add_filter( 'woocommerce_get_availability_text', 'set_custom_availability_text', 10, 2 );
function set_custom_availability_text( $availability, $product ) {
    if ( $product->is_in_stock() ) {
        $availability = __( 'Available!', 'woocommerce' );
    } elseif ( ! $product->is_in_stock() ) {
        $availability = __( 'Out of stock', 'woocommerce' );
    }
    return $availability;
}

如果上面的代码什么都不做,那么就用die()函数测试一下过滤器是否被调用了,这将停止执行后面的代码,并打印出括号中的字符串:

add_filter( 'woocommerce_get_availability_text', 'set_custom_availability_text_test', 10, 2 );
function set_custom_availability_text_test( $availability, $product ) {
    die('Filter is called');
}

所以如果过滤器被正确调用,你的页面应该显示可用性文本,并在可用性文本应该显示的地方显示“Filter is called”。如果什么都没有发生,这意味着过滤器没有被调用。所以检查你的functions.php是否正在加载,或者使用一个插件,如代码段。

sauutmhj

sauutmhj2#

此代码段可帮助您更改所有产品或特定产品的文本:

<?php
    add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability',1,2);
    function wcs_custom_get_availability($availability,$_product ) {
       global $product;
        switch($_product->slug){
            // Enter product slug for case
            case "test-1":
                // text for in stock mode 
                if($_product->manage_stock = true){
                        $availability['availability'] = str_replace($availability['availability'],"Enter your custom text here $_product->stock_quantity",$availability['availability']);
                }
                // text for out of stock mode 
                if ( ! $_product->is_in_stock() ) {
                         $availability['availability'] = __('Enter your custom text here', 'woocommerce');
                }
    
                break;
                
            case "test2":
                if($_product->manage_stock = true){
                        $availability['availability'] = str_replace($availability['availability'],"Enter your custom text here $_product->stock_quantity",$availability['availability']);
                }
                if ( ! $_product->is_in_stock() ) {
                         $availability['availability'] = __(' Enter your custom text here', 'woocommerce');
                }
                break;
                
            case "test3":
                if($_product->manage_stock = true){
                        $availability['availability'] = str_replace($availability['availability'],"Enter your custom text here $_product->stock_quantity نفر",$availability['availability']);
                }
                if ( ! $_product->is_in_stock() ) {
                         $availability['availability'] = __(' Enter your custom text here', 'woocommerce');
                }
                break;
        }
    
    
        return $availability;
    }

相关问题