Khắc phục lỗi không hiển thị trang sản phẩm khi sử dụng polylang trong woocommerce

Plugin Woocommerce là một plugin khá phổ biến hiện nay và được sử dụng rộng rãi. Nó là giúp chủ của các website tạo một gian hàng khá nhanh và hiệu quả. Tuy nhiên nếu như website đó có 2 ngôn ngữ trở lên mà bạn sử dụng plugins hỗ trợ ngôn ngữ Polylang thì điều bất cập đó là 2 trang song song Woocommerce sẽ chỉ có một trang hiển thị còn trang còn lại của ngôn ngữ còn lại không hiển thị. Điều đó gây lên bất cập khi người truy cập bằng ngôn ngữ còn lại sẽ không thấy sản phẩm để đặt hàng.

Nguyên nhân không phải do Plugin Polylang gây ra mà do chính là từ Woocommerce. Tuy nhiên khi bạn sửa thì sau khi có bản mới mà bạn nâng cấp thì những đoạn code can thiệp sẽ bị xóa sổ và vì thế mỗi lần nâng cấp bạn cần kiểm copy đoạn code can thiệp đó lại.

Để tránh vòng vo thì sau đây mình hướng dẫn cụ thể như sau:

  1. Đầu tiên bạn truy cập vào thư mục Plugin Woocommerce.
  2. Tiếp đến vào thư mục includes
  3. Bạn tìm và mở file: wc-page-functions.php bằng công cụ soạn thảo
  4. Tiếp đến bạn tìm tới dòng 59.

    $page = apply_filters( ‘woocommerce_get_’ . $page . ‘_page_id’, get_option( ‘woocommerce_’ . $page . ‘_page_id’ ) );

  5. Bạn thay nó bằng lệnh sau:

    $page = function_exists(‘pll_get_post’) ? apply_filters( ‘woocommerce_get_’ . $page . ‘_page_id’, pll_get_post ( get_option(‘woocommerce_’ . $page . ‘_page_id’ ) ) ) : apply_filters( ‘woocommerce_get_’ . $page . ‘_page_id’, get_option(‘woocommerce_’ . $page . ‘_page_id’ ) );

  6. Sau khi lưu xong thì phần trang song ngữ nó sẽ hoạt động bình thường như nhau và điều còn lại là bạn làm lại phần hiển thị icon ngôn ngữ.

Lưu ý: khi bạn thực hiện điều này thì nút ngôn ngữ hay widget của Plugin Polylang vô tác dụng. Bởi nó hoạt động khác với nguyên tắc của nó và lúc này bạn cần code lại nút chuyển ngôn ngữ.

Mọi thắc mắc các bạn vui lòng để lại bình luận. Chúc các bạn thành công