plugin_name = $plugin_name;
$this->version = $version;
}
/**
* Enqueue scripts and styles
*
*/
public function enqueue_scripts_styles( $hook_suffix ) {
if ( $hook_suffix == 'toplevel_page_quickwebp-settings' || $hook_suffix == 'media_page_quickwebp-settings' ) {
$admin_main_settings_assets = include( QUICKWEBP_PLUGIN_PATH . 'public/assets/build/admin-main-settings.asset.php' );
wp_enqueue_style( 'quickwebpoi_admin_main_settings', QUICKWEBP_PLUGIN_URL . 'public/assets/build/admin-main-settings.css', array(), $admin_main_settings_assets['version'], 'all' );
wp_enqueue_script( 'quickwebpoi_admin_main_settings', QUICKWEBP_PLUGIN_URL . 'public/assets/build/admin-main-settings.js', $admin_main_settings_assets['dependencies'], $admin_main_settings_assets['version'], true );
wp_localize_script( 'quickwebpoi_admin_main_settings', 'QUICKWEBP_ADMIN_SETTINGS', array(
'ajaxUrl' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce( 'image_optimize_nonce' ),
));
}
}
/**
* add_settings_menu
*
* @return void
*/
public function add_settings_menu() {
add_submenu_page(
'upload.php',
__('Quickwebp Settings', QUICKWEBP_TEXT_DOMAIN),
__('Quickwebp', QUICKWEBP_TEXT_DOMAIN),
'manage_options',
'quickwebp-settings',
array( $this, 'render_settings_page' )
);
}
/**
* render_settings_page
*
* @return void
*/
public function render_settings_page() {
global $is_nginx;
require_once QUICKWEBP_PLUGIN_PATH . 'admin/templates/page-settings.php';
}
/**
* render_component
*
* @param mixed $data
* @return void
*/
public function render_component( $data = array() ) {
$data['type'] = $data['type'] ?? 'text';
$data['name'] = $data['name'] ?? '';
$file_name = $data['type'] == 'text' || $data['type'] == 'email' || $data['type'] == 'tel' || $data['type'] == 'number' ? 'text' : $data['type'];
$path_to_component = QUICKWEBP_PLUGIN_PATH . 'admin/components/' . $file_name . '.php';
if( file_exists( $path_to_component ) ) {
?>
|
|
|
Settings', QUICKWEBP_TEXT_DOMAIN ), esc_url( admin_url( 'upload.php?page=quickwebp-settings' ) ) );
}
return array_merge( $new_actions, $plugin_actions );
}
/**
* Show notice
*/
public function show_notice_if_library_not_exist() {
$library_to_use = get_option( 'quickwebp_settings_library', quickwebp_settings_default('quickwebp_settings_library') );
switch ($library_to_use) {
case 'gd':
if ( ! extension_loaded('gd') ) {
add_action( 'admin_notices', function() {
?>
add();
} else {
$result = $rules->remove();
}
if ( is_wp_error( $result ) ) {
add_action( 'admin_notices', function() use ( $result ) {
?>
get_error_message() ); ?>
is_conversion_enabled_from_request_or_option();
if ( ! $conversion_enabled ) {
return 'disabled';
}
$save_original = $this->is_save_original_enabled_from_request_or_option();
if ( ! $save_original ) {
return 'disabled';
}
if ( 'disabled' === $value ) {
return 'picture';
}
return $value;
}
/**
* Get whether original images should be preserved.
*/
private function is_save_original_enabled_from_request_or_option() {
if ( isset( $_POST['quickwebp_settings_conversion_save_original'] ) ) {
$raw_value = wp_unslash( $_POST['quickwebp_settings_conversion_save_original'] );
if ( is_array( $raw_value ) ) {
$raw_value = array_map( 'sanitize_text_field', $raw_value );
return in_array( 'checked', $raw_value, true );
}
return false;
}
$saved_value = get_option(
'quickwebp_settings_conversion_save_original',
quickwebp_settings_default( 'quickwebp_settings_conversion_save_original' )
);
$saved_value = is_array( $saved_value ) ? $saved_value : array();
return in_array( 'checked', $saved_value, true );
}
/**
* Get whether image conversion is enabled.
*/
private function is_conversion_enabled_from_request_or_option() {
if ( isset( $_POST['quickwebp_settings_conversion'] ) ) {
$raw_value = wp_unslash( $_POST['quickwebp_settings_conversion'] );
$raw_value = sanitize_text_field( (string) $raw_value );
return '1' === $raw_value;
}
$saved_value = get_option(
'quickwebp_settings_conversion',
quickwebp_settings_default( 'quickwebp_settings_conversion' )
);
return '1' === (string) $saved_value;
}
}