Bạn đang tìm cách xóa bỏ đoạn link /san-pham/ trong URL của sản phẩm sử dụng WooCommerce? Chắc hẳn bạn cũng đã lục tung cả Google lên để tìm rồi nhưng vẫn không thấy đúng không nào 🙂 Mình cũng từng rất chật vật để tìm cách xóa bỏ đoạn link /san-pham/ (nếu dùng ngôn ngữ tiếng Anh nó là đoạn /product/) trong web bán hàng sử dụng WooCommerce. Và cũng may mắn là mình đã tham khảo được 1 bài viết tiếng Anh và dựa vào nó để có thể bỏ được đoạn link đó đi.
Trong bài này mình sẽ chỉ cho các bạn cách để xóa bỏ link /san-pham/ dài dòng đó đi. Cách làm cũng khá đơn giản thôi, ở đây mình chỉ chèn thêm 1 đoạn code vào file functions.php là xong nhé.
Hướng dẫn xóa bỏ link /san-pham/ trong URL sản phẩm WooCommerce
Chúng ta đi thẳng vào cách xóa bỏ link /san-pham/ luôn nhé. Đầu tiên, bạn mở file functions.php trong theme đang sử dụng hoặc nếu bạn dùng child theme thì có thể chèn vào file functions.php trong child-theme đều được.
Sau đó chèn vào file functions.php đoạn code sau:
/** * Register a custom post type */ $args = array( 'description' => 'Chi tiết sản phẩm', 'label' => __('Sản phẩm'), 'public' => true, 'rewrite' => array( 'slug' => '/'), ); register_post_type( 'product' , $args ); /** * Remove the slug from published post permalinks. */ function custom_remove_cpt_slug( $post_link, $post, $leavename ) { if ( 'product' != $post->post_type || 'publish' != $post->post_status ) { return $post_link; } $post_link = str_replace( '/' . $post->post_type . '/', '/', $post_link ); return $post_link; } add_filter( 'post_type_link', 'custom_remove_cpt_slug', 10, 3 ); /** * Some hackery to have WordPress match postname to any of our public post types * All of our public post types can have /post-name/ as the slug, so they better be unique across all posts * Typically core only accounts for posts and pages where the slug is /post-name/ */ function custom_parse_request_tricksy( $query ) { // Only noop the main query if ( ! $query->is_main_query() ) return; // Only noop our very specific rewrite rule match if ( 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) { return; } // 'name' will be set if post permalinks are just post_name, otherwise the page rule will match if ( ! empty( $query->query['name'] ) ) { $query->set( 'post_type', array( 'post', 'product', 'page' ) ); } } add_action( 'pre_get_posts', 'custom_parse_request_tricksy' );
Sau khi thêm đoạn code vào bạn nhớ lưu lại.
Sau đó để cho link sản phẩm hoạt động ổn định tránh lỗi 404 thì bạn vào Cài đặt (Settings) -> Đường dẫn tĩnh (Permalink) và ấn Lưu thay đổi (Save). Bạn không cần phải chỉnh sửa gì mà chỉ cần ấn Lưu để WordPress tự cập nhật lại là ok.
Lưu ý:
– Khi sử dụng code trên bạn sẽ xóa bỏ được đoạn/san-pham/ trong url nhưng có điều mình chưa hài lòng đó là trong menu quản trị WooCommerce sẽ mất đi 2 lựa chọn đó là Đơn hàng (Orders) và Các ưu đãi (Coupons).
– Do mục Các ưu đãi (Coupons) ít khi sử dụng nên khi nào bạn cần tạo các Mã giảm giá (Coupon) thì bạn có thể mở lại file functions.php và xóa đoạn code vừa thêm nó sẽ hiển thị lại để bạn tạo mã giảm giá. Sau khi tạo xong mã giảm giá bạn nhớ thêm lại code đó rồi lưu lại.
– Còn mục Đơn hàng (Orders) bạn có thể nhận thông báo đơn hàng bằng email nên không cần vào xem đơn hàng trong quản trị vì thế cũng không ảnh hưởng gì nhiều.
Những lỗi nhỏ này khi nào mình có cách khắc phục được mình sẽ update lại sau, nếu bạn có cách nào có thể đóng góp cho mình ở dưới ô comment nhé.
Có thể bạn quan tâm: Xóa bỏ /product-category/ trong Url danh mục sản phẩm Woocommerce
Vậy là xong rồi đó. Để xóa bỏ link /san-pham/ trong url WooCommerce không phải là khó đúng không nào. Chỉ có điều là mình chưa thấy có ai hướng dẫn cách để xóa nó nên mình mạnh dạn viết bài chia sẻ này 🙂 Hi vọng bài viết giúp ích được cho bạn. Nếu thấy hay thì like ngay, nếu thấy có ích hãy share cho bạn bè nhé 😀
em đã làm được cảm ơn ad rất nhiều
nó sẽ mất mục thanh toán đơn hàng
cam ơn ban. đã hoàn thành
Đã tham khảo cách nhiều web nhưng đến đây mới giải quyết dc vấn đề này. Cảm ơn bạn!
Cảm ơn bạn đã động viên 🙂
chèn vào chỗ nào đoạn code v ad?
Bạn chèn code vào dưới cùng file functions.php là dc nhé
Thanks. Hướng dẫn rất hữu ích cho người đang tự mò làm web như e. Đã làm và đã thành công