[WooCommerce] Thêm sản phẩm không có giá vào giỏ hàng

Cập nhật lần cuối vào

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.

Theo dõi
Thông báo của
guest

1 Comment
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Hải
Hải
1 năm trước

Sau khi dùng cách này thì trong giỏ hàng hiện giá 0đ, có thay được giá 0đ bằng chữ khác được không bạn? Cám ơn bạn.

Firefox_Screenshot_2023-05-30T13-19-50.382Z.png