update
This commit is contained in:
641
wp-content/plugins/youtube-feed-pro/inc/SBY_Settings.php
Normal file
641
wp-content/plugins/youtube-feed-pro/inc/SBY_Settings.php
Normal file
@@ -0,0 +1,641 @@
|
||||
<?php
|
||||
namespace SmashBalloon\YouTubeFeed;
|
||||
|
||||
use Smashballoon\Customizer\Feed_Saver;
|
||||
|
||||
class SBY_Settings {
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $atts;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $db;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $settings;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $feed_type_and_terms;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $connected_accounts;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $connected_accounts_in_feed;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $transient_name;
|
||||
|
||||
/**
|
||||
* SBY_Settings constructor.
|
||||
*
|
||||
* Overwritten in the Pro version.
|
||||
*
|
||||
* @param array $atts shortcode settings
|
||||
* @param array $db settings from the wp_options table
|
||||
*/
|
||||
public function __construct( $atts, $db, $preview_settings = false ) {
|
||||
$atts = is_array( $atts ) ? $atts : array();
|
||||
|
||||
if ( ! empty( $atts['feed'] ) && $atts['feed'] !== 'legacy' ) {
|
||||
$this->settings = self::get_settings_by_feed_id( $atts['feed'], $preview_settings );
|
||||
|
||||
if ( ! empty( $this->settings ) ) {
|
||||
$this->settings['customizer'] = isset($atts['customizer']) && $atts['customizer'] == true ? true : false;
|
||||
$this->settings['feed'] = intval( $atts['feed'] );
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! empty( $atts['feed'] ) && $atts['feed'] === 'legacy' ) {
|
||||
$this->settings = $preview_settings;
|
||||
|
||||
if ( ! empty( $this->settings ) ) {
|
||||
$this->settings['customizer'] = isset($atts['customizer']) && $atts['customizer'] == true ? true : false;
|
||||
}
|
||||
}
|
||||
|
||||
// convert string 'false' and 'true' to booleans
|
||||
foreach ( $atts as $key => $value ) {
|
||||
if ( $value === 'false' ) {
|
||||
$atts[ $key ] = false;
|
||||
} elseif ( $value === 'true' ) {
|
||||
$atts[ $key ] = true;
|
||||
}
|
||||
}
|
||||
|
||||
$this->atts = $atts;
|
||||
$this->db = $db;
|
||||
|
||||
$this->connected_accounts = isset( $db['connected_accounts'] ) ? $db['connected_accounts'] : array();
|
||||
|
||||
if ( ! empty( $this->db['api_key'] ) ) {
|
||||
$this->connected_accounts = array(
|
||||
'own' => array(
|
||||
'access_token' => '',
|
||||
'refresh_token' => '',
|
||||
'channel_id' => '',
|
||||
'username' => '',
|
||||
'is_valid' => true,
|
||||
'last_checked' => '',
|
||||
'profile_picture' => '',
|
||||
'privacy' => '',
|
||||
'expires' => '2574196927',
|
||||
'api_key' => $this->db['api_key']
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
if ( empty( $this->settings ) ) {
|
||||
$this->settings = wp_parse_args( $atts, $db );
|
||||
}
|
||||
|
||||
if ( empty( $this->connected_accounts ) ) {
|
||||
$this->settings['showheader'] = false;
|
||||
$this->connected_accounts = array( 'rss_only' => true );
|
||||
}
|
||||
|
||||
$this->settings['nummobile'] = $this->settings['num'];
|
||||
$this->settings['ajaxtheme'] = $this->db['ajaxtheme'];
|
||||
if ( empty( $atts['caching_type'] ) ) {
|
||||
$this->settings['caching_type'] = 'background';
|
||||
}
|
||||
if ( ! empty( $atts['cachetime'] ) ) {
|
||||
$this->settings['caching_type'] = 'page';
|
||||
}
|
||||
if ( ! empty( $atts['showpast'] ) ) {
|
||||
$this->settings['showpast'] = (bool)$atts['showpast'];
|
||||
}
|
||||
|
||||
$this->after_settings_set();
|
||||
}
|
||||
|
||||
protected function after_settings_set() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get settings or legacy settings depending on feed type
|
||||
*
|
||||
* @since 2.0
|
||||
*
|
||||
* @param array $atts
|
||||
* @return array $settings
|
||||
*/
|
||||
public function maybe_get_settings_or_legacy_settings( $atts ) {
|
||||
if ( !empty( $atts['feed'] ) ) {
|
||||
$settings = $this->get_settings();
|
||||
} else {
|
||||
$settings = self::get_legacy_feed_settings( $atts );
|
||||
}
|
||||
|
||||
$settings['global_settings'] = sby_get_database_settings();
|
||||
|
||||
return $settings;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get legacy feed settings
|
||||
*
|
||||
* @since 2.0
|
||||
*
|
||||
* @param array $atts
|
||||
* @return array $legacy_settings
|
||||
*/
|
||||
public static function get_legacy_feed_settings( $atts = array() ) {
|
||||
$legacy_settings = get_option( 'sby_legacy_feed_settings', false );
|
||||
if(false === $legacy_settings) {
|
||||
$legacy_settings = sby_get_database_settings();
|
||||
} else {
|
||||
$legacy_settings = json_decode( $legacy_settings, true );
|
||||
}
|
||||
|
||||
if ( $atts && count( $atts ) > 0 ) {
|
||||
$legacy_settings = wp_parse_args( $atts, $legacy_settings );
|
||||
$legacy_settings = self::filter_legacy_shortcode_atts( $atts, $legacy_settings );
|
||||
}
|
||||
|
||||
return $legacy_settings;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter legacy feed shortcode atts
|
||||
*
|
||||
* @since 2.0
|
||||
*
|
||||
* @param array $atts
|
||||
* @param array $legacy_settings
|
||||
*
|
||||
* @return array $legacy_shortcode
|
||||
*/
|
||||
public static function filter_legacy_shortcode_atts( $atts, $legacy_settings ) {
|
||||
if ( isset($atts['gridcols']) && $atts['layout'] === 'grid' ) {
|
||||
$legacy_settings['cols'] = $legacy_settings['gridcols'];
|
||||
}
|
||||
if ( isset($atts['gridcolsmobile']) && $atts['layout'] === 'grid' ) {
|
||||
$legacy_settings['colsmobile'] = $legacy_settings['gridcolsmobile'];
|
||||
}
|
||||
if ( isset($atts['gallerycols']) && $atts['layout'] === 'gallery' ) {
|
||||
$legacy_settings['cols'] = $legacy_settings['gallerycols'];
|
||||
}
|
||||
if ( isset($atts['gallerycolsmobile']) && $atts['layout'] === 'gallery' ) {
|
||||
$legacy_settings['colsmobile'] = $legacy_settings['gallerycolsmobile'];
|
||||
}
|
||||
if ( isset($atts['carouselcols']) && $atts['layout'] === 'carousel' ) {
|
||||
$legacy_settings['cols'] = $legacy_settings['carouselcols'];
|
||||
}
|
||||
if ( isset($atts['carouselcolsmobile']) && $atts['layout'] === 'carousel' ) {
|
||||
$legacy_settings['colsmobile'] = $legacy_settings['carouselcolsmobile'];
|
||||
}
|
||||
$legacy_settings['nummobile'] = $legacy_settings['num'];
|
||||
|
||||
return $legacy_settings;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Settings By Feed ID
|
||||
*
|
||||
* @since 2.0
|
||||
*/
|
||||
public static function get_settings_by_feed_id( $feed_id, $preview_settings = false ) {
|
||||
global $wpdb;
|
||||
|
||||
if ( is_array( $preview_settings ) ) {
|
||||
return $preview_settings;
|
||||
}
|
||||
|
||||
if ( intval( $feed_id ) < 1 ) {
|
||||
return false;
|
||||
}
|
||||
$container = Container::get_instance();
|
||||
$feed_saver = $container->get(Feed_Saver::class);
|
||||
$feed_saver->set_feed_id( $feed_id );
|
||||
|
||||
return $feed_saver->get_feed_settings();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
public function get_settings() {
|
||||
return $this->settings;
|
||||
}
|
||||
|
||||
/**
|
||||
* The plugin will output settings on the frontend for debugging purposes.
|
||||
* Safe settings to display are added here.
|
||||
*
|
||||
* Overwritten in the Pro version.
|
||||
*
|
||||
* @return array
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
public static function get_public_db_settings_keys() {
|
||||
$public = array(
|
||||
'type' => 'channel',
|
||||
'channel' => '',
|
||||
'num' => 9,
|
||||
'nummobile' => 9,
|
||||
'minnum' => 9,
|
||||
'widthresp' => true,
|
||||
'class' => '',
|
||||
'height' => '',
|
||||
'heightunit' => '%',
|
||||
'disablemobile' => false,
|
||||
'itemspacing' => 5,
|
||||
'itemspacingunit' => 'px',
|
||||
'background' => '',
|
||||
'headercolor' => '',
|
||||
'subscribecolor' => '',
|
||||
'subscribehovercolor' => '',
|
||||
'subscribetextcolor' => '',
|
||||
'buttoncolor' => '',
|
||||
'buttonhovercolor' => '',
|
||||
'buttontextcolor' => '',
|
||||
'layout' => 'grid',
|
||||
'feedtemplate' => 'default',
|
||||
'playvideo' => 'automatically',
|
||||
'sortby' => 'none',
|
||||
'imageres' => 'auto',
|
||||
'showheader' => true,
|
||||
'headerstyle' => 'standard',
|
||||
'customheadertext' => __( 'We are on YouTube', 'feeds-for-youtube' ),
|
||||
'customheadersize' => 'small',
|
||||
'customheadertextcolor' => '',
|
||||
'showdescription' => true,
|
||||
'showbutton' => true,
|
||||
'headersize' => 'small',
|
||||
'headeroutside' => false,
|
||||
'showsubscribe' => true,
|
||||
'buttontext' => __( 'Load More...', 'feeds-for-youtube' ),
|
||||
'subscribetext' => __( 'Subscribe', 'feeds-for-youtube' ),
|
||||
'caching_type' => 'page',
|
||||
'cache_time' => 1,
|
||||
'cache_time_unit' => 'hours',
|
||||
'backup_cache_enabled' => true,
|
||||
'resizeprocess' => 'background',
|
||||
'disable_resize' => true,
|
||||
'storage_process' => 'background',
|
||||
'favor_local' => false,
|
||||
'disable_js_image_loading' => false,
|
||||
'ajax_post_load' => false,
|
||||
'ajaxtheme' => false,
|
||||
'enqueue_css_in_shortcode' => false,
|
||||
'font_method' => 'svg',
|
||||
'customtemplates' => false,
|
||||
'cols' => 3,
|
||||
'colsmobile' => 2,
|
||||
'playerratio' => '9:16',
|
||||
'eagerload' => false,
|
||||
'custom_css' => '',
|
||||
'custom_js' => '',
|
||||
'gdpr' => 'auto',
|
||||
'disablecdn' => false,
|
||||
'allowcookies' => false,
|
||||
|
||||
// pro only
|
||||
'usecustomsearch' => false,
|
||||
'headerchannel' => '',
|
||||
'customsearch' => '',
|
||||
'showpast' => true,
|
||||
'showlikes' => true,
|
||||
'carouselcols' => 3,
|
||||
'carouselcolsmobile' => 2,
|
||||
'carouselarrows' => true,
|
||||
'carouselpag' => true,
|
||||
'carouselautoplay' => false,
|
||||
'infoposition' => 'below',
|
||||
'include' => array( 'title', 'icon', 'user', 'date', 'countdown' ),
|
||||
'hoverinclude' => array( 'description', 'stats' ),
|
||||
'descriptionlength' => 150,
|
||||
'userelative' => true,
|
||||
'dateformat' => '0',
|
||||
'customdate' => '',
|
||||
'showsubscribers' => true,
|
||||
'enablelightbox' => true,
|
||||
'subscriberstext' => __( 'subscribers', 'feeds-for-youtube' ),
|
||||
'viewstext' => __( 'views', 'feeds-for-youtube' ),
|
||||
'agotext' => __( 'ago', 'feeds-for-youtube' ),
|
||||
'beforedatetext' => __( 'Streaming live', 'feeds-for-youtube' ),
|
||||
'beforestreamtimetext' => __( 'Streaming live in', 'feeds-for-youtube' ),
|
||||
'minutetext' => __( 'minute', 'feeds-for-youtube' ),
|
||||
'minutestext' => __( 'minutes', 'feeds-for-youtube' ),
|
||||
'hourstext' => __( 'hours', 'feeds-for-youtube' ),
|
||||
'thousandstext' => __( 'K', 'feeds-for-youtube' ),
|
||||
'millionstext' => __( 'M', 'feeds-for-youtube' ),
|
||||
'watchnowtext' => __( 'Watch Now', 'feeds-for-youtube' ),
|
||||
'cta' => 'related',
|
||||
'colorpalette' => 'inherit',
|
||||
'linktext' => __( 'Learn More', 'feeds-for-youtube' ),
|
||||
'linkurl' => '',
|
||||
'linkopentype' => 'same',
|
||||
'linkcolor' => '',
|
||||
'linktextcolor' => '',
|
||||
'videocardstyle' => 'regular',
|
||||
'videocardlayout' => 'vertical',
|
||||
'custombgcolor1' => '',
|
||||
'customtextcolor1' => '',
|
||||
'customtextcolor2' => '',
|
||||
'customlinkcolor1' => '',
|
||||
'custombuttoncolor1' => '',
|
||||
'custombuttoncolor2' => '',
|
||||
'boxedbgcolor' => '#ffffff',
|
||||
'boxborderradius' => '12',
|
||||
'enableboxshadow' => false,
|
||||
'descriptiontextsize' => '13px',
|
||||
|
||||
// Video elements color
|
||||
'playiconcolor' => '',
|
||||
'videotitlecolor' => '',
|
||||
'videouserecolor' => '',
|
||||
'videoviewsecolor' => '',
|
||||
'videocountdowncolor' => '',
|
||||
'videostatscolor' => '',
|
||||
'videodescriptioncolor' => '',
|
||||
|
||||
'enablesubscriberlink' => true,
|
||||
);
|
||||
|
||||
return array_keys( $public );
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
public function get_connected_accounts() {
|
||||
return $this->connected_accounts;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array|bool
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
public function get_connected_accounts_in_feed() {
|
||||
if ( isset( $this->connected_accounts_in_feed ) ) {
|
||||
return $this->connected_accounts_in_feed;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool|string
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
public function get_transient_name() {
|
||||
if ( isset( $this->transient_name ) ) {
|
||||
return $this->transient_name;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Uses the feed types and terms as well as as some
|
||||
* settings to create a semi-unique feed id used for
|
||||
* caching and other features.
|
||||
*
|
||||
* Overwritten in the Pro version.
|
||||
*
|
||||
* @param string $transient_name
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
public function set_transient_name( $transient_name = '' ) {
|
||||
|
||||
if ( ! empty( $transient_name ) ) {
|
||||
$this->transient_name = $transient_name;
|
||||
} elseif ( false && ! empty( $this->settings['feedid'] ) ) { // feed ID not yet applicable for transients
|
||||
$this->transient_name = 'sby_' . $this->settings['feedid'];
|
||||
} else {
|
||||
$feed_type_and_terms = $this->feed_type_and_terms;
|
||||
|
||||
$sby_transient_name = 'sby_';
|
||||
|
||||
if ( isset( $feed_type_and_terms['channels'] ) ) {
|
||||
foreach ( $feed_type_and_terms['channels'] as $term_and_params ) {
|
||||
$channel = $term_and_params['term'];
|
||||
$sby_transient_name .= $channel;
|
||||
}
|
||||
}
|
||||
|
||||
$num = $this->settings['num'];
|
||||
|
||||
$num_length = strlen( $num ) + 1;
|
||||
|
||||
//Add both parts of the caching string together and make sure it doesn't exceed 45
|
||||
$sby_transient_name = substr( $sby_transient_name, 0, 45 - $num_length );
|
||||
|
||||
$sby_transient_name .= '#' . $num;
|
||||
|
||||
$this->transient_name = $sby_transient_name;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array|bool
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
public function get_feed_type_and_terms() {
|
||||
if ( isset( $this->feed_type_and_terms ) ) {
|
||||
return $this->feed_type_and_terms;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function feed_type_and_terms_display() {
|
||||
|
||||
if ( ! isset( $this->feed_type_and_terms ) ) {
|
||||
return array();
|
||||
}
|
||||
$return = array();
|
||||
foreach ( $this->feed_type_and_terms as $feed_type => $type_terms ) {
|
||||
foreach ( $type_terms as $term ) {
|
||||
$return[] = $term['term'];
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Based on the settings related to retrieving post data from the API,
|
||||
* this setting is used to make sure all endpoints needed for the feed are
|
||||
* connected and stored for easily looping through when adding posts
|
||||
*
|
||||
* Overwritten in the Pro version.
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
public function set_feed_type_and_terms() {
|
||||
//global $sby_posts_manager;
|
||||
|
||||
$connected_accounts_in_feed = array();
|
||||
$feed_type_and_terms = array(
|
||||
'channels' => array()
|
||||
);
|
||||
|
||||
if ( ! empty( $this->settings['id'] ) ) {
|
||||
$channel_array = is_array( $this->settings['id'] ) ? $this->settings['id'] : explode( ',', str_replace( ' ', '', $this->settings['id'] ) );
|
||||
foreach ( $channel_array as $channel ) {
|
||||
if ( isset( $this->connected_accounts[ $channel ] ) ) {
|
||||
$feed_type_and_terms['channels'][] = array(
|
||||
'term' => $this->connected_accounts[ $channel ]['channel_id'],
|
||||
'params' => array(
|
||||
'channel_id' => $this->connected_accounts[ $channel ]['channel_id']
|
||||
)
|
||||
);
|
||||
$connected_accounts_in_feed[ $this->connected_accounts[ $channel ]['channel_id'] ] = $this->connected_accounts[ $channel ];
|
||||
}
|
||||
}
|
||||
|
||||
if ( empty( $connected_accounts_in_feed ) ) {
|
||||
$an_account = array();
|
||||
foreach ( $this->connected_accounts as $account ) {
|
||||
if ( empty( $an_account ) ) {
|
||||
$an_account = $account;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ( $channel_array as $channel ) {
|
||||
$feed_type_and_terms['channels'][] = array(
|
||||
'term' => $channel,
|
||||
'params' => array(
|
||||
'channel_id' => $channel
|
||||
)
|
||||
);
|
||||
$connected_accounts_in_feed[ $channel ] = $an_account;
|
||||
}
|
||||
}
|
||||
|
||||
} elseif ( ! empty( $this->settings['channel'] ) ) {
|
||||
$channel_array = is_array( $this->settings['channel'] ) ? $this->settings['channel'] : explode( ',', str_replace( ' ', '', $this->settings['channel'] ) );
|
||||
|
||||
$an_account = array();
|
||||
foreach ( $this->connected_accounts as $account ) {
|
||||
if ( empty( $an_account ) ) {
|
||||
$an_account = $account;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ( $channel_array as $channel ) {
|
||||
if ( strpos( $channel, 'UC' ) !== 0 ) {
|
||||
$channel_id = sby_get_channel_id_from_channel_name( $channel );
|
||||
if ( $channel_id ) {
|
||||
$feed_type_and_terms['channels'][] = array(
|
||||
'term' => $channel_id,
|
||||
'params' => array(
|
||||
'channel_id' => $channel_id
|
||||
)
|
||||
);
|
||||
$connected_accounts_in_feed[ $channel_id ] = $an_account;
|
||||
} else {
|
||||
$feed_type_and_terms['channels'][] = array(
|
||||
'term' => $channel,
|
||||
'params' => array(
|
||||
'channel_name' => $channel
|
||||
)
|
||||
);
|
||||
$connected_accounts_in_feed[ $channel ] = $an_account;
|
||||
}
|
||||
|
||||
} else {
|
||||
$feed_type_and_terms['channels'][] = array(
|
||||
'term' => $channel,
|
||||
'params' => array(
|
||||
'channel_id' => $channel
|
||||
)
|
||||
);
|
||||
$connected_accounts_in_feed[ $channel ] = $an_account;
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
foreach ( $this->connected_accounts as $connected_account ) {
|
||||
if ( empty( $feed_type_and_terms['channels'] ) ) {
|
||||
$feed_type_and_terms['channels'][] = array(
|
||||
'term' => $connected_account['channel_id'],
|
||||
'params' => array(
|
||||
'channel_id' => $connected_account['channel_id']
|
||||
)
|
||||
);
|
||||
$connected_accounts_in_feed[ $connected_account['channel_id'] ] = $connected_account;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$this->connected_accounts_in_feed = $connected_accounts_in_feed;
|
||||
$this->feed_type_and_terms = $feed_type_and_terms;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return float|int
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
public function get_cache_time_in_seconds() {
|
||||
if ( $this->db['caching_type'] === 'background' ) {
|
||||
return SBY_CRON_UPDATE_CACHE_TIME;
|
||||
} else {
|
||||
//If the caching time doesn't exist in the database then set it to be 1 hour
|
||||
$cache_time = isset( $this->settings['cache_time'] ) ? (int)$this->settings['cache_time'] : 1;
|
||||
$cache_time_unit = isset( $this->settings['cache_time_unit'] ) ? $this->settings['cache_time_unit'] : 'hours';
|
||||
|
||||
//Calculate the cache time in seconds
|
||||
if ( $cache_time_unit == 'minutes' ) $cache_time_unit = 60;
|
||||
if ( $cache_time_unit == 'hours' ) $cache_time_unit = 60*60;
|
||||
if ( $cache_time_unit == 'days' ) $cache_time_unit = 60*60*24;
|
||||
|
||||
$cache_time = max( 900, $cache_time * $cache_time_unit );
|
||||
|
||||
return $cache_time;
|
||||
}
|
||||
}
|
||||
|
||||
public function update_settings($update_array = []) {
|
||||
if(!is_array($update_array)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$updated = array_merge($this->settings, array_map(function ($value) {
|
||||
return $this->convert_value($value);
|
||||
}, $update_array));
|
||||
|
||||
return update_option('sby_settings', $updated);
|
||||
}
|
||||
|
||||
private function convert_value($value) {
|
||||
switch($value) {
|
||||
case 'true':
|
||||
return true;
|
||||
case 'false':
|
||||
return false;
|
||||
default:
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user