PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
1.1.36 1.1.35 1.1.34 1.1.33 1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.9 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.47 1.0.48 1.0.49 1.0.50 1.0.51 1.0.52 1.0.53 1.0.54 1.0.55 1.0.56 1.0.57 1.0.58 1.0.59 1.0.60 1.0.61 1.0.62 1.0.63 1.0.64 1.0.65 1.0.66 1.0.67 1.0.68 1.0.69 1.0.7 1.0.70 1.0.71 1.0.72 1.0.73 1.0.74 1.0.75 1.0.76 1.0.77 1.0.78 1.0.79 1.0.8 1.0.80 1.0.81 1.0.82 1.0.83 1.0.84 1.0.85 1.0.86 1.0.87 1.0.88 1.0.89 1.0.9 1.0.90 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
suretriggers / src / Integrations / fluent-boards / fluent-boards.php
suretriggers / src / Integrations / fluent-boards Last commit date
actions 1 day ago triggers 2 months ago fluent-boards.php 1 day ago
fluent-boards.php
110 lines
1 <?php
2 /**
3 * FluentBoards core integrations file
4 *
5 * @since 1.0.0
6 * @package SureTrigger
7 */
8
9 namespace SureTriggers\Integrations\FluentBoards;
10
11 use SureTriggers\Controllers\IntegrationsController;
12 use SureTriggers\Integrations\Integrations;
13 use SureTriggers\Traits\SingletonLoader;
14
15 /**
16 * Class SureTrigger
17 *
18 * @package SureTriggers\Integrations\FluentBoards
19 */
20 class FluentBoards extends Integrations {
21
22 use SingletonLoader;
23
24 /**
25 * ID
26 *
27 * @var string
28 */
29 protected $id = 'FluentBoards';
30
31 /**
32 * SureTrigger constructor.
33 */
34 public function __construct() {
35 $this->name = __( 'FluentBoards', 'suretriggers' );
36 $this->description = __( 'FluentBoards is the Ultimate Scheduling Solution for WordPress. Harness the power of unlimited appointments, bookings, webinars, events, sales calls, etc., and save time with scheduling automation.', 'suretriggers' );
37 parent::__construct();
38 }
39
40 /**
41 * Is Plugin depended plugin is installed or not.
42 *
43 * @return bool
44 */
45 public function is_plugin_installed() {
46 return defined( 'FLUENT_BOARDS' );
47 }
48
49 /**
50 * Resolve a WP user id to act as, preferring in order: the automation's
51 * user_id, a selected option to prefer (e.g. "Created By"), then the
52 * site's first administrator.
53 *
54 * FluentBoards' own API/permission layer (PermissionManager) gates board
55 * reads/writes on get_current_user_id(). A webhook-triggered automation
56 * run has no logged-in WP user of its own, so those checks silently fail
57 * unless a fallback identity is resolved and applied — see
58 * self::maybe_set_acting_user().
59 *
60 * @param int|string $user_id Automation's configured user id.
61 * @param int|string $preferred_id Selected option to prefer, if any (e.g. "Created By").
62 * @return int
63 */
64 public static function resolve_acting_user_id( $user_id, $preferred_id = '' ) {
65 if ( ! empty( $user_id ) ) {
66 return absint( $user_id );
67 }
68
69 if ( ! empty( $preferred_id ) ) {
70 return absint( $preferred_id );
71 }
72
73 $admins = get_users(
74 [
75 'role' => 'administrator',
76 'orderby' => 'ID',
77 'order' => 'ASC',
78 'number' => 1,
79 'fields' => 'ID',
80 ]
81 );
82
83 return ! empty( $admins ) ? absint( $admins[0] ) : 0;
84 }
85
86 /**
87 * Set the current user to act as, only when no user is already resolved
88 * for this request. A dashboard "Test" run is a cookie-authenticated
89 * REST request and already has a valid current user; forcing another id
90 * there would overwrite a working session instead of fixing a missing one.
91 *
92 * @param int|string $user_id Automation's configured user id.
93 * @param int|string $preferred_id Selected option to prefer, if any (e.g. "Created By").
94 * @return void
95 */
96 public static function maybe_set_acting_user( $user_id, $preferred_id = '' ) {
97 if ( get_current_user_id() ) {
98 return;
99 }
100
101 $acting_user_id = self::resolve_acting_user_id( $user_id, $preferred_id );
102 if ( ! empty( $acting_user_id ) ) {
103 wp_set_current_user( $acting_user_id );
104 }
105 }
106
107 }
108
109 IntegrationsController::register( FluentBoards::class );
110