| Server IP : 47.82.179.145 / Your IP : 216.73.217.129 Web Server : nginx/1.26.3 System : Linux iZt4n9czhka2zvqfajdlr2Z 6.8.0-63-generic #66-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 13 20:25:30 UTC 2025 x86_64 User : www ( 1001) PHP Version : 8.3.30 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/scuipturepactory.com/wp-content/plugins.off/latepoint/lib/models/ |
Upload File : |
<?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;
}
}