PluginProbe
Fluent Support – Helpdesk & Customer Support Ticket System / 2.4.5
Fluent Support – Helpdesk & Customer Support Ticket System v2.4.5
2.4.5 2.4.0 2.3.2 2.3.1 2.3.0 2.2.1 2.2.0 trunk 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.10.5 1.4.0 1.4.1 1.4.2 1.4.5 1.4.6 1.4.7 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 All 69 releases
fluent-support / boot / app.php

app.php in Fluent Support – Helpdesk & Customer Support Ticket System 2.4.5, at boot/app.php

75 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 defined('ABSPATH') or die;
4
5 use FluentSupport\Framework\Foundation\Application;
6 use FluentSupport\App\Hooks\Handlers\ActivationHandler;
7 use FluentSupport\App\Hooks\Handlers\DeactivationHandler;
8
9 return function ($file) {
10
11 require_once FLUENT_SUPPORT_PLUGIN_PATH . 'vendor/woocommerce/action-scheduler/action-scheduler.php';
12
13 register_activation_hook($file, function () {
14 (new ActivationHandler)->handle();
15 });
16
17 register_deactivation_hook($file, function () {
18 (new DeactivationHandler)->handle();
19 });
20
21 add_action('plugins_loaded', function () use ($file) {
22 $application = new Application($file);
23
24 \FluentSupport\Database\DBMigrator::maybeMigrateDBChanges();
25
26 do_action('fluent_support_loaded', $application);
27 do_action('fluent_support_addons_loaded', $application);
28
29 // add_action('init', function () {
30 // load_plugin_textdomain('fluent-support', false, 'fluent-support/language/');
31 // });
32
33 add_action('fluent_support/admin_app_loaded', function () {
34 if (!wp_next_scheduled('fluent_support_hourly_tasks')) {
35 wp_schedule_event(time(), 'hourly', 'fluent_support_hourly_tasks');
36 }
37
38 if (!wp_next_scheduled('fluent_support_daily_tasks')) {
39 wp_schedule_event(time(), 'daily', 'fluent_support_daily_tasks');
40 }
41
42 if (!wp_next_scheduled('fluent_support_weekly_tasks')) {
43 wp_schedule_event(time(), 'weekly', 'fluent_support_weekly_tasks');
44 }
45
46 global $wpdb;
47 $table = esc_sql($wpdb->prefix . 'fs_tickets');
48 // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- $table is sanitized via esc_sql(); no user input.
49 $column_exists = $wpdb->get_var("SHOW COLUMNS FROM `{$table}` LIKE 'serial_number'");
50 if ($column_exists) {
51 // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
52 $has_null = $wpdb->get_var("SELECT id FROM `{$table}` WHERE `serial_number` IS NULL LIMIT 1");
53 if ($has_null) {
54 // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
55 $wpdb->query("UPDATE `{$table}` SET `serial_number` = `id` WHERE `serial_number` IS NULL");
56 }
57 }
58
59 // Half-hourly Action Scheduler job. Only schedule it while something
60 // listens (currently only Pro), otherwise it fires with no callback.
61 $hasListener = has_action('fluent_support_half_hourly');
62 $nextRun = as_next_scheduled_action('fluent_support_half_hourly', [], 'fluent-support');
63
64 if ($hasListener) {
65 if (false === $nextRun) {
66 as_schedule_recurring_action(time(), 1800, 'fluent_support_half_hourly', [], 'fluent-support', true);
67 }
68 } elseif (false !== $nextRun) {
69 as_unschedule_all_actions('fluent_support_half_hourly', [], 'fluent-support');
70 }
71 });
72
73 });
74 };
75