%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/ceaa/wp-content/plugins/learnpress/inc/interfaces/
Upload File :
Create Path :
Current File : /var/www/html/ceaa/wp-content/plugins/learnpress/inc/interfaces/interface-curd.php

<?php

/**
 * Interface LP_Interface_CURD
 */
interface LP_Interface_CURD {

	/**
	 * Create item and insert to database.
	 *
	 * @since 3.0.0
	 *
	 * @param object $object
	 */
	public function create( &$object );

	/**
	 * Load data from database.
	 *
	 * @since 3.0.0
	 *
	 * @param object $object
	 */
	public function load( &$object );

	/**
	 * Update data into database.
	 *
	 * @since 3.0.0
	 *
	 * @param object $object
	 */
	public function update( &$object );

	/**
	 * Delete data from database.
	 *
	 * @since 3.0.0
	 *
	 * @param object $object
	 */
	public function delete( &$object );

	/**
	 * Duplicate item and insert to database
	 *
	 * @param       $object
	 * @param array $args
	 *
	 * @return mixed
	 */
	public function duplicate( &$object, $args = array() );

	/**
	 * Add new meta data.
	 *
	 * @since 3.0.0
	 *
	 * @param $object
	 * @param $meta
	 */
	public function add_meta( &$object, $meta );

	/**
	 * Read meta data for passed object.
	 *
	 * @since 3.0.0
	 *
	 * @param $object
	 */
	public function read_meta( &$object );

	/**
	 * Update meta data.
	 *
	 * @since 3.0.0
	 *
	 * @param $object
	 * @param $meta
	 */
	public function update_meta( &$object, $meta );

	/**
	 * Delete meta data.
	 *
	 * @since 3.0.0
	 *
	 * @param $object
	 * @param $meta
	 */
	public function delete_meta( &$object, $meta );

}

/**
 * Class LP_Object_Data_Meta
 */
class LP_Object_Data_CURD {

	/**
	 * @var string
	 */
	protected $_meta_type = 'post';

	/**
	 * Errors codes and message.
	 *
	 * @var bool
	 */
	protected $_error_messages = false;

	/**
	 * Add new meta data.
	 *
	 * @param $object
	 * @param $meta
	 */
	public function add_meta( &$object, $meta ) {
		// TODO: Implement add_meta() method.
	}

	/**
	 * Delete meta data.
	 *
	 * @since 3.0.0
	 *
	 * @param $object
	 * @param $meta
	 */
	public function delete_meta( &$object, $meta ) {
		// TODO: Implement delete_meta() method.
	}

	/**
	 * Read all meta data from DB.
	 *
	 * @param $object LP_Course|LP_Lesson|LP_Quiz|LP_Question
	 *
	 * @return array|null|object
	 */
	public function read_meta( &$object ) {
		global $wpdb;

		if ( false === ( $meta_data = wp_cache_get( $object->get_id(), 'object-meta' ) ) ) {
			$id_column        = ( 'user' == $this->_meta_type ) ? 'umeta_id' : 'meta_id';
			$object_id_column = $this->_meta_type . '_id';
			$table            = _get_meta_table( $this->_meta_type );

			$query     = $wpdb->prepare( "
				SELECT {$id_column} as meta_id, meta_key, meta_value
				FROM {$table}
				WHERE {$object_id_column} = %d
				ORDER BY {$id_column}
			", $object->get_id() );
			$meta_data = $wpdb->get_results( $query );

			wp_cache_set( $object->get_id(), $meta_data, 'object-meta' );
		}

		return $meta_data;
	}

	/**
	 * Update meta data.
	 *
	 * @since 3.0.0
	 *
	 * @param $object LP_Course|LP_Lesson|LP_Quiz|LP_Question
	 * @param $meta
	 */
	public function update_meta( &$object, $meta ) {
		update_metadata( $this->_meta_type, $object->get_id(), $meta->meta_key, $meta->meta_value );
	}

	/**
	 * @param $type
	 *
	 * @return mixed|LP_Object_Data_CURD
	 */
	public static function get( $type ) {
		static $curds = false;
		if ( ! $curds ) {
			$curds = array(
				'user'  => new LP_User_CURD(),
				'order' => new LP_Order_CURD(),
			);
		}

		return ! empty( $curds[ $type ] ) ? $curds[ $type ] : false;
	}

	/**
	 * Get WP_Object.
	 *
	 * @param $code
	 *
	 * @return bool|WP_Error
	 */
	protected function get_error( $code ) {
		if ( isset( $this->_error_messages[ $code ] ) ) {
			return new WP_Error( $code, $this->_error_messages[ $code ] );
		}

		return false;
	}
}

Zerion Mini Shell 1.0