| Server IP : 8.134.250.228 / Your IP : 216.73.217.69 Web Server : Apache System : Linux iZ7xv33p9e9ivk7yhmj7ibZ 5.10.134-18.al8.x86_64 #1 SMP Fri Dec 13 16:56:53 CST 2024 x86_64 User : www ( 1000) PHP Version : 8.0.26 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/www.gobluemade.com/wp-content/plugins/wpforms-lite/src/Integrations/ |
Upload File : |
<?php
namespace WPForms\Integrations;
/**
* Class Loader gives ability to track/load all integrations.
*
* @since 1.4.8
*/
class Loader {
/**
* Get the instance of a class and store it in itself.
*
* @since 1.4.8
*/
public static function get_instance() {
static $instance;
if ( ! $instance ) {
$instance = new Loader();
}
return $instance;
}
/**
* Loader constructor.
*
* @since 1.4.8
*/
public function __construct() {
$core_class_names = [
'SMTP\Notifications',
'LiteConnect\LiteConnect',
'Divi\Divi',
'Elementor\Elementor',
'WPCode\WPCode',
'WPCode\RegisterLibrary',
'Gutenberg\FormSelector',
'WPMailSMTP\Notifications',
'WPorg\Translations',
'Stripe\Stripe',
'UncannyAutomator\UncannyAutomator',
'UsageTracking\UsageTracking',
'DefaultThemes\DefaultThemes',
'Translations\Translations',
'DefaultContent\DefaultContent',
'PopupMaker\PopupMaker',
'WooCommerce\Notifications',
'AI\AI',
'ConstantContact\V3\ConstantContact',
'Square\Square',
];
/**
* Filter available integrations.
*
* @since 1.7.0
*
* @param array $core_class_names Array of core class names.
*/
$class_names = (array) apply_filters( 'wpforms_integrations_available', $core_class_names ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName
foreach ( $class_names as $class_name ) {
$integration = $this->register_class( $class_name );
wpforms()->register_instance( $class_name, $integration );
if ( ! empty( $integration ) ) {
$this->load_integration( $integration );
}
}
}
/**
* Load an integration.
*
* @param IntegrationInterface $integration Instance of an integration class.
*
* @since 1.4.8
*/
protected function load_integration( IntegrationInterface $integration ) {
if ( $integration->allow_load() ) {
$integration->load();
}
}
/**
* Register a new class.
*
* @since 1.5.6
*
* @param string $class_name Class name to register.
*
* @return IntegrationInterface Instance of class.
*/
public function register_class( $class_name ) {
$class_name = sanitize_text_field( $class_name );
// Load Lite class if exists.
if ( class_exists( 'WPForms\Lite\Integrations\\' . $class_name ) && ! wpforms()->is_pro() ) {
$class_name = 'WPForms\Lite\Integrations\\' . $class_name;
return new $class_name();
}
// Load Pro class if exists.
if ( class_exists( 'WPForms\Pro\Integrations\\' . $class_name ) && wpforms()->is_pro() ) {
$class_name = 'WPForms\Pro\Integrations\\' . $class_name;
return new $class_name();
}
// Load general class if neither Pro nor Lite class exists.
if ( class_exists( __NAMESPACE__ . '\\' . $class_name ) ) {
$class_name = __NAMESPACE__ . '\\' . $class_name;
return new $class_name();
}
}
}