private function add_user_to_wpl($user_id) { $res = wpl_users::add_user_to_wpl($user_id); $res = (int) $res; $message = $res ? __('User added to WPL successfully.', WPL_TEXTDOMAIN) : __('Error Occured.', WPL_TEXTDOMAIN); $data = NULL; $response = array('success' => $res, 'message' => $message, 'data' => $data); echo json_encode($response); exit; }
/** * Changes Membership of a user * @author Howard R <*****@*****.**> * @static * @param int $user_id * @param int $membership_id * @param boolean $trigger_event */ public static function change_membership($user_id, $membership_id = -1, $trigger_event = true) { $user_data = wpl_users::get_wpl_data($user_id); /** Add user to WPL if not added **/ if (!$user_data) { wpl_users::add_user_to_wpl($user_id); $user_data = wpl_users::get_wpl_data($user_id); } $method = (isset($user_data->membership_id) and $user_data->membership_id != $membership_id) ? 'membership_changed' : 'access_updated'; $membership_data = wpl_users::get_wpl_data($membership_id); $query1 = ''; foreach ($membership_data as $key => $value) { if (substr($key, 0, 7) != 'access_' and substr($key, 0, 8) != 'maccess_') { continue; } $query1 .= "`{$key}`='{$value}', "; } $query1 = trim($query1, ', '); $query = "UPDATE `#__wpl_users` SET " . $query1 . ", `membership_id`='" . $membership_id . "' WHERE `id`='" . $user_id . "'"; wpl_db::q($query); /** user assigned to a new group **/ if ($method == 'membership_changed' and wpl_global::check_addon('membership')) { /** Import library **/ _wpl_import('libraries.addon_membership'); $membership = new wpl_addon_membership(); $membership->update_expiry_date($user_id, NULL, true); } /** trigger event **/ $params = array('user_id' => $user_id, 'previous_membership' => $user_data->membership_id, 'new_membership' => $membership_id); if ($trigger_event and $method == 'access_updated') { wpl_global::event_handler('user_access_updated', $params); } elseif ($trigger_event and $method == 'membership_changed') { wpl_global::event_handler('user_membership_changed', $params); } }
/** * Running installation queries and initializing WPL * @author Howard <*****@*****.**> * @return void */ public function activate_wpl() { if (wpl_folder::exists(WPL_ABSPATH . 'assets' . DS . 'install' . DS . 'files')) { /** copy files **/ $res = wpl_folder::copy(WPL_ABSPATH . 'assets' . DS . 'install' . DS . 'files', ABSPATH, '', true); /** delete files **/ wpl_folder::delete(WPL_ABSPATH . 'assets' . DS . 'install' . DS . 'files'); } /** run queries **/ $query_file = WPL_ABSPATH . 'assets' . DS . 'install' . DS . 'queries.sql'; if (wpl_file::exists($query_file)) { $queries = wpl_file::read($query_file); $queries = str_replace(";\r\n", "-=++=-", $queries); $queries = str_replace(";\r", "-=++=-", $queries); $queries = str_replace(";\n", "-=++=-", $queries); $sqls = explode("-=++=-", $queries); if (function_exists('is_multisite') and is_multisite() and wpl_global::check_addon('multisite')) { $original_blog_id = wpl_global::get_current_blog_id(); // Get all blogs $blogs = wpl_db::select("SELECT `blog_id` FROM `#__blogs`", 'loadColumn'); foreach ($blogs as $blog) { if (!isset($blog->blog_id)) { continue; } switch_to_blog($blog->blog_id); foreach ($sqls as $sql) { try { wpl_db::q($sql); } catch (Exception $e) { } } } /** delete query file **/ wpl_file::delete($query_file); switch_to_blog($original_blog_id); } else { foreach ($sqls as $sql) { try { wpl_db::q($sql); } catch (Exception $e) { } } /** delete query file **/ wpl_file::delete($query_file); } } /** run script **/ $script_file = WPL_ABSPATH . 'assets' . DS . 'install' . DS . 'script.php'; if (wpl_file::exists($script_file)) { include $script_file; /** delete script file **/ wpl_file::delete($script_file); } if (function_exists('is_multisite') and is_multisite() and wpl_global::check_addon('multisite')) { $original_blog_id = wpl_global::get_current_blog_id(); // Get all blogs $blogs = wpl_db::select("SELECT `blog_id` FROM `#__blogs`", 'loadColumn'); foreach ($blogs as $blog) { if (!isset($blog->blog_id)) { continue; } switch_to_blog($blog->blog_id); /** create propertylisting page **/ $pages = array('Properties' => '[WPL]', 'For Sale' => '[WPL sf_select_listing="9"]', 'For Rent' => '[WPL sf_select_listing="10"]', 'Vacation Rental' => '[WPL sf_select_listing="12"]'); foreach ($pages as $title => $content) { if (wpl_db::select("SELECT COUNT(post_content) FROM `#__posts` WHERE `post_content` LIKE '%{$content}%' AND `post_status` IN ('publish', 'private')", 'loadResult') != 0) { continue; } $post = array('post_title' => $title, 'post_content' => $content, 'post_type' => 'page', 'post_status' => 'publish', 'comment_status' => 'closed', 'ping_status' => 'closed', 'post_author' => 1); $post_id = wp_insert_post($post); if ($content == '[WPL]') { _wpl_import('libraries.settings'); wpl_settings::save_setting('main_permalink', $post_id); } } /** Add admin user to WPL **/ wpl_users::add_user_to_wpl(1); } switch_to_blog($original_blog_id); } else { /** create propertylisting page **/ $pages = array('Properties' => '[WPL]', 'For Sale' => '[WPL sf_select_listing="9"]', 'For Rent' => '[WPL sf_select_listing="10"]', 'Vacation Rental' => '[WPL sf_select_listing="12"]'); foreach ($pages as $title => $content) { if (wpl_db::select("SELECT COUNT(post_content) FROM `#__posts` WHERE `post_content` LIKE '%{$content}%' AND `post_status` IN ('publish', 'private')", 'loadResult') != 0) { continue; } $post = array('post_title' => $title, 'post_content' => $content, 'post_type' => 'page', 'post_status' => 'publish', 'comment_status' => 'closed', 'ping_status' => 'closed', 'post_author' => 1); $post_id = wp_insert_post($post); if ($content == '[WPL]') { _wpl_import('libraries.settings'); wpl_settings::save_setting('main_permalink', $post_id); } } /** Add admin user to WPL **/ wpl_users::add_user_to_wpl(1); } /** upgrade WPL **/ self::upgrade_wpl(); }