گرویتی فرم

ساخت فرم لاگین (ورود کاربران) با گرویتی فرم – بروز شده اجباری

تاریخ: چهارشنبه ۱۰ خرداد ۱۳۹۶

دسته بندی:  آموزش

تعداد نظر: ۴۸

تعداد بازدید: ۲۰۵۰۲


آپدیت شده در تاریخ 10 خرداد 96: دوستانی که از این کد استفاده میکردند حتما کد زیر رو جایگزینش کنن تا پسورد وارد شده توسط کاربر قبل از ذخیره در دیتابیس به صورت ستاره در بیاد.

با سلام
گرویتی فرم توسط افزونه User Registration این امکان رو به کاربران میده که بتونن از طریق پر کردن فرم گرویتی به عضویت وردپرس هم در بیان.

اما امکان ورود به وردپرس از طریق پر کردن فرم گرویتی فرم رو نمیده. توی آموزش زیر این امکان رو بهتون میدیم که بدون نیاز به افزونه خاصی بتونید فرم لاگین با گرویتی فرم ایجاد کنید. همچنین اگر فرمتون چند مرحله ای باشه و کاربر توی مرحله های قبلی هم اطلاعات ورود رو وارد کنه لاگین میشه.

خب ابتدا کد زیر رو به functions.php قالب اضافه کنید.

//------gravity forms --------------------
add_filter("gform_field_validation", "login_validate_field", 10, 4);
function login_validate_field($result, $value, $form, $field)
{
 
    global $user;
 
    if ($field['cssClass'] === 'username-login') {
        $user = get_user_by('login', $value);
        if (empty($user->user_login)) {
            $result["is_valid"] = false;
            $result["message"] = "نام کاربری وارد شده اشتباه است.";
        }
    }
 
    if ($field['cssClass'] === 'password-login') {
        $value = trim($value);
        if (!empty($user) && !empty($user->user_login) && !empty($user->ID)) {
 
            $sign = wp_signon(array(
                'user_login' => $user->user_login,
                'user_password' => $value,
            ));
 
            if (is_wp_error($sign)) {
                $result["is_valid"] = false;
                $result["message"] = $sign->get_error_message();
            } else if (wp_check_password($value, $user->data->user_pass, $user->ID)) {
                wp_set_current_user($sign->ID);
            } else {
                $result["is_valid"] = false;
                $result["message"] = 'کلمه عبور وارد شده عبور صحیح نیست.';
            }
        } else {
            $result["is_valid"] = false;
            $result["message"] = "نام کاربری وارد شده اشتباه است.";
        }
    }
 
    return $result;
}
add_filter('gform_save_field_value', 'hide_password_field_value', 10, 4);
function hide_password_field_value( $value, $lead, $field, $form )
{
 
    $field = is_object($field) ? $field : (object)$field;
 
    if ( !empty($field->cssClass) && $field->cssClass === 'password-login' ) {
        $value = '**********';
    }
 
    return $value;
}

حالا 2 تا فیلد متنی جدید به فرمتون اضافه کنید و عنوان یکی رو به صورت “نام کاربری” و عنوان دیگری رو به صورت “کلمه عبور” قرار بدید.

به تب نمایش این 2 فیلد برید و توی قسمت کلاس css سفارشی برای فیلد نام کاربری عبارت username-login رو وارد کنید و توی کلاس css سفارشی برای کلمه عبارت password-login رو وارد کنید.


۴۸ دیدگاه برای این محصول ثبت شده است!


ارسال نظر برای این مطلب غیرفعال شده است.