Cách sử dụng cùng một email cho nhiều người dùng


14

Tôi có một multisite rất lớn. Và tôi nhận được yêu cầu kích hoạt tùy chọn rằng nhiều người dùng có thể sử dụng cùng một email. Tôi tìm thấy một plugin "Cho phép nhiều tài khoản" không hoạt động đúng. Tôi nên tìm ra một số giải pháp khác cho điều đó. Tôi biết rằng tôi có thể sử dụng một cái gì đó như thêm + đôi khi vào mỗi email, vì vậy nó sẽ hiển thị khác với Wordpress. Bạn có một số giải pháp khác, có thể được thực hiện ở đây?


5
Bạn cần cẩn thận với điều này. Nếu bạn đã làm việc này và nếu bạn đang cố gắng sử dụng cùng một email cho nhiều cá nhân riêng biệt thì bất kỳ một trong số những cá nhân đó sẽ có thể đặt lại mật khẩu cho bất kỳ hoặc tất cả các tài khoản sử dụng email được chia sẻ. Địa chỉ email đó là một phần của hệ thống bảo mật.
s_ha_dum

vâng, tôi biết điều đó, nhưng tôi vẫn đang tìm kiếm giải pháp này
Boban

1
Anwer của Parham rất gọn gàng, nhưng tôi cũng muốn chỉ ra rằng các địa chỉ email không phải là thật, vì vậy bạn có thể tạo tài khoản bằng địa chỉ email giả. Người dùng có thể vào và thay đổi nó sau nếu họ muốn. Điều này có lợi thế về bảo mật và ngăn ngừa sự cố với các plugin và các phần của lõi WordPress giả định rằng có một tên người dùng cho mỗi địa chỉ email.
wp-overwatch.com

Chính xác những gì tôi cần Mr Me. Tôi chỉ muốn nó cho mục đích thử nghiệm.
Truyền thuyết Bước sóng

Câu trả lời:


15

Bạn có thể sử dụng wpmu_validate_user_signupbộ lọc để xóa lỗi và sau đó xác định WP_IMPORTINGchỉ để bỏ qua chức năng email_exist()kiểm tra wp_insert_user():

add_filter('wpmu_validate_user_signup', 'skip_email_exist');
function skip_email_exist($result){
    if(isset($result['errors']->errors['user_email']) && ($key = array_search(__('Sorry, that email address is already used!'), $result['errors']->errors['user_email'])) !== false) {
        unset($result['errors']->errors['user_email'][$key]);
        if (empty($result['errors']->errors['user_email'])) unset($result['errors']->errors['user_email']);
    }
    define( 'WP_IMPORTING', 'SKIP_EMAIL_EXIST' );
    return $result;
}

CẬP NHẬT : đối với thiết lập không nhiều trang, hãy thử mã này:

add_filter('pre_user_email', 'skip_email_exist');
function skip_email_exist($user_email){
    define( 'WP_IMPORTING', 'SKIP_EMAIL_EXIST' );
    return $user_email;
}

Tôi nghĩ rằng đây là câu trả lời đúng. Đánh dấu là chính xác. Cảm ơn!
Boban

1
Điều này không hoạt động trong Wordpress 3.5.
Guillhol

@Guillhol Tôi không thấy bất kỳ thay đổi nào trong WP 3.5 sẽ khiến mã này không hoạt động. Và đây là cho thiết lập MULTI-SITE, bạn có đang thử nghiệm trên thiết lập WP MU không?
Parham

Lỗi của tôi, tôi đã cố gắng cho một thiết lập trang web duy nhất. Plugin "Nhiều tài khoản" cho các trang web đơn lẻ không hoạt động nữa, vì vậy tôi đã tìm kiếm các lựa chọn thay thế.
Guillhol

1
Điều gì xảy ra với thông báo mật khẩu bị mất trên các thiết lập nhiều trang? Làm thế nào điều này sẽ được xử lý?
Tiny Giant Studios
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.