Files
2026-07-02 15:54:39 -06:00

61 lines
1.7 KiB
PHP

<?php
/**
* Service Provider for Payment Stale Notification Service
*
* @package Gravity_Forms\Gravity_Forms\Notification
*/
namespace Gravity_Forms\Gravity_Forms\Notification;
use Gravity_Forms\Gravity_Forms\GF_Service_Container;
use Gravity_Forms\Gravity_Forms\GF_Service_Provider;
use Gravity_Forms\Gravity_Forms\Notification\Payment_Stale_Handler;
/**
* Class Payment_Stale_Service_Provider
*
* Service provider for Payment Stale Notification Service.
*/
class Payment_Stale_Service_Provider extends GF_Service_Provider {
const PAYMENT_STALE_HANDLER = 'gf_ajax_handler';
/**
* Includes all related files and adds all containers.
*
* @param GF_Service_Container $container Container singleton object.
*/
public function register( GF_Service_Container $container ) {
require_once plugin_dir_path( __FILE__ ) . 'class-payment-stale-handler.php';
// Registering handler
$container->add(
self::PAYMENT_STALE_HANDLER,
function () {
return new Payment_Stale_Handler();
}
);
}
/**
* Initializes service.
*
* @param GF_Service_Container $container Service Container.
*/
public function init( GF_Service_Container $container ) {
parent::init( $container );
$handler = $container->get( self::PAYMENT_STALE_HANDLER );
// Enables executing the cron job for debugging purposes. Requires a "_execute_stale_payment_cron" query string parameter and GF_DEBUG to be defined as true.
add_action( 'admin_init', [ $handler, 'maybe_execute_cron' ] );
// Handles logic when an entry's payment status changes.
add_action( 'gform_post_payment_status_change', [ $handler, 'handle_payment_status_change' ] );
// Deactivate cron when Gravity Form is uninstalled.
add_action( 'gform_uninstalling', [ $handler, 'deactivate_cron' ] );
}
}