

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

wpda_construct_where_clause

WP Data Access version 3 allows you to add your own search logic through a filter named wpda_construct_where_clause. The search logic provided through this filter is used in all tools. To allow developers to add search logic for specific tables or columns only, the filter allows to return a null value to indicate that the plugin should continue with its own default search logic.

Example search on text columns #

function my_search_logic( $where, $schema_name, $table_name, $columns, $search ) {
	global $wpdb;
	$where_columns = [];
	foreach ( $columns as $column ) {
		if ( 'string' === WPDA::get_type( $column['data_type'] ) ) {
			$where_columns[] = $wpdb->prepare(
				"`{$column['column_name']}` like '%s'", '%' . esc_attr( $search ) . '%' 
			); // WPCS: unprepared SQL OK.
		}
	}
	if ( 0 === count( $where_columns ) ) {
		return ' (1=2) ';
	}
	return ' (' . implode( ' or ', $where_columns ) . ') ';
}
add_filter('wpda_construct_where_clause','my_search_logic',10,5);

Example search on specific table #

function my_search_logic( $where, $schema_name, $table_name, $columns, $search ) {
	if ( 'my_schema' === $schema_name && 'my_table' === $table_name ) {
		// You table specific logic goes here...
		return $my_where_clause;
	} else {
		return null; // Use default plugin search logic for all other tables
	}
}
add_filter('wpda_construct_where_clause','my_search_logic',10,5);
Check if parameter $where already has a value and ADD your own logic if it has. DO NOT OVERWRITE! On parent-child pages you might lose the connection between parent and child tables.

Parameters #

$columns

Associative array containing the following column info taken from the data dictionary:
$columns[‘column_name’] => information_schema.tables.column_name
$columns[‘data_type’] => information_schema.tables.data_type
$columns[‘extra’] => information_schema.tables.extra
$columns[‘column_type’ => information_schema.tables.column_type
$columns[‘is_nullable’ => information_schema.tables.is_nullable
$columns[‘column_default’] => information_schema.tables.column_default

$search

Search string entered by user

$table_name

Table name for which the search logic is provided

$schema_name

Schema in which the table is stored

Thank you Charles! :-)

Share This Article :
  • Facebook
  • X
  • LinkedIn
  • Pinterest
Still stuck? How can we help?

How can we help?

Updated on 2025-02-13
wpda_after_simple_form

Submit a Comment Cancel reply

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

Table of Contents
  • Example search on text columns
  • Example search on specific table
  • Parameters
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