timing within a loop

i have written in the code which bit i want to run once

void loop() {
     int val = analogRead(ionisation);
   //--------------------------------------------------------------------
   
    if (digitalRead(heatbutton)==      HIGH) {
    //                                                                                                         ** from here need's to just run once **
    if (digitalRead(ionisation_in)==   HIGH) {       // if ionisation swith HIGH 
    if (val >900)  {
    digitalWrite(solenoid,              LOW);                                       
   digitalWrite(lockoutled,             HIGH); 
  digitalWrite(heatbutton_feed,         LOW); 
   } 
 }   
  else {
  if (digitalRead(photo_pressure)==     HIGH) {         // if photo swith HIGH 
   digitalWrite(lockoutled,             HIGH);                                        
   digitalWrite(solenoid,               LOW); 
  digitalWrite(heatbutton_feed,         LOW); 
   } 
 } 
  digitalWrite(relay230_24,            HIGH);        // 230V out put to ignition
  digitalWrite(fan,                    HIGH); 
  digitalWrite(ignition_fan_2,         HIGH); 
  delay(2000);        
    //                                                                                                         ** to this point **
  //---------------------------------------------------------------------
  if (digitalRead(saleswitch)==HIGH) {           // sale switch if HIGH
  digitalWrite(solenoid,       HIGH); }
  //---------------------------------------------------------------------
  else {                                            // sale switch if LOW
   digitalWrite(lockoutled,      HIGH); 
   digitalWrite(ignition_fan_2,  LOW);
   digitalWrite(solenoid,        LOW);
   digitalWrite(fan,             LOW); 
   digitalWrite(heatbutton_feed, LOW);
   }
  //---------------------------------------------------------------------
  delay(2000);
   if (digitalRead(ionisation_in)== HIGH) {
  if (val >900)                         {            // ionisation if LOW
   digitalWrite(solenoid,          LOW);
   digitalWrite(ignition_fan_2,    LOW);
   digitalWrite(lockoutled,        HIGH); 
   digitalWrite(heatbutton_feed,   LOW);
   digitalWrite(heatbutton_feed,   LOW);
   } 
 }
   
   if (digitalRead(photo_pressure)==LOW)  {          // photo if LOW
     digitalWrite(solenoid,         LOW);
   digitalWrite(ignition_fan_2,    LOW);
   digitalWrite(lockoutled,        HIGH); 
   digitalWrite(heatbutton_feed,   LOW);
   }
   //---------------------------------------------------------------------
   else {
       digitalWrite(ignition_fan_2, LOW); }
   //---------------------------------------------------------------------
   }
   else {                                          // switching off
        digitalWrite(solenoid,       LOW);
        digitalWrite(ignition_fan_2, LOW);
         digitalWrite(relay230_24,   LOW);
        delay(30000);
        digitalWrite(fan,            LOW); }
   //---------------------------------------------------------------------
    
       }