2

個別の商品ページでは価格帯を表示し続けながら、カテゴリーページでは価格帯ではなく最低価格を表示しようとしています。

私は他の誰かの質問からこの答えを見つけました:

add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);

function custom_variation_price( $price, $product ) {

    $price = '';

    if ( !$product->min_variation_price || $product->min_variation_price !== $product->max_variation_price ) {
        $price .= '<span class="from">' . _x('From', 'min_price', 'woocommerce') . ' </span>';
        $price .= woocommerce_price($product->get_price());
    }

    return $price;
}

そしてそれは機能しますが、コードを に入れると、functions.phpサイト全体に適用されます。カテゴリページにのみ適用したい。

また、このコードを使用すると、価格が 1 つしかないアイテムの価格が表示されなくなります。

私に何ができる?

これが私が意味することのスクリーン ショットです: 現在のカテゴリページのスクリーンショット

4

1 に答える 1

1

私の理解が正しければ、価格に幅がある場合はいつでも最小価格を表示するだけで済みます。基本的に$price、製品の最低価格が設定されている場合にのみ、 の HTML を変更する必要があります (設定されていない場合、製品には単一の価格があり、変更は必要ありません)。カテゴリページかどうかのチェックも入れました。コードは次のとおりです。

add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);
function custom_variation_price( $price, $product ) {
    if ( ! empty($product->min_variation_price) && is_product_category() ) {
        $price = '<span class="from">' . _x('From', 'min_price', 'woocommerce') . ' </span>';
        $price .= woocommerce_price($product->get_price());
    }

    return $price;
}
于 2016-11-04T06:23:07.550 に答える