diff --git a/php/datasource/class-fieldmanager-datasource-post.php b/php/datasource/class-fieldmanager-datasource-post.php index 3c5f5ffeb6..2253979df6 100644 --- a/php/datasource/class-fieldmanager-datasource-post.php +++ b/php/datasource/class-fieldmanager-datasource-post.php @@ -178,7 +178,16 @@ public function get_items( $fragment = null ) { } $ret[ $p->ID ] = $p->post_title . $date_pad; } - return $ret; + + /** + * Filter items to be returned + * + * @param array $ret Available options, filtered by fragment. + * @param array $posts Found posts. + * @param object $this Datasource object. + * @param string $fragment Search term. + */ + return apply_filters( 'fm_datasource_post_get_items', $ret, $posts, $this, $fragment ); } /** diff --git a/php/datasource/class-fieldmanager-datasource-term.php b/php/datasource/class-fieldmanager-datasource-term.php index 52520f9e18..fa0c07737d 100644 --- a/php/datasource/class-fieldmanager-datasource-term.php +++ b/php/datasource/class-fieldmanager-datasource-term.php @@ -338,6 +338,15 @@ public function get_items( $fragment = null ) { $key = $this->store_term_taxonomy_id ? $term->term_taxonomy_id : $term->term_id; $stack[ $key ] = $term->name; } + + /** + * Filter items to be returned + * + * @param array $stack Term list, filtered by fragment. + * @param array $terms Found terms. + * @param object $this Datasource object. + * @param string $fragment Search term. + */ return apply_filters( 'fm_datasource_term_get_items', $stack, $terms, $this, $fragment ); } diff --git a/php/datasource/class-fieldmanager-datasource-user.php b/php/datasource/class-fieldmanager-datasource-user.php index d917ad0cf0..5f4f6bc733 100644 --- a/php/datasource/class-fieldmanager-datasource-user.php +++ b/php/datasource/class-fieldmanager-datasource-user.php @@ -171,7 +171,15 @@ public function get_items( $fragment = null ) { $ret[ $u->{$this->store_property} ] = $u->{$this->display_property}; } - return $ret; + /** + * Filter items to be returned + * + * @param array $ret User list, filtered by fragment. + * @param array $users Found users. + * @param object $this Datasource object. + * @param string $fragment Search term. + */ + return apply_filters( 'fm_datasource_user_get_items', $ret, $users, $this, $fragment ); } /** diff --git a/php/datasource/class-fieldmanager-datasource.php b/php/datasource/class-fieldmanager-datasource.php index 82f4f3e07b..e53dd184ae 100644 --- a/php/datasource/class-fieldmanager-datasource.php +++ b/php/datasource/class-fieldmanager-datasource.php @@ -148,7 +148,16 @@ public function get_items( $fragment = null ) { $ret[ $k ] = $v; } } - return $ret; + + /** + * Filter items to be returned + * + * @param array $ret Available options, filtered by fragment. + * @param array $this->options All available options. + * @param object $this Datasource object. + * @param string $fragment Search term. + */ + return apply_filters( 'fm_datasource_get_items', $ret, $this->options, $this, $fragment ); } /** @@ -180,7 +189,7 @@ public function get_items_for_ajax( $fragment = null ) { ); } - return $return; + return apply_filters( 'fm_datasource_get_items_for_ajax', $return, $items, $this, $fragment ); } /**