Xóa bỏ link /san-pham/ trong URL sản phẩm WooCommerce

4.6/5 - (21 đánh giá)

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.

xoa-bo-link-san-pham-trong-url-san-pham-woocommerce

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é 😀

Nguyễn Hùng

Internet là nơi mình học được những gì về Wordpress, SEO, SEM, MMO và kiến thức máy tính. Những chia sẻ của mình là những thứ mình học được và đã làm thành công, có thể nó chưa được hoàn hảo nhưng nó sẽ hữu ích với bạn.

Nhận thông báo
Thông báo qua email khi
guest

8 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận
Nguyệt

em đã làm được cảm ơn ad rất nhiều

hoang

nó sẽ mất mục thanh toán đơn hàng

manh

cam ơn ban. đã hoàn thành

Maia

Đã 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!

Mai

chèn vào chỗ nào đoạn code v ad?

Bui Quynh

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