在 WooCommerce 购物车页面上的特定产品的数量输入字段旁边添加一个特定的词

Add a specific word next to quantity input field for specific products on WooCommerce cart page

我有两个产品 - 'counseling' 和 'testing',我想显示一个特定的词('sessions' 和 'testings') 在购物车页面上它们每个的数量输入字段旁边(或下方),但我不能为此找到一个钩子。如何实现?

现在我为这两种产品显示一个通用词 ('items'),但这不是我想要的。

/** Display a custom text next to the quantity input field **/
add_action( 'woocommerce_after_quantity_input_field', function() {
    if( is_cart() ) {
        echo '<p class="additional-text">(items)</p>';
    }
} );

您使用了错误的钩子。对于购物车页面,您可以使用:

function filter_woocommerce_cart_item_quantity( $product_quantity, $cart_item_key, $cart_item ) {
    // Append to
    $product_quantity .= '<p class="additional-text">(items)</p>';
        
    return $product_quantity;
}
add_filter( 'woocommerce_cart_item_quantity', 'filter_woocommerce_cart_item_quantity', 10, 3 );

要仅将此应用于某些产品,请使用

function filter_woocommerce_cart_item_quantity( $product_quantity, $cart_item_key, $cart_item ) {
    // The targeted product ids
    $targeted_ids = array( 30, 200 );

    // Computes the intersection of arrays
    if ( array_intersect( $targeted_ids, array( $cart_item['product_id'], $cart_item['variation_id'] ) ) ) {
        $product_quantity .= '<p class="additional-text">(items)</p>';
    }
    
    return $product_quantity;
}
add_filter( 'woocommerce_cart_item_quantity', 'filter_woocommerce_cart_item_quantity', 10, 3 );

function filter_woocommerce_cart_item_quantity( $product_quantity, $cart_item_key, $cart_item ) {
    // Checks if a value exists in an array
    // Product ID 30
    if ( in_array( 30, array( $cart_item['product_id'], $cart_item['variation_id'] ) ) ) {
        $product_quantity .= '<p class="additional-text">(items)</p>';
    // Product ID 817
    } elseif ( in_array( 817, array( $cart_item['product_id'], $cart_item['variation_id'] ) ) ) {
        $product_quantity .= '<p class="additional-text">(other text)</p>';     
    }
    
    return $product_quantity;
}
add_filter( 'woocommerce_cart_item_quantity', 'filter_woocommerce_cart_item_quantity', 10, 3 );