/** * [expire_users_current_user_expire_date /] * * Displays the expiry date for the current user. * * Allowed Attributes: * - date_format * - expires_format * - expired_format * - never_expire */ static function current_user_expire_date($atts, $content = '') { if (is_user_logged_in()) { $u = new Expire_User(get_current_user_id()); $atts = shortcode_atts(array('date_format' => __('M d, Y', 'expire-users'), 'expires_format' => __('Expires %s', 'expire-users'), 'expired_format' => __('Expired %s', 'expire-users'), 'never_expire' => __('Never Expire', 'expire-users')), $atts); return $u->get_expire_date_display($atts); } return $content; }
/** * Do the scheduler */ function do_cron() { $maybe_expire_users = Expire_Users_Query::query(array('expired' => false, 'expired_date' => current_time('timestamp'), 'expired_date_compare' => '<')); if ($maybe_expire_users->results > 0) { foreach ($maybe_expire_users->results as $expired_user) { $this_expire_user = new Expire_User($expired_user->ID); $this_expire_user->expire(); } } }
/** * Allow Password Reset */ function allow_password_reset($allow, $user_ID) { if (absint($user_ID) > 0) { $u = new Expire_User($checkuser->ID); if ($u->is_expired()) { $allow = new WP_Error('expire_users_expired_password_reset', sprintf('<strong>%s</strong> %s', __('ERROR:'), __('Your user details have expired so you are no longer able to reset your password.', 'expire-users'))); } } return $allow; }
/** * Profile Fields * * @param object|null $user Instance of WP_User. */ public function profile_fields($user = null) { $can_edit_profile_expiry = $this->current_expire_user_can('expire_users_edit'); if ($user) { $expire_user = new Expire_User($user->ID); } else { $expire_user = new Expire_User(); } // Default Expire Date Field Values $radio_never = ''; $radio_date = ''; $days_n = 7; $date_in_block = 'days'; $expire_timestamp = current_time('timestamp') + WEEK_IN_SECONDS; $month_n = ''; if (isset($expire_user->expire_timestamp) && is_numeric($expire_user->expire_timestamp)) { $radio_date = checked(true, true, false); $days_n2 = floor(($expire_user->expire_timestamp - current_time('timestamp')) / DAY_IN_SECONDS); if ($days_n2 > 0) { $days_n = $days_n2; } $expire_timestamp = $expire_user->expire_timestamp; $days_n = ceil(($expire_timestamp - current_time('timestamp')) / DAY_IN_SECONDS); if ($days_n % 7 == 0) { $days_n = $days_n / 7; $date_in_block = 'weeks'; } } else { $radio_never = checked(true, true, false); } $month_n = date('m', $expire_timestamp); ?> <h3><?php esc_html_e('User Expiry Information', 'expire-users'); ?> </h3> <table class="form-table"> <tr> <th><label for="address"><?php esc_html_e('Expire Date', 'expire-users'); ?> </label></th> <td> <?php if ($expire_user->user_id > 0) { ?> <div class="misc-pub-section curtime misc-pub-section-last" style="padding-left:0px;"> <span id="timestamp"><?php echo $expire_user->get_expire_date_display(); ?> </span> <?php if ($can_edit_profile_expiry) { ?> <a href="#delete_user_edit_timestamp" class="delete-user-edit-timestamp hide-if-no-js" tabindex='4'><?php esc_html_e('Edit', 'expire-users'); ?> </a> <?php } ?> </div> <?php } ?> <?php if ($can_edit_profile_expiry) { ?> <fieldset class="expire-user-date-options <?php if ($expire_user->user_id > 0) { echo 'hide-if-js'; } ?> "> <legend class="screen-reader-text"><span><?php esc_html_e('Expiry Date', 'expire-users'); ?> </span></legend> <label for="expire_user_date_type_never"> <input name="expire_user_date_type" type="radio" id="expire_user_date_type_never" value="never" <?php echo $radio_never; ?> > <?php esc_html_e('Never', 'expire-users'); ?> </label><br /> <label for="expire_user_date_type_in"> <input name="expire_user_date_type" type="radio" id="expire_user_date_type_in" value="in"> <?php esc_html_e('In', 'expire-users'); ?> <input type="text" id="expire_user_date_in_num" name="expire_user_date_in_num" value="<?php echo $days_n; ?> " size="3" maxlength="3" tabindex="4" autocomplete="off"> <select name="expire_user_date_in_block" id="expire_user_date_in_block"> <?php echo $this->date_block_menu_options($date_in_block); ?> </select> </label><br /> <label for="expire_user_date_type_date"> <input name="expire_user_date_type" type="radio" id="expire_user_date_type_date" value="on" <?php echo $radio_date; ?> > <?php esc_html_e('On', 'expire-users'); ?> <select id="expire_user_date_on_mm" name="expire_user_date_on_mm" tabindex="4"> <?php echo $this->month_menu_options($month_n); ?> </select> <input type="text" id="expire_user_date_on_dd" name="expire_user_date_on_dd" value="<?php echo esc_attr(date('d', $expire_timestamp)); ?> " size="2" maxlength="2" tabindex="4" autocomplete="off">, <input type="text" id="expire_user_date_on_yyyy" name="expire_user_date_on_yyyy" value="<?php echo esc_attr(date('Y', $expire_timestamp)); ?> " size="4" maxlength="4" tabindex="4" autocomplete="off"> @ <input type="text" id="expire_user_date_on_hrs" name="expire_user_date_on_hrs" value="<?php echo esc_attr(date('H', $expire_timestamp)); ?> " size="2" maxlength="2" tabindex="4" autocomplete="off"> : <input type="text" id="expire_user_date_on_min" name="expire_user_date_on_min" value="<?php echo esc_attr(date('i', $expire_timestamp)); ?> " size="2" maxlength="2" tabindex="4" autocomplete="off"> </label> </fieldset> <?php } ?> </td> </tr> <?php if ($can_edit_profile_expiry) { ?> <tr> <th><label for="role"><?php esc_attr_e('On Expire, Default to Role', 'expire-users'); ?> </label></th> <td> <select name="expire_user_role" id="expire_user_role"> <?php echo '<option value="">' . __("Don't change role", 'expire-users') . '</option>'; wp_dropdown_roles($expire_user->on_expire_default_to_role); ?> </select> </td> </tr> <tr> <th><label><?php esc_attr_e('Expire Actions', 'expire-users'); ?> </label></th> <td> <fieldset> <legend class="screen-reader-text"><span><?php esc_attr_e('Expire Actions', 'expire-users'); ?> </span></legend> <label for="expire_user_reset_password"> <input name="expire_user_reset_password" type="checkbox" id="expire_user_reset_password" value="Y" <?php checked($expire_user->on_expire_user_reset_password); ?> > <?php esc_attr_e('Replace user\'s password with a randomly generated one', 'expire-users'); ?> </a> </label><br> <label for="expire_user_remove_expiry"> <input name="expire_user_remove_expiry" type="checkbox" id="expire_user_remove_expiry" value="Y" <?php checked($expire_user->on_expire_user_remove_expiry); ?> > <?php esc_attr_e('Remove expiry details and allow user to continue to login', 'expire-users'); ?> </label> </fieldset> </td> </tr> <tr> <th><label><?php esc_attr_e('Email Notifications', 'expire-users'); ?> </label></th> <td> <fieldset> <legend class="screen-reader-text"><span><?php esc_attr_e('Email Notifications', 'expire-users'); ?> </span></legend> <?php $notifications = Expire_User_Notifications_Admin::get_notifications(); foreach ($notifications as $notification) { $checked = ''; $name = $notification['name']; if ('expire_users_notification_message' == $name) { $name = 'expire_user_email'; $checked = checked(1, $expire_user->on_expire_user_email, false); } elseif ('expire_users_notification_admin_message' == $name) { $name = 'expire_user_email_admin'; $checked = checked(1, $expire_user->on_expire_user_email_admin, false); } ?> <label for="<?php echo esc_attr($name); ?> " title="<?php echo esc_attr($notification['description']); ?> "> <input name="<?php echo esc_attr($name); ?> " type="checkbox" id="<?php echo esc_attr($name); ?> " value="Y"<?php echo $checked; ?> /> <?php echo esc_html($notification['notification']); ?> </label><br /> <?php } ?> <br /><a href="<?php echo admin_url('users.php?page=expire_users'); ?> "><?php esc_attr_e('View and configure messages', 'expire-users'); ?> </a> </fieldset> </td> </tr> <?php } ?> </table> <?php }