Current File : /var/www/e360ban/wp-content/plugins/bnfw/includes/class-bnfw-import.php
<?php
/**
 * Import notification from old plugin.
 *
 * @since 1.0
 * @package bnfw
 */

defined( 'ABSPATH' ) || exit;

if ( ! class_exists( 'BNFW_Import', false ) ) {
	/**
	 * BNFW_Import Class
	 */
	class BNFW_Import {
		const EMAIL_OPTION   = 'bnfw_custom_email_settings';
		const SETTING_OPTION = 'bnfw_settings';
		/**
		 * Holds the events
		 *
		 * @var array
		 */
		private $events = array(
			'create_term',
			'publish_post',
			'comment_post',
			'user_register',
			'trackback_post',
			'pingback_post',
			'lostpassword_post',
		);

		/**
		 * Import notification from old plugin.
		 *
		 * @since 1.0
		 */
		public function import() {
			global $wp_roles;
			$roles = $wp_roles->get_names();

			if ( $this->import_needed() ) {
				$old_events = get_option( self::SETTING_OPTION );
				foreach ( $old_events as $event => $value ) {
					if ( '1' === $value ) {
						$event_array = explode( '-', $event );
						if ( 2 === count( $event_array ) ) {
							if ( in_array( $event_array[0], $this->events, true ) && in_array( $event_array[1], array_keys( $roles ), true ) ) {
								$event_array[1] = $roles[ $event_array[1] ];
								$this->insert_notification( $event_array );
							}
						}
					}
				}
				// delete the old options.
				$this->delete_option();
			}
		}

		/**
		 * Check if import is needed.
		 *
		 * @since 1.0
		 * @return unknown
		 */
		private function import_needed() {
			if ( get_option( self::EMAIL_OPTION ) && get_option( self::SETTING_OPTION ) ) {
				return true;
			}

			return false;
		}

		/**
		 * Insert notification.
		 *
		 * @param mixed $event Event type.
		 */
		private function insert_notification( $event ) {
			$post = array(
				'post_title'   => $event[0] . esc_html__( ' for ', 'bnfw' ) . $event[1] . esc_html__( ' (Auto Imported)', 'bnfw' ),
				'post_type'    => BNFW_Notification::POST_TYPE,
				'post_content' => '',
				'post_status'  => 'publish',
			);

			$post_id = wp_insert_post( $post );
			if ( $post_id > 0 ) {
				$content = $this->map_notification_content( $event[0] );
				$setting = array(
					'notification' => $this->map_notification( $event[0] ),
					'user-roles'   => array( $event[1] ),
					'users'        => array(),
					'subject'      => $content['subject'],
					'message'      => $content['body'],
				);

				foreach ( $setting as $key => $value ) {
					update_post_meta( $post_id, BNFW_Notification::META_KEY_PREFIX . $key, $value );
				}
			}
		}

		/**
		 * Map old notification type to new notification type.
		 *
		 * @param mixed $event_name Event name.
		 *
		 * @return unknown
		 */
		private function map_notification( $event_name ) {
			switch ( $event_name ) {
				case 'create_term':
					return 'new-category';
					break;
				case 'publish_post':
					return 'new-post';
					break;
				case 'comment_post':
					return 'new-comment';
					break;
				case 'user_register':
					return 'new-user';
					break;
				case 'trackback_post':
					return 'new-trackback';
					break;
				case 'pingback_post':
					return 'new-pingback';
					break;
				case 'lostpassword_post':
					return 'user-password';
					break;
			}
		}

		/**
		 * Map content from old plugin.
		 *
		 * @param unknown $event_name Event name.
		 *
		 * @return unknown
		 */
		private function map_notification_content( $event_name ) {
			$content = array();
			if ( ! isset( $this->content_map ) ) {
				$this->parse_content();
			}

			return $this->content_map[ $event_name ];
		}

		/**
		 * Parse content from old plugins setting.
		 *
		 * @since 1.0
		 */
		private function parse_content() {
			$old_content = get_option( self::EMAIL_OPTION );
			$content_map = array();
			foreach ( $old_content as $key => $value ) {
				$key_array = explode( '-', $key );
				if ( 3 === count( $key_array ) ) {
					$content_map[ $key_array[2] ][ $key_array[1] ] = $value;
				}
			}
			$this->content_map = $content_map;
		}

		/**
		 * Delete old plugin database options.
		 *
		 * @since 1.0
		 */
		private function delete_option() {
			delete_option( self::EMAIL_OPTION );
			delete_option( self::SETTING_OPTION );
		}
	}
}
Page Not Found
Parece que el enlace que apuntaba aquí no sirve. ¿Quieres probar con una búsqueda?
¡Hola!