芝麻web文件管理V1.00
';
}
}
}
add_action('wp_footer', 'rehub_login_register_modal');
}
#
# AJAX FUNCTION (HANDLE DATA FROM POPUP)
# ========================================================================================
// LOGIN
if( !function_exists('rehub_login_member_popup_function') ) {
function rehub_login_member_popup_function(){
// Get variables
$user_login = sanitize_user($_POST['rehub_user_login']);
$user_pass = sanitize_text_field($_POST['rehub_user_pass']);
$remember = !empty($_POST['rehub_remember']) ? true : false;
$redirect_to = rehub_option('custom_redirect_after_login');
if($redirect_to){
if ( stripos( $user_login, '@' ) !== false ) {
$user = get_user_by('email', $user_login);
if($user) {
$user_login = $user->user_login;
}
}
$redirect_to = str_replace('%%userlogin%%', $user_login, $redirect_to);
}
// Check CSRF token
if( !check_ajax_referer( 'ajax-login-nonce', 'loginsecurity', false) ){
echo json_encode(array('error' => true, 'message'=> ' '.__('Session has expired, please reload the page and try again', 'rehub-theme').'
'));
}
// Check if input variables are empty
elseif(empty($user_login) or empty($user_pass)){
echo json_encode(array('error' => true, 'message'=> ' '.__('Please fill all form fields', 'rehub-theme').'
'));
}
else{
$secure_cookie = (!is_ssl()) ? false : '';
$user = wp_signon( array('user_login' => $user_login, 'user_password' => $user_pass, 'remember' => $remember ), $secure_cookie );
if(is_wp_error($user)){
echo json_encode(array('error' => true, 'message'=> ' '.$user->get_error_message().'
'));
}
else{
$redirect = apply_filters('rh_custom_redirect_for_login', $redirect_to, $user );
echo json_encode(array('error' => false, 'message'=> ''.__('Login successful, reloading page...', 'rehub-theme').'
', 'redirecturl' => esc_url($redirect)));
}
}
wp_die();
}
add_action('wp_ajax_nopriv_rehub_login_member_popup_function', 'rehub_login_member_popup_function');
}
// REGISTER
if( !function_exists('rehub_register_member_popup_function') ) {
function rehub_register_member_popup_function(){
// Get variables
$user_login = sanitize_user($_POST['rehub_user_login']);
$user_email = sanitize_email($_POST['rehub_user_email']);
$user_signonpassword = sanitize_text_field($_POST['rehub_user_signonpassword']);
$user_confirmpassword = sanitize_text_field($_POST['rehub_user_confirmpassword']);
$wcv_apply_as_vendor = (!empty($_POST['wcv_apply_as_vendor'])) ? true : false;
$show_terms_page = rehub_option('userlogin_term_page');
$show_policy_page = rehub_option('userlogin_policy_page');
$redirect_to = rehub_option('custom_redirect_after_login');
if($redirect_to){
$redirect_to = str_replace('%%userlogin%%', $user_login, $redirect_to);
}
$bp_logic_popup = rehub_option('bp_deactivateemail_confirm');
$usermeta = $user_error_req_fields = array();
// Check CSRF token
if( !check_ajax_referer( 'ajax-login-nonce', 'register-security', false) ){
echo json_encode(array('error' => true, 'message'=> ''.__('Session has expired, please reload the page and try again', 'rehub-theme').'
'));
wp_die();
}
// Check if input variables are empty
elseif(empty($user_login) or empty($user_email) or empty($user_signonpassword) or empty($user_confirmpassword)){
echo json_encode(array('error' => true, 'message'=> ''.__('Please fill all form fields', 'rehub-theme').'
'));
wp_die();
}
elseif($show_terms_page and !isset($_POST['rehub_terms'])){
echo json_encode(array('error' => true, 'message'=> ''.__('Please accept the terms and conditions before registering', 'rehub-theme').'
'));
wp_die();
}
elseif($show_policy_page and !isset($_POST['rehub_policy'])){
echo json_encode(array('error' => true, 'message'=> ''.__('Please accept the Privacy Policy before registering', 'rehub-theme').'
'));
wp_die();
}
elseif($user_signonpassword != $user_confirmpassword){
echo json_encode(array('error' => true, 'message'=> ''.__('Your passwords do not match. Set the same password in both fields', 'rehub-theme').'
'));
wp_die();
}
elseif(mb_strlen($user_signonpassword) < 6){
echo json_encode(array('error' => true, 'message'=> ''.__('Your passwords must have minimum 6 symbols.', 'rehub-theme').'
'));
wp_die();
}
if (!empty($_POST['signup_profile_field_ids'])){
$signup_profile_field_ids = explode(',', $_POST['signup_profile_field_ids']);
foreach ((array)$signup_profile_field_ids as $field_id) {
if ( ! isset( $_POST['field_' . $field_id] ) ) {
if ( ! empty( $_POST['field_' . $field_id . '_day'] ) && ! empty( $_POST['field_' . $field_id . '_month'] ) && ! empty( $_POST['field_' . $field_id . '_year'] ) ) {
// Concatenate the values.
$date_value = $_POST['field_' . $field_id . '_day'] . ' ' . $_POST['field_' . $field_id . '_month'] . ' ' . $_POST['field_' . $field_id . '_year'];
// Turn the concatenated value into a timestamp.
$_POST['field_' . $field_id] = date( 'Y-m-d H:i:s', strtotime( $date_value ) );
}
}
// Create errors for required fields without values.
if ( xprofile_check_is_required_field( $field_id ) && empty( $_POST[ 'field_' . $field_id ] ) && ! bp_current_user_can( 'bp_moderate' ) ){
$field_data = xprofile_get_field($field_id );
if(is_object($field_data)){
$user_error_req_fields[]= $field_data->name;
}
}
}
if(!empty($user_error_req_fields)){
echo json_encode(array('error' => true, 'message'=> ''.__('Next fields are required: ', 'rehub-theme').implode(', ',$user_error_req_fields).'
'));
wp_die();
}
$usermeta['profile_field_ids'] = (array)$_POST['signup_profile_field_ids'];
}
if($bp_logic_popup == 'bp' && class_exists( 'BuddyPress' )){
$usermeta['password'] = wp_hash_password( $_POST['signup_password'] );
$usermeta = apply_filters( 'bp_signup_usermeta', $usermeta );
$userid = bp_core_signup_user( $user_login, $user_signonpassword, $user_email, $usermeta );
}
else{
$userid = wp_create_user( $user_login, $user_signonpassword, $user_email );
}
if(is_wp_error($userid)){
$registration_error_messages = $userid->errors;
$display_errors = '';
foreach($registration_error_messages as $error){
$display_errors .= '
'.$error[0].'
';
}
$display_errors .= '
';
echo json_encode(array('error' => true, 'message' => $display_errors));
}else{
if (!empty($_POST['signup_profile_field_ids'])){
$signup_profile_field_ids = explode(',', $_POST['signup_profile_field_ids']);
foreach ((array)$signup_profile_field_ids as $field_id) {
if ( ! isset( $_POST['field_' . $field_id] ) ) {
if ( ! empty( $_POST['field_' . $field_id . '_day'] ) && ! empty( $_POST['field_' . $field_id . '_month'] ) && ! empty( $_POST['field_' . $field_id . '_year'] ) ) {
// Concatenate the values.
$date_value = $_POST['field_' . $field_id . '_day'] . ' ' . $_POST['field_' . $field_id . '_month'] . ' ' . $_POST['field_' . $field_id . '_year'];
// Turn the concatenated value into a timestamp.
$_POST['field_' . $field_id] = date( 'Y-m-d H:i:s', strtotime( $date_value ) );
}
}
if(!empty($_POST['field_' . $field_id])){
$field_val = sanitize_text_field($_POST['field_' . $field_id]);
xprofile_set_field_data($field_id, $userid, $field_val);
$visibility_level = ! empty( $_POST['field_' . $field_id . '_visibility'] ) ? $_POST['field_' . $field_id . '_visibility'] : 'public';
xprofile_set_field_visibility_level( $field_id, $userid, $visibility_level );
}
}
}
do_action('rh_before_wcv_register', $userid );
if ($wcv_apply_as_vendor){
$secure_cookie = (!is_ssl()) ? false : '';
$manual = get_option( 'wcvendors_vendor_approve_registration' );
$role = apply_filters( 'wcvendors_pending_role', ( $manual ? 'pending_vendor' : 'vendor' ) );
if (class_exists('WCVendors_Pro') ) {
if ($role == 'pending_vendor'){
$role = 'customer';
}
}
$user_id = wp_update_user( array( 'ID' => $userid, 'role' => $role ));
do_action( 'wcvendors_application_submited', $userid );
if (class_exists('WCVendors_Pro') ) {
$dashboard_page_ids = (array) get_option( 'wcvendors_dashboard_page_id' );
if(!empty($dashboard_page_ids)){
$dashboard_page_id = reset( $dashboard_page_ids );
$redirect_to = get_permalink($dashboard_page_id);
}
}
else {
$redirect_to = get_permalink(get_option('wcvendors_vendor_dashboard_page_id'));
}
$errorshow = false;
if ($role == 'vendor'){
$status = 'approved';
$message = ''.__( 'Congratulations! You are now a vendor. Be sure to configure your store settings before adding products.', 'rehub-theme').'
';
if($bp_logic_popup == 'bp' && class_exists( 'BuddyPress' )){
$message .= ''.__( 'Before login this site you will need to activate your account via the email we have just sent to your address.', 'rehub-theme').'
';
$errorshow = true;
}
}
elseif ($role == 'customer'){
$status = 'customer';
$message = ''.__( 'Congratulations! Now you must add some settings before application', 'rehub-theme').'
';
if($bp_logic_popup == 'bp' && class_exists( 'BuddyPress' )){
$message .= ''.__( 'Before login this site you will need to activate your account via the email we have just sent to your address.', 'rehub-theme').'
';
$errorshow = true;
}
}
else{
$status = 'pending';
$message = ''.__( 'Your application has been received. You will be notified by email the results of your application. Currently you can use site as Pending vendor.', 'rehub-theme').'
';
if($bp_logic_popup == 'bp' && class_exists( 'BuddyPress' )){
$message .= ''.__( 'Before login this site you will need to activate your account via the email we have just sent to your address.', 'rehub-theme').'
';
$errorshow = true;
}
}
if ($status != 'customer' && $status != ''){
global $woocommerce;
$mails = $woocommerce->mailer()->get_emails();
if (!empty( $mails ) ) {
$mails[ 'WC_Email_Approve_Vendor' ]->trigger($userid, $status );
}
}
wp_signon( array('user_login' => $user_login, 'user_password' => $user_signonpassword), $secure_cookie );
$redirect = apply_filters('rh_custom_redirect_for_reg', $redirect_to, $userid );
echo json_encode(array('error' => $errorshow, 'message' => $message, 'redirecturl' => $redirect));
}else{
do_action('rh_before_user_signon', $userid );
$redirect = apply_filters('rh_custom_redirect_for_reg', $redirect_to, $userid );
if($bp_logic_popup == 'bp' && class_exists( 'BuddyPress' )){
echo json_encode(array('error' => true, 'message' => ''.__( 'You have successfully created your account! To begin using this site you will need to activate your account via the email we have just sent to your address.', 'rehub-theme' ).'
', 'redirecturl' => $redirect));
}else{
$secure_cookie = (!is_ssl()) ? false : '';
wp_signon( array('user_login' => $user_login, 'user_password' => $user_signonpassword), $secure_cookie );
echo json_encode(array('error' => false, 'message' => ''.__( 'Registration complete. Now you can use your account. Reloading page...', 'rehub-theme').'
', 'redirecturl' => $redirect));
}
}
}
wp_die();
}
add_action('wp_ajax_nopriv_rehub_register_member_popup_function', 'rehub_register_member_popup_function');
}