0

我正在尝试根据不同的州来改变价格的显示方式。目标是,如果产品“缺货” ,则显示SOLD而不是价格,然后,如果价格为空,则显示POA,而不是价格。

如果以上均未选中,则价格正常。

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

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

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

4

1 回答 1

0

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

而且您的函数名称存在复制/粘贴差异。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;
}
于 2015-10-20T14:59:50.037 回答