notification_hooks(); } /** * Hook into actions and filters * * @since 1.3.3 */ private function notification_hooks() { add_action( 'admin_init', array( $this, 'wp_headers_and_footers_review_notice' ) ); } /** * Ask users to review our plugin on wordpress.org * * @since 1.3.3 * @version 2.1.0 */ public function wp_headers_and_footers_review_notice() { $this->wpheaderandfooter_review_dismissal(); $this->wpheaderandfooter_review_pending(); $activation_time = get_site_option( 'wpheaderandfooter_active_time' ); $review_dismissal = get_site_option( 'wpheaderandfooter_review_dismiss' ); // Update the $review_dismissal value in 2.1.0 if ( 'yes_v2_1_0' === $review_dismissal ) : return; endif; if ( ! $activation_time ) : $activation_time = time(); add_site_option( 'wpheaderandfooter_active_time', $activation_time ); endif; // 1296000 = 15 Days in seconds. if ( ( time() - $activation_time > 1296000 ) && current_user_can( 'manage_options' ) ) : wp_enqueue_style( 'wpheaderandfooter_review_style', plugins_url( '../asset/css/style-review.css', __FILE__ ), array(), WPHEADERANDFOOTER_VERSION ); add_action( 'admin_notices', array( $this, 'wp_headers_and_footers_review_notice_message' ) ); endif; } /** * Check and Dismiss review message. * * @since 1.3.3 * @version 2.1.0 */ private function wpheaderandfooter_review_dismissal() { if ( ! is_admin() || ! current_user_can( 'manage_options' ) || ! isset( $_GET['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( wp_unslash( $_GET['_wpnonce'] ) ), 'wpheaderandfooter-review-nonce' ) || ! isset( $_GET['wpheaderandfooter_review_dismiss'] ) ) : return; endif; // Update the $review_dismissal value in 2.1.0 update_site_option( 'wpheaderandfooter_review_dismiss', 'yes_v2_1_0' ); } /** * Set time to current so review notice will popup after 14 days * * @since 1.3.3 */ private function wpheaderandfooter_review_pending() { if ( ! is_admin() || ! current_user_can( 'manage_options' ) || ! isset( $_GET['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( wp_unslash( $_GET['_wpnonce'] ) ), 'wpheaderandfooter-review-nonce' ) || ! isset( $_GET['wpheaderandfooter_review_later'] ) ) : return; endif; // Reset Time to current time. update_site_option( 'wpheaderandfooter_active_time', time() ); } /** * Review notice message * * @since 1.3.3 * @version 3.1.3 */ public function wp_headers_and_footers_review_notice_message() { $request_uri = isset( $_SERVER['REQUEST_URI'] ) ? esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; $scheme = ( wp_parse_url( $request_uri, PHP_URL_QUERY ) ) ? '&' : '?'; // Update the wpheaderandfooter_review_dismiss value in 2.1.0 $url = esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ) . $scheme . 'wpheaderandfooter_review_dismiss=yes_v2_1_0'; $dismiss_url = wp_nonce_url( $url, 'wpheaderandfooter-review-nonce' ); $_later_link = esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ) . $scheme . 'wpheaderandfooter_review_later=yes'; $later_url = wp_nonce_url( $_later_link, 'wpheaderandfooter-review-nonce' ); ?>