File "AddonCompatibility.php"
Full Path: /home/buyiwexj/public_html/wp-content/plugins/wpforms-lite/src/Integrations/PayPalCommerce/AddonCompatibility.php
File size: 2.06 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace WPForms\Integrations\PayPalCommerce;
/**
* Compatibility with the PayPal addon.
*
* @since 1.10.0
*/
class AddonCompatibility {
/**
* Minimum compatible version of the PayPal addon.
*
* @since 1.10.0
*/
private const MIN_COMPAT_VERSION = '2.0.0';
/**
* Initialization.
*
* @since 1.10.0
*
* @return AddonCompatibility|null
*/
public function init(): ?AddonCompatibility {
return Helpers::is_pro() ? $this : null;
}
/**
* Register hooks.
*
* @since 1.10.0
*/
public function hooks(): void {
// Warn the user about the fact that the not supported addon has been installed.
add_action( 'admin_notices', [ $this, 'display_legacy_addon_notice' ] );
// Also surface it on the Network Admin dashboard, where the super admin (the only
// multisite user who can update plugins) can act on it. Mirrors Requirements::show_notices().
add_action( 'network_admin_notices', [ $this, 'display_legacy_addon_notice' ] );
}
/**
* Check if the supported PayPal addon is active.
*
* @since 1.10.0
*
* @return bool
*/
public function is_supported_version(): bool {
return (
defined( 'WPFORMS_PAYPAL_COMMERCE_VERSION' ) &&
version_compare( WPFORMS_PAYPAL_COMMERCE_VERSION, self::MIN_COMPAT_VERSION, '>=' )
);
}
/**
* Display wp-admin notification saying user first have to update addon to the latest version.
*
* @since 1.10.0
*/
public function display_legacy_addon_notice(): void {
// Only users who can update plugins can act on this "out of date" notice.
// This notice renders via its own `admin_notices` hook (see hooks()), independently of
// Requirements::show_notices(), so this gate is the only thing hiding it from other users.
// Do not remove it as "redundant".
if ( ! current_user_can( 'update_plugins' ) ) {
return;
}
echo '<div class="notice notice-error"><p>';
esc_html_e( 'The WPForms PayPal Commerce addon is out of date. To avoid payment processing issues, please upgrade the WPForms PayPal Commerce addon to the latest version.', 'wpforms-lite' );
echo '</p></div>';
}
}