Files
torebki-fabiola.pl/wp-content/plugins/email-subscribers/lite/includes/db/class-es-db-custom-fields.php
2026-03-05 13:07:40 +01:00

254 lines
3.8 KiB
PHP

<?php
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* ES_DB_Custom_Fields class
*
*@since 4.8.4
*/
class ES_DB_Custom_Fields extends ES_DB {
/**
* Table name
*
* @since 4.8.4
* @var string
*
*/
public $table_name;
/**
* Table DB version
*
* @since 4.8.4
* @var string
*
*/
public $version;
/**
* Table primary key column name
*
* @since 4.8.4
* @var string
*
*/
public $primary_key;
/**
* ES_DB_Custom_Fields constructor.
*
* @since 4.8.4
*/
public function __construct() {
global $wpdb;
parent::__construct();
$this->table_name = $wpdb->prefix . 'ig_custom_fields';
$this->primary_key = 'id';
$this->version = '1.0';
}
/**
* Get table columns
*
* @return array
*
* @since 4.8.4
*/
public function get_columns() {
return array(
'id' => '%d',
'slug' => '%s',
'label' => '%s',
'type' => '%s',
'meta' => '%s',
);
}
/**
* Get default column values
*
* @since 4.8.4
*/
public function get_column_defaults() {
return array(
'id' => null,
'slug' => null,
'label' => null,
'type' => null,
'meta' => null,
);
}
/**
* Get all custom fields
*
* @return array|object|null
*
* @since 4.8.4
*/
public function get_custom_fields() {
return $this->get_all();
}
public function get_custom_date_fields() {
$where_condition = "type = 'date'";
return ES()->custom_fields_db->get_by_conditions( $where_condition );
}
/**
* Add Custom Field
*
* @param $data
*
* @return int
*
* @since 4.8.4
*/
public function add_custom_field( $data ) {
return $this->insert( $data );
}
/**
* Update Custom Field
*
* @param int $row_id
* @param array $data
*
* @return bool|void
*
* @since 4.8.4
*/
public function update_custom_field( $row_id, $data = array() ) {
if ( empty( $row_id ) ) {
return;
}
$data = array(
'label' => $data['label'],
'meta' => $data['meta'],
);
return $this->update( $row_id, $data );
}
/**
* Get Custom field By ID
*
* @param $id
*
* @return array|mixed
*
* @since 4.8.4
*/
public function get_custom_field_by_id( $id ) {
if ( empty( $id ) ) {
return array();
}
return $this->get( $id );
}
/**
* Get Custom field By Slug
*
* @param $slug_name
*
* @return array|mixed
*
* @since 4.8.4
*/
public function get_custom_field_meta_by_slug( $slug ) {
if ( empty( $slug ) ) {
return array();
}
$meta = $this->get_column_by( 'meta', 'slug', $slug );
if ( $meta ) {
$meta = maybe_unserialize( $meta );
}
return $meta;
}
/**
* Check if custom field already exists
*
* @param $name
*
* @return bool
*
* @since 4.8.4
*/
public function is_custom_field_exists( $slug ) {
$col = $this->get_by( 'slug', $slug );
if ( is_null( $col ) ) {
return false;
}
return true;
}
/**
* Delete Custom fields
*
* @param $ids
*
* @since 4.8.4
*/
public function delete_custom_fields( $ids ) {
if ( ! is_array( $ids ) ) {
$ids = array( $ids );
}
$field_deleted = 0;
if ( is_array( $ids ) && count( $ids ) > 0 ) {
foreach ( $ids as $id ) {
$field_deleted = $this->delete( absint( $id ) );
/**
* Take necessary cleanup steps using this hook
*
* @since 4.8.4
*/
do_action( 'ig_es_custom_field_deleted', $id );
}
return $field_deleted;
}
return false;
}
/**
* Delete Custom fields
*
* @param $ids
*
* @since 4.8.4
*/
public function get_custom_field_slug_list_by_ids( $ids ) {
global $wpbd;
if ( ! is_array( $ids ) && ! count( $ids ) > 0 ) {
return array();
}
$ids_str = implode( ',', $ids );
$result = $wpbd->get_col( "SELECT slug FROM {$wpbd->prefix}ig_custom_fields WHERE id IN ({$ids_str})" );
return $result;
}
}