شما اینجا هستید
WHMCS » ورود با شماره موبایل درwhmcs بجای ایمیل

سلام خدمت کاربران محترم زردیس

امروزه اکثر سامانه های پیامکی ورود با شماره موبایل در whmcs را فراهم میکنند ولی نیاز به تایید کد دارند ولی در صورتی که میخواهید با شماره موبایل بجای ایمیل استفاده کنید کافیست در سایت خود از هوک زیر استفاده کنید.

لازم به ذکر است ممکن است این روش ، روش خوبی نباشد زیرا ممکن است یک موبایل برای چند کاربر مورد استفاده قرار گرفته باشد.

آموزش استفاده از هوک ها را در مقاله ای جداگانه توضیح داده ایم که میتوانید مشاهده کنید.(کلیک کنید)

<?php
// THIS IS BAD PRACTICE - MULTIPLE USERS CAN HAVE THE SAME PHONE NUMBER

use WHMCS\Database\Capsule;

add_hook('ClientLoginShare', 1, function ($vars) {

    // Define username and password. Username is whatever the user enters in the 'email address' field.
    $username = $vars['username'];
    $password = $vars['password'];
    
    // Let's see if the user is logging in using an email address. If not, let's see if we can find the user's phone number in the database and allow them to login this way.
    if (!filter_var($username, FILTER_VALIDATE_EMAIL)) {
        $users = Capsule::table('tblclients')
            ->select('email')
            ->where('phonenumber', $username)
            ->get();

        // If there's multiple users with the same phone number, allow _none_ of them to login by using their phone numbers. 
        // They will only be able to login using email address in that case
        if (sizeof($users) > 1) {
            return false;
        }

        // Set the user's email address
        foreach($users as $user){
            $email = $user->email;
        }

        // Documentation: https://developers.whmcs.com/api-reference/validatelogin/
        $command = 'ValidateLogin';
        $postData = array(
            'email' => $email,
            'password2' => $password,
        );
        
        // Check if login is valid - if it is, log them in using email address
        $isValid = localAPI($command, $postData);
        if($isValid['result'] == "true") {
            return array(
                'email' => $email,
            );
        }
    }
});


add_hook('ClientAreaFooterOutput', 1, function($vars) {
    // Change login input field to allow any text
    $changeLoginInput = '<script>$( document ).ready(function() {
        $("#inputEmail").prop({type:"text"});
    });</script>';
    return $changeLoginInput;
});

این مطلب به صورت اختصاصی توسط زردیس نوشته شده است و بازنشر بدون نام منبع خارج از مرام و معرفت است 🙁





این مطلب بدون برچسب می باشد.

شما هم می توانید دیدگاه خود را ثبت کنید

کامل کردن گزینه های ستاره دار (*) الزامی است -
آدرس پست الکترونیکی شما محفوظ بوده و نمایش داده نخواهد شد -

برای ارسال دیدگاه شما باید وارد سایت شوید.

اخبار زردیس | جدیدترین اخبار ایران و جهان