1

Trying to create a plugin that creates a custom table & populates it with a row of data, once activated. The table is created OK, but the row of data is not added. Please can someone point out what I have done wrong with the row of data?

 register_activation_hook( __FILE__, 'pu_create_plugin_tables' );
    register_activation_hook( __FILE__, 'pu_insert_custom_table' );

    function pu_create_plugin_tables()
    {
        global $wpdb;


        $table_name = $wpdb->prefix . 'countries';

        $sql = "CREATE TABLE $table_name (
          id int(11) NOT NULL AUTO_INCREMENT,
          name varchar(255) DEFAULT NULL,
          labour_cost_rate int(11) NOT NULL,
          overheads     DECIMAL(6,2) NULL,
          profit DECIMAL(6,2) NULL,
          UNIQUE KEY id (id)
              );";


        require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
        dbDelta( $sql );
    }



    function pu_insert_custom_table(){

        global $wpdb;

      $welcome_id = "3";
      $welcome_name  = "helen";

      $rows_affected = $wpdb->insert( $table_name, array( 'id' => $welcome_id, 'name' => $welcome_name ));
     require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
     dbDelta( $rows_affected );

       }

1 Answer 1

1

The table isn't defined on your insert function. So you will need to add - $table_name = $wpdb->prefix . 'countries'; as you did for the create table function.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.