Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 /**
  * 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);
     }
 }
Exemplo n.º 3
0
 /**
  * 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();
 }