【问题标题】:WooCommerce Stock number displayWooCommerce 库存编号显示
【发布时间】:2020-10-28 16:39:24
【问题描述】:

我一直试图在我们的 wordpress/woocommerce 网站的产品页面上删除我们的确切库存编号。理想情况下,它显示有库存,当只有 1 或 2 件可用或刚刚售罄时,仅剩 1 或 2 件库存。我已经尝试了许多关于堆栈溢出的代码 sn-ps,但它们似乎都没有改变任何东西。此外,产品 > 库存中不显示任何库存编号的标准 woocommerce 设置也无济于事。在前端,它一直显示可用性:确切的库存量。谁能帮帮我?

将这些类型的 sn-ps 添加到我的子主题的 functions.php 甚至在代码 sn-p 插件中似乎对我没有任何作用:

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;
}

【问题讨论】:

  • 所以你想在单个产品页面显示可用数量
  • 它现在显示确切的数量,但我希望它只显示 In stock 或 Sold out。理想情况下,在这种情况下也只需添加 2 或 1 个库存。或者甚至在库存不足时几乎售罄。
  • 是的,我已经尝试更改 woocommerce 设置和这两段代码,但它没有做任何事情..

标签: wordpress woocommerce stock


【解决方案1】:

更好的方法是使用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');
}

因此,如果正确调用过滤器,您的页面应呈现为可用文本并在可用文本应显示的位置显示“已调用过滤器”。如果没有任何反应,这意味着过滤器没有被调用。因此,请检查您的 functions.php 是否正在加载,或者使用 Code Snippets 之类的插件。

【讨论】:

  • 感谢您的回复!不幸的是,这仍然没有任何作用。它像往常一样不断显示确切的库存数量。任何其他提示都非常受欢迎!
  • 您是否确保通过添加die() 来调用过滤器?
  • 我已经尝试了您发布的更新代码,但仍然没有。在顶部添加 die() 只是为了测试东西还是应该影响结果?
  • 我已经完全更新了我的答案,请检查是否正在调用过滤器。
  • 我已经测试过了,过滤器被正确调用了。页面显示的内容与您所说的过滤器完全一样,并且未在其下方加载任何内容。当使用像您发布的实际过滤器时,即使使用 25、2。它仍然没有将库存数量更改为集合名称。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-18
  • 2022-11-17
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
  • 2016-05-06
相关资源
最近更新 更多