123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?php
- class SwpmSelfActionHandler {
- public function __construct() {
- //Register all the self action hooks the plugin needs to handle
- add_action('swpm_front_end_registration_complete_fb', array(&$this, 'after_registration_callback'));//For the form builder
- add_action('swpm_front_end_registration_complete_user_data', array(&$this, 'after_registration_callback'));
- add_action('swpm_membership_level_changed', array(&$this, 'handle_membership_level_changed_action'));
- add_action('swpm_payment_ipn_processed', array(&$this, 'handle_swpm_payment_ipn_processed'));
- add_filter('swpm_after_logout_redirect_url', array(&$this, 'handle_after_logout_redirection'));
- add_filter('swpm_auth_cookie_expiry_value', array(&$this, 'handle_auth_cookie_expiry_value'));
- }
- public function handle_auth_cookie_expiry_value($expire){
- $logout_member_on_browser_close = SwpmSettings::get_instance()->get_value('logout-member-on-browser-close');
- if (!empty($logout_member_on_browser_close)) {
- //This feature is enabled.
- //Setting auth cookie expiry value to 0.
- $expire = apply_filters( 'swpm_logout_on_close_auth_cookie_expiry_value', 0 );
- }
- return $expire;
- }
- public function handle_after_logout_redirection($redirect_url){
- $after_logout_url = SwpmSettings::get_instance()->get_value('after-logout-redirection-url');
- if(!empty($after_logout_url)){
- //After logout URL is being used. Override re-direct URL.
- $redirect_url = $after_logout_url;
- }
- return $redirect_url;
- }
- public function handle_swpm_payment_ipn_processed($ipn_data){
- $ipn_forward_url = SwpmSettings::get_instance()->get_value('payment-notification-forward-url');
- if(!empty($ipn_forward_url)){
- SwpmLog::log_simple_debug("Payment Notification Forwarding is Enabled. Posting the payment data to URL: " . $ipn_forward_url, true);
- $response = wp_remote_post($ipn_forward_url, $ipn_data);
- if (is_wp_error($response)) {
- $error_message = $response->get_error_message();
- SwpmLog::log_simple_debug("There was an error posting the payment data. Error message: " . $error_message, true);
- }
- }
- }
- public function after_registration_callback($user_data){
- //Handle auto login after registration if enabled
- $enable_auto_login = SwpmSettings::get_instance()->get_value('auto-login-after-rego');
- if (!empty($enable_auto_login)){
- SwpmLog::log_simple_debug("Auto login after registration feature is enabled in settings. Performing auto login for user: " . $user_data['user_name'], true);
- $login_page_url = SwpmSettings::get_instance()->get_value('login-page-url');
- // Allow hooks to change the value of login_page_url
- $login_page_url = apply_filters('swpm_after_reg_callback_login_page_url', $login_page_url);
- $encoded_pass = base64_encode($user_data['plain_password']);
- $swpm_auto_login_nonce = wp_create_nonce('swpm-auto-login-nonce');
- $arr_params = array(
- 'swpm_auto_login' => '1',
- 'swpm_user_name' => urlencode($user_data['user_name']),
- 'swpm_encoded_pw' => $encoded_pass,
- 'swpm_auto_login_nonce' => $swpm_auto_login_nonce,
- );
- $redirect_page = add_query_arg($arr_params, $login_page_url);
- wp_redirect($redirect_page);
- exit(0);
- }
- }
- public function handle_membership_level_changed_action($args){
- $swpm_id = $args['member_id'];
- $old_level = $args['from_level'];
- $new_level = $args['to_level'];
- SwpmLog::log_simple_debug('swpm_membership_level_changed action triggered. Member ID: '.$swpm_id.', Old Level: '.$old_level.', New Level: '.$new_level, true);
- //Check to see if the old and the new levels are the same or not.
- if(trim($old_level) == trim($new_level)){
- SwpmLog::log_simple_debug('The to (Level ID: '.$new_level.') and from (Level ID: '.$old_level.') values are the same. Nothing to do here.', true);
- return;
- }
- //Find record for this user
- SwpmLog::log_simple_debug('Retrieving user record for member ID: '.$swpm_id, true);
- $resultset = SwpmMemberUtils::get_user_by_id($swpm_id);
- if($resultset){
- //Found a record. Lets do some level update specific changes.
- //$emailaddress = $resultset->email;
- //$account_status = $resultset->account_state;
- //Retrieve the new memberhsip level's details
- $level_row = SwpmUtils::get_membership_level_row_by_id($new_level);
- //Update the WP user role according to the new level's configuration (if applicable).
- $user_role = $level_row->role;
- $user_info = get_user_by('login', $resultset->user_name);
- $wp_user_id = $user_info->ID;
- SwpmLog::log_simple_debug('Calling user role update function.', true);
- SwpmMemberUtils::update_wp_user_role($wp_user_id, $user_role);
- }
- }
- }
|