View Categories

CRUD Example

The following PHP code creates a fully functional CRUD page for table employees stored in a remote database named rdb:classicmodels. The page is added to the WordPress dashboard menu.

<?php

/*
Example CRUD page: Employee Administration
*/

// (1) Wait untill all plugins are loaded to ensure WP Data Access classes are loaded

add_action( 'plugins_loaded', function() {
	add_action( 'admin_menu', 'add_app_menu' );
} );

// (1.a) Code Manager premium users just need to call the add_wpda_menu function

// add_wpda_menu();

// (2) Add menu

function add_wpda_menu() {
	add_action( 'admin_menu', 'add_app_menu' );
}

// (3) Add page

function add_app_menu() {
	if ( ! class_exists( 'WPDataAccess\List_Table\WPDA_List_View' ) ) {
		// Is WP Data Access deactivated or uninstalled?
		return;
	}
	
	// (3.a) Main menu
	add_menu_page(
		'Employees',
		'Employees',				
		'manage_options',
		'wpda_wpdp_employee_admin', // Use prefix wpda_wpdp_ to load wpda css and js
		null,
		'dashicons-database-add',
		999999999
	);

	// (3.b) Sub menu
	$wpda_table_list_menu = add_submenu_page(
		'employee_admin',
		'Employees',
		'employee_admin',
		'manage_options',
		'wpda_wpdp_employee_admin',
		'show_page'
	);

	// (3.c) Instantiate class WPDA_List_View (configures screen options)
	global $wpda_table_list_view;
	$wpda_table_list_view = new WPDataAccess\List_Table\WPDA_List_View(
		[
			'page_hook_suffix'	=> $wpda_table_list_menu,	// Handle to sub menu
			'wpdaschema_name'	=> 'rdb:classicmodels',		// Use remote connection (also supports SQL Server, MS Access, PostgreSQL and other RDBMS)
			'table_name'		=> 'employees'			// Table emp is stored in my WordPress database
		]
	);
}

// (4) Show page

function show_page(){
	global $wpda_table_list_view;
	$wpda_table_list_view->show();
}

To use a table stored in the WordPress database, just remove the wpdaschema_name argument and change the table_name argument to select the correct table.

	// (3.c) Instantiate class WPDA_List_View (configures screen options)
	global $wpda_table_list_view;
	$wpda_table_list_view = new WPDataAccess\List_Table\WPDA_List_View(
		[
			'page_hook_suffix'	=> $wpda_table_list_menu,
			'table_name'		=> 'emp'
		]
	);

Code Manager #

Code Manager premium users need to copy the example code into a back-end PHP code block and uncomment 1.a.

Notes #

  • The API works similar for SQL Server, MS Access, PostgreSQL and other supported RDBMS