提问者:小点点

定制产品价格后缀基于产品在WooCommerce


我需要帮助,以便能够显示每个产品不同的价格后缀。目前,我发现代码显示的价格后缀根据类别,但它不能解决这个问题,因为我需要它是不同的一些产品在相同的类别。

WooCommerce回答代码中选定产品类别的自定义产品价格后缀基于类别。是否可以只针对特定产品进行更改?


共1个答案

匿名用户

以防有人想知道如何基于已经存在的代码应用这一点。

数组中的-检查数组中是否存在值

function filter_woocommerce_get_price_html( $price, $product ) {
    // Set specfic product ID's
    $specific_product_ids = array( 1, 2, 3 );

    // Checks if a value exists in an array
    if ( in_array( $product->get_id(), $specific_product_ids ) ) {
        $price .= ' ' . __( 'per kg', 'woocommerce' );
    }

    return $price;
}
add_filter( 'woocommerce_get_price_html', 'filter_woocommerce_get_price_html', 10, 2 );

要处理多个后缀,您可以使用PHP: Switch

function filter_woocommerce_get_price_html( $price, $product ) {
    // Get product ID
    $product_id = $product->get_id();
    
    // Set product ID's kg
    $product_ids_kg = array( 30, 813, 815 );
    
    // Set product ID's g
    $product_ids_g = array( 817, 819, 821 );
    
    // Checks if a value exists in an array 
    switch ( $product_id ) {
        case in_array( $product_id, $product_ids_kg ):
            $suffix = ' per kg';
            break;
        case in_array( $product_id, $product_ids_g ):
            $suffix = ' per 500g';
            break;
        default:
            $suffix = '';
    }

    // Return
    return $price . __( $suffix, 'woocommerce' );
}
add_filter( 'woocommerce_get_price_html', 'filter_woocommerce_get_price_html', 10, 2 );