Programatically changing template of a page
Looking at the wp_postmeta table, you can see the page template is stored there. Therefore, a simple call to update_post_meta (codex) should do the trick : update_post_meta( $post_id, ‘_wp_page_template’, ‘my_template.php’ ); The filename and extension is necessary, as per my example.