165 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			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
 | |
| );
 |