File: /home/aprilnet/public_html/operationreality.org/wp-content/plugins/imageseo/src/Services/Option.php
<?php
namespace ImageSeoWP\Services;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
use ImageSeoWP\Helpers\SocialMedia;
class Option {
/**
* @var array
*/
protected $optionsDefault = array(
'api_key' => '',
'allowed' => false,
'active_alt_write_upload' => 1,
'active_rename_write_upload' => 1,
'default_language_ia' => IMAGESEO_LOCALE,
'alt_template_default' => '[keyword_1] - [keyword_2]',
'social_media_post_types' => array(
'post',
),
'social_media_type' => array(
SocialMedia::OPEN_GRAPH['name'],
),
'social_media_settings' => array(
'layout' => 'CARD_LEFT',
'textColor' => '#000000',
'contentBackgroundColor' => '#ffffff',
'starColor' => '#F8CA00',
'visibilitySubTitle' => true,
'visibilitySubTitleTwo' => true,
'visibilityRating' => false,
'visibilityAvatar' => true,
'logoUrl' => IMAGESEO_URL_DIST . '/images/favicon.png',
'defaultBgImg' => IMAGESEO_URL_DIST . '/images/default_logo.png',
'textAlignment' => 'top',
),
'altFilter' => 'ALL',
'altFill' => 'FILL_ALL',
'optimizeAlt' => 0,
'language' => IMAGESEO_LOCALE,
'optimizeTitle' => false,
'optimizeCaption' => false,
'activeOptimizeTitle' => true,
'activeOptimizeCaption' => true,
);
/**
* Get options default.
*
* @return array
*/
public function getOptionsDefault() {
return $this->convert_to_camel_case( $this->optionsDefault );
}
/**
* @return array
*/
public function getOptions() {
return apply_filters(
'imageseo_get_options',
wp_parse_args( get_option( IMAGESEO_SLUG ), $this->getOptionsDefault() )
);
}
/**
* @param string $name
*
* @return array
*/
public function getOption( $name ) {
$options = $this->getOptions();
if ( ! array_key_exists( $name, $options ) ) {
return null;
}
return apply_filters( 'imageseo_' . $name . '_option', $options[ $name ] );
}
/**
* @param array $options
*
* @return $this
*/
public function setOptions( $options ) {
update_option( IMAGESEO_SLUG, $options );
return $this;
}
/**
* @param string $key
* @param mixed $value
*
* @return $this
*/
public function setOptionByKey( $key, $value ) {
$options = $this->getOptions();
$options[ $key ] = $value;
$this->setOptions( $options );
return $this;
}
private function convert_to_camel_case( $options ) {
$camelCased = array();
foreach ( $options as $key => $value ) {
if ( strpos( $key, '_' ) === -1 ) {
$camelCased[ $key ] = $value;
continue;
}
$camelCaseKey = lcfirst( str_replace( '_', '', ucwords( $key, '_' ) ) );
$camelCased[ $camelCaseKey ] = $value;
}
return $camelCased;
}
}