This question already has an answer here:
I am not the best at coding but slowly learning. Currently trying to make a Wordpress plugin using a guide but got stuck with the below text.
Main error is in the last if statement. Throwing a syntax error for the last elseif statement. The code works without the first elseif statement but I cannot understand why.
if($tot != 0) {
$res = '<div class="time_div"><div class=" pickinfod"><p class="form-field form-field-wide session_options bikeselopt"><label for="session_choose">'.$def_sess.' season selected</label><input style="display:none;" type="text" name="wc_extra_fields_normaltour[sessionoption]" value='.$def_sess.' /></p></div><p class="form-field form-field-wide session_options"><label for="wc_extra_fields_normaltour[spickupstart]">Pickup Timings:</label><select name="wc_extra_fields_normaltour[spickupstart]" id="atest" class="bikeselopt" onchange="get_locbytime(this.value);" required="required"><option value="">Select</option>';
for($i=0; $i<$tot; $i++){
$res .= '<option value="'.$arr_unq[$i].'">'.$arr_unq[$i].'</option>';
}
$res.= '</select></p></div>';
} else {
if(($sess_type == "only_summer") || ($sess_type == "only_winter")){
if($def_sess == 'winter'){
$new_sess= 'summer';
} else {
$new_sess= 'summer';
}
$res.="<div class='mes_div'><p>".$def_sess." Product: Available May 1st - September 30th. In Summer please try our Bike The Bridges Tour</p></div>";
}
elseif($def_sess == 'summer'){
$new_sess= 'winter';
} else {
$new_sess= 'winter';
}
$res.="<div class='mes_div'><p>".$def_sess." Product: Available October 1st - April 30th. In Winter please try our Winter Bike The Bridges Tour</p></div>";
}
elseif(($sess_type == "both_call") || ($sess_type == "only_summer_wintercall") || ($sess_type == "only_winter_summercall")){
$res.="<div class='mes_div'><p><a href='tel:64279455801'>Call us</a> or <a href='mailto:".get_option('admin_email')."'>Email us</a></p></div>";}
}
echo $res;die(0);
}
</div>
After cleaning up your code, it's a little easier to see. Your outermost if-statement goes
if{}
else{}
elseif{}
This is an invalid order. else
is the final clause of an if-statement.
Also, there's an extra closing bracket at the end of the code block.
The construct for if is
if (condition) {
//true
}
else {
//false
}
The construct for if elseif
if (condition) {
//true
}
elseif {
//elseif
}
elseif {
//elseif
}
else {
//false
}
You cannot mix match elseif and else. Else should be always at the last for elseif construct. So the last elseif statement does not fit the syntax.