Nếu bạn muốn cho sản phẩm không thiết lập giá vẫn có thể sử dụng được chức năng add to cart của WooCommerce thì bạn có thể chỉnh sửa lại trong giao diện. Bạn mở tập tin functions.php của giao diện lên và thêm vào bộ lọc sau:

function hocwp_theme_custom_woocommerce_is_purchasable_filter( $can, $product ) {
	if ( '' == $product->get_price() ) {
		$can = $product->exists() && ( 'publish' === $product->get_status() || current_user_can( 'edit_post', $product->get_id() ) );
	}

	return $can;
}

add_filter( 'woocommerce_is_purchasable', 'hocwp_theme_custom_woocommerce_is_purchasable_filter', 10, 2 );

Sau khi áp dụng bộ lọc woocommerce_is_purchasable như trên thì bạn đã có thể cho sản phẩm không có giá vào giỏ hàng. Tuy nhiên hệ thống sẽ báo lỗi khi tính thành tiền vì hàm lấy số lượng nhân đơn giá để ra tổng.

function hocwp_theme_wc_product_data_filter( $value, $data ) {
	if ( empty( $value ) ) {
		$value = 0;
	}

	return $value;
}

add_filter( 'woocommerce_product_get_price', 'hocwp_theme_wc_product_data_filter', 10, 2 );

Tiếp tục, bạn dùng bộ lọc woocommerce_product_get_price để biến đổi giá trị rỗng thành số. Nếu muốn thêm sản phẩm vào giỏ hàng bằng code thì bạn áp dụng hàm WC()->cart->add_to_cart nhé. Chúc bạn thành công.

Đã thêm item vào giỏ hàng.
0 item -