PluginProbe
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder / 6.2.2
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder v6.2.2
6.2.14 6.2.13 6.2.12 6.2.10 6.2.11 6.2.9 6.2.8 6.2.7 6.2.6 6.2.5 6.2.4 6.2.3 6.2.2 3.6.22 3.6.31 3.6.40 3.6.41 3.6.42 3.6.50 3.6.51 3.6.60 3.6.61 3.6.62 3.6.64 3.6.65 All 196 releases
fluentform / app / Services / Libraries / action-scheduler / classes / ActionScheduler_SystemInformation.php

ActionScheduler_SystemInformation.php in Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder 6.2.2, at app/Services/Libraries/action-scheduler/classes/ActionScheduler_SystemInformation.php

94 lines 2.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Provides information about active and registered instances of Action Scheduler.
5 */
6 class ActionScheduler_SystemInformation {
7 /**
8 * Returns information about the plugin or theme which contains the current active version
9 * of Action Scheduler.
10 *
11 * If this cannot be determined, or if Action Scheduler is being loaded via some other
12 * method, then it will return an empty array. Otherwise, if populated, the array will
13 * look like the following:
14 *
15 * [
16 * 'type' => 'plugin', # or 'theme'
17 * 'name' => 'Name',
18 * ]
19 *
20 * @return array
21 */
22 public static function active_source(): array {
23 $plugins = get_plugins();
24 $plugin_files = array_keys( $plugins );
25
26 foreach ( $plugin_files as $plugin_file ) {
27 $plugin_path = trailingslashit( WP_PLUGIN_DIR ) . dirname( $plugin_file );
28 $plugin_file = trailingslashit( WP_PLUGIN_DIR ) . $plugin_file;
29
30 if ( 0 !== strpos( dirname( __DIR__ ), $plugin_path ) ) {
31 continue;
32 }
33
34 $plugin_data = get_plugin_data( $plugin_file );
35
36 if ( ! is_array( $plugin_data ) || empty( $plugin_data['Name'] ) ) {
37 continue;
38 }
39
40 return array(
41 'type' => 'plugin',
42 'name' => $plugin_data['Name'],
43 );
44 }
45
46 $themes = (array) search_theme_directories();
47
48 foreach ( $themes as $slug => $data ) {
49 $needle = trailingslashit( $data['theme_root'] ) . $slug . '/';
50
51 if ( 0 !== strpos( __FILE__, $needle ) ) {
52 continue;
53 }
54
55 $theme = wp_get_theme( $slug );
56
57 if ( ! is_object( $theme ) || ! is_a( $theme, \WP_Theme::class ) ) {
58 continue;
59 }
60
61 return array(
62 'type' => 'theme',
63 // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
64 'name' => $theme->Name,
65 );
66 }
67
68 return array();
69 }
70
71 /**
72 * Returns the directory path for the currently active installation of Action Scheduler.
73 *
74 * @return string
75 */
76 public static function active_source_path(): string {
77 return trailingslashit( dirname( __DIR__ ) );
78 }
79
80 /**
81 * Get registered sources.
82 *
83 * It is not always possible to obtain this information. For instance, if earlier versions (<=3.9.0) of
84 * Action Scheduler register themselves first, then the necessary data about registered sources will
85 * not be available.
86 *
87 * @return array<string, string>
88 */
89 public static function get_sources() {
90 $versions = ActionScheduler_Versions::instance();
91 return method_exists( $versions, 'get_sources' ) ? $versions->get_sources() : array();
92 }
93 }
94