2 added detailled explanation
source | link

You can create the page via wp_insert_post( $post, $wp_error );. The array $post contains the data for your page, with the full documentation here.

Be sure to receive the ID from your inserted page/post. You can Add the page at the activation of your plugin, but please check first if the option for the page is already set (maybe from a previous install), because you can skip the creation of the page in this case:

function your_plugin_activate() {

    if ( !get_option( 'your_plugin_page_id' ) ) { // check if the option is already set

        $post = array(); //insert your postdata into this array
        $mypageid = wp_insert_post( $post ); // create the page/post
        update_option( 'your_plugin_page_id', $wp_error$mypageid ); // set the option in the database for future reference
    }

}
register_activation_hook( __FILE__, 'your_plugin_activate' );

This goes into your plugin file.

You can save this ID in your Plugin options, and use it to automatically filter the content and insert your table. Of course, you can also just insert the shortcode you are using directly into the post_content, but using

add_filter( 'the_content', 'your_table_function_name' );

function your_table_function_name( $content ) {

    if ( $GLOBALS['post']->ID == get_option( 'your_plugin_page_id' ) ) { // check if you are on the right page
        $content = $your_table_code . $content; // Set the Table in front of the User Content
    }
    return $content; // return the content, any other page returns the original content.

}

gives you the advantage of being independent to the user input, as a faulty shortcode could prevent the table from being shown.

Please keep in mind that it would be very good for the user if you gave him the choice of choosing an existing page that should be filtered, or automatically creating a new one, as well as presenting an option for changing this page. If you saved the ID of your new page, this should not be too much effort :)

You can create the page via wp_insert_post( $post, $wp_error );. The array $post contains the data for your page, with the full documentation here.

Be sure to receive the ID from your inserted page/post:

$mypageid = wp_insert_post( $post, $wp_error );

You can save this ID in your Plugin options, and use it to automatically filter the content and insert your table. Of course, you can also just insert the shortcode you are using directly into the post_content, but using

add_filter( 'the_content', 'your_table_function_name' );

gives you the advantage of being independent to the user input, as a faulty shortcode could prevent the table from being shown.

Please keep in mind that it would be very good for the user if you gave him the choice of choosing an existing page that should be filtered, or automatically creating a new one, as well as presenting an option for changing this page. If you saved the ID of your new page, this should not be too much effort :)

You can create the page via wp_insert_post( $post, $wp_error );. The array $post contains the data for your page, with the full documentation here.

Be sure to receive the ID from your inserted page/post. You can Add the page at the activation of your plugin, but please check first if the option for the page is already set (maybe from a previous install), because you can skip the creation of the page in this case:

function your_plugin_activate() {

    if ( !get_option( 'your_plugin_page_id' ) ) { // check if the option is already set

        $post = array(); //insert your postdata into this array
        $mypageid = wp_insert_post( $post ); // create the page/post
        update_option( 'your_plugin_page_id', $mypageid ); // set the option in the database for future reference
    }

}
register_activation_hook( __FILE__, 'your_plugin_activate' );

This goes into your plugin file.

You can save this ID in your Plugin options, and use it to automatically filter the content and insert your table. Of course, you can also just insert the shortcode you are using directly into the post_content, but using

add_filter( 'the_content', 'your_table_function_name' );

function your_table_function_name( $content ) {

    if ( $GLOBALS['post']->ID == get_option( 'your_plugin_page_id' ) ) { // check if you are on the right page
        $content = $your_table_code . $content; // Set the Table in front of the User Content
    }
    return $content; // return the content, any other page returns the original content.

}

gives you the advantage of being independent to the user input, as a faulty shortcode could prevent the table from being shown.

Please keep in mind that it would be very good for the user if you gave him the choice of choosing an existing page that should be filtered, or automatically creating a new one, as well as presenting an option for changing this page. If you saved the ID of your new page, this should not be too much effort :)

1
source | link

You can create the page via wp_insert_post( $post, $wp_error );. The array $post contains the data for your page, with the full documentation here.

Be sure to receive the ID from your inserted page/post:

$mypageid = wp_insert_post( $post, $wp_error );

You can save this ID in your Plugin options, and use it to automatically filter the content and insert your table. Of course, you can also just insert the shortcode you are using directly into the post_content, but using

add_filter( 'the_content', 'your_table_function_name' );

gives you the advantage of being independent to the user input, as a faulty shortcode could prevent the table from being shown.

Please keep in mind that it would be very good for the user if you gave him the choice of choosing an existing page that should be filtered, or automatically creating a new one, as well as presenting an option for changing this page. If you saved the ID of your new page, this should not be too much effort :)