

Get in touch

Download Plugin Now
  • Follow
  • Follow
WP Data Access
  • Download
  • Support
  • Features
  • Pricing
  • Documentation
    • Tool Guide
    • App Builder
    • Data Explorer
    • SQL Query Builder
    • Plugin Settings
    • Legacy Tools
    • Remote Connections
a
M
M
  • Download
  • Support
  • Features
  • Pricing
  • Documentation
    • Tool Guide
    • App Builder
    • Data Explorer
    • SQL Query Builder
    • Plugin Settings
    • Legacy Tools
    • Remote Connections
Download Plugin Now

Legacy Tools

  • Deprecating in the near future

Tables

  • Getting Started
  • Creating and publishing
  • Responsive data tables
  • SEO friendly data tables
  • Adding hyperlinks
  • Extension Manager
  • Style Manager
  • Language settings
  • Styling
    • Style Manager
    • Premium styling
    • Global styling
    • Code Manager Styling
    • Manual styling
    • Styling issues
  • Filters
    • Static filters
    • Interactive filters
      • URL parameters
      • Search Panes
      • Search Builder
      • Search form
      • Advanced search
      • Geolocation search
  • Export & other buttons
    • Export to PDF, CSV, Excel, SQL
    • Print & copy buttons
    • Column selection buttons
    • Custom buttons
  • Advanced features
    • Advanced settings
    • Large tables & performance
    • Progressively SHOW MORE
    • Custom queries
    • Custom Post Types
    • Row grouping
    • Responsive master-detail
    • Master-detail tables
    • Non admin user access
  • Demos & tutorials
    • Demos
    • Tutorials

Forms

  • Data Projects
  • Projects and templates
  • Supported Data Types
  • One-To-Many relationships
  • Many-To-Many relationships
  • Registration page
  • Manage table options
  • Shortcode usage
  • Data Forms
    • Data Forms
    • Overview
    • Project Demo
    • Page Demo
  • Advanced features
    • Adding filters
    • Custom validation
    • Add less/more button
    • User roles
    • Managing roles and users
    • Advanced table options
    • Advanced lookups
    • Front-end toolbar
    • Transfer to other WP site
  • Demos & tutorials
    • Demos
    • Tutorials

Templates

  • Project Templates
  • Creating templates
  • Table Settings
  • Relationships
  • List Table
  • Data Entry
  • Reconcile

Designer

  • Getting started
  • Introduction
  • Basic mode

Dashboards

  • Getting started
  • Dashboards
  • Sharing dashboards
  • Dashboards Widgets
    • Dashboard Widgets
    • Publication Widget
    • Project Widget
    • Chart Widget
    • Custom Code Widget
    • Database Widget
    • Sharing Widgets

Charts

  • Chart Widget

Code

  • Shortcodes
    • Overview
    • wpdataaccess
    • wpdadataproject
    • wpdadataforms
    • wpdadiehard
    • wpdageomap
    • wpdawidget
  • Plugin Variables
    • Environment variables
  • Hooks & filters
    • Overview
    • Hooks
      • Overview
      • wpda_add_search_actions
      • wpda_add_search_filter
      • wpda_before_list_table
      • wpda_after_list_table
      • wpda_wpdataaccess_prepare
    • Filters
      • Overview
      • wpda_column_default
      • wpda_before_simple_form
      • wpda_after_simple_form
      • wpda_construct_where_clause
  • API
    • WP Data Access API
    • Remote database access
    • CRUD Example
    • Extensions
      • Alternative search algorithm
      • Alternative buttons extension
  • Code Manager
    • Overview
    • Write code
    • Share(d) code
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
Share This Article :
  • Facebook
  • X
  • LinkedIn
  • Pinterest
Still stuck? How can we help?

How can we help?

Updated on 2025-02-13
Remote database access

4 Comments

  1. Simon Angel
    Simon Angel on 2020-09-29 at 11:30 pm

    Peter

    I am struggling to publish any part of the WP DATA ACCESS derived tables or projects etc. to the front end website.

    I recognize the importance of security and have been working with data for 25+ years. I am completely stuck.

    Reply
    • Peter Schulz
      Peter Schulz on 2020-09-30 at 2:21 pm

      Hi Simon,

      WP Data Access projects and publications can be added to web pages with shortcodes:
      wpdadiehard (for projects)
      wpdataaccess (for publications)

      More information about these shortcodes can be found here:
      https://wpdataaccess.com/docs/shortcodes/shortcodes/

      Hope this helps!

      Best regards,
      Peter

      Reply
  2. Nishant Pokhrel
    Nishant Pokhrel on 2021-07-01 at 4:43 am

    I want to display the data only when it is searched and I want to blank it when the document loaded.

    Reply
    • Peter Schulz
      Peter Schulz on 2021-07-01 at 8:20 am

      Please have a look at this page Nishant:
      https://wpdataaccess.com/docs/hooks-and-filters/hooks-and-filters/
      You can use this filter to influence the search strategy. When no filter is added you can return a where clause like:
      where 1=2

      You might also want to have a look at the search extention written by Charles Godwin:
      https://github.com/CharlesGodwin/wpda-cwg-extensions

      Finally you could promote me and buy the premium version! 🙂 The premium version contains a number of search features including your requirement. See:
      https://wpdataaccess.com/pricing/

      Hope this helps,
      Peter

      Reply

Submit a Comment Cancel reply

Your email address will not be published. Required fields are marked *

Table of Contents
  • Code Manager
  • Notes
WP Data Access
  • Follow
  • Follow
Quick Links
$

Blogs

$

Tutorials

$

Demos

Get in touch
$

Premium support

$

Free support forum

$

Contact us

Resources


WordPress plugin directory



YouTube tutorials

Copyright © 2025 | All Right Reserves

We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.Ok