【问题标题】:Change "in stock" text on WooCommerce在 WooCommerce 上更改“库存”文本
【发布时间】:2014-03-06 18:26:40
【问题描述】:

目前,在单个产品页面上,库存文本显示为“# in stock”。

我想稍微修改一下代码,但没有找到解决方案。我无法找到该代码行来自哪个确切文件。 price.php 好像有这个

<link itemprop="availability" href="http://schema.org/<?php echo $product->is_in_stock() ? 'InStock' : 'OutOfStock'; ?>" />

但它什么也没做。当我检查元素时,该类称为“股票”。

我尝试将这段代码添加到functions.php中:

add_filter( 'woocommerce_get_availability', 'custom_get_availability', 1, 2);

function custom_get_availability( $availability, $_product ) {
    //change text "In Stock' to 'SPECIAL ORDER'
    if ( $_product->is_in_stock() ) $availability['availability'] = __('SPOTS LEFT', 'woocommerce');

    //change text "Out of Stock' to 'SOLD OUT'
    if ( !$_product->is_in_stock() ) $availability['availability'] = __('SOLD OUT', 'woocommerce');
        return $availability;
    }

但是,我希望能够对其进行一些更改。我想在“SPOTS LEFT”前面添加库存数量,但我不知道放在哪里。似乎 php 不能进入 ('').

我试过了:

<?php echo $product->get_stock_quantity(); ?>

我想再提高一个档次,实际上只有在数量少于 6 个的情况下才会有状态。否则,状态已售罄。超过 5 个点的任何内容都不会显示。 我不确定确切的语法是什么!任何建议都会很棒。

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:
    // WooCommerce Stock message
    add_filter( 'woocommerce_get_availability', 'mw_get_availability', 1, 2 );
    
    function mw_get_availability( $availability, $_product ) {
    
    //change text "In Stock' to 'SPECIAL ORDER'
    global $product;
    if ( $_product->is_in_stock() && $product->get_stock_quantity() < 6 ) $availability['availability'] = $product->get_stock_quantity().' '.__('SPOTS LEFT', 'woocommerce');
    
    //change text "Out of Stock' to 'SOLD OUT'
    if ( !$_product->is_in_stock() ) $availability['availability'] = __('SOLD OUT', 'woocommerce');
    
    return $availability;
    
    }
    

    【讨论】:

      【解决方案2】:

      这是对 SotirisK 答案的轻微扩展,它解释了在未选择管理股票选项时更改消息的原因。

      // WooCommerce Stock message
      
      add_filter( 'woocommerce_get_availability', 'mw_get_availability', 1, 2 );
      
      function mw_get_availability( $availability, $_product ) {
      
          global $product;
      
          // change text "In Stock' to 'SPECIAL ORDER' when quantity more than 6
          if ( $_product->is_in_stock() && $product->get_stock_quantity() > 6 ) $availability['availability'] = $product->get_stock_quantity().' '.__('Special Order', 'woocommerce');
      
          // change text to n Spots Left, where n is the quantity
          if ( $_product->is_in_stock() && $product->get_stock_quantity() <= 6 ) $availability['availability'] = $product->get_stock_quantity() . __(' Spots Left);
      
          // change text "Out of Stock' to 'SOLD OUT'
          if ( !$_product->is_in_stock() ) $availability['availability'] = __('SOLD OUT', 'woocommerce');
      
          // change text "In Stock' to 'Special Order' for products with unmanaged stock
          if ( !$_product->managing_stock() && $_product->is_in_stock() ) $availability['availability'] = __('In Stock', 'woocommerce');
      
          return $availability;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-29
        • 2014-05-28
        • 1970-01-01
        • 2018-01-06
        • 2019-05-06
        • 1970-01-01
        • 1970-01-01
        • 2022-12-23
        相关资源
        最近更新 更多