English (United Kingdom)
Knowledge Base  >  Vik Restaurants  >  Hooks  >  Payment  >  Search Available

apply_filters( 'vikrestaurants_search_available_payment', bool $accept, object $payment, string $group )

Fires while checking whether a payment gateway can be used or not.


Description

Trigger hook to let external plugins apply additional filters while searching for a compatible payment gateway. The filter applies once for each payment gateway separately.

When this hook is triggered, the system already validated the standard conditions and the payment gateway has been approved for the usage.

In case the payment is discarded, it won't be reported within the selection list of payments.


Parameters

$accept

(bool)  Use false to discard the payment gateway.

$payment

(object)  An object holding the details of the payment to check.

$group

(string)  The section in which the customer is paying ("restaurant" or "takeaway").


Example

The example below automatically turns off a specific payment during Summer.

/**
 * Trigger event to let external plugins apply additional filters while 
 * searching for a compatible payment gateway.
 * The hook will be executed only in case all the other filters
 * accepted the payment for the usage.
 *
 * @param  bool    $accept   True to accept the payment, false to discard it.
 * @param  object  $payment  The payment database record.
 * @param  string  $group    The group to check ("restaurant" or "takeaway").
 */
add_filter('vikrestaurants_search_available_payment', function($accept, $payment, $group) {
    if ($payment->id != 5) {
        // go ahead
        return $accept;
    }

    // payment found, get current month
    $mon = (int) date('n');

    // make sure we are not in Summer
    if (in_array($mon, [6, 7, 8]) {
        // discard payment
        $accept = false;
    }

    return $accept;
}, 10, 3);

Changelog

Version Description
1.3 The $group argument has been changed from int to string and the accepted types have been changed accordingly: 1 in "restaurant"; 2 in "takeaway".
Removed the $user and $total arguments as they were out of context.
1.2 Introduced.
Last Update: 2023-12-27
Helpful?
See Also: