set_notice_time(); $this->set_temporary_dismiss_notice_time(); $this->set_dismiss_notice(); } /** * Set initial notice time (e.g., to delay showing it right after installation). */ private function set_notice_time() { if ( ! get_option( 'blockspare_review_notice_start_time' ) ) { update_option( 'blockspare_review_notice_start_time', time() ); } } /** * Set temporary dismiss time (Snooze). */ private function set_temporary_dismiss_notice_time() { if ( isset( $_GET['blockspare_setup_notice_dismiss_temporary'] ) && 'review' === $_GET['blockspare_setup_notice_dismiss_temporary'] ) { update_user_meta( $this->current_user_id, 'blockspare_review_notice_dismiss_temporary_start_time', time() ); } } /** * Set dismiss conditions. */ public function set_dismiss_notice() { $user_id = get_current_user_id(); $is_permanently_dismissed = ( 'yes' === get_user_meta( $user_id, 'blockspare_review_notice_dismiss', true ) ); $temporary_dismiss_time = (int) get_user_meta( $user_id, 'blockspare_review_notice_dismiss_temporary_start_time', true ); // Review notices usually have a longer snooze period (e.g., 7 days instead of 2) $is_temporarily_dismissed = ( $temporary_dismiss_time > strtotime( '-7 days' ) ); // Delay displaying the review notice until the plugin has been active for at least 3 days $start_time = (int) get_option( 'blockspare_upgrade_notice_start_time', time() ); // $is_too_early = ( $start_time > strtotime( '-3 days' ) ); $is_too_early = ( $start_time > strtotime( '1 min' ) ); if ( $is_permanently_dismissed || $is_temporarily_dismissed || $is_too_early ) { add_filter( 'blockspare_review_notice_dismiss', '__return_true' ); } else { add_filter( 'blockspare_review_notice_dismiss', '__return_false' ); } } /** * Notice markup. */ public function notice_markup() { $review_url = 'https://wordpress.org/support/plugin/blockspare/reviews/?filter=5'; ?>