From 19a1917de0e3a146421a79c2e4d5c76e7cc865f4 Mon Sep 17 00:00:00 2001
From: Grzegorz Rola <grola@seostudio.pl>
Date: Wed, 9 Oct 2019 15:30:11 +0000
Subject: [PATCH] Feature/wp nonce

---
 CHANGELOG.md                      |  4 ++++
 src/Basic_Requirement_Checker.php | 14 +++++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index cb5ca5f..dbc95e6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## [3.0.4] - 2019-09-20
+### Fixed
+- Fixed missing wp_nonce_url function
+
 ## [3.0.3] - 2019-09-20
 ### Fixed
 - Fixed "" in translation
diff --git a/src/Basic_Requirement_Checker.php b/src/Basic_Requirement_Checker.php
index 601c0c4..a707ac5 100644
--- a/src/Basic_Requirement_Checker.php
+++ b/src/Basic_Requirement_Checker.php
@@ -310,10 +310,11 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
 		 * @return string
 		 */
 		private function prepare_plugin_repository_install_url( $plugin_info ) {
-			$slug        = basename( $plugin_info[ self::PLUGIN_INFO_KEY_NAME ] );
-			$install_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=' . $slug ),
-				'install-plugin_' . $slug );
-
+			$slug = basename( $plugin_info[ self::PLUGIN_INFO_KEY_NAME ] );
+			$install_url = self_admin_url( 'update.php?action=install-plugin&plugin=' . $slug );
+			if ( function_exists( 'wp_nonce_url' ) ) {
+				$install_url = wp_nonce_url( $install_url, 'install-plugin_' . $slug );
+			}
 			add_filter( 'plugins_api', function ( $api, $action, $args ) use ( $plugin_info, $slug ) {
 				if ( 'plugin_information' !== $action ||
 				     false !== $api ||
@@ -351,7 +352,10 @@ if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
 						$this->get_text_domain() ), array( 'a' => array( 'href' => array() ) ) ),
 						$this->plugin_name, $nice_name, esc_url( $install_url ), $nice_name ) );
 				}
-				$activate_url = 'plugins.php?action=activate&plugin=' . urlencode( $plugin_info[ self::PLUGIN_INFO_KEY_NAME ] ) . '&plugin_status=all&paged=1&s&_wpnonce=' . urlencode( wp_create_nonce( 'activate-plugin_' . $name ) );
+				$activate_url = 'plugins.php?action=activate&plugin=' . urlencode( $plugin_info[ self::PLUGIN_INFO_KEY_NAME ] ) . '&plugin_status=all&paged=1&s';
+				if ( function_exists( 'wp_create_nonce' ) ) {
+					$activate_url .= '&_wpnonce=' . urlencode( wp_create_nonce( 'activate-plugin_' . $name ) );
+				}
 
 				return $this->prepare_notice_message( sprintf( wp_kses( __( 'The &#8220;%s&#8221; plugin requires activating %s plugin. <a href="%s">Activate %s →</a>',
 					$this->get_text_domain() ), array( 'a' => array( 'href' => array() ) ) ),
-- 
GitLab