get(); $logo = fansub_get_value_by_key($option, 'logo'); $logo = fansub_sanitize_media_value($logo); $url = $logo['url']; } if(empty($url)) { $theme_setting = fansub_option_get_object_from_list('theme_setting'); if(fansub_object_valid($theme_setting)) { $option = $theme_setting->get(); $logo = fansub_get_value_by_key($option, 'logo'); $logo = fansub_sanitize_media_value($logo); $url = $logo['url']; } } return $url; } function fansub_use_captcha_for_login_page() { $options = get_option('fansub_user_login'); $use_captcha = fansub_get_value_by_key($options, 'use_captcha'); $use_captcha = apply_filters('fansub_use_captcha_for_login_page', $use_captcha); return (bool)$use_captcha; } function fansub_login_captcha_field() { echo fansub_login_get_captcha_field(); } function fansub_login_get_captcha_field() { ob_start(); $args = array( 'before' => '

', 'after' => '

' ); fansub_field_captcha($args); return ob_get_clean(); } function fansub_login_form_top() { ob_start(); do_action('fansub_login_form_before'); return ob_get_clean(); } function fansub_login_form_middle() { ob_start(); do_action('login_form'); return ob_get_clean(); } function fansub_login_form_bottom() { ob_start(); do_action('fansub_login_form_after'); return ob_get_clean(); } function fansub_verify_login_captcha($user, $password) { if(isset($_POST['captcha'])) { $captcha_code = $_POST['captcha']; $captcha = new FANSUB_Captcha(); if($captcha->check($captcha_code)) { return $user; } return new WP_Error(__('Captcha Invalid', 'fansub'), '' . __('ERROR:', 'fansub') . ' ' . __('Please enter a valid captcha.', 'fansub')); } return new WP_Error(__('Captcha Invalid', 'fansub'), '' . __('ERROR:', 'fansub') . ' ' . __('You are a robot, if not please check JavaScript enabled on your browser.', 'fansub')); } function fansub_verify_registration_captcha($errors, $sanitized_user_login, $user_email) { if(isset($_POST['captcha'])) { $captcha_code = $_POST['captcha']; $captcha = new FANSUB_Captcha(); if(!$captcha->check($captcha_code)) { $errors->add(__('Captcha Invalid', 'fansub'), '' . __('ERROR:', 'fansub') . ' ' . __('Please enter a valid captcha.', 'fansub')); } } else { $errors->add(__('Captcha Invalid', 'fansub'), '' . __('ERROR:', 'fansub') . ' ' . __('You are a robot, if not please check JavaScript enabled on your browser.', 'fansub')); } return $errors; } function fansub_verify_lostpassword_captcha() { if(isset($_POST['captcha'])) { $captcha_code = $_POST['captcha']; $captcha = new FANSUB_Captcha(); if(!$captcha->check($captcha_code)) { wp_die('' . __('ERROR:', 'fansub') . ' ' . __('Please enter a valid captcha.', 'fansub'), __('Captcha Invalid', 'fansub')); } } else { wp_die('' . __('ERROR:', 'fansub') . ' ' . __('You are a robot, if not please check JavaScript enabled on your browser.', 'fansub'), __('Captcha Invalid', 'fansub')); } } if(fansub_use_captcha_for_login_page()) { add_action('login_form', 'fansub_login_captcha_field'); add_action('lostpassword_form', 'fansub_login_captcha_field'); add_action('register_form', 'fansub_login_captcha_field'); add_filter('wp_authenticate_user', 'fansub_verify_login_captcha', 10, 2); add_filter('registration_errors', 'fansub_verify_registration_captcha', 10, 3); add_action('lostpassword_post', 'fansub_verify_lostpassword_captcha'); } add_filter('login_form_top', 'fansub_login_form_top'); add_filter('login_form_middle', 'fansub_login_form_middle'); add_filter('login_form_bottom', 'fansub_login_form_bottom'); function fansub_get_account_url($type = 'login', $action = '') { $url = ''; $page_account = fansub_get_pages_by_template('page-templates/account.php', array('output' => 'object')); switch($type) { case 'signup': case 'register': $page = fansub_get_pages_by_template('page-templates/register.php', array('output' => 'object')); if(is_a($page, 'WP_Post')) { $url = get_permalink($page); } else { if(is_a($page_account, 'WP_Post')) { $url = get_permalink($page_account); $url = trailingslashit($url); $url = add_query_arg(array('action' => 'register'), $url); } } break; case 'lostpassword': if(is_a($page_account, 'WP_Post')) { $url = get_permalink($page_account); $url = trailingslashit($url); $url = add_query_arg(array('action' => 'lostpassword'), $url); } break; default: if(empty($type) || 'account' === $type) { if(is_a($page_account, 'WP_Post')) { $url = get_permalink($page_account); } } else { $page = fansub_get_pages_by_template('page-templates/login.php', array('output' => 'object')); if(is_a($page, 'WP_Post')) { $url = get_permalink($page); } else { if(is_a($page_account, 'WP_Post')) { $url = get_permalink($page_account); $url = trailingslashit($url); if(empty($action)) { $action = 'login'; } $url = add_query_arg(array('action' => $action), $url); } } } } return $url; } function fansub_user_force_login($user_id) { wp_set_auth_cookie($user_id, true); } function fansub_user_login($username, $password, $remember = true) { $credentials = array(); $credentials['user_login'] = $username; $credentials['user_password'] = $password; $credentials['remember'] = $remember; $user = wp_signon($credentials, false); if(fansub_allow_user_login_with_email() && !is_a($user, 'WP_User')) { if(is_email($username) && email_exists($username)) { $new_user = get_user_by('email', $username); if(fansub_check_user_password($password, $new_user)) { $user = $new_user; fansub_user_force_login($new_user->ID); } } } return $user; } function fansub_account_form_default_args() { $lang = fansub_get_language(); $defaults = array( 'placeholder_username' => __('Username or email', 'fansub'), 'placeholder_password' => __('Password', 'fansub'), 'slogan' => 'One free account gets you into everything %s.', 'title_lostpassword_link' => __('Password Lost and Found', 'fansub'), 'text_lostpassword_link' => __('Lost your password?', 'fansub'), 'text_register_link' => __('Register', 'fansub'), 'label_email' => __('Email', 'fansub'), 'label_confirm_password' => __('Confirm your password', 'fansub'), 'label_phone' => __('Phone', 'fansub') ); if('vi' == $lang) { $defaults['label_username'] = 'Tài khoản'; $defaults['placeholder_username'] = 'Tên tài khoản hoặc email'; $defaults['label_password'] = 'Mật khẩu'; $defaults['placeholder_password'] = 'Mật khẩu'; $defaults['label_remember'] = 'Ghi nhớ đăng nhập?'; $defaults['label_log_in'] = 'Đăng nhập'; $defaults['slogan'] = 'Một tài khoản dùng cho tất cả dịch vụ của %s.'; $defaults['title_lostpassword_link'] = 'Nếu bạn đã quên mật khẩu thì vào đây để lấy lại'; $defaults['text_lostpassword_link'] = 'Quên mật khẩu?'; $defaults['text_register_link'] = 'Đăng ký'; $defaults['label_confirm_password'] = 'Xác nhận mật khẩu'; $defaults['label_phone'] = 'Điện thoại'; } return apply_filters('fansub_account_form_default_args', $defaults); } function fansub_execute_register() { $http_post = ('POST' == $_SERVER['REQUEST_METHOD']); $user_login = ''; $user_email = ''; $pwd = ''; $pwd_again = ''; $phone = ''; $captcha = ''; $error = false; $message = 'Đã có lỗi xảy ra, xin vui lòng thử lại.'; $inserted = false; $user_id = 0; $registration_redirect = fansub_get_value_by_key($_REQUEST, 'redirect_to'); $redirect_to = apply_filters('registration_redirect', $registration_redirect); if(is_user_logged_in()) { if(empty($redirect_to)) { $redirect_to = home_url('/'); } wp_redirect($redirect_to); exit; } $transient = ''; if($http_post) { $action = fansub_get_method_value('action'); if('register' === $action) { $user_login = fansub_get_method_value('user_login'); $user_email = fansub_get_method_value('user_email'); $pwd = fansub_get_method_value('pwd'); $pwd_again = fansub_get_method_value('pwd_again'); $phone = fansub_get_method_value('phone'); $captcha = fansub_get_method_value('captcha'); $user_login = sanitize_user($user_login, true); $user_email = sanitize_email($user_email); $transient_name = 'fansub_register_user_' . md5($user_email); if(false === ($transient = get_transient($transient_name))) { if(empty($user_login) || empty($user_email) || empty($pwd) || empty($pwd_again) || empty($phone) || empty($captcha)) { $error = true; $message = 'Xin vui lòng nhập đầy đủ thông tin đăng ký.'; } elseif(!is_email($user_email)) { $error = true; $message = 'Địa chỉ email không đúng.'; } elseif($pwd !== $pwd_again) { $error = true; $message = 'Mật khẩu không khớp.'; } elseif(username_exists($user_login)) { $error = true; $message = 'Tài khoản đã tồn tại.'; } elseif(email_exists($user_email)) { $error = true; $message = 'Địa chỉ email đã tồn tại.'; } else { $capt = new FANSUB_Captcha(); if(!$capt->check($captcha)) { $error = true; $message = 'Mã bảo mật không đúng.'; } } if(!$error) { $user_data = array( 'username' => $user_login, 'password' => $pwd, 'email' => $user_email ); $user = fansub_add_user($user_data); if(fansub_id_number_valid($user)) { update_user_meta($user, 'phone', $phone); $inserted = true; fansub_user_force_login($user); $message = 'Tài khoản của bạn đã được tạo thành công.'; $user_id = $user; set_transient($transient_name, $user_id); } } if($inserted && !empty($redirect_to)) { wp_redirect($redirect_to); exit; } } else { if(fansub_id_number_valid($transient)) { $inserted = true; $message = 'Tài khoản của bạn đã được tạo thành công.'; } } } } $result = array( 'user_login' => $user_login, 'user_email' => $user_email, 'pwd' => $pwd, 'pwd_again' => $pwd_again, 'phone' => $phone, 'captcha' => $captcha, 'error' => $error, 'message' => $message, 'inserted' => $inserted, 'redirect_to' => $redirect_to, 'user_id' => $user_id, 'transient' => $transient ); return $result; } function fansub_register_form($args = array()) { $defaults = fansub_account_form_default_args(); $args = wp_parse_args($args, $defaults); $data = fansub_execute_register(); $user_login = $data['user_login']; $user_email = $data['user_email']; $pwd = $data['pwd']; $pwd_again = $data['pwd_again']; $phone = $data['phone']; $error = $data['error']; $message = $data['message']; $inserted = $data['inserted']; $redirect_to = $data['redirect_to']; $logo = fansub_get_value_by_key($args, 'logo', fansub_get_login_logo_url()); ?>
set_href(home_url('/')); $a->set_class('logo'); $img = new FANSUB_HTML('img'); $img->set_image_alt(''); $img->set_image_src($logo); $a->set_text($img->build()); $a->output(); } $slogan = new FANSUB_HTML('p'); $slogan->set_class('slogan'); $slogan->set_text(sprintf($args['slogan'], fansub_get_root_domain_name(home_url('/')))); $slogan->output(); if(isset($_REQUEST['error']) || $error) { $message = fansub_build_message($message, 'danger'); echo $message; } elseif($inserted || fansub_id_number_valid($data['transient'])) { $message = fansub_build_message($message, 'success'); echo $message; fansub_auto_reload_script(); } ?>

Đăng ký tài khoản

set_href(home_url('/')); $a->set_class('logo'); $img = new FANSUB_HTML('img'); $img->set_image_alt(''); $img->set_image_src($logo); $a->set_text($img->build()); $a->output(); } $slogan = new FANSUB_HTML('p'); $slogan->set_class('slogan'); $slogan->set_text(sprintf($args['slogan'], fansub_get_root_domain_name(home_url('/')))); $slogan->output(); if(isset($_REQUEST['error'])) { echo '

Đã có lỗi xảy ra, xin vui lòng thử lại.

'; } ?>

Đăng nhập