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 に答える