registerKwRankTracker(); } /** * Checks if a pointer should be dismissed. * * @since 4.8.3 * * @return void */ public function maybeDismissPointer() { if ( ! isset( $_GET['aioseo-dismiss-pointer'] ) || ! isset( $_GET['aioseo-dismiss-pointer-nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_GET['aioseo-dismiss-pointer-nonce'] ) ), 'aioseo-dismiss-pointer' ) ) { return; } $pointer = sanitize_text_field( wp_unslash( $_GET['aioseo-dismiss-pointer'] ) ); update_user_meta( get_current_user_id(), "_aioseo-$pointer-dismissed", true ); } /** * Registers a pointer. * * @since 4.8.3 * * @return void */ public function registerPointer( $id, $pageSlug, $args ) { if ( get_user_meta( get_current_user_id(), "_aioseo-$id-dismissed", true ) ) { return; } if ( "all-in-one-seo_page_aioseo-{$pageSlug}" === aioseo()->helpers->getCurrentScreen()->id ) { return; } wp_enqueue_style( 'wp-pointer' ); wp_enqueue_script( 'wp-pointer' ); // phpcs:disable Squiz.PHP.EmbeddedPhp, Generic.WhiteSpace.ScopeIndent.IncorrectExact ?> version, '4.9.0', '>=' ) || // We only want to show this pointer up to 4.9.0. ! current_user_can( 'aioseo_search_statistics_settings' ) || ( is_object( aioseo()->license ) && aioseo()->license->hasCoreFeature( 'search-statistics', 'keyword-rank-tracker' ) && aioseo()->searchStatistics->api->auth->isConnected() ) ) { return; } $nonce = wp_create_nonce( 'aioseo-dismiss-pointer' ); $args = [ 'title' => 'NEW! Keyword Rank Tracker', 'subtitle' => 'Get insights into how your site is performing for your most important keywords', 'content' => 'Track keywords and combine them into groups to see how your site is performing for key topics in Google search results.', 'url' => admin_url( 'admin.php?aioseo-dismiss-pointer=kw-rank-tracker&aioseo-dismiss-pointer-nonce=' . $nonce . '&page=aioseo-search-statistics#/keyword-rank-tracker' ), 'button' => 'Unlock Keyword Rank Tracker' ]; $this->registerPointer( 'kw-rank-tracker', 'search-statistics', $args ); } }