Sindbad~EG File Manager
<?php
namespace WPMailSMTP;
/**
* Class Conflicts.
*
* @since 1.5.0
*/
class Conflicts {
/**
* List of plugins WP Mail SMTP may be conflicting with.
*
* @since 1.5.0
* @since 2.8.0 Updated the format of the plugins array.
*
* @var array List of plugins WP Mail SMTP may be conflicting with.
*/
public static $plugins = [];
/**
* All detected conflicting plugins.
*
* @since 1.5.0
* @since 3.6.0 Changed from storing a single conflicting plugin info to storing multiple conflicting plugin items.
*
* @var array
*/
protected $conflict = [];
/**
* Constructor.
*
* @since 2.9.0
*/
public function __construct() {
self::$plugins = [
/**
* Url: https://wordpress.org/plugins/easy-wp-smtp/
*/
[
'name' => 'Easy WP SMTP',
'slug' => 'easy-wp-smtp/easy-wp-smtp.php',
'class' => 'EasyWPSMTP',
],
/**
* Closed.
*
* Url: https://wordpress.org/plugins/postman-smtp/
*/
[
'name' => 'Postman SMTP',
'slug' => 'postman-smtp/postman-smtp.php',
'function' => 'postman_start',
],
/**
* Url: https://wordpress.org/plugins/post-smtp/
*/
[
'name' => 'Post SMTP',
'slug' => 'post-smtp/postman-smtp.php',
'function' => 'post_smtp_start',
],
/**
* Url: https://wordpress.org/plugins/wp-mail-bank/
*/
[
'name' => 'Mail Bank',
'slug' => 'wp-mail-bank/wp-mail-bank.php',
'function' => 'mail_bank',
],
/**
* Url: https://wordpress.org/plugins/smtp-mailer/
*/
[
'name' => 'SMTP Mailer',
'slug' => 'smtp-mailer/main.php',
'class' => 'SMTP_MAILER',
],
/**
* Url: https://wordpress.org/plugins/gmail-smtp/
*/
[
'name' => 'Gmail SMTP',
'slug' => 'gmail-smtp/main.php',
'class' => 'GMAIL_SMTP',
],
/**
* Url: https://wordpress.org/plugins/wp-email-smtp/
*/
[
'name' => 'WP Email SMTP',
'class' => 'WP_Email_Smtp',
],
/**
* Url: https://wordpress.org/plugins/smtp-mail/
*/
[
'name' => 'SMTP Mail',
'slug' => 'smtp-mail/index.php',
'function' => 'smtpmail_include',
],
/**
* Url: https://wordpress.org/plugins/bws-smtp/
*/
[
'name' => 'SMTP by BestWebSoft',
'slug' => 'bws-smtp/bws-smtp.php',
'function' => 'bwssmtp_init',
],
/**
* Url: https://wordpress.org/plugins/wp-sendgrid-smtp/
*/
[
'name' => 'WP SendGrid SMTP',
'slug' => 'wp-sendgrid-smtp/wp-sendgrid-smtp.php',
'class' => 'WPSendGrid_SMTP',
],
/**
* Url: https://wordpress.org/plugins/sar-friendly-smtp/
*/
[
'name' => 'SAR Friendly SMTP',
'slug' => 'sar-friendly-smtp/sar-friendly-smtp.php',
'function' => 'sar_friendly_smtp',
],
/**
* Url: https://wordpress.org/plugins/wp-gmail-smtp/
*/
[
'name' => 'WP Gmail SMTP',
'slug' => 'wp-gmail-smtp/wp-gmail-smtp.php',
'class' => 'WPGmail_SMTP',
],
/**
* Url: https://wordpress.org/plugins/cimy-swift-smtp/
*/
[
'name' => 'Cimy Swift SMTP',
'slug' => 'cimy-swift-smtp/cimy_swift_smtp.php',
'function' => 'st_smtp_check_config',
],
/**
* Closed.
*
* Url: https://wordpress.org/plugins/wp-easy-smtp/
*/
[
'name' => 'WP Easy SMTP',
'slug' => 'wp-easy-smtp/wp-easy-smtp.php',
'class' => 'WP_Easy_SMTP',
],
/**
* Url: https://wordpress.org/plugins/wp-mailgun-smtp/
*/
[
'name' => 'WP Mailgun SMTP',
'slug' => 'wp-mailgun-smtp/wp-mailgun-smtp.php',
'class' => 'WPMailgun_SMTP',
],
/**
* Url: https://wordpress.org/plugins/my-smtp-wp/
*/
[
'name' => 'MY SMTP WP',
'slug' => 'my-smtp-wp/my-smtp-wp.php',
'function' => 'my_smtp_wp',
],
/**
* Closed.
*
* Url: https://wordpress.org/plugins/wp-mail-booster/
*/
[
'name' => 'WP Mail Booster',
'slug' => 'wp-mail-booster/wp-mail-booster.php',
'function' => 'mail_booster',
],
/**
* Url: https://wordpress.org/plugins/sendgrid-email-delivery-simplified/
*/
[
'name' => 'SendGrid',
'slug' => 'sendgrid-email-delivery-simplified/wpsendgrid.php',
'class' => 'Sendgrid_Settings',
],
/**
* Url: https://wordpress.org/plugins/wp-mail-smtp-mailer/
*/
[
'name' => 'WP Mail Smtp Mailer',
'slug' => 'wp-mail-smtp-mailer/wp-mail-smtp-mailer.php',
'function' => 'WPMS_php_mailer',
],
/**
* Closed.
*
* Url: https://wordpress.org/plugins/wp-amazon-ses-smtp/
*/
[
'name' => 'WP Amazon SES SMTP',
'slug' => 'wp-amazon-ses-smtp/wp-amazon-ses.php',
'class' => 'WPAmazonSES_SMTP',
],
/**
* Url: https://wordpress.org/plugins/postmark-approved-wordpress-plugin/
*/
[
'name' => 'Postmark (Official)',
'slug' => 'postmark-approved-wordpress-plugin/postmark.php',
'class' => 'Postmark_Mail',
],
/**
* Url: https://wordpress.org/plugins/mailgun/
*/
[
'name' => 'Mailgun',
'slug' => 'mailgun/mailgun.php',
'class' => 'Mailgun',
],
/**
* Url: https://wordpress.org/plugins/sparkpost/
*/
[
'name' => 'SparkPost',
'slug' => 'sparkpost/wordpress-sparkpost.php',
'class' => 'WPSparkPost\SparkPost',
],
/**
* Url: https://wordpress.org/plugins/wp-yahoo-smtp/
*/
[
'name' => 'WP Yahoo SMTP',
'slug' => 'wp-yahoo-smtp/wp-yahoo-smtp.php',
'class' => 'WPYahoo_SMTP',
],
/**
* Url: https://wordpress.org/plugins/wp-ses/
*/
[
'name' => 'WP Offload SES Lite',
'slug' => 'wp-ses/wp-ses.php',
'function' => 'wp_offload_ses_lite_init',
],
/**
* Url: https://deliciousbrains.com/wp-offload-ses/
*/
[
'name' => 'WP Offload SES',
'slug' => 'wp-offload-ses/wp-offload-ses.php',
],
/**
* Url: https://wordpress.org/plugins/turbosmtp/
*/
[
'name' => 'turboSMTP',
'slug' => 'turbosmtp/turbo-smtp-plugin.php',
'function' => 'TSPHPMailer',
],
/**
* Url: https://wordpress.org/plugins/wp-smtp/
*/
[
'name' => 'WP SMTP',
'slug' => 'wp-smtp/wp-smtp.php',
'class' => 'WP_SMTP',
],
/**
* This plugin can be used along with our plugin if disable next option
* WooCommerce -> Settings -> Sendinblue -> Email Options -> Enable Sendinblue to send WooCommerce emails.
*
* Url: https://wordpress.org/plugins/woocommerce-sendinblue-newsletter-subscription
*/
[
'name' => 'Sendinblue - WooCommerce Email Marketing',
'slug' => 'woocommerce-sendinblue-newsletter-subscription/woocommerce-sendinblue.php',
'class' => 'WC_Sendinblue_Integration',
'test' => 'test_wc_sendinblue_integration',
'message' => esc_html__( 'Or disable the Sendinblue email sending setting in WooCommerce > Settings > Sendinblue (tab) > Email Options (tab) > Enable Sendinblue to send WooCommerce emails.', 'wp-mail-smtp' ),
],
/**
* Url: https://wordpress.org/plugins/disable-emails/
*/
[
'name' => 'Disable Emails',
'slug' => 'disable-emails/disable-emails.php',
'class' => '\webaware\disable_emails\Plugin',
],
/**
* Url: https://wordpress.org/plugins/fluent-smtp/
*/
[
'name' => 'FluentSMTP',
'slug' => 'fluent-smtp/fluent-smtp.php',
'function' => 'fluentSmtpInit',
],
/**
* This plugin can be used along with our plugin if enable next option
* Settings > Email template > Sender (tab) -> Do not change email sender by default.
*
* Url: https://wordpress.org/plugins/wp-html-mail/
*/
[
'name' => 'WP HTML Mail - Email Template Designer',
'slug' => 'wp-html-mail/wp-html-mail.php',
'function' => 'Haet_Mail',
'test' => 'test_wp_html_mail_integration',
'message' => esc_html__( 'Or enable "Do not change email sender by default" setting in Settings > Email template > Sender (tab).', 'wp-mail-smtp' ),
],
/**
* This plugin can be used along with our plugin if "SMTP" module is deactivated.
*
* Url: https://wordpress.org/plugins/branda-white-labeling/
*/
[
'name' => 'Branda',
'slug' => 'branda-white-labeling/ultimate-branding.php',
'function' => 'set_ultimate_branding',
'test' => 'test_branda_integration',
'message' => esc_html__( 'Or deactivate "SMTP" module in Branda > Emails > SMTP.', 'wp-mail-smtp' ),
],
/**
* Url: https://wordpress.org/plugins/zoho-mail/
*/
[
'name' => 'Zoho Mail for WordPress',
'slug' => 'zoho-mail/zohoMail.php',
'function' => 'zmail_send_mail_callback',
],
];
}
/**
* Whether we have a conflict with predefined list of plugins.
*
* @since 1.5.0
*
* @return bool
*/
public function is_detected() {
foreach ( self::$plugins as $plugin ) {
if ( $this->is_conflicting_plugin( $plugin ) ) {
$this->conflict[] = $plugin;
}
}
return ! empty( $this->conflict );
}
/**
* Whether we have a conflict with plugin.
*
* @since 2.9.0
*
* @param array $plugin Plugin data.
*
* @return bool
*/
protected function is_conflicting_plugin( $plugin ) {
$conflict = false;
if ( isset( $plugin['slug'] ) && WP::is_plugin_activated( $plugin['slug'] ) ) {
$conflict = true;
} elseif ( isset( $plugin['class'] ) && class_exists( $plugin['class'], false ) ) {
$conflict = true;
} elseif ( isset( $plugin['function'] ) && function_exists( $plugin['function'] ) ) {
$conflict = true;
}
if (
$conflict &&
isset( $plugin['test'] ) &&
is_callable( [ $this, $plugin['test'] ] )
) {
$conflict = call_user_func( [ $this, $plugin['test'] ] );
}
/**
* Filters whether the plugin is conflicting.
*
* @since 2.9.0
*
* @param bool $conflict Whether the plugin is conflicting.
* @param array $plugin {
* Plugin data.
*
* @type string $name Plugin name.
* @type string $slug Plugin slug.
* }
*/
return apply_filters( 'wp_mail_smtp_conflicts_is_conflicting_plugin', $conflict, $plugin );
}
/**
* Add a warning admin message to a user about the conflicting plugin.
*
* @since 1.5.0
*/
public function notify() {
if ( empty( $this->conflict ) ) {
return;
}
foreach ( $this->conflict as $conflict_plugin ) {
WP::add_admin_notice( $this->get_conflict_message( $conflict_plugin ), WP::ADMIN_NOTICE_WARNING );
}
}
/**
* Get the conflicting plugin name is any.
*
* @since 1.5.0
* @since 3.6.0 Added optional conflict_plugin parameter.
*
* @param array $conflict_plugin The conflicting plugin array. If provided then extract the name from the array.
* Else get the name from first conflicting plugin.
*
* @return null|string
*/
public function get_conflict_name( $conflict_plugin = [] ) {
$name = null;
if ( empty( $conflict_plugin ) && isset( $this->conflict[0] ) ) {
$conflict_plugin = $this->conflict[0];
}
if ( ! empty( $conflict_plugin['name'] ) ) {
$name = $conflict_plugin['name'];
}
return $name;
}
/**
* Get the conflicting plugin message.
*
* @since 2.9.0
* @since 3.6.0 Added optional conflict_plugin parameter.
*
* @param array $conflict_plugin The conflicting plugin array. If provided then extract the message from the array.
* Else get the message from first conflicting plugin.
*
* @return string
*/
public function get_conflict_message( $conflict_plugin = [] ) {
if ( empty( $conflict_plugin ) && isset( $this->conflict[0] ) ) {
$conflict_plugin = $this->conflict[0];
}
$message = sprintf( /* translators: %1$s - Plugin name causing conflict. */
esc_html__( 'Heads up! WP Mail SMTP has detected %1$s is activated. Please deactivate %1$s to prevent conflicts.', 'wp-mail-smtp' ),
$this->get_conflict_name( $conflict_plugin )
);
if ( ! empty( $conflict_plugin['message'] ) ) {
$message .= ' ' . $conflict_plugin['message'];
}
return $message;
}
/**
* Returns array containing (names) of all the conflicting plugins.
*
* @since 3.6.0
*
* @return array
*/
public function get_all_conflict_names() {
if ( empty( $this->conflict ) ) {
return [];
}
$names_arr = [];
foreach ( $this->conflict as $conflict_plugin ) {
$names_arr[] = $this->get_conflict_name( $conflict_plugin );
}
return $names_arr;
}
/**
* Check whether we have conflict with "WooCommerce Sendinblue Newsletter Subscription" plugin.
*
* @since 2.9.0
* @since 3.7.0 Added a version compatibility check.
*
* @return bool Returns true if we have conflict otherwise false.
*/
protected function test_wc_sendinblue_integration() {
// Since version `3.0.0` "Sendinblue - WooCommerce Email Marketing" plugin no longer conflicts with WP Mail SMTP.
if ( defined( 'SENDINBLUE_WC_PLUGIN_VERSION' ) && version_compare( SENDINBLUE_WC_PLUGIN_VERSION, '3.0.0', '>=' ) ) {
return false;
}
// Check requirements for test.
if (
! class_exists( 'WC_Sendinblue_Integration', false ) ||
! property_exists( 'WC_Sendinblue_Integration', 'ws_smtp_enabled' )
) {
return true;
}
// Display or hide conflict message after toggle "Enable Sendinblue to send WooCommerce emails" option.
// phpcs:disable WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
if (
! empty( $_POST ) &&
( isset( $_GET['page'] ) && $_GET['page'] === 'wc-settings' ) &&
( isset( $_GET['tab'] ) && $_GET['tab'] === 'sendinblue' ) &&
( isset( $_GET['section'] ) && $_GET['section'] === 'email_options' )
) {
return isset( $_POST['ws_smtp_enable'] );
}
// phpcs:enable
return \WC_Sendinblue_Integration::$ws_smtp_enabled === 'yes';
}
/**
* Check whether we have conflict with "WP HTML Mail - Email Template Designer" plugin.
*
* @since 3.3.0
*
* @return bool Returns true if we have conflict otherwise false.
*/
protected function test_wp_html_mail_integration() {
// Check requirements for test.
if (
! function_exists( 'Haet_Mail' ) ||
! is_object( Haet_Mail() ) ||
! method_exists( Haet_Mail(), 'get_options' )
) {
return true;
}
$options = Haet_Mail()->get_options();
return ! isset( $options['disable_sender'] ) || ! $options['disable_sender'];
}
/**
* Check whether we have conflict with "Branda" plugin.
*
* @since 3.5.0
*
* @return bool Returns true if we have conflict otherwise false.
*/
protected function test_branda_integration() {
// Check requirements for test.
if ( ! function_exists( 'branda_is_active_module' ) ) {
return true;
}
return branda_is_active_module( 'emails/smtp.php' );
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists