laipower/wp-content/plugins/easy-digital-downloads/includes/admin/settings/settings-compatibility.php

165 lines
8.0 KiB
PHP

<?php
/**
* Settings Compatibility Functions
*
* For managing settings compatibility in a reorganized settings structure.
*
* @package EDD
* @subpackage Settings Compatibility
* @copyright Copyright (c) 2021, Easy Digital Downloads
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
* @since 2.11.4
*/
// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Gives us an area to ensure known compatibility issues with our settings organization by giving us a hook to manage
* and alter hooks and filters that are being run against our primary settings array.
*
* @since 2.11.3
*/
add_action(
'plugins_loaded',
function() {
/**
* Ensures compatibility with EDD 2.11.3 and Recurring payments prior to Recurring being released to move
* settings for 'checkout' from 'misc' to 'payments'.
*/
if ( function_exists( 'edd_recurring_guest_checkout_description' ) && false !== has_filter( 'edd_settings_misc', 'edd_recurring_guest_checkout_description' ) ) {
remove_filter( 'edd_settings_misc', 'edd_recurring_guest_checkout_description', 10 );
add_filter( 'edd_settings_gateways', 'edd_recurring_guest_checkout_description', 10 );
}
/**
* Ensures compatibility with EDD 2.11.4 and Recurring payments prior to Recurring being released to move
* settings for all extension settings to 'payments'.
*/
if ( function_exists( 'edd_recurring_settings_section' ) && false !== has_filter( 'edd_settings_sections_extensions', 'edd_recurring_settings_section' ) ) {
remove_filter( 'edd_settings_sections_extensions', 'edd_recurring_settings_section' );
add_filter( 'edd_settings_sections_gateways', 'edd_recurring_settings_section' );
remove_filter( 'edd_settings_extensions', 'edd_recurring_settings' );
add_filter( 'edd_settings_gateways', 'edd_recurring_settings' );
}
/**
* Ensures compatibility with EDD 2.11.4 and Reviews' settings being in the extensions section.
*/
if ( function_exists( 'edd_reviews' ) ) {
$reviews = edd_reviews();
if ( false !== has_filter( 'edd_settings_sections_extensions', array( $reviews, 'register_reviews_section' ) ) ) {
remove_filter( 'edd_settings_sections_extensions', array( $reviews, 'register_reviews_section' ) );
add_filter( 'edd_settings_sections_marketing', array( $reviews, 'register_reviews_section' ) );
remove_filter( 'edd_settings_extensions', array( $reviews, 'misc_settings' ) );
add_filter( 'edd_settings_marketing', array( $reviews, 'misc_settings' ) );
}
}
/**
* Move the Free Downloads settings to the Marketing section (EDD 2.11.4).
*/
if ( false !== has_filter( 'edd_settings_sections_extensions', 'edd_free_downloads_add_settings_section' ) ) {
remove_filter( 'edd_settings_sections_extensions', 'edd_free_downloads_add_settings_section' );
add_filter( 'edd_settings_sections_marketing', 'edd_free_downloads_add_settings_section' );
remove_filter( 'edd_settings_extensions', 'edd_free_downloads_add_settings' );
add_filter( 'edd_settings_marketing', 'edd_free_downloads_add_settings' );
}
/**
* Move the ActiveCampaign settings to the Marketing section (EDD 2.11.4).
*/
if ( function_exists( 'edd_activecampaign' ) ) {
$activecampaign = edd_activecampaign();
if ( false !== has_filter( 'edd_settings_sections_extensions', array( $activecampaign, 'settings_section' ) ) ) {
remove_filter( 'edd_settings_sections_extensions', array( $activecampaign, 'settings_section' ) );
add_filter( 'edd_settings_sections_marketing', array( $activecampaign, 'settings_section' ) );
remove_filter( 'edd_settings_extensions', array( $activecampaign, 'register_settings' ) );
add_filter( 'edd_settings_marketing', array( $activecampaign, 'register_settings' ) );
}
}
/**
* Move the GetResponse settings to the Marketing section (EDD 2.11.4).
*/
if ( function_exists( 'edd_getresponse_add_settings_section' ) ) {
if ( false !== has_filter( 'edd_settings_sections_extensions', 'edd_getresponse_add_settings_section' ) ) {
$getresponse = new EDD_GetResponse_Newsletter();
remove_filter( 'edd_settings_sections_extensions', 'edd_getresponse_add_settings_section' );
add_filter( 'edd_settings_sections_marketing', 'edd_getresponse_add_settings_section' );
remove_filter( 'edd_settings_extensions', 'edd_getresponse_add_settings' );
add_filter( 'edd_settings_marketing', 'edd_getresponse_add_settings' );
remove_filter( 'edd_settings_extensions_sanitize', array( $getresponse, 'save_settings' ) );
add_filter( 'edd_settings_marketing_sanitize', array( $getresponse, 'save_settings' ) );
remove_filter( 'edd_settings_extensions-getresponse_sanitize', array( $getresponse, 'save_settings' ) );
add_filter( 'edd_settings_marketing-getresponse_sanitize', array( $getresponse, 'save_settings' ) );
}
}
/**
* Move the Campaign Monitor settings to the Marketing section (EDD 2.11.4).
*/
if ( function_exists( 'eddcp_settings_section' ) && false !== has_filter( 'edd_settings_sections_extensions', 'eddcp_settings_section' ) ) {
remove_filter( 'edd_settings_sections_extensions', 'eddcp_settings_section' );
add_filter( 'edd_settings_sections_marketing', 'eddcp_settings_section' );
remove_filter( 'edd_settings_extensions', 'eddcp_add_settings' );
add_filter( 'edd_settings_marketing', 'eddcp_add_settings' );
}
/**
* Move the ConvertKit settings to the Marketing section (EDD 2.11.4).
*/
if ( class_exists( 'EDD_ConvertKit' ) && method_exists( 'EDD_ConvertKit', 'instance' ) ) {
$convertkit = EDD_ConvertKit::instance();
if ( false !== has_filter( 'edd_settings_sections_extensions', array( $convertkit, 'subsection' ) ) ) {
remove_filter( 'edd_settings_sections_extensions', array( $convertkit, 'subsection' ) );
add_filter( 'edd_settings_sections_marketing', array( $convertkit, 'subsection' ) );
remove_filter( 'edd_settings_extensions_sanitize', array( $convertkit, 'save_settings' ) );
add_filter( 'edd_settings_marketing_sanitize', array( $convertkit, 'save_settings' ) );
remove_filter( 'edd_settings_extensions', array( $convertkit, 'settings' ) );
add_filter( 'edd_settings_marketing', array( $convertkit, 'settings' ) );
}
}
/**
* Move the AWeber settings to the Marketing section (EDD 2.11.4).
*/
if ( class_exists( 'EDD_Aweber' ) && method_exists( 'EDD_Aweber', 'instance' ) ) {
$aweber = EDD_Aweber::instance();
if ( false !== has_filter( 'edd_settings_sections_extensions', array( $aweber, 'subsection' ) ) ) {
remove_filter( 'edd_settings_sections_extensions', array( $aweber, 'subsection' ) );
add_filter( 'edd_settings_sections_marketing', array( $aweber, 'subsection' ) );
remove_filter( 'edd_settings_extensions', array( $aweber, 'settings' ) );
add_filter( 'edd_settings_marketing', array( $aweber, 'settings' ) );
}
}
/**
* Move the MailPoet settings to the Marketing section (EDD 2.11.4).
*/
if ( class_exists( 'EDD_MailPoet' ) && method_exists( 'EDD_MailPoet', 'instance' ) ) {
$mailpoet = EDD_MailPoet::instance();
if ( false !== has_filter( 'edd_settings_sections_extensions', array( $mailpoet, 'subsection' ) ) ) {
remove_filter( 'edd_settings_sections_extensions', array( $mailpoet, 'subsection' ) );
add_filter( 'edd_settings_sections_marketing', array( $mailpoet, 'subsection' ) );
remove_filter( 'edd_settings_extensions', array( $mailpoet, 'settings' ) );
add_filter( 'edd_settings_marketing', array( $mailpoet, 'settings' ) );
}
}
/**
* Move the Invoices settings to the Payments section (EDD 2.11.4).
*/
if ( false !== has_filter( 'edd_settings_sections_extensions', 'edd_invoices_register_settings_section' ) ) {
remove_filter( 'edd_settings_sections_extensions', 'edd_invoices_register_settings_section' );
add_filter( 'edd_settings_sections_gateways', 'edd_invoices_register_settings_section', 10 );
remove_filter( 'edd_settings_extensions', 'edd_invoices_register_settings', 1 );
add_filter( 'edd_settings_gateways', 'edd_invoices_register_settings', 1 );
}
},
99
);