Xây dựng chức năng đăng nhập thông qua Zalo cho WordPress

Xây dựng chức năng đăng nhập thông qua Zalo cho WordPress

Việc xây dựng chức năng đăng nhập website sử dụng các mã xã hội ngày nay đã rất phổ biến với sự phát triển mạnh mẽ của các mạng xã hội trên thế giới: Facebook, Google, Twitter, LinkedIn,…

Tại Việt Nam, mạng xã hội Zalo cũng rất phát triển và bạn cũng có thể xây dựng chức năng đăng nhập Zalo cho website của mình.

Trong bài viết này, tôi sẽ hướng dẫn bạn cách xây dựng chức năng đăng nhập Zalo cho website WordPress.

 

Để xây dựng được chức năng này, đầu tiên bạn cần phải có 1 tài khoản Zalo (Việc này khá dễ)

Tạo ứng dụng Zalo

Bạn truy cập đường link sau để tạo ứng dụng: https://developers.zalo.me

Click vào ảnh đại diện => “Thêm ứng dụng mới”

Nhập tên ứng dụng muốn tạo => Bấm “Tạo ID ứng dụng”

Sau khi tạo ứng dụng xong, bạn cần kích hoạt ứng dụng. Bấm vào nút “Kích hoạt ứng dụng” để kích hoạt.

Thiết lập ứng dụng Zalo

Bạn truy cập phần ‘Sản phẩm’ => ‘Đăng nhập’ để thêm nền tảng

Bấm “Thêm nền tảng” => “Web”

Sau khi chọn nền tảng, bạn cần thiết lập Callback

  • Callback URL: Nhập link chuyển hướng sau khi đăng nhập thành công (Nhanh nhất là để link trang chủ website của bạn). Phần này bắt buộc phải nhập, nếu không chức năng sẽ không sử dụng được
  • Home URL: Link chuyển đi khi bạn mời người khác sử dụng ứng dụng (Có thể bỏ qua)

Cuối cùng, đừng quên bấm “Lưu thay đổi” để lưu lại

Code hàm Insert User vào WordPress

Bạn mở file functions.php trong theme bạn đang sử dụng và chèn vào đoạn code sau:

Khai báo hằng số để thiết lập các giá trị mặc định

Chúng ta có 3 giá trị mặc định: APP ID, Secret Key, Callback URL để thực thi việc login vào WordPress.

Trong đó:

  • APP ID và Secret Key bạn lấy trong ứng dụng Zalo các bạn đã tạo ở trên
  • Callback URL: Chúng ta sẽ tự tạo link (Ở đây tôi sử dụng Rest API của WordPress)

Các bạn khai báo hằng số như sau (Bỏ vào đầu file functions.php của theme bạn đang dùng):

Viết hàm Render Link đăng nhập Zalo

Bạn cần phải viết hàm Render ra link đăng nhập Zalo để đăng nhập vào nút đăng nhập mà bạn muốn chèn.

Bạn chỉ cần bỏ đoạn code sau vào file functions.php của theme bạn đang dùng

Nếu muốn gọi link này tại nút đăng nhập bạn muốn chèn, bạn chỉ cần gọi hàm bằng cú pháp sau:

Tạo link Callback và hàm thực thi đăng nhập

Trong bài hướng dẫn này, tôi sử dụng hook action “rest_api_init” và hàm register_rest_route() để tạo link.

Bạn chỉ cần đoạn code sau vào file functions.php của theme bạn đang dùng

2 tham số đầu tiên của hàm register_rest_route() bạn có thể tự thay đổi theo mong muốn của bạn. (Chỉ có điều nếu bạn thay đổi bạn cần phải sửa lại hằng số đã khai báo)

Tham số thứ 3 tôi có đặt tên hàm callback là login_zalo_callback_func thì bạn cần viết 1 hàm giống y hệt như vậy.

Hàm đó như sau:

Lưu ý: Do Zalo không lấy được email nên tôi tạo 1 email dạng: UID-zalo@domain.

Ngoài ra, bạn có thể tuỳ biến tạo thêm field cho users để update số điện thoại (Vì Zalo cho lấy số điện thoại)

Kết luận

Trên đây, tôi đã hướng dẫn cách tạo chức năng đăng nhập Zalo cho WordPress bằng cách tự code.

Nếu bạn có thắc mắc nào hoặc cần giải thích vui lòng comment dưới bài viết này.

Chúc các bạn thành công!

[Total: 4   Average: 4/5]

THAM GIA NHÓM HỖ TRỢ

 
Lập trình web PHP (hoangan.net)
Nhóm Công khai · 1 thành viên
Tham gia nhóm
 

Hoàng An

Tôi không phải là 1 chuyên gia lập trình, cũng không phải là 1 chuyên gia SEO. Với niềm đam mê với CNTT, tôi có thể biến ý tưởng thành sản phẩm và thích chia sẻ kiến thức cho người khác. Nếu có duyên, mời bạn đến với khoá học của tôi

15 bình luận trong “Xây dựng chức năng đăng nhập thông qua Zalo cho WordPress

  1. Cám ơn bác nhiều,
    Mình đang dùng theme flatsome, không biết cần chèn
    vào file nào để có thể show được nó ra ở trang đăng ký/đăng nhập vậy bác nhỉ.

          1. Có 1 điểm là sau khi đăng nhập, user sẽ bị chuyển hướng đến cái trang được khai báo trong Callback URL khi tạo zalo app. Chứ không được redirect về cái trang trước đó.
            Bác có cách nào để fix chỗ này không bác ?

          2. Bạn thêm phần redirect vào trong hàm login_zalo_callback_func
            Còn cách xử lý thì bạn dùng $_SESSION để lưu url đã truy cập trước đó. Sau đó trong hàm login_zalo_callback_func redirect về session đã khai báo.
            Chúc bạn thành công!

  2. Em muốn lấy ảnh đại diện người dùng trong zalo thì code thế nào đấy ạ ‘$picture’, trên hàm login_zalo_callback_func như trên. bác chỉ giúp em??

    1. Biến $picture bác lấy ở đâu ra nhỉ? Nếu bác lấy được giá trị biến $picture rồi thì bác cần sửa hàm process_new_user() và truyền tham số vào

      1. Bác code như nào đấy em ạ??? em không chuyên về lập trình ạ. bác có thể giúp em vài dòng đc không?
        Bác xem giúp em viết như này đúng k ạ
        em viết phần function login_zalo_callback_func —> thêm dưới $email –$picture = $profile[‘picture’];
        còn process_new_user() em viết thêm ở dưới ‘nickname’ => $first_name.” “.$last_name,
        ‘picture’ => $picture, đúng k ạ

        1. Mình không hỗ trợ code thêm được bạn nhé. Cái này bạn phải tự tìm hiểu thôi.
          Mình chỉ chia sẻ những cái chủ đạo, còn phát triển thêm bạn phải học thêm.
          Cảm ơn bạn.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *