English (United Kingdom)

do_action_ref_array( 'vikrestaurants_build_all_orders_query', mixed &$querystring $group, array &$options )

Fires while loading the restaurants reservations or the take-away orders to display.


Description

Trigger hook to manipulate at runtime the query used to load the restaurants reservations or the take-away orders to display under the All Orders page in the front-end.

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


Parameters

&$query

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

$group

(string)  The current group ("restaurant" or "takeaway").

&$options

(array)  An array of options.

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

Example

The example below joins the reservations 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  mixed   &$query    Either a query builder or a query string.
 * @param  string  $group     The group to use ("restaurant" or "takeaway").
 * @param  array   &$options  An array of options.
 */
add_action('vikrestaurants_build_all_orders_query', function(&$query, $group, &$options) {
    $db = JFactory::getDbo();

    // select some columns
    $query->select($db->qn(['tpt.column1', 'tpt.column2']));
    // join restaurant reservations to a third-party table
    $query->leftjoin($db->qn('#__myplugin_third_party_table', 'tpt') . ' ON ' . $db->qn('tpt.id_reservation') . ' = ' . $db->qn('r.id'));
    // avoid duplicates
    $query->group($db->qn('r.id'));
}, 10, 3);

Changelog

Version Description
1.3 Introduced.
Last Update: 2023-12-21
Helpful?
See Also:

This website uses cookies

This website uses cookies and similar technologies. Some of these technologies are necessary for the proper functioning of the website (Essential). Other technologies are used to evaluate user behavior (Analysis), to integrate external media or for advertising purposes. If you agree, these technologies are activated. For details, please refer to the privacy policy. From this same page you can also update/revoke your consent. If you do not give your consent, only cookies with essential functions will be activated.

We use technologies from the USA on our website. If you give your consent, you therefore consent at the same time to your data being transferred to the USA. We would like to point out that the USA does not have a level of data protection comparable to that of the EU and that any US company can be obliged by state authorities to hand over your data without you having any effective legal protection against this.