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
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.
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
I want to display the data only when it is searched and I want to blank it when the document loaded.
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