WPML
Trạng thái
Đang mở
Được báo cáo cho
WPML Multilingual & Multicurrency for WooCommerce 5.3.2
Thẻ chủ đề
Bug, WCML

Tổng quan về lỗi

Khi sử dụng WPML Multilingual & Multicurrency for WooCommerce, việc đặt trang my-account làm trang con của trang shop có thể dẫn đến lỗi 404 khi truy cập các endpoint của Tài khoản của tôi (như Đơn hàng, Tải xuống, v.v.) bằng các ngôn ngữ phụ. Vấn đề này thường xảy ra với các cài đặt đường dẫn tĩnh như Cơ sở cửa hàng với danh mục hoặc Cơ sở cửa hàng.

Giải pháp tạm thời

Vui lòng đảm bảo bạn có bản sao lưu đầy đủ cho trang web của mình trước khi tiếp tục.


  • Mở tệp functions.php của giao diện.

  • Thêm đoạn mã sau:
    add_filter( 'init', function() {
        $my_account_page_id   = wc_get_page_id( 'myaccount' );
        $my_account_parent_id = get_post_parent( $my_account_page_id );
        if ( $my_account_page_id && $my_account_parent_id ) {
            $default_language = apply_filters( 'wpml_default_language', '' );
            $languages        = apply_filters( 'wpml_active_languages', [] );
            foreach ( $languages as $language ) {
                if ( $language['code'] !== $default_language ) {
                    $translated_id  = apply_filters( 'wpml_object_id', $my_account_page_id, 'page', true, $language['code'] );
                    if ( $translated_id ) {
                        $translated_url = get_page_uri( $translated_id );
                        add_rewrite_rule( trailingslashit( $translated_url ) . '?$' , 'index.php?pagename=' . $translated_url, 'top' );
                        foreach ( WC()->query->query_vars as $endpoint ) {
                            $translated_endpoint = apply_filters( 'wpml_get_endpoint_translation', $endpoint, $endpoint, $language['code'] );
                            add_rewrite_rule( trailingslashit( $translated_url ) . $translated_endpoint . '(/(.*))?/?$' , 'index.php?' . $endpoint . '=$matches[2]&pagename=' . $translated_url, 'top' );
                        }
                    }
                }
            }
        }
    } );

Tất cả các lỗi đã ghi nhận →