提问者:小点点

仅在所有WooCommerce产品循环中显示价格后缀


我有一个在线商店与WooCommerce。我想显示一个自定义价格后缀只在产品列表页(如商店页面),其中列出了所有产品。

我有以下代码:

add_filter( 'woocommerce_get_price_html', 'custom_price_suffix', 100, 2 );

function custom_price_suffix( $price, $product ){
    $price = $price . ' Suffix '; 
    return apply_filters( 'woocommerce_get_price', $price );
}

但使用此代码时,后缀会显示在产品列表页和单个产品上。有人能帮帮我吗?


共2个答案

匿名用户

以下将在所有产品列表上显示额外的自定义价格后缀(单个产品除外):

add_filter( 'woocommerce_get_price_suffix', 'additional_price_suffix', 999, 4 );
function additional_price_suffix( $html, $product, $price, $qty ){
    global $woocommerce_loop;

    // Not on single products
    if ( ( is_product() && isset($woocommerce_loop['name']) && ! empty($woocommerce_loop['name']) ) || ! is_product() ) {
        $html .= ' ' . __('Suffix');
    }
    return $html;
}

或者您也可以使用:

add_filter( 'woocommerce_get_price_html', 'additional_price_suffix', 100, 2 );
function additional_price_suffix( $price, $product ){
    global $woocommerce_loop;

    // Not on single products
    if ( ( is_product() && isset($woocommerce_loop['name']) && ! empty($woocommerce_loop['name']) ) || ! is_product() ) {
        $price .= ' ' . __('Suffix');
    }
    return $price;
}

代码functions.php活动子主题(或活动主题)的文件中。测试和工作。

匿名用户

如评论中所述,您可以使用is_shop()功能检查您是否在商店页面上,如下所示:

add_filter( 'woocommerce_get_price_html', 'custom_price_suffix', 100, 2 );
function custom_price_suffix( $price, $product ) {
    if ( is_shop() ) $price .= ' ' . __('Suffix');
    return $price;
}