Woocommerce 价格文本

Woocommerce Price Text

我正在尝试根据不同的州更改价格的显示方式。 objective是如果产品是"Out of Stock" SOLD而不是价格出现,那么,如果价格是空的POA出现而不是价格。

如果上面的none被勾选为正常出现,价格。

在检查了更改价格标签的方法后,我设法做到了:

add_filter( 'woocommerce_get_price_html', 'wpa83367_price_html', 100, 2 );
function wpa83368_price_html( $price,$product ){
 // return $product->price;
    if(!$product->is_in_stock()){
      return 'SOLD';
    } else {
    if ( !$product->price > 0 ) {
      return 'POA';
    } else {
      return $price;
    }
  }
}

这行不通。价格消失。我知道这里有问题,而且我知道这种方法可能不正确。有人可以帮我解决这个问题吗?

你总是需要 return 一些东西。我有时会这样做,但总的来说我会尽量避免使用多个 return 语句,这会让我们很难知道哪里出了问题。

而且您的函数名称存在 copy/paste 差异。如果您在启用 WP_DEBUG 的情况下进行开发,您会看到这一点。

修改后的功能:

add_filter( 'woocommerce_get_price_html', 'wpa83367_price_html', 100, 2 );
function wpa83367_price_html( $price,$product ){
    if(!$product->is_in_stock()){
        $price = 'SOLD';
    } else if ( !$product->price > 0 ) {
        $price = 'POA';
    } 
    return $price;
}