admin_url( 'admin-ajax.php' ), 'nonce' => wp_create_nonce( 'wpa-superstar-nonce' ) ] ); } add_action( 'admin_enqueue_scripts', 'wpa_superstar_localize_script' ); // Admin assets function wpa_superstar_admin_assets() { // Enqueue styles wp_enqueue_style( 'wpa-superstar-admin', plugins_url( 'admin/css/wpa-superstar-admin.css', __FILE__ ), array(), WPA_SUPERSTAR_VERSION ); // Enqueue script wp_enqueue_script( 'wpa-superstar-admin', plugins_url( 'admin/js/wpa-superstar-admin.js', __FILE__ ), array('jquery'), WPA_SUPERSTAR_VERSION, true ); // Localize script for AJAX $ajax_data = array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'nonce' => wp_create_nonce( 'wpa-superstar-nonce' ) ); wp_localize_script( 'wpa-superstar-admin', 'wpaSuperstar', $ajax_data ); } add_action( 'admin_enqueue_scripts', 'wpa_superstar_admin_assets' ); /** * Register and enqueue lazy loading assets */ function wpa_superstar_lazy_load_assets() { // Enqueue styles for lazy loading wp_enqueue_style( 'wpa-superstar-lazy-load', plugins_url( 'public/css/wpa-superstar-lazy-load.css', __FILE__ ), [], WPA_SUPERSTAR_VERSION ); } // Hook the function to appropriate WordPress action add_action( 'wp_enqueue_scripts', 'wpa_superstar_lazy_load_assets' ); /** * Minify CSS content to reduce file size * * @param string $css The CSS content to minify * @return string Minified CSS */ function wpa_superstar_minify_css($css) { // Remove comments $css = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $css); // Remove space after colons $css = str_replace(': ', ':', $css); // Remove whitespace $css = str_replace(["\r\n", "\r", "\n", "\t", ' ', ' ', ' '], '', $css); return $css; }