function hocwp_update_user_saved_posts($user_id = null, $post_id = null) { $user_id = hocwp_return_user($user_id, 'id'); if (hocwp_id_number_valid($user_id)) { $post_id = hocwp_return_post($post_id, 'id'); if (hocwp_id_number_valid($post_id)) { $saved = hocwp_get_user_saved_posts($user_id); $saved = hocwp_sanitize_array($saved); if (in_array($post_id, $saved)) { unset($saved[array_search($post_id, $saved)]); } else { array_push($saved, $post_id); } $saved = hocwp_remove_empty_array_item($saved, true); return update_user_meta($user_id, 'saved_posts', $saved); } } return false; }
function hocwp_execute_lostpassword() { $http_post = 'POST' == $_SERVER['REQUEST_METHOD']; $user = null; $user_login = ''; $user_id = ''; $user_email = ''; $error = false; $message = __('There was an error occurred, please try again.', 'hocwp-theme'); $redirect = hocwp_get_value_by_key($_REQUEST, 'redirect_to'); $redirect_to = apply_filters('lostpassword_redirect', $redirect); if (is_user_logged_in()) { if (empty($redirect_to)) { $redirect_to = home_url('/'); } wp_redirect($redirect_to); exit; } $transient = ''; $captcha = hocwp_get_method_value('captcha'); if ($http_post) { $action = hocwp_get_method_value('action'); if ('lostpassword' === $action || 'retrievepassword' === $action) { $user_login = hocwp_get_method_value('user_login'); $transient_name = hocwp_build_transient_name('hocwp_lostpassword_user_%s', $user_login); if ((isset($_POST['submit']) || isset($_POST['wp-submit'])) && false === ($transient = get_transient($transient_name))) { if (empty($user_login)) { $error = true; $message = __('Please enter your account name or email address.', 'hocwp-theme'); } else { if (isset($_POST['captcha'])) { $capt = new HOCWP_Captcha(); if (!$capt->check($captcha)) { $error = true; $message = __('The security code is incorrect.', 'hocwp-theme'); } } if (!$error) { $user = hocwp_return_user($user_login); if (!is_a($user, 'WP_User')) { $error = true; $message = __('Username or email is not exists.', 'hocwp-theme'); } else { $user_login = $user->user_login; $user_id = $user->ID; $user_email = $user->user_email; } } } if (!$error && is_a($user, 'WP_User')) { $key = get_password_reset_key($user); if (is_wp_error($key)) { $error = true; $message = __('There was an error occurred, please try again or contact the administrator.', 'hocwp-theme'); } else { $message = wpautop(__('Someone has requested a password reset for the following account:', 'hocwp-theme')); $message .= wpautop(network_home_url('/')); $message .= wpautop(sprintf(__('Username: %s', 'hocwp-theme'), $user_login)); $message .= wpautop(__('If this was a mistake, just ignore this email and nothing will happen.', 'hocwp-theme')); $message .= wpautop(__('To reset your password, visit the following address:', 'hocwp-theme')); $message .= wpautop(network_site_url("wp-login.php?action=rp&key={$key}&login=" . rawurlencode($user_login), 'login')); if (is_multisite()) { $blogname = $GLOBALS['current_site']->site_name; } else { $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); } $title = sprintf(__('[%s] Password Reset'), $blogname); $title = apply_filters('retrieve_password_title', $title, $user_login, $user); $message = apply_filters('retrieve_password_message', $message, $key, $user_login, $user); if (!is_email($user_email)) { $user_email = $user->user_email; } if ($message && !hocwp_send_html_mail($user_email, wp_specialchars_decode($title), $message)) { $error = true; $message = __('The email could not be sent. Possible reason: your host may have disabled the mail() function.', 'hocwp-theme'); } else { $error = false; $message = __('Password recovery information has been sent, please check your mailbox.', 'hocwp-theme'); set_transient($transient_name, $user_id, 15 * MINUTE_IN_SECONDS); } } } } else { if (hocwp_id_number_valid($transient)) { $error = false; $message = __('Password recovery information has been sent, please check your mailbox.', 'hocwp-theme'); } } } } $result = array('user_id' => $user_id, 'user_email' => $user_email, 'user_login' => $user_login, 'captcha' => $captcha, 'error' => $error, 'message' => $message, 'redirect_to' => $redirect_to, 'transient' => $transient); return $result; }