From 2e47f5fec355dc706ca5ec2c6082ebdc5c7d7088 Mon Sep 17 00:00:00 2001 From: Andy Fragen Date: Tue, 30 May 2023 13:29:06 -0700 Subject: [PATCH 1/3] load JS where it exists stop messing with tests for URL and transients --- composer.json | 2 +- wp-dismiss-notice.php | 21 +++++++-------------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/composer.json b/composer.json index dd99975..042f5d5 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "afragen/wp-dismiss-notice", "description": "Library for time dismissible WordPress admin notices.", - "version": "0.3.4", + "version": "0.3.5", "type": "library", "license": "MIT", "authors": [ diff --git a/wp-dismiss-notice.php b/wp-dismiss-notice.php index 2e19292..fab0d42 100644 --- a/wp-dismiss-notice.php +++ b/wp-dismiss-notice.php @@ -15,6 +15,7 @@ class WP_Dismiss_Notice { * Init hooks. */ public static function init() { + $version = json_decode( file_get_contents( './composer.json' ) ); add_action( 'admin_enqueue_scripts', [ __CLASS__, 'load_script' ] ); add_action( 'wp_ajax_wp_dismiss_notice', [ __CLASS__, 'dismiss_admin_notice' ] ); } @@ -28,6 +29,9 @@ class WP_Dismiss_Notice { return; } + $js_url = plugins_url( 'js/dismiss-notice.js', __FILE__, 'wp-dismiss-notice' ); + $version = json_decode( file_get_contents( __DIR__ . '/composer.json' ) )->version; + /** * Filter composer.json vendor directory. * Some people don't use the standard vendor directory. @@ -36,26 +40,15 @@ class WP_Dismiss_Notice { */ $vendor_dir = apply_filters( 'dismiss_notice_vendor_dir', '/vendor' ); $composer_js_path = untrailingslashit( $vendor_dir ) . '/afragen/wp-dismiss-notice/js/dismiss-notice.js'; - $plugin_js_url = plugins_url( 'js/dismiss-notice.js', __FILE__, 'wp-dismiss-notice' ); - - // Test to get correct URL for JS. - $response = get_transient( 'wp-dismiss-notice_jsurl' ); - if ( ! $response || is_object( $response ) ) { - $response = wp_remote_head( $plugin_js_url ); - $response = is_wp_error( $response ) ? 0 : wp_remote_retrieve_response_code( $response ); - if ( is_int( $response ) ) { - set_transient( 'wp-dismiss-notice_jsurl', $response, WEEK_IN_SECONDS ); - } + if ( '/vendor' !== $vendor_dir ) { + $js_url = home_url( $composer_js_path ); } - $js_url = ( 200 === (int) $response ) - ? $plugin_js_url - : get_stylesheet_directory_uri() . $composer_js_path; wp_enqueue_script( 'dismissible-notices', $js_url, [ 'jquery', 'common' ], - false, + $version, true ); From 63fbe9fd01f240fff382aa761dd52c12a16bd715 Mon Sep 17 00:00:00 2001 From: Andy Fragen Date: Tue, 30 May 2023 13:35:45 -0700 Subject: [PATCH 2/3] oops, remove test code --- composer.json | 2 +- wp-dismiss-notice.php | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 042f5d5..d33f48a 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "afragen/wp-dismiss-notice", "description": "Library for time dismissible WordPress admin notices.", - "version": "0.3.5", + "version": "0.3.6", "type": "library", "license": "MIT", "authors": [ diff --git a/wp-dismiss-notice.php b/wp-dismiss-notice.php index fab0d42..c913101 100644 --- a/wp-dismiss-notice.php +++ b/wp-dismiss-notice.php @@ -15,7 +15,6 @@ class WP_Dismiss_Notice { * Init hooks. */ public static function init() { - $version = json_decode( file_get_contents( './composer.json' ) ); add_action( 'admin_enqueue_scripts', [ __CLASS__, 'load_script' ] ); add_action( 'wp_ajax_wp_dismiss_notice', [ __CLASS__, 'dismiss_admin_notice' ] ); } From 3e2c694ca891fe94771457f54a3a5457a70c0aec Mon Sep 17 00:00:00 2001 From: Andy Fragen Date: Tue, 30 May 2023 14:45:15 -0700 Subject: [PATCH 3/3] add test for install to theme --- composer.json | 2 +- wp-dismiss-notice.php | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index d33f48a..99c07dc 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "afragen/wp-dismiss-notice", "description": "Library for time dismissible WordPress admin notices.", - "version": "0.3.6", + "version": "0.3.7", "type": "library", "license": "MIT", "authors": [ diff --git a/wp-dismiss-notice.php b/wp-dismiss-notice.php index c913101..ad669ef 100644 --- a/wp-dismiss-notice.php +++ b/wp-dismiss-notice.php @@ -39,6 +39,14 @@ class WP_Dismiss_Notice { */ $vendor_dir = apply_filters( 'dismiss_notice_vendor_dir', '/vendor' ); $composer_js_path = untrailingslashit( $vendor_dir ) . '/afragen/wp-dismiss-notice/js/dismiss-notice.js'; + + $theme_js_url = get_theme_file_uri( $composer_js_path ); + $theme_js_file = parse_url( $theme_js_url, PHP_URL_PATH ); + + if ( file_exists( ABSPATH . $theme_js_file ) ) { + $js_url = $theme_js_url; + } + if ( '/vendor' !== $vendor_dir ) { $js_url = home_url( $composer_js_path ); }