change template with button

Try using switch_theme().

<?php switch_theme( $stylesheet ) ?>

I have personally never used it but it sounds like what you want. You just need to pass the stylesheet name you are using.

Here is a very basic demo I put together. You would basically but the following code, where ever its needed in both themes.

<form action="" method="post">
    <input type="radio" id="theme1" name="theme" value="theme1">
    <label for="theme1">Theme1</label><br>
    <input type="radio" id="theme2" name="theme" value="theme2">
    <label for="theme2">Theme2</label><br>
    <input type="submit" value="Submit">
</form>

<?php
    $radioVal = $_POST["theme"];

    if($radioVal == "theme1"){
        switch_theme('gemcore-ui');
        header("Refresh:0");
    }
    else if ($radioVal == "theme2"){
        switch_theme('testtheme');
    }
?>

I tested this and it worked well but I needed to refresh the page afterwards, so I added the header(“Refresh:0”). Also you can add as many radio options as needed.

error code: 523