:SETTING_PRIMARY_CONNECTOR, array() ); if ( ! is_array( $connector_values ) ) { $connector_values = array(); } $connector_values['zoho'] = 'false'; $plugin_data_store->save( Save_Connector_Settings_Endpoint::SETTING_PRIMARY_CONNECTOR, $connector_values ); $connector_values = $data_router->get_plugin_setting( Save_Connector_Settings_Endpoint::SETTING_BACKUP_CONNECTOR, array() ); if ( ! is_array( $connector_values ) ) { $connector_values = array(); } $connector_values['zoho'] = 'false'; $plugin_data_store->save( Save_Connector_Settings_Endpoint::SETTING_BACKUP_CONNECTOR, $connector_values ); $connector_values = $data_router->get_plugin_setting( Save_Connector_Settings_Endpoint::SETTING_ENABLED_CONNECTOR, array() ); if ( ! is_array( $connector_values ) ) { $connector_values = array(); } $connector_values['zoho'] = 'false'; $plugin_data_store->save( Save_Connector_Settings_Endpoint::SETTING_ENABLED_CONNECTOR, $connector_values ); /** * @var Zoho_Oauth_Handler $oauth_handler */ $oauth_handler = $container->get( self::ZOHO_OAUTH_HANDLER ); $return_url = urldecode( $oauth_handler->get_return_url( false ) ); wp_safe_redirect( $return_url ); } ); add_action( 'wp_ajax_' . Cleanup_Data_Endpoint::ACTION_NAME, function () use ( $container ) { $container->get( self::CLEANUP_DATA_ENDPOINT )->handle(); } ); add_action( 'wp_ajax_' . Send_Test_Endpoint::ACTION_NAME, function () use ( $container ) { $container->get( self::SEND_TEST_ENDPOINT )->handle(); } ); add_action( 'wp_ajax_' . Save_Connector_Settings_Endpoint::ACTION_NAME, function () use ( $container ) { $container->get( self::SAVE_CONNECTOR_SETTINGS_ENDPOINT )->handle(); } ); add_action( 'wp_ajax_' . Delete_Connector_Settings_Endpoint::ACTION_NAME, function () use ( $container ) { $container->get( self::DELETE_CONNECTOR_SETTINGS_ENDPOINT )->handle(); } ); add_action( 'wp_ajax_' . Save_Plugin_Settings_Endpoint::ACTION_NAME, function () use ( $container ) { $container->get( self::SAVE_PLUGIN_SETTINGS_ENDPOINT )->handle(); } ); add_action( 'wp_ajax_' . Get_Single_Email_Data_Endpoint::ACTION_NAME, function () use ( $container ) { $container->get( self::GET_SINGLE_EMAIL_DATA_ENDPOINT )->handle(); } ); add_action( 'wp_ajax_' . Check_Background_Tasks_Endpoint::ACTION_NAME, function () use ( $container ) { $container->get( self::CHECK_BACKGROUND_TASKS_ENDPOINT )->handle(); } ); add_action( 'wp_ajax_' . Get_Connector_Emails::ACTION_NAME, function () use ( $container ) { $container->get( self::GET_CONNECTOR_EMAILS_ENDPOINT )->handle(); } ); add_filter( 'gform_localized_script_data_gravitysmtp_admin_config', function ( $data ) { if ( empty( $data['components']['settings']['data']['integrations'] ) && empty( $data['components']['setup_wizard']['data']['integrations'] ) && empty( $data['components']['tools']['data']['integrations'] ) ) { return $data; } $order = array( 'amazon-ses', 'brevo', 'cloudflare', 'elastic_email', 'emailit', 'generic', 'google-gmail', 'mailchimp', 'mailersend', 'mailgun', 'mailjet', 'mailtrap', 'microsoft', 'phpmail', 'postmark', 'sendgrid', 'smtpcom', 'smtp2go', 'sparkpost', 'zoho-mail', ); // todo: setup wizard data should only be injected if should display is true for the app: includes/apps/setup-wizard/config/class-setup-wizard-config.php:18 foreach ( array( 'settings', 'setup_wizard', 'tools' ) as $app ) { if ( empty( $data['components'][ $app ]['data']['integrations'] ) ) { continue; } $integrations = $data['components'][ $app ]['data']['integrations']; usort( $integrations, function ( $a, $b ) use ( $order ) { $a_pos = array_search( $a['id'], $order ); $b_pos = array_search( $b['id'], $order ); if ( $a_pos === $b_pos ) { return 0; } return $a_pos < $b_pos ? - 1 : 1; } ); $data['components'][ $app ]['data']['integrations'] = $integrations; } return $data; } ); } private function register_connector_data() { $is_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX; $page = filter_input( INPUT_GET, 'page' ); $gf_page = filter_input( INPUT_GET, 'gf_page' ); if ( ! $is_ajax && ! is_string( $page ) && $gf_page !== 'preview' ) { return; } if ( ! empty( $page ) ) { $page = htmlspecialchars( $page ); } if ( is_null( $page ) ) { $page = ''; } if ( ! is_null( $gf_page ) ) { $page = 'gravitysmtp-gform-preview'; } $plugin_data_store = $this->container->get( self::DATA_STORE_PLUGIN_OPTS ); $should_display = Booliesh::get( $plugin_data_store->get( Save_Plugin_Settings_Endpoint::PARAM_SETUP_WIZARD_SHOULD_DISPLAY, 'config', 'true' ) ); $should_register = $should_display ? strpos( $page, 'gravitysmtp-' ) !== false : in_array( $page, array( 'gravitysmtp-activity-log', 'gravitysmtp-dashboard', 'gravitysmtp-settings', 'gravitysmtp-suppression', 'gravitysmtp-tools', 'gravitysmtp-gform-preview', ) ); if ( $is_ajax ) { $action = filter_input( INPUT_POST, 'action' ); if ( $action === 'migrate_settings' || $action === 'get_dashboard_data' || $action === 'gravitysmtp_preview_conditional_routing' ) { $should_register = true; } } if ( empty( $should_register ) ) { return; } $connectors = apply_filters( 'gravitysmtp_connector_types', $this->connectors ); $config_collection = $this->container->get( Config_Collection_Service_Provider::CONFIG_COLLECTION ); $parser = $this->container->get( Config_Collection_Service_Provider::DATA_PARSER ); /** * @var Connector_Factory $factory */ $factory = $this->container->get( self::CONNECTOR_FACTORY ); $name_map = array(); $data_map = array(); foreach ( $connectors as $connector_name => $connector ) { $instance = $factory->create( $connector_name ); $config = new Connector_Config( $parser ); $connector_data = $instance->get_data(); $config->set_data( $connector_data ); $config_collection->add_config( $config ); $name_map[ $connector_data['name'] ] = $connector_data['title']; $data_map[ $connector_data['name'] ] = $connector_data; } $this->container->add( self::NAME_MAP, $name_map ); $this->container->add( self::CONNECTOR_DATA_MAP, $data_map ); } }