93 lines
2.2 KiB
PHP
93 lines
2.2 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* Plugin Name: Squeeze
|
||
|
* Description: Compress images by squoosh.app
|
||
|
* Author URI: https://bogdan.kyiv.ua
|
||
|
* Author: Bogdan Bendziukov
|
||
|
* Version: 1.2
|
||
|
*
|
||
|
* Text Domain: squeeze
|
||
|
* Domain Path: /languages
|
||
|
*
|
||
|
* License: GNU GPL v3
|
||
|
* License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
||
|
*
|
||
|
* Network: false
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
// Exit if accessed directly.
|
||
|
if (!defined('ABSPATH')) {
|
||
|
exit;
|
||
|
}
|
||
|
|
||
|
define('SQUEEZE_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
||
|
define('SQUEEZE_PLUGIN_URL', plugin_dir_url(__FILE__));
|
||
|
|
||
|
add_action('plugins_loaded', 'squeeze_load_textdomain');
|
||
|
/**
|
||
|
* Load plugin textdomain
|
||
|
*/
|
||
|
function squeeze_load_textdomain() {
|
||
|
load_plugin_textdomain('squeeze', false, dirname(plugin_basename(__FILE__)) . '/languages/');
|
||
|
}
|
||
|
|
||
|
include_once(SQUEEZE_PLUGIN_DIR . 'src/settings.php');
|
||
|
include_once(SQUEEZE_PLUGIN_DIR . 'src/handlers.php');
|
||
|
|
||
|
|
||
|
add_action('admin_print_footer_scripts', 'squeeze_block_assets');
|
||
|
/**
|
||
|
* Enqueue assets
|
||
|
*/
|
||
|
function squeeze_block_assets() {
|
||
|
global $pagenow;
|
||
|
|
||
|
$options = get_option( 'squeeze_options' );
|
||
|
$default_options = squeeze_get_default_value( null, true); // get all default values
|
||
|
$js_options = array();
|
||
|
|
||
|
foreach ($default_options as $key => $value) {
|
||
|
if (isset($options[$key])) {
|
||
|
if (is_numeric($options[$key])) {
|
||
|
$js_options[$key] = intval($options[$key]);
|
||
|
} elseif ($options[$key] === "on") {
|
||
|
$js_options[$key] = true;
|
||
|
}
|
||
|
} else {
|
||
|
$js_options[$key] = $value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Enqueue script for backend.
|
||
|
|
||
|
wp_enqueue_script(
|
||
|
'squeeze-script',
|
||
|
// Handle.
|
||
|
plugins_url('/assets/js/script.bundle.js', __FILE__),
|
||
|
array('jquery', 'wp-mediaelement'),
|
||
|
// Dependencies, defined above.
|
||
|
null,
|
||
|
true // Enqueue the script in the footer.
|
||
|
);
|
||
|
|
||
|
|
||
|
// WP Localized globals. Use dynamic PHP stuff in JavaScript via `squeeze` object.
|
||
|
wp_localize_script(
|
||
|
'squeeze-script',
|
||
|
'squeeze',
|
||
|
// Array containing dynamic data for a JS Global.
|
||
|
[
|
||
|
'pluginUrl' => SQUEEZE_PLUGIN_URL,
|
||
|
'ajaxUrl' => admin_url('admin-ajax.php'),
|
||
|
'nonce' => wp_create_nonce('squeeze-nonce'),
|
||
|
'options' => json_encode($js_options),
|
||
|
]
|
||
|
);
|
||
|
|
||
|
wp_set_script_translations('squeeze-script', 'squeeze', plugin_dir_path(__DIR__) . 'languages');
|
||
|
|
||
|
}
|
||
|
|
||
|
|