LLMS_Event
LifterLMS Event Model
Source Source
File: includes/models/class-llms-event.php
class LLMS_Event extends LLMS_Abstract_Database_Store { /** * Array of table column name => format * * @var array */ protected $columns = array( 'date' => '%s', 'actor_id' => '%d', 'object_type' => '%s', 'object_id' => '%d', 'event_type' => '%s', 'event_action' => '%s', 'meta' => '%s', ); /** * Created date key name. * * @var string */ protected $date_created = 'date'; /** * Updated date not supported. * * @var null */ protected $date_updated = null; /** * Database Table Name * * @var string */ protected $table = 'events'; /** * The record type * * @var string */ protected $type = 'event'; /** * Constructor * * @since 3.36.0 * * @param int $id Event ID. * @param bool $hydrate If true, hydrates the object on instantiation if an ID is supplied. */ public function __construct( $id = null, $hydrate = false ) { $this->id = $id; if ( $this->id && $hydrate ) { $this->hydrate(); } // Adds created and updated dates on instantiation. parent::__construct(); } /** * Delete meta data * * @since 3.36.0 * * @param string $key Meta key, if omitted deletes *all* metadata. * @param bool $save If true, saves updated metadata to the database. * @return LLMS_Event */ public function delete_meta( $key = null, $save = false ) { if ( ! $key ) { return $this->set_unencoded_metas( array(), $save ); } $all = $this->get_meta( null, false ); unset( $all[ $key ] ); return $this->set_unencoded_metas( $all, $save ); } /** * Retrieve metadata. * * @since 3.36.0 * * @param string $key Metadata key, if omitted returns an associative array of all metadata as key=>val pairs. * @param bool $cache If true, uses cached data when available. * @return mixed */ public function get_meta( $key = null, $cache = true ) { $all = $this->get( 'meta', $cache ); $all = empty( $all ) ? array() : json_decode( $all, true ); if ( ! $key ) { return $all; } return isset( $all[ $key ] ) ? $all[ $key ] : null; } /** * Update/Add a single meta item. * * @since 3.36.0 * * @param string $key Meta key. * @param mixed $val Meta value. * @param bool $save If true, saves the updated metadata to the database. * @return LLMS_Event */ public function set_meta( $key, $val, $save = false ) { $all = $this->get_meta(); $all[ $key ] = $val; return $this->set_unencoded_metas( $all, $save ); } /** * Update/Add multiple metas. * * @since 3.36.0 * * @param array $metas Associative array of metadata to update/add as key=>val pairs. * @param bool $save If true, saves the updated metadata to the database. * @return LLMS_Event */ public function set_metas( $metas, $save = false ) { foreach ( $metas as $key => $val ) { $this->set_meta( $key, $val ); } if ( $save ) { $this->save(); } return $this; } /** * Encode the array of metadata before setting it to the object. * * @since 3.36.0 * * @param array $metas Associative array of metadata to update/add as key=>val pairs. * @param bool $save If true, saves the updated metadata to the database. * @return LLMS_Event */ protected function set_unencoded_metas( $metas, $save = false ) { return $this->set( 'meta', wp_json_encode( $metas ), $save ); } }
Expand full source code Collapse full source code View on GitHub
Methods Methods
- __construct — Constructor
- delete_meta — Delete meta data
- get_meta — Retrieve metadata.
- set_meta — Update/Add a single meta item.
- set_metas — Update/Add multiple metas.
- set_unencoded_metas — Encode the array of metadata before setting it to the object.
Changelog Changelog
Version | Description |
---|---|
4.3.0 | Added record $type property definition. |
3.36.0 | Introduced. |