'; } if (Validator::Length($fullname, 36, 2) == false) { $msg .= 'Full Name should be between 3 to 25 characters' . '
'; } if (!Validator::Length($password, 35, 2)) { $msg .= 'Password should be between 3 to 35 characters' . '
'; } if (!Validator::Email($email)) { $msg .= 'Email is not Valid
'; } if ($password != $cpassword) { $msg .= Lang::T('Passwords does not match') . '
'; } // OTP verification if OTP is enabled if ($_c['sms_otp_registration'] == 'yes') { $otpPath .= sha1($phone_number . $db_pass) . ".txt"; run_hook('validate_otp'); #HOOK // Expire after 10 minutes if (file_exists($otpPath) && time() - filemtime($otpPath) > 1200) { unlink($otpPath); r2(U . 'register', 's', 'Verification code expired'); } else if (file_exists($otpPath)) { $code = file_get_contents($otpPath); if ($code != $otp_code) { $ui->assign('username', $username); $ui->assign('fullname', $fullname); $ui->assign('address', $address); $ui->assign('email', $email); $ui->assign('phone_number', $phone_number); $ui->assign('notify', 'Wrong Verification code'); $ui->assign('notify_t', 'd'); $ui->assign('_title', Lang::T('Register')); $ui->display('customer/register-otp.tpl'); exit(); } else { unlink($otpPath); } } else { r2(U . 'register', 's', 'No Verification code'); } } // Check if username already exists $d = ORM::for_table('tbl_customers')->where('username', $username)->find_one(); if ($d) { $msg .= Lang::T('Account already exists') . '
'; } if ($msg == '') { $d = ORM::for_table('tbl_customers')->create(); $d->username = alphanumeric($username, "+_.@-"); $d->password = $password; $d->fullname = $fullname; $d->address = $address; $d->email = $email; $d->phonenumber = $phone_number; if ($d->save()) { $user = $d->id(); if ($config['photo_register'] == 'yes' && !empty($_FILES['photo']['name']) && file_exists($_FILES['photo']['tmp_name'])) { if (function_exists('imagecreatetruecolor')) { $hash = md5_file($_FILES['photo']['tmp_name']); $subfolder = substr($hash, 0, 2); $folder = $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'photos' . DIRECTORY_SEPARATOR; if (!file_exists($folder)) { mkdir($folder); } $folder = $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'photos' . DIRECTORY_SEPARATOR . $subfolder . DIRECTORY_SEPARATOR; if (!file_exists($folder)) { mkdir($folder); } $imgPath = $folder . $hash . '.jpg'; File::resizeCropImage($_FILES['photo']['tmp_name'], $imgPath, 1600, 1600, 100); $d->photo = '/photos/' . $subfolder . '/' . $hash . '.jpg'; $d->save(); } } if (file_exists($_FILES['photo']['tmp_name'])) unlink($_FILES['photo']['tmp_name']); User::setFormCustomField($user); run_hook('register_user'); #HOOK r2(U . 'login', 's', Lang::T('Register Success! You can login now')); } else { $ui->assign('username', $username); $ui->assign('fullname', $fullname); $ui->assign('address', $address); $ui->assign('email', $email); $ui->assign('phone_number', $phone_number); $ui->assign('notify', 'Failed to register'); $ui->assign('notify_t', 'd'); $ui->assign('_title', Lang::T('Register')); run_hook('view_otp_register'); #HOOK $ui->display('customer/register-rotp.tpl'); } } else { $ui->assign('username', $username); $ui->assign('fullname', $fullname); $ui->assign('address', $address); $ui->assign('email', $email); $ui->assign('phone_number', $phone_number); $ui->assign('notify', $msg); $ui->assign('notify_t', 'd'); $ui->assign('_title', Lang::T('Register')); // Check if OTP is enabled if (!empty($config['sms_url']) && $_c['sms_otp_registration'] == 'yes') { // Display register-otp.tpl if OTP is enabled $ui->display('customer/register-otp.tpl'); } else { // Display register.tpl if OTP is not enabled $ui->display('customer/register.tpl'); } } break; default: if ($_c['sms_otp_registration'] == 'yes') { $phone_number = _post('phone_number'); if (!empty($phone_number)) { $d = ORM::for_table('tbl_customers')->where('username', $phone_number)->find_one(); if ($d) { r2(U . 'register', 's', Lang::T('Account already exists')); } if (!file_exists($otpPath)) { mkdir($otpPath); touch($otpPath . 'index.html'); } $otpPath .= sha1($phone_number . $db_pass) . ".txt"; if (file_exists($otpPath) && time() - filemtime($otpPath) < 600) { $ui->assign('phone_number', $phone_number); $ui->assign('notify', 'Please wait ' . (600 - (time() - filemtime($otpPath))) . ' seconds before sending another SMS'); $ui->assign('notify_t', 'd'); $ui->assign('_title', Lang::T('Register')); $ui->display('customer/register-otp.tpl'); } else { $otp = rand(100000, 999999); file_put_contents($otpPath, $otp); if($config['phone_otp_type'] == 'whatsapp'){ Message::sendWhatsapp($phone_number, $config['CompanyName'] . "\n\n".Lang::T("Registration code")."\n$otp"); }else if($config['phone_otp_type'] == 'both'){ Message::sendWhatsapp($phone_number, $config['CompanyName'] . "\n\n".Lang::T("Registration code")."\n$otp"); Message::sendSMS($phone_number, $config['CompanyName'] . "\n\n".Lang::T("Registration code")."\n$otp"); }else{ Message::sendSMS($phone_number, $config['CompanyName'] . "\n\n".Lang::T("Registration code")."\n$otp"); } $ui->assign('phone_number', $phone_number); $ui->assign('notify', 'Registration code has been sent to your phone'); $ui->assign('notify_t', 's'); $ui->assign('_title', Lang::T('Register')); $ui->assign('customFields', User::getFormCustomField($ui, true)); $ui->display('customer/register-otp.tpl'); } } else { $ui->assign('_title', Lang::T('Register')); run_hook('view_otp_register'); #HOOK $ui->display('customer/register-rotp.tpl'); } } else { $ui->assign('customFields', User::getFormCustomField($ui, true)); $ui->assign('username', ""); $ui->assign('fullname', ""); $ui->assign('address', ""); $ui->assign('email', ""); $ui->assign('otp', false); $ui->assign('_title', Lang::T('Register')); run_hook('view_register'); #HOOK $ui->display('customer/register.tpl'); } break; } ?>