Reputation: 157
I'm using the code below to change a product price to text (Contact for Pricing) when the price field is left empty:
add_filter( 'woocommerce_get_price_html', 'change_special_product_price', 10, 2 );
function change_special_product_price( $price_html, $product ) {
if ( $product->id == 6917 ) {
$price_html = '<span class="woocommerce-Price-amount amount">Contact for Pricing</span>';
}
return $price_html;
}
add_filter('woocommerce_empty_price_html', 'custom_call_for_empty_price_html');
function custom_call_for_empty_price_html() {
return 'TBC';
}
function dequeue_woocommerce_styles_scripts() {
if ( function_exists( 'is_woocommerce' ) ) {
if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
}
}
}
It works for one product, but I'm having trouble getting it to work for multiple products.
How do I target an array of product ids?
Upvotes: 2
Views: 438
Reputation: 253824
For an array of product IDs use in_array()
conditional function as follows:
function change_special_product_price( $price_html, $product ) {
$product_ids = array(6917, 6918, 6921);
if ( in_array($product->get_id(), $product_ids ) ) {
$price_html = '<span class="woocommerce-Price-amount amount">' . __("Contact for Pricing") . '</span>';
}
return $price_html;
}
Upvotes: 1