prefix . "portfolio_myeducations"; $my_products_db_version = '1.0'; $charset_collate = $wpdb->get_charset_collate(); if ( $wpdb->get_var("SHOW TABLES LIKE '{$table_name}'") != $table_name ) { $sql = "CREATE TABLE $table_name ( `ID` bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, `college_name` text NOT NULL, `education_type` text NOT NULL, `education_years` text NOT NULL, `education_details` longtext NOT NULL, `order` int(11) NOT NULL ) $charset_collate;"; $sql_insert = "INSERT INTO $table_name (`ID`, `college_name`, `education_type`, `education_years`, `education_details`, `order`) VALUES (45, 'Sağlık İşçileri Sendikası Primary School', 'Primary School', '2002-2010', 'Primary school', 0), (46, 'Türk Telekom High School', 'High School', '2010-2014', 'I graduated from high school.', 0), (47, 'Antalya Bilim University', 'Computer Science Degree', '2014-2021', 'I graduated from Computer Science department of Antalya Bilim University.', 0);"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); dbDelta($sql_insert); add_option('my_db_version', $my_products_db_version); } global $wpdb; $myworks_table_name = $wpdb->prefix . "portfolio_myworks"; $my_products_db_version = '1.0'; $charset_collate = $wpdb->get_charset_collate(); if ( $wpdb->get_var("SHOW TABLES LIKE '{$myworks_table_name}'") != $myworks_table_name ) { $sql_works = "CREATE TABLE $myworks_table_name ( `ID` bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, `company_name` text NOT NULL, `company_department` text NOT NULL, `working_years` text NOT NULL, `working_details` longtext NOT NULL, `order` int(11) NOT NULL ) $charset_collate;"; $sql_insert_works = "INSERT INTO $myworks_table_name (`ID`, `company_name`, `company_department`, `working_years`, `working_details`, `order`) VALUES (67, 'Freelancer', 'Webmaster', '2004-2014', 'I worked as Freelancer webmaster / full stack web developer between 2004 and 2014. I developed lots of project with HTML,CSS,JS and PHP languages.', 0), (68, 'Freelancer', 'Junior Android Developer', '2013-2015', 'I worked as Freelancer Android Developer between 2013 and 2015. I developed freelance native android apps with Java language.', 0), (69, 'BirkanLabs', 'Junior iOS Developer', '2015-2017', 'I started to working as Junior iOS Developer in BirkanLabs which is my own Software company. I make iOS apps and publish in App Store. I also develop iOS apps for marketplace such as Codecanyon or Codester.', 0), (70, 'BirkanLabs', 'Mid iOS Developer', '2017-2019', 'I develop lots of apps and make a progress about iOS development. I learned more about architech of iOS apps. ', 0), (71, 'BirkanLabs', 'Senior iOS Developer', '2019-present', 'I became senior after 5 years of iOS development. ', 0);"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql_works); dbDelta($sql_insert_works); // add_option('my_db_version', $my_products_db_version); } global $wpdb; $myservices_table_name = $wpdb->prefix . "portfolio_myservices"; $my_products_db_version = '1.0'; $charset_collate = $wpdb->get_charset_collate(); if ( $wpdb->get_var("SHOW TABLES LIKE '{$myservices_table_name}'") != $myservices_table_name ) { $sql_services = "CREATE TABLE $myservices_table_name ( `ID` bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, `services_name` text NOT NULL, `services_icon` text NOT NULL, `services_details` longtext NOT NULL, `order` int(11) NOT NULL ) $charset_collate;"; $sql_insert_services = "INSERT INTO `wp_portfolio_myservices` (`ID`, `services_name`, `services_icon`, `services_details`, `order`) VALUES (6, 'Web Designer', 'icon-chat', 'I designed lots of Wordpress themes. ', 0), (7, 'Branding', 'icon-briefcase', 'Facilis ipsum reprehenderit nemo molestias. Aut cum mollitia reprehenderit', 0), (8, 'Analytics', 'icon-search', 'Facilis ipsum reprehenderit nemo molestias. Aut cum mollitia reprehenderit.', 0), (9, 'Web Developent', 'icon-bargraph', 'I developed many Wordpress plugins.', 0), (10, 'Web Marketing', 'icon-genius', 'Facilis ipsum reprehenderit nemo molestias. Aut cum mollitia reprehenderit.', 0), (11, 'Support', 'icon-chat', 'Facilis ipsum reprehenderit nemo molestias. Aut cum mollitia reprehenderit.', 0);"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql_services); dbDelta($sql_insert_services); //add_option('my_db_version', $my_products_db_version); } global $wpdb; $myskills_table_name = $wpdb->prefix . "portfolio_myskills"; $my_products_db_version = '1.0'; $charset_collate = $wpdb->get_charset_collate(); if ( $wpdb->get_var("SHOW TABLES LIKE '{$myskills_table_name}'") != $myskills_table_name ) { $sql_skills = "CREATE TABLE $myskills_table_name ( `ID` bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, `skills_name` text NOT NULL, `skills_percent` int(11) NOT NULL, `skills_color` text NOT NULL, `order` int(11) NOT NULL ) $charset_collate;"; $sql_insert_skills = "INSERT INTO `wp_portfolio_myskills` (`ID`, `skills_name`, `skills_percent`, `skills_color`, `order`) VALUES (5, 'Java', 75, 'asd', 0), (8, 'Python', 60, 'asdas', 0), (10, 'Swift Development', 99, 'asa', 0), (11, 'Android Development', 99, 'ss', 0);"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql_skills); dbDelta($sql_insert_skills); //add_option('my_db_version', $my_products_db_version); } global $wpdb; $myprojects_table_name = $wpdb->prefix . "portfolio_myprojects"; $my_products_db_version = '1.0'; $charset_collate = $wpdb->get_charset_collate(); if ( $wpdb->get_var("SHOW TABLES LIKE '{$myprojects_table_name}'") != $myprojects_table_name ) { $sql_projects = "CREATE TABLE $myprojects_table_name ( `ID` bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, `projects_name` text NOT NULL, `projects_category` text NOT NULL, `projects_link` text NOT NULL, `projects_image` text NOT NULL, `order` int(11) NOT NULL ) $charset_collate;"; $sql_insert_projects = "INSERT INTO `wp_portfolio_myprojects` (`ID`, `projects_name`, `projects_category`, `projects_link`, `projects_image`, `order`) VALUES (30, 'Project Name', 'Category', 'https://themeforest.net/', '24', 0), (31, 'Project Name', 'Project Category', 'https://themeforest.net/', '23', 0), (32, 'Project Name', 'Project Category', 'https://themeforest.net', '27', 0), (33, 'Project Name', 'Project Category', 'https://themeforest.net', '28', 0), (34, 'Project Name', 'Project Category', 'https://themeforest.net', '29', 0), (35, 'Project Name', 'Project Category', 'https://themeforest.net', '30', 0), (36, 'Project Name', 'Project Category', 'https://themeforest.net', '31', 0), (37, 'Project Name', 'Project Category', 'https://themeforest.net', '32', 0);"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql_projects); dbDelta($sql_insert_projects); //add_option('my_db_version', $my_products_db_version); } } // Registering the plugin //register_activation_hook(__FILE__, 'theme_db_installer'); theme_db_installer(); // Extending class // My Projects List Table class Portfolio_MyProjects_List_Table extends WP_List_Table { // Here we will add our code // Define table columns function get_columns() { $columns = array( 'cb' => '', 'projects_name' => __('Project Name', 'birkanlabs-portfolio'), 'projects_category' => __('Project Category', 'birkanlabs-portfolio'), 'projects_link' => __('Project Link', 'birkanlabs-portfolio'), 'projects_image' => __('Project Image', 'birkanlabs-portfolio'), 'order' => __('Order', 'birkanlabs-portfolio') ); return $columns; } // define $table_data property private $table_data; // Bind table with columns, data and all function prepare_items() { global $wpdb; $table_name = $wpdb->prefix . 'portfolio_myprojects'; //data if ( isset($_POST['s']) ) { $this->table_data = $this->get_table_data($_POST['s']); } else { $this->table_data = $this->get_table_data(); } $columns = $this->get_columns(); $hidden = ( is_array(get_user_meta( get_current_user_id(), 'managetoplevel_page_myprojects_list_tablecolumnshidden', true)) ) ? get_user_meta( get_current_user_id(), 'managetoplevel_page_myprojects_list_tablecolumnshidden', true) : array(); $sortable = $this->get_sortable_columns(); $primary = 'name'; $this->_column_headers = array($columns, $hidden, $sortable, $primary); $this->process_bulk_action(); usort($this->table_data, array(&$this, 'usort_reorder')); /* pagination */ $per_page = $this->get_items_per_page('elements_per_page', 10); $current_page = $this->get_pagenum(); $total_items = count($this->table_data); $this->table_data = array_slice($this->table_data, (($current_page - 1) * $per_page), $per_page); $paged = isset($_REQUEST['paged']) ? max(0, intval($_REQUEST['paged']) - 1) : 0; $orderby = (isset($_REQUEST['orderby']) && in_array($_REQUEST['orderby'], array_keys($this->get_sortable_columns()))) ? $_REQUEST['orderby'] : 'ID'; $order = (isset($_REQUEST['order']) && in_array($_REQUEST['order'], array('asc', 'desc'))) ? $_REQUEST['order'] : 'asc'; $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name ORDER BY $orderby $order LIMIT %d OFFSET %d", $per_page, $paged), ARRAY_A); $this->set_pagination_args(array( 'total_items' => $total_items, // total number of items 'per_page' => $per_page, // items to show on a page 'total_pages' => ceil( $total_items / $per_page ) // use ceil to round up )); $this->items = $this->table_data; } // Get table data private function get_table_data($search = '') { global $wpdb; $table = $wpdb->prefix . 'portfolio_myprojects'; if ( !empty($search) ) { return $wpdb->get_results( "SELECT * from {$table} WHERE projects_name Like '%{$search}%' OR projects_category Like '%{$search}%' OR projects_link Like '%{$search}%' OR projects_image Like '%{$search}%' ", ARRAY_A ); } else { return $wpdb->get_results( "SELECT * from {$table}", ARRAY_A ); } /* return $wpdb->get_results( "SELECT * from {$table}", ARRAY_A ); */ } function column_default($item, $column_name) { switch ($column_name) { case 'ID': case 'projects_name': case 'projects_category': case 'projects_link': case 'projects_image': case 'order': default: return $item[$column_name]; } } function column_cb($item) { return sprintf( '', $item['ID'] ); } protected function get_sortable_columns() { $sortable_columns = array( 'order' => array('order', true) ); return $sortable_columns; } // Sorting function function usort_reorder($a, $b) { // If no sort, default to user_login $orderby = (!empty($_GET['orderby'])) ? $_GET['orderby'] : 'user_login'; // If no order, default to asc $order = (!empty($_GET['order'])) ? $_GET['order'] : 'asc'; // Determine sort order $result = strcmp($a[$orderby], $b[$orderby]); // Send final sort direction to usort return ($order === 'asc') ? $result : -$result; } function column_projects_name($item) { $actions = array( 'edit' => sprintf('%s', $item['ID'], __('Edit', 'birkanlabs-portfolio')), 'delete' => sprintf('%s', $_REQUEST['page'], $item['ID'], __('Delete', 'birkanlabs-portfolio')), ); return sprintf('%s %s', $item['projects_name'], $this->row_actions($actions) ); } // To show bulk action dropdown function get_bulk_actions(){ $actions = array( 'delete_all' => __('Delete' , 'birkanlabs-portfolio'), //'draft_all' => __('Move to Draft') ); return $actions; } function process_bulk_action() { echo 'deneme1'; global $wpdb; $table = $wpdb->prefix . 'portfolio_myprojects'; if ('delete_all' === $this->current_action()) { echo 'deneme3'; $ids = isset($_REQUEST['ID']) ? $_REQUEST['ID'] : array(); if (is_array($ids)) $ids = implode(',', $ids); if (!empty($ids)) { echo 'deneme2'; $wpdb->query("DELETE FROM $table WHERE ID IN($ids)"); } } } } // MY SKİLLS class Portfolio_MySkills_List_Table extends WP_List_Table { // Here we will add our code // Define table columns function get_columns() { $columns = array( 'cb' => '', 'skills_name' => __('Skill Name', 'birkanlabs-portfolio'), 'skills_percent' => __('Skill Percent', 'birkanlabs-portfolio'), 'skills_color' => __('Skill Details', 'birkanlabs-portfolio'), 'order' => __('Order', 'birkanlabs-portfolio') ); return $columns; } // define $table_data property private $table_data; // Bind table with columns, data and all function prepare_items() { global $wpdb; $table_name = $wpdb->prefix . 'portfolio_myskills'; //data if ( isset($_POST['s']) ) { $this->table_data = $this->get_table_data($_POST['s']); } else { $this->table_data = $this->get_table_data(); } $columns = $this->get_columns(); $hidden = ( is_array(get_user_meta( get_current_user_id(), 'managetoplevel_page_myskills_list_tablecolumnshidden', true)) ) ? get_user_meta( get_current_user_id(), 'managetoplevel_page_myskills_list_tablecolumnshidden', true) : array(); $sortable = $this->get_sortable_columns(); $primary = 'name'; $this->_column_headers = array($columns, $hidden, $sortable, $primary); $this->process_bulk_action(); usort($this->table_data, array(&$this, 'usort_reorder')); /* pagination */ $per_page = $this->get_items_per_page('elements_per_page', 10); $current_page = $this->get_pagenum(); $total_items = count($this->table_data); $this->table_data = array_slice($this->table_data, (($current_page - 1) * $per_page), $per_page); $paged = isset($_REQUEST['paged']) ? max(0, intval($_REQUEST['paged']) - 1) : 0; $orderby = (isset($_REQUEST['orderby']) && in_array($_REQUEST['orderby'], array_keys($this->get_sortable_columns()))) ? $_REQUEST['orderby'] : 'ID'; $order = (isset($_REQUEST['order']) && in_array($_REQUEST['order'], array('asc', 'desc'))) ? $_REQUEST['order'] : 'asc'; $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name ORDER BY $orderby $order LIMIT %d OFFSET %d", $per_page, $paged), ARRAY_A); $this->set_pagination_args(array( 'total_items' => $total_items, // total number of items 'per_page' => $per_page, // items to show on a page 'total_pages' => ceil( $total_items / $per_page ) // use ceil to round up )); $this->items = $this->table_data; } // Get table data private function get_table_data($search = '') { global $wpdb; $table = $wpdb->prefix . 'portfolio_myskills'; if ( !empty($search) ) { return $wpdb->get_results( "SELECT * from {$table} WHERE skills_name Like '%{$search}%' OR skills_percent Like '%{$search}%' OR skills_color Like '%{$search}%' ", ARRAY_A ); } else { return $wpdb->get_results( "SELECT * from {$table}", ARRAY_A ); } /* return $wpdb->get_results( "SELECT * from {$table}", ARRAY_A ); */ } function column_default($item, $column_name) { switch ($column_name) { case 'ID': case 'skills_name': case 'skills_percent': case 'skills_color': case 'order': default: return $item[$column_name]; } } function column_cb($item) { return sprintf( '', $item['ID'] ); } protected function get_sortable_columns() { $sortable_columns = array( 'order' => array('order', true) ); return $sortable_columns; } // Sorting function function usort_reorder($a, $b) { // If no sort, default to user_login $orderby = (!empty($_GET['orderby'])) ? $_GET['orderby'] : 'user_login'; // If no order, default to asc $order = (!empty($_GET['order'])) ? $_GET['order'] : 'asc'; // Determine sort order $result = strcmp($a[$orderby], $b[$orderby]); // Send final sort direction to usort return ($order === 'asc') ? $result : -$result; } function column_skills_name($item) { $actions = array( 'edit' => sprintf('%s', $item['ID'], __('Edit', 'birkanlabs-portfolio')), 'delete' => sprintf('%s', $_REQUEST['page'], $item['ID'], __('Delete', 'birkanlabs-portfolio')), ); return sprintf('%s %s', $item['skills_name'], $this->row_actions($actions) ); } // To show bulk action dropdown function get_bulk_actions(){ $actions = array( 'delete_all' => __('Delete','birkanlabs-portfolio'), ); return $actions; } function process_bulk_action() { echo 'deneme1'; global $wpdb; $table = $wpdb->prefix . 'portfolio_myskills'; if ('delete_all' === $this->current_action()) { echo 'deneme3'; $ids = isset($_REQUEST['ID']) ? $_REQUEST['ID'] : array(); if (is_array($ids)) $ids = implode(',', $ids); if (!empty($ids)) { echo 'deneme2'; $wpdb->query("DELETE FROM $table WHERE ID IN($ids)"); } } } } // MY SERVİCES CLASS class Portfolio_MyServices_List_Table extends WP_List_Table { // Here we will add our code // Define table columns function get_columns() { $columns = array( 'cb' => '', 'services_name' => __('Service Name', 'birkanlabs-portfolio'), 'services_icon' => __('Service İcon', 'birkanlabs-portfolio'), 'services_details' => __('Service Details', 'birkanlabs-portfolio'), 'order' => __('Order', 'birkanlabs-portfolio') ); return $columns; } // define $table_data property private $table_data; // Bind table with columns, data and all function prepare_items() { global $wpdb; $table_name = $wpdb->prefix . 'portfolio_myservices'; //data if ( isset($_POST['s']) ) { $this->table_data = $this->get_table_data($_POST['s']); } else { $this->table_data = $this->get_table_data(); } $columns = $this->get_columns(); $hidden = ( is_array(get_user_meta( get_current_user_id(), 'managetoplevel_page_myservices_list_tablecolumnshidden', true)) ) ? get_user_meta( get_current_user_id(), 'managetoplevel_page_myservices_list_tablecolumnshidden', true) : array(); $sortable = $this->get_sortable_columns(); $primary = 'name'; $this->_column_headers = array($columns, $hidden, $sortable, $primary); $this->process_bulk_action(); usort($this->table_data, array(&$this, 'usort_reorder')); /* pagination */ $per_page = $this->get_items_per_page('elements_per_page', 10); $current_page = $this->get_pagenum(); $total_items = count($this->table_data); $this->table_data = array_slice($this->table_data, (($current_page - 1) * $per_page), $per_page); $paged = isset($_REQUEST['paged']) ? max(0, intval($_REQUEST['paged']) - 1) : 0; $orderby = (isset($_REQUEST['orderby']) && in_array($_REQUEST['orderby'], array_keys($this->get_sortable_columns()))) ? $_REQUEST['orderby'] : 'ID'; $order = (isset($_REQUEST['order']) && in_array($_REQUEST['order'], array('asc', 'desc'))) ? $_REQUEST['order'] : 'asc'; $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name ORDER BY $orderby $order LIMIT %d OFFSET %d", $per_page, $paged), ARRAY_A); $this->set_pagination_args(array( 'total_items' => $total_items, // total number of items 'per_page' => $per_page, // items to show on a page 'total_pages' => ceil( $total_items / $per_page ) // use ceil to round up )); $this->items = $this->table_data; } // Get table data private function get_table_data($search = '') { global $wpdb; $table = $wpdb->prefix . 'portfolio_myservices'; if ( !empty($search) ) { return $wpdb->get_results( "SELECT * from {$table} WHERE services_name Like '%{$search}%' OR services_icon Like '%{$search}%' OR services_details Like '%{$search}%' ", ARRAY_A ); } else { return $wpdb->get_results( "SELECT * from {$table}", ARRAY_A ); } /* return $wpdb->get_results( "SELECT * from {$table}", ARRAY_A ); */ } function column_default($item, $column_name) { switch ($column_name) { case 'ID': case 'services_name': case 'services_icon': case 'services_details': case 'order': default: return $item[$column_name]; } } function column_cb($item) { return sprintf( '', $item['ID'] ); } protected function get_sortable_columns() { $sortable_columns = array( 'order' => array('order', true) ); return $sortable_columns; } // Sorting function function usort_reorder($a, $b) { // If no sort, default to user_login $orderby = (!empty($_GET['orderby'])) ? $_GET['orderby'] : 'user_login'; // If no order, default to asc $order = (!empty($_GET['order'])) ? $_GET['order'] : 'asc'; // Determine sort order $result = strcmp($a[$orderby], $b[$orderby]); // Send final sort direction to usort return ($order === 'asc') ? $result : -$result; } function column_services_name($item) { $actions = array( 'edit' => sprintf('%s', $item['ID'], __('Edit', 'birkanlabs-portfolio')), 'delete' => sprintf('%s', $_REQUEST['page'], $item['ID'], __('Delete', 'birkanlabs-portfolio')), ); return sprintf('%s %s', $item['services_name'], $this->row_actions($actions) ); } // Adding action links to column function column_college_name($item) { $actions = array( 'edit' => sprintf('%s', $item['ID'], __('Edit', 'birkanlabs-portfolio')), 'delete' => sprintf('%s', $_REQUEST['page'], $item['ID'], __('Delete', 'birkanlabs-portfolio')), ); return sprintf('%s %s', $item['services_name'], $this->row_actions($actions) ); } // To show bulk action dropdown function get_bulk_actions(){ $actions = array( 'delete_all' => __('Delete', 'birkanlabs-portfolio'), ); return $actions; } function process_bulk_action() { global $wpdb; $table = $wpdb->prefix . 'portfolio_myservices'; if ('delete_all' === $this->current_action()) { echo 'deneme3'; $ids = isset($_REQUEST['ID']) ? $_REQUEST['ID'] : array(); if (is_array($ids)) $ids = implode(',', $ids); if (!empty($ids)) { echo 'deneme2'; $wpdb->query("DELETE FROM $table WHERE ID IN($ids)"); } } } } // MY EDUCATİON CLASS class Portfolio_MyEducation_List_Table extends WP_List_Table { // Here we will add our code // Define table columns function get_columns() { $columns = array( 'cb' => '', 'college_name' => __('College Name', 'birkanlabs-portfolio'), 'education_type' => __('Education Type', 'birkanlabs-portfolio'), 'education_years' => __('Education Years', 'birkanlabs-portfolio'), 'education_details' => __('Education Details', 'birkanlabs-portfolio'), 'order' => __('Order', 'birkanlabs-portfolio') ); return $columns; } // define $table_data property private $table_data; // Bind table with columns, data and all function prepare_items() { global $wpdb; $table_name = $wpdb->prefix . 'portfolio_myeducations'; //data if ( isset($_POST['s']) ) { $this->table_data = $this->get_table_data($_POST['s']); } else { $this->table_data = $this->get_table_data(); } $columns = $this->get_columns(); $hidden = ( is_array(get_user_meta( get_current_user_id(), 'managetoplevel_page_education_list_tablecolumnshidden', true)) ) ? get_user_meta( get_current_user_id(), 'managetoplevel_page_education_list_tablecolumnshidden', true) : array(); $sortable = $this->get_sortable_columns(); $primary = 'name'; $this->_column_headers = array($columns, $hidden, $sortable, $primary); $this->process_bulk_action(); usort($this->table_data, array(&$this, 'usort_reorder')); /* pagination */ $per_page = $this->get_items_per_page('elements_per_page', 10); $current_page = $this->get_pagenum(); $total_items = count($this->table_data); $this->table_data = array_slice($this->table_data, (($current_page - 1) * $per_page), $per_page); $paged = isset($_REQUEST['paged']) ? max(0, intval($_REQUEST['paged']) - 1) : 0; $orderby = (isset($_REQUEST['orderby']) && in_array($_REQUEST['orderby'], array_keys($this->get_sortable_columns()))) ? $_REQUEST['orderby'] : 'ID'; $order = (isset($_REQUEST['order']) && in_array($_REQUEST['order'], array('asc', 'desc'))) ? $_REQUEST['order'] : 'asc'; $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name ORDER BY $orderby $order LIMIT %d OFFSET %d", $per_page, $paged), ARRAY_A); $this->set_pagination_args(array( 'total_items' => $total_items, // total number of items 'per_page' => $per_page, // items to show on a page 'total_pages' => ceil( $total_items / $per_page ) // use ceil to round up )); $this->items = $this->table_data; } // Get table data private function get_table_data($search = '') { global $wpdb; $table = $wpdb->prefix . 'portfolio_myeducations'; if ( !empty($search) ) { return $wpdb->get_results( "SELECT * from {$table} WHERE college_name Like '%{$search}%' OR education_type Like '%{$search}%' OR education_years Like '%{$search}%' OR education_details Like '%{$search}%' ", ARRAY_A ); } else { return $wpdb->get_results( "SELECT * from {$table}", ARRAY_A ); } /* return $wpdb->get_results( "SELECT * from {$table}", ARRAY_A ); */ } function column_default($item, $column_name) { switch ($column_name) { case 'ID': case 'college_name': case 'education_type': case 'education_years': case 'education_details': case 'order': default: return $item[$column_name]; } } function column_cb($item) { return sprintf( '', $item['ID'] ); } protected function get_sortable_columns() { $sortable_columns = array( 'order' => array('order', true) ); return $sortable_columns; } // Sorting function function usort_reorder($a, $b) { // If no sort, default to user_login $orderby = (!empty($_GET['orderby'])) ? $_GET['orderby'] : 'user_login'; // If no order, default to asc $order = (!empty($_GET['order'])) ? $_GET['order'] : 'asc'; // Determine sort order $result = strcmp($a[$orderby], $b[$orderby]); // Send final sort direction to usort return ($order === 'asc') ? $result : -$result; } // Adding action links to column function column_college_name($item) { $actions = array( 'edit' => sprintf('%s', $item['ID'], __('Edit', 'birkanlabs-portfolio')), 'delete' => sprintf('%s', $_REQUEST['page'], $item['ID'], __('Delete', 'birkanlabs-portfolio')), ); return sprintf('%s %s', $item['college_name'], $this->row_actions($actions) ); } // To show bulk action dropdown function get_bulk_actions(){ $actions = array( 'delete_all' => __('Delete', 'birkanlabs-portfolio'), ); return $actions; } function process_bulk_action() { echo 'deneme1'; global $wpdb; $table = $wpdb->prefix . 'portfolio_myeducations'; if ('delete_all' === $this->current_action()) { echo 'deneme3'; $ids = isset($_REQUEST['ID']) ? $_REQUEST['ID'] : array(); if (is_array($ids)) $ids = implode(',', $ids); if (!empty($ids)) { echo 'deneme2'; $wpdb->query("DELETE FROM $table WHERE ID IN($ids)"); } } } } //MY WORKS CLASS class Portfolio_MyWorks_List_Table extends WP_List_Table { // Here we will add our code // Define table columns function get_columns() { $columns = array( 'cb' => '', 'company_name' => __('Company Name', 'birkanlabs-portfolio'), 'company_department' => __('Company Department', 'birkanlabs-portfolio'), 'working_years' => __('Working Years', 'birkanlabs-portfolio'), 'working_details' => __('Working Details', 'birkanlabs-portfolio'), 'order' => __('Order', 'birkanlabs-portfolio') ); return $columns; } // define $table_data property private $table_data; // Bind table with columns, data and all function prepare_items() { global $wpdb; $table_name = $wpdb->prefix . 'portfolio_myworks'; //data if ( isset($_POST['s']) ) { $this->table_data = $this->get_table_data($_POST['s']); } else { $this->table_data = $this->get_table_data(); } $columns = $this->get_columns(); $hidden = ( is_array(get_user_meta( get_current_user_id(), 'managetoplevel_page_supporthost_list_tablecolumnshidden', true)) ) ? get_user_meta( get_current_user_id(), 'managetoplevel_page_supporthost_list_tablecolumnshidden', true) : array(); $sortable = $this->get_sortable_columns(); $primary = 'name'; $this->_column_headers = array($columns, $hidden, $sortable, $primary); $this->process_bulk_action(); usort($this->table_data, array(&$this, 'usort_reorder')); /* pagination */ $per_page = $this->get_items_per_page('elements_per_page', 10); $current_page = $this->get_pagenum(); $total_items = count($this->table_data); $this->table_data = array_slice($this->table_data, (($current_page - 1) * $per_page), $per_page); $paged = isset($_REQUEST['paged']) ? max(0, intval($_REQUEST['paged']) - 1) : 0; $orderby = (isset($_REQUEST['orderby']) && in_array($_REQUEST['orderby'], array_keys($this->get_sortable_columns()))) ? $_REQUEST['orderby'] : 'ID'; $order = (isset($_REQUEST['order']) && in_array($_REQUEST['order'], array('asc', 'desc'))) ? $_REQUEST['order'] : 'asc'; $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name ORDER BY $orderby $order LIMIT %d OFFSET %d", $per_page, $paged), ARRAY_A); $this->set_pagination_args(array( 'total_items' => $total_items, // total number of items 'per_page' => $per_page, // items to show on a page 'total_pages' => ceil( $total_items / $per_page ) // use ceil to round up )); $this->items = $this->table_data; } // Get table data private function get_table_data($search = '') { global $wpdb; $table = $wpdb->prefix . 'portfolio_myworks'; if ( !empty($search) ) { return $wpdb->get_results( "SELECT * from {$table} WHERE company_name Like '%{$search}%' OR company_department Like '%{$search}%' OR working_years Like '%{$search}%' OR working_details Like '%{$search}%' ", ARRAY_A ); } else { return $wpdb->get_results( "SELECT * from {$table}", ARRAY_A ); } /* return $wpdb->get_results( "SELECT * from {$table}", ARRAY_A ); */ } function column_default($item, $column_name) { switch ($column_name) { case 'ID': case 'company_name': case 'company_department': case 'working_years': case 'working_details': case 'order': default: return $item[$column_name]; } } function column_cb($item) { return sprintf( '', $item['ID'] ); } protected function get_sortable_columns() { $sortable_columns = array( 'order' => array('order', true) ); return $sortable_columns; } // Sorting function function usort_reorder($a, $b) { // If no sort, default to user_login $orderby = (!empty($_GET['orderby'])) ? $_GET['orderby'] : 'user_login'; // If no order, default to asc $order = (!empty($_GET['order'])) ? $_GET['order'] : 'asc'; // Determine sort order $result = strcmp($a[$orderby], $b[$orderby]); // Send final sort direction to usort return ($order === 'asc') ? $result : -$result; } // Adding action links to column function column_company_name($item) { $actions = array( 'edit' => sprintf('%s', $item['ID'], __('Edit', 'birkanlabs-portfolio')), 'delete' => sprintf('%s', $_REQUEST['page'], $item['ID'], __('Delete', 'birkanlabs-portfolio')), ); return sprintf('%s %s', $item['company_name'], $this->row_actions($actions) ); } // To show bulk action dropdown function get_bulk_actions(){ $actions = array( 'delete_all' => __('Delete', 'birkanlabs-portfolio'), //'draft_all' => __('Move to Draft') ); return $actions; } function process_bulk_action() { echo 'deneme1'; global $wpdb; $table = $wpdb->prefix . 'portfolio_myworks'; if ('delete_all' === $this->current_action()) { echo 'deneme3'; $ids = isset($_REQUEST['ID']) ? $_REQUEST['ID'] : array(); if (is_array($ids)) $ids = implode(',', $ids); if (!empty($ids)) { echo 'deneme2'; $wpdb->query("DELETE FROM $table WHERE ID IN($ids)"); } } } } // projects menu callback function function myprojects_list_init() { // Creating an instance $table = new Portfolio_MyProjects_List_Table(); echo '