FileMaster
Search
Toggle Dark Mode
Home
/
.
/
wp-content
/
plugins
/
latepoint
/
lib
/
models
Edit File: meta_model.php
<?php class OsMetaModel extends OsModel { var $id, $meta_key, $meta_value, $object_id, $created_at, $updated_at; protected static $encrypted_settings = array(); function __construct( $object_id = false ) { $this->nice_names = array(); $this->object_id = $object_id; parent::__construct(); } public function delete_by_key( $meta_key, $object_id ) { if ( ! $object_id ) { return false; } $meta_to_delete = $this->where( array( 'meta_key' => $meta_key, 'object_id' => $object_id, ) )->get_results_as_models(); if ( $meta_to_delete ) { foreach ( $meta_to_delete as $meta_obj ) { $meta_obj->delete(); } } return true; } public function save_by_key( $meta_key, $meta_value, $object_id = false ) { if ( ! $object_id ) { $object_id = $this->object_id; } if ( ! $object_id ) { return false; } $existing_meta = $this->where( array( 'meta_key' => $meta_key, 'object_id' => $object_id, ) )->set_limit( 1 )->get_results_as_models(); if ( $existing_meta ) { $existing_meta->meta_value = self::prepare_value( $meta_key, $meta_value ); if ( empty( $existing_meta->meta_value ) ) { return $existing_meta->delete(); } return $existing_meta->save(); } else { $new_meta = $this; $new_meta->object_id = $object_id; $new_meta->meta_key = $meta_key; $new_meta->meta_value = self::prepare_value( $meta_key, $meta_value ); return $new_meta->save(); } } private static function prepare_value( $meta_key, $meta_value ) { if ( in_array( $meta_key, self::$encrypted_settings ) ) { $meta_value = OsEncryptHelper::encrypt_value( $meta_value ); } return $meta_value; } public function get_by_key( $meta_key, $object_id = false, $default = false ) { if ( ! $object_id ) { $object_id = $this->object_id; } if ( ! $object_id ) { return $default; } $record = $this->where( array( 'meta_key' => $meta_key, 'object_id' => $object_id, ) )->set_limit( 1 )->get_results_as_models(); if ( $record ) { if ( in_array( $meta_key, self::$encrypted_settings ) ) { return OsEncryptHelper::decrypt_value( $record->meta_value ); } else { return $record->meta_value; } } else { return $default; } } public function get_by_object_id( $object_id = false, $default = [] ) { if ( ! $object_id ) { $object_id = $this->object_id; } if ( ! $object_id ) { return $default; } $records = $this->where( array( 'object_id' => $object_id ) )->get_results(); if ( $records ) { $metas = []; foreach ( $records as $record ) { $value = in_array( $record->meta_key, self::$encrypted_settings ) ? OsEncryptHelper::decrypt_value( $record->meta_value ) : $record->meta_value; $metas[ $record->meta_key ] = $value; } return $metas; } else { return $default; } } public function get_object_id_by_value( $meta_key, $meta_value ) { if ( ! $meta_value || ! $meta_key ) { return false; } $record = $this->select( 'object_id' )->where( array( 'meta_key' => $meta_key, 'meta_value' => $meta_value, ) )->set_limit( 1 )->get_results_as_models(); if ( $record ) { return $record->object_id; } else { return false; } } protected function allowed_params( $role = 'admin' ) { $allowed_params = array( 'object_id', 'meta_key', 'meta_value', ); return $allowed_params; } protected function params_to_save( $role = 'admin' ) { $params_to_save = array( 'object_id', 'meta_key', 'meta_value', ); return $params_to_save; } protected function properties_to_validate() { $validations = array( 'object_id' => array( 'presence' ), 'meta_key' => array( 'presence' ), 'meta_value' => array( 'presence' ), ); return $validations; } }
Save
Back