English (United Kingdom)

apply_filters_ref_array( 'vikappointments_build_packages_orders_query', bool $status, mixed &$queryarray &$options )

Fires while loading the packages orders to display.


Description

Trigger hook to manipulate at runtime the query used to load the items to display under the Packages Orders page in the front-end.

Third party plugins can extend the query by applying further conditions or selecting additional data.

The Packages Orders page can be accessed from the All Orders page, by clicking the Purchased Packages button.


Parameters

$status

(bool)  True on success, false otherwise.

&$query

(mixed)  Either a query builder object or a plain string.

&$options

(array)  An array of options.

  • start - the query offset to handle the pagination;
  • limit - the maximum number of orders to display per page.

Example

The example below joins the orders table to a third-party table to access further data.

/**
 * Trigger hook to manipulate the query at runtime. Third party plugins
 * can extend the query by applying further conditions or selecting
 * additional data.
 *
 * @param  boolean  $status    True on success, false otherwise.
 * @param  mixed    &$query    Either a query builder or a query string.
 * @param  array    &$options  An array of options.
 */
add_filter('vikappointments_build_packages_orders_query', function($status, &$query, &$options)
{
    $dbo = JFactory::getDbo();

    // select some columns
    $query->select($dbo->qn(['tpt.column1', 'tpt.column2']));
    // join orders to a third-party table
    $query->leftjoin($dbo->qn('#__myplugin_third_party_table', 'tpt') . ' ON ' . $dbo->qn('tpt.id_order') . ' = ' . $dbo->qn('o.id'));
    // avoid duplicates
    $query->group($dbo->qn('o.id'));

    return true;
}, 10, 3);

Changelog

Version Description
1.2 Introduced.
Last Update: 2021-07-30
Helpful?
See Also: