FileMaster
Search
Toggle Dark Mode
Home
/
.
/
wp-content
/
plugins
/
surerank
/
inc
/
third-party-integrations
/
multilingual
Edit File: init.php
<?php /** * Multilingual Integration Loader * * Initializes multilingual sitemap support for translation plugins. * * @package surerank * @since 1.6.3 */ namespace SureRank\Inc\ThirdPartyIntegrations\Multilingual; if ( ! defined( 'ABSPATH' ) ) { exit; } use SureRank\Inc\Functions\Cron; use SureRank\Inc\Sitemap\Checksum; use SureRank\Inc\Traits\Get_Instance; /** * Multilingual Init Class * * @since 1.6.3 */ class Init { use Get_Instance; /** * Constructor * * @since 1.6.3 */ public function __construct() { add_action( 'activated_plugin', [ $this, 'on_plugin_activation' ], 10, 1 ); add_action( 'deactivated_plugin', [ $this, 'on_plugin_deactivation' ], 10, 1 ); if ( ! $this->has_translation_plugin() ) { return; } $this->init_classes(); } /** * Handle plugin activation * * @since 1.6.3 * @param string $plugin Plugin basename. * @return void */ public function on_plugin_activation( $plugin ) { if ( $this->is_translation_plugin( $plugin ) ) { $this->trigger_sitemap_regeneration(); } } /** * Handle plugin deactivation * * @since 1.6.3 * @param string $plugin Plugin basename. * @return void */ public function on_plugin_deactivation( $plugin ) { if ( $this->is_translation_plugin( $plugin ) ) { $this->trigger_sitemap_regeneration(); } } /** * Register SureRank settings as translatable options with Polylang. * * This allows Polylang's String Translation screen to display and * translate SureRank settings per language. * * @since 1.6.6 * @return void */ public function register_polylang_string_translations() { if ( ! class_exists( 'PLL_Translate_Option' ) ) { return; } new \PLL_Translate_Option( SURERANK_SETTINGS, [ '*' => 1 ], [ 'context' => 'SureRank' ] ); } /** * Check if translation plugin is active * * @since 1.6.3 * @return bool */ private function has_translation_plugin(): bool { return defined( 'ICL_SITEPRESS_VERSION' ) || function_exists( 'pll_default_language' ) || class_exists( 'TRP_Translate_Press' ); } /** * Initialize classes * * @since 1.6.3 * @return void */ private function init_classes() { Translation_Manager::get_instance(); Hreflang_Generator::get_instance(); if ( function_exists( 'pll_default_language' ) ) { $this->register_polylang_string_translations(); } } /** * Check if plugin is a translation plugin * * @since 1.6.3 * @param string $plugin Plugin basename. * @return bool */ private function is_translation_plugin( $plugin ) { $translation_plugins = [ 'sitepress-multilingual-cms/sitepress.php', 'polylang/polylang.php', 'polylang-pro/polylang.php', 'translatepress-multilingual/index.php', ]; return in_array( $plugin, $translation_plugins, true ); } /** * Trigger sitemap regeneration * * @since 1.6.3 * @return void */ private function trigger_sitemap_regeneration() { if ( class_exists( 'SureRank\\Inc\\Sitemap\\Checksum' ) ) { Checksum::get_instance()->update_checksum(); } if ( class_exists( 'SureRank\\Inc\\Functions\\Cron' ) ) { wp_schedule_single_event( time() + 10, Cron::SITEMAP_CRON_EVENT, [ 'yes' ] ); } } }
Save
Back