<?php
/*
 * Plugin Name: Wordpress Admin Table
 * Description: 관리자 페이지 테이블 예제 플러그인
 * Version:   1.0.0
 * Author:    HiSEON
 * Author URI:  https://hiseon.me/
 */

class admin_table_plugin {
  protected static $_instance = null;

  public static function instance() {
    if (is_null(self::$_instance)) {
      self::$_instance = new self();
    }

    return self::$_instance;
  }

  protected function __construct() {
  }

  private function __clone() {}
  private function __sleep() {}
  private function __wakeup() {}

  public function get_table_name() {
    global $wpdb;
    return $wpdb->prefix.'customers';
  }

  public function install() {
    global $wpdb;
    $table_name = $this->get_table_name();

    if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
      $sql = "CREATE TABLE $table_name (
        ID int auto_increment primary key,
        name text,
        address text,
        city text
      ) ;";
      require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
      dbDelta( $sql );
    }
  }
}

function ATP() {
  return admin_table_plugin::instance();
}

function admin_table_activate() {
  ATP()->install();
}

register_activation_hook(__FILE__, 'admin_table_activate');