代码之家  ›  专栏  ›  技术社区  ›  Fidel2006

向Woocommerce产品可用性添加自定义文本,并为购物车项目显示该文本

  •  1
  • Fidel2006  · 技术社区  · 8 年前

    我正试图找到一种方法,在woocommerce单一产品页面上的可用性信息(缺货、库存等)之前放置自定义文本。

    我用的是这样的东西:

    add_filter( 'woocommerce_get_availability', 'change_product_availability_display' ); 
    add_filter( 'unknown filter', 'change_product_availability_display' );
    function change_product_availability_display( $availability ) {
        // Additional text 
        $text = __('Availability:'); 
        // returning the text before the availability 
        return $text . ' ' . $availability; 
    }
    

    Its基于: Add a custom text before the price display in WooCommerce .

    在我的代码中命名的价格过滤器中,“未知过滤器”是 woocommerce_cart_item_price . 我已经为可用性/库存项目寻找了这种过滤器,但找不到。

    也许有人可以查看此代码并帮助我找到此代码“ unknown_filter “或者有其他想法如何在可用性信息之前放置自定义文本?

    1 回复  |  直到 8 年前
        1
  •  0
  •   LoicTheAztec    8 年前

    在您尝试将字符串与数组合并时,我重新访问了您的代码。
    此外,我还添加了第二个挂钩功能,可以显示您在购物车和结帐中的物品的“标记”可用性。

    代码:

    add_filter( 'woocommerce_get_availability', 'add_label_to_availability_display' );
    function add_label_to_availability_display( $availability ) {
        if( is_product() || is_cart() || is_checkout() ){
            $label = __( 'Availability', 'woocommerce' ) . ': ';
            $availability['availability'] = $label . $availability['availability'];
        }
        return $availability;
    }
    
    add_filter( 'woocommerce_cart_item_name', 'add_availability_below_cart_item_name', 10, 3);
    function add_availability_below_cart_item_name( $item_name, $cart_item, $cart_item_key ) {
        $availability = $cart_item['data']->get_availability();
        return $item_name . '<br>' . $availability['availability'];
    }
    

    代码进入功能。活动子主题(活动主题)的php文件。

    已测试并正常工作。