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.
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.