set_notice_time(); $this->set_temporary_dismiss_notice_time(); $this->set_dismiss_notice(); } /** * Set initial notice time. */ private function set_notice_time() { if ( ! get_option( 'blockspare_upgrade_notice_start_time' ) ) { update_option( 'blockspare_upgrade_notice_start_time', time() ); } } /** * Set temporary dismiss time. */ private function set_temporary_dismiss_notice_time() { // FIX: Aligned parameter string check with parent class if ( isset( $_GET['blockspare_setup_notice_dismiss_temporary'] ) && 'upgrade' === $_GET['blockspare_setup_notice_dismiss_temporary'] ) { update_user_meta( $this->current_user_id, 'blockspare_upgrade_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_upgrade_notice_dismiss', true ) ); $temporary_dismiss_time = (int) get_user_meta( $user_id, 'blockspare_upgrade_notice_dismiss_temporary_start_time', true ); $is_temporarily_dismissed = ( $temporary_dismiss_time > strtotime( '-2 days' ) ); // FIX: Evaluates user meta correctly without loops or instant expiration loops if ( $is_permanently_dismissed || $is_temporarily_dismissed ) { add_filter( 'blockspare_upgrade_notice_dismiss', '__return_true' ); } else { add_filter( 'blockspare_upgrade_notice_dismiss', '__return_false' ); } } /** * Notice markup. */ public function notice_markup() { ?>