更改具有 "no price" 和 "out of stock" 的产品的“添加到购物车”按钮文本

Change “add to cart” button text for products that have "no price" and "out of stock"

我想为满足以下条件的产品更改“添加到购物车”文本按钮:

目的是将文本更改为“现在不可用”


这是一个示例图像来澄清我的问题


这是我使用的代码。但我无法让它发挥作用。知道我哪里出错了吗?

add_filter( 'woocommerce_after_shop_loop_item', 'price_zero_empty', 9999, 2 );
function price_zero_empty( $price, $product ) {
    global $product;
    if ( $stock == 'outofstock' && '' == $product->get_price() || 0 == $product->get_price()  ) {
        add_filter( 'gettext', 'change_readmore_text', 20, 3 );         
}
function change_readmore_text(){
            if (! is_admin() && $domain === 'woocommerce'  && $price === 0 && $translated_text === 'Read more') {
                $translated_text = 'Not available right now';}
                return $translated_text;
} 

要更改“无价格”和“缺货”产品的文本,您可以使用 woocommerce_product_add_to_cart_text 过滤器挂钩。

所以你得到:

function filter_woocommerce_product_add_to_cart_text( $add_to_cart_text, $product ) {
    // Price empty & Product is out of stock
    if ( empty ( $product->get_price() ) && $product->get_stock_status() == 'outofstock' ) {
        $add_to_cart_text = __( 'Not available right now', 'woocommerce' );
    }

    return $add_to_cart_text;
}
add_filter( 'woocommerce_product_add_to_cart_text', 'filter_woocommerce_product_add_to_cart_text', 10, 2 );
add_filter( 'woocommerce_product_single_add_to_cart_text', 'filter_woocommerce_product_add_to_cart_text', 10, 2 );