Category: PHP

Create table while activating the custom wordpress plugin

If you want create a database table while a activating the plugin then you have to register_activation_hook() function. The following code can be placed in your main plugin file. The function will create tables in your Database.


function myplugin_install() {
    global $wpdb; 
    $table_name = $wpdb->prefix . "mytable";
    $db_version = '1.0';
    /**Execute the sql statement to create table**/
    $sql = "CREATE TABLE IF NOT EXISTS " . $table_name . " (
        `ID` int(11) NOT NULL AUTO_INCREMENT,
        `field1` varchar(300) DEFAULT NULL,
		`field2` varchar(300) DEFAULT NULL,
		`field3` varchar(300) DEFAULT NULL,
		`field4` varchar(300) DEFAULT NULL,
		`field5` varchar(300) DEFAULT NULL,
		 PRIMARY KEY (`ID`));"; 
    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    dbDelta($sql);
    add_option( "db_version", '1.0' );  
}
// plugin activation hook
register_activation_hook(__FILE__,'myplugin_install');

Then activate your plugin.If already activated then reactivate the plugin. It automatically create table in your database. That’s it.

Have any doubt, then comment here!

Difference between wp_insert_user() and wp_create_user()

There is no difference between wp_insert_user() and wp_create_user(). The entire source of wp_create_user() is given below

function wp_create_user($username, $password, $email = '') {
    $user_login = esc_sql( $username );
    $user_email = esc_sql( $email    );
    $user_pass = $password;

    $userdata = compact('user_login', 'user_email', 'user_pass');
    return wp_insert_user($userdata);
}

It just calls insert version almost immediately, basically a shorthand wrapper.