Changeset 2896252
- Timestamp:
- 04/09/2023 03:08:02 PM (3 years ago)
- Location:
- memberfindme-login-connector
- Files:
-
- 3 added
- 2 edited
-
tags/6.4 (added)
-
tags/6.4/memberfindmelogin.php (added)
-
tags/6.4/readme.txt (added)
-
trunk/memberfindmelogin.php (modified) (6 diffs)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
memberfindme-login-connector/trunk/memberfindmelogin.php
r2786654 r2896252 4 4 Plugin URI: https://membershipworks.com 5 5 Description: Provides single sign-on to WordPress for MembershipWorks membership system 6 Version: 6. 36 Version: 6.4 7 7 Author: MembershipWorks 8 8 Author URI: https://membershipworks.com … … 10 10 */ 11 11 12 /* Copyright 2013-202 2SOURCEFOUND INC. (email : [email protected])12 /* Copyright 2013-2023 SOURCEFOUND INC. (email : [email protected]) 13 13 14 14 This program is free software; you can redistribute it and/or modify … … 179 179 $act=isset($_REQUEST['action'])?$_REQUEST['action']:'login'; 180 180 $msg=false; 181 $id=empty($_POST['log'])?false:username_exists(sanitize_user($_POST['log']));182 if ($id!==false&&get_user_meta($id,'SF_ID',true))183 $id=false;184 if ($act!='sf_login'&&$id!==false)185 return; // do standard WP login186 if (!empty($_POST['log'])&&strpos($_POST['log'],'@')&&!empty($_POST['pwd'])&&($set=get_option('sf_set'))&&!empty($set['org'])&&defined('SF_WPL')) {187 $ eml=trim(strtolower($_POST['log']));188 $ pwd=trim(strtolower($_POST['pwd']));181 if (!defined('SF_WPL')||defined('SF_WPL_LOGIN')||empty($_POST['log'])||!strpos($_POST['log'],'@')||empty($_POST['pwd'])) { 182 // do nothing 183 } else if (($id=username_exists(sanitize_user($_POST['log'])))&&!get_user_meta($id,'SF_ID',true)) { 184 // do standard WP login 185 } else if (($set=get_option('sf_set'))&&!empty($set['org'])) { 186 define('SF_WPL_LOGIN',true); 187 $user_login=$_POST['log']; 188 $user_password=$_POST['pwd']; 189 189 for($try=0;$try<3;$try++) { 190 $rsp=wp_remote_post((empty($set['ssl'])||$set['ssl']!='2'?'https':'http').'://api.membershipworks.com/v1/usr',array('method'=>'POST','headers'=>array('from'=>isset($_SERVER['HTTP_X_FORWARDED_FOR'])?$_SERVER['HTTP_X_FORWARDED_FOR']:$_SERVER['REMOTE_ADDR']),'user-agent'=>$_SERVER['HTTP_USER_AGENT'],'body'=>array('org'=>$set['org'],'eml'=>$ eml,'pwd'=>$pwd)));190 $rsp=wp_remote_post((empty($set['ssl'])||$set['ssl']!='2'?'https':'http').'://api.membershipworks.com/v1/usr',array('method'=>'POST','headers'=>array('from'=>isset($_SERVER['HTTP_X_FORWARDED_FOR'])?$_SERVER['HTTP_X_FORWARDED_FOR']:$_SERVER['REMOTE_ADDR']),'user-agent'=>$_SERVER['HTTP_USER_AGENT'],'body'=>array('org'=>$set['org'],'eml'=>$user_login,'pwd'=>$user_password))); 191 191 if (is_wp_error($rsp)) usleep(100000); else break; 192 192 } … … 205 205 add_filter('send_password_change_email','__return_false'); 206 206 if (is_null($id)||$id===false) { 207 $id=wp_create_user($rsp['uid'],$ pwd,$eml);207 $id=wp_create_user($rsp['uid'],$user_password,$user_login); 208 208 if (is_wp_error($id)&&$id->get_error_code()=='existing_user_email') 209 $id=wp_create_user($rsp['uid'],$ pwd);209 $id=wp_create_user($rsp['uid'],$user_password); 210 210 $doc['show_admin_bar_front']='false'; 211 211 } else { 212 wp_update_user(array('ID'=>$id,'user_email'=>$ eml)); // update email separately213 wp_set_password($ pwd,$id); // update password separately212 wp_update_user(array('ID'=>$id,'user_email'=>$user_login)); // update email separately 213 wp_set_password($user_password,$id); // update password separately 214 214 } 215 215 if (!is_null($id)&&$id!==false&&!is_wp_error($id)) { … … 219 219 setcookie('SFSF',rawurlencode($rsp['SF']),time()+8640000,'/'); 220 220 if ($act=='sf_login') { 221 $user=wp_signon(array('user_login'=>$rsp['uid'],'user_password'=>$ pwd,'remember'=>true),force_ssl_admin()||!empty($_SERVER['HTTPS'])?true:false);221 $user=wp_signon(array('user_login'=>$rsp['uid'],'user_password'=>$user_password,'remember'=>true),force_ssl_admin()||!empty($_SERVER['HTTPS'])?true:false); 222 222 $msg=is_wp_error($user)?('Could not synchronize login '.$user->get_error_message()):'OK'; 223 223 } else { 224 224 $_POST['log']=$rsp['uid']; 225 $_POST['pwd']=$ pwd;225 $_POST['pwd']=$user_password; 226 226 } 227 227 } else if ($act=='sf_login') { … … 241 241 } 242 242 add_action('login_form_login','sf_login'); 243 244 function sf_authenticate(&$user_login,&$user_password) { 245 if (!defined('SF_WPL')||defined('SF_WPL_LOGIN')||empty($user_login)||!strpos($user_login,'@')||empty($user_password)) { 246 // do nothing 247 } else if (($id=username_exists(sanitize_user($user_login)))&&!get_user_meta($id,'SF_ID',true)) { 248 // do standard WP login 249 } else if (($set=get_option('sf_set'))&&!empty($set['org'])) { 250 define('SF_WPL_LOGIN',true); 251 for($try=0;$try<3;$try++) { 252 $rsp=wp_remote_post((empty($set['ssl'])||$set['ssl']!='2'?'https':'http').'://api.membershipworks.com/v1/usr',array('method'=>'POST','headers'=>array('from'=>isset($_SERVER['HTTP_X_FORWARDED_FOR'])?$_SERVER['HTTP_X_FORWARDED_FOR']:$_SERVER['REMOTE_ADDR']),'user-agent'=>$_SERVER['HTTP_USER_AGENT'],'body'=>array('org'=>$set['org'],'eml'=>$user_login,'pwd'=>$user_password))); 253 if (is_wp_error($rsp)) usleep(100000); else break; 254 } 255 if (!is_wp_error($rsp)&&($rsp=json_decode($rsp['body'],true))&&!empty($rsp['uid'])) { 256 $nam=empty($rsp['nam'])?(empty($rsp['ctc'])?(empty($rsp['biz'])?'':$rsp['biz']):$rsp['ctc']):$rsp['nam']; 257 $doc=array('nickname'=>$nam,'user_nicename'=>$nam,'display_name'=>$nam); 258 if (isset($rsp['url'])) $doc['user_url']=$rsp['url']; 259 $id=username_exists($rsp['uid']); 260 if (is_null($id)||$id===false) { 261 $id=wp_create_user($rsp['uid'],$user_password,$user_login); 262 if (is_wp_error($id)&&$id->get_error_code()=='existing_user_email') 263 $id=wp_create_user($rsp['uid'],$user_password); 264 $doc['show_admin_bar_front']='false'; 265 } else { 266 wp_update_user(array('ID'=>$id,'user_email'=>$user_login)); // update email separately 267 wp_set_password($user_password,$id); // update password separately 268 } 269 if (!is_null($id)&&$id!==false&&!is_wp_error($id)) { 270 $doc['ID']=$id; 271 wp_update_user($doc); // update names separately 272 update_user_meta($id,'SF_ID',$rsp['uid']); 273 setcookie('SFSF',rawurlencode($rsp['SF']),time()+8640000,'/'); 274 $user_login=$rsp['uid']; 275 } 276 } 277 } 278 } 279 add_action('wp_authenticate','sf_authenticate',1,2); 243 280 244 281 function sf_logout() { -
memberfindme-login-connector/trunk/readme.txt
r2824883 r2896252 4 4 Tags: membershipworks, memberfindme, membership management, membership, member login, billing, member access, member content 5 5 Requires at least: 4.0 6 Tested up to: 6. 1.17 Stable tag: 6. 36 Tested up to: 6.2 7 Stable tag: 6.4 8 8 License: GPL2 9 9 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 169 169 = 6.3 = 170 170 * Fixes issue where user sees session expired message after signing out via widget 171 172 = 6.4 = 173 * Provides compatibility with WooCommerce login form
Note: See TracChangeset
for help on using the changeset viewer.