What\'s the problem of this code?
- You incorrectly called - get_page_by_path()whereby if you want to specify the post type (the third parameter), then you need to specify the second parameter as well which is the return type and defaults to- OBJECT. So:
 - // Wrong: Missing the return type (second parameter).
// Or I mean, the third parameter "becomes" the second here.
get_page_by_path( \'dneme1111\', \'woocommerceareas\' )
// Correct.
get_page_by_path( \'dneme1111\', OBJECT, \'woocommerceareas\' )
 - But then, if you just want to get the ID of the newly inserted post via - wp_insert_post(), you don\'t need to call- get_page_by_path()and instead, you could simply do something like:
 - if ( $id = wp_insert_post( $post ) ) {
    // call update_post_meta() here
}
 
- Note that the value of the page template meta has to be a file name like - template-Blank.php(see note [1] below) and not the name of the template like- Blankas in- Template Name: Blank. Secondly, the template has to be in the theme folder, so the file name should be relative to that folder.
 - So for example, if you have two page templates, one in the root theme folder and the other in a subfolder: - your-theme/
  index.php
  style.css
  template-Blank.php - page template in root theme folder
  foo/
    template-bar.php - page template in a subfolder
  ...
 - Then you would set the page template like so: - $id = 123; // post ID
// Correct: Use the file name.
update_post_meta( $id, \'_wp_page_template\', \'template-Blank.php\' );
// Wrong.
update_post_meta( $id, \'_wp_page_template\', \'Blank\' );
// Assuming that the template has "Template Name: Bar".
// Correct: Use the file name and relative subfolder path in this case (foo/).
update_post_meta( 456, \'_wp_page_template\', \'foo/template-bar.php\' );
// Wrong.
update_post_meta( 456, \'_wp_page_template\', \'Bar\' );
 
And if you\'re actually trying to override the template with a custom template stored in the wp-content/plugins directory, then you would want to use the template_include hook instead of the _wp_page_template metadata:
// Example to override the singular template for all posts of the woocommerceareas post type.
add_filter( \'template_include\', function ( $template ) {
    return is_singular( \'woocommerceareas\' ) ? \'/path/to/your/template-name.php\' : $template;
} );
Or yes, you could also programmatically copy the custom template to the active theme folder and then use the template metadata to override the page template..
Note [1] For the default page template (e.g. page.php), you can use default as the meta value.