Shortcodes should not echo any output. They should always return the text that is to be used to replace the shortcode.
You either write the html code on a variable:
function my_shortcode() {
$output="<div>something</div>";
return $output;
}
Or you can use php output buffering:
function my_shortcode() {
ob_start(); ?>
<div>something</div>
<?php
return ob_get_clean();
}
In your case, you could put ob_start at the beginning of the function and in the end just return ob_get_clean:
if ( ! function_exists( 'sollicitatie_formulier' ) ) {
function sollicitatie_formulier(){
global $wpdb;
ob_start();
if(isset($_POST['btn-upload']))
{
$table = tbl_uploads;
$file = rand(1000,100000)."-".$_FILES['afile']['name'];
$file_size = $_FILES['afile']['size'];
$file_type = $_FILES['afile']['type'];
$file_loc = $_FILES['afile']['tmp_name'];
$folder="wp-content/themes/jobify-extended/uploads/";
$data = array(
'voornaam' => $_POST['avoornaam'],
'familienaam' => $_POST['afamilienaam'],
'comment' => $_POST['amsg'],
'afile' => rand(1000,100000)."-".$_FILES['afile']['name'],
'size' => $_FILES['afile']['size'],
'type' => $_FILES['afile']['type'],
);
// new file size in KB
$new_size = $file_size/1024;
// new file size in KB
// make file name in lower case
$new_file_name = strtolower($file);
// make file name in lower case
$final_file=str_replace(' ','-',$new_file_name);
$format = array(
'%s',
'%s'
);
if(move_uploaded_file($file_loc,$folder.$final_file))
{
$success=$wpdb->insert( $table, $data, $format,$folder);
if($success){
?>
<script>
alert('successfully uploaded');
window.location.href="https://wordpress.stackexchange.com/questions/270694/sollicitatie-formulier?success";
</script>
<?php
}
}
}
else {
?>
<form action="" method="post" enctype="multipart/form-data">
<label for="voornaam">Voornaam: </label><input type="text" name="avoornaam" required="">
<label for="familienaam">Familienaam: </label><input type="text" name="afamilienaam" required="">
<label for="comment">bericht: </label><textarea type="text" name="amsg"></textarea>
<input type="file" name="afile" accept=".pdf, .doc, .docx" />
<input type="submit" name="btn-upload" value="upload"</input>
</form>
<?php
if(isset($_GET['success']))
{
?>
<label>Kandidaat succesvol toegevoegd... <a href="http://wordpress.stackexchange.com/bekijk/">click hier om kandidaten te bekijken.</a></label>
<?php
}
else if(isset($_GET['fail']))
{
?>
<label>Oeps...een probleem! Probeer opnieuw</label>
<?php
}
else
{
?>
<label>Try to upload any files(PDF, DOC, DOCX)</label>
<?php } }
return ob_get_clean();
}
}
add_shortcode( 'sollicitatie_formulier', 'sollicitatie_formulier' );