HOME


Mini Shell 1.0
DIR: /home/dhnidqcz/pragmaticsng.org/wp-content/plugins/expire-users/admin/
Upload File :
Current File : /home/dhnidqcz/pragmaticsng.org/wp-content/plugins/expire-users/admin/notifications.php
<?php

class Expire_User_Notifications_Admin {

	/**
	 * Admin Table
	 *
	 * Display a table of expiry notifications.
	 */
	public static function admin_table() {
		$notifications_table = new Expire_User_Notifications_Table( array(
			'screen' => 'expire-users-notifications-table'
		) );
		$notifications_table->prepare_items(); 
		$notifications_table->display(); 
	}

	/**
	 * Get Notifications
	 *
	 * @return  array  Notifications data array.
	 */
	public static function get_notifications() {
		$notifications = array(
			array(
				'name'         => 'expire_users_notification_message',
				'notification' => __( 'User Expired Notification', 'expire-users' ),
				'description'  => __( 'This email is sent to a user when their login details expire.', 'expire-users' ),
				'message'      => get_option( 'expire_users_notification_message' )
			),
			array(
				'name'         => 'expire_users_notification_admin_message', 
				'notification' => __( 'User Expired Admin Notification', 'expire-users' ),
				'description'  => __( 'This email is sent to the WordPress admin email address when a user expires.', 'expire-users' ),
				'message'      => get_option( 'expire_users_notification_admin_message' )
			)
		);
		return apply_filters( 'expire_users_notifications', $notifications );
	}

}

if ( ! class_exists( 'WP_List_Table' ) ) {
	require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
}

/**
 * Expire User Notifications Table
 */
class Expire_User_Notifications_Table extends WP_List_Table {

	/**
	 * Prepare Items
	 */
	function prepare_items() {
		$columns = $this->get_columns();
		$hidden = array();
		$sortable = array();
		$this->_column_headers = array( $columns, $hidden, $sortable );
		$this->items = Expire_User_Notifications_Admin::get_notifications();
	}

	/**
	 * Get Columns
	 *
	 * @return  array  Notification columns.
	 */
	function get_columns() {
		$columns = array(
			//'active'       => __( 'Active', 'expire-users' ),
			'notification' => __( 'Notification', 'expire-users' ),
			'message'      => __( 'Message', 'expire-users' )
		);
		return apply_filters( 'expire_users_notifications_table_columns', $columns );
	}

	/**
	 * Column Active
	 *
	 * @param   array  $item  Column item.
	 * @return  array         Item.
	 */
	function column_active( $item ) {
		global $expire_users;
		$expire_settings = $expire_users->admin->settings->get_default_expire_settings();

		$checked = '';
		$name = $item['name'];
		if ( $item['name'] == 'expire_users_notification_message' ) {
			$checked = checked( 'Y', $expire_settings['expire_user_email'], false );
			$name = 'expire_user_email';
		} elseif ( $item['name'] == 'expire_users_notification_admin_message' ) {
			$checked = checked( 'Y', $expire_settings['expire_user_email_admin'], false );
			$name = 'expire_user_email_admin';
		}

		return sprintf( '<input type="checkbox" id="%s" name="expire_users_default_expire_settings[%1$s]" value="Y"%s />', esc_attr( $name ), $checked );
	}

	/**
	 * Column Notification
	 *
	 * @param   array  $item  Column item.
	 * @return  array         Item.
	 */
	function column_notification( $item ) {
		$actions = apply_filters( 'expire_users_notifications_table_row_actions', array(), $item );
		return sprintf( '<label for="%s">%s</label> <br /><span class="description">%s</span> %s', esc_attr( $item[ 'name' ] ), $item[ 'notification' ], $item[ 'description' ], $this->row_actions( $actions ) );
	}

	/**
	 * Column Message
	 *
	 * @param   array  $item  Column item.
	 * @return  array         Item.
	 */
	function column_message( $item ) {
		$message = sprintf( '<textarea id="%s" name="%1$s" rows="5" cols="50" class="large-text">%2$s</textarea>', esc_attr( $item[ 'name' ] ), $item[ 'message' ] );
		return apply_filters( 'expire_users_notifications_table_message', $message, $item );
	}

	/**
	 * Column Default
	 *
	 * @param   string  $item         Row item.
	 * @param   string  $column_name  Column name.
	 * @return  string                Output.
	 */
	function column_default( $item, $column_name ) {
		return $item[ $column_name ];
	}

	/**
	 * Display Table Nav
	 *
	 * @param  object  $which  Instance of Expire_User_Notifications_Table.
	 */
	function display_tablenav( $which ) {
		$tablenav = apply_filters( 'expire_users_notifications_table_tablenav', '', $which );
		if ( ! empty( $tablenav ) ) {
			printf( '<div class="tablenav %s">%s</div>', $which, $tablenav );
		}
	}

	/**
	 * No Items
	 */
	function no_items() {
		_e( 'No notification defined.', 'expire-users' );
	}

}