urn $accessToken; } $oembedTokenData = get_option( 'cff_oembed_token', [] ); if ( ! $oembedTokenData || empty( $oembedTokenData['access_token'] ) ) { $accessToken = false; return $accessToken; } $sbFacebookDataEncryptionInstance = new \CustomFacebookFeed\SB_Facebook_Data_Encryption(); $accessToken = $sbFacebookDataEncryptionInstance->maybe_decrypt( $oembedTokenData['access_token'] ); return $accessToken; } /** * Returns the homepage URL for a language code. * * @since 4.2.1 * * @param string|int $identifier The language code or the post id to return the url. * @return string The home URL. */ public function wpmlHomeUrl( $identifier ) { foreach ( $this->wpmlHomePages() as $langCode => $wpmlHomePage ) { if ( ( is_string( $identifier ) && $langCode === $identifier ) || ( is_numeric( $identifier ) && $wpmlHomePage['id'] === $identifier ) ) { return $wpmlHomePage['url']; } } return ''; } /** * Returns the homepage IDs. * * @since 4.2.1 * * @return array An array of home page ids. */ public function wpmlHomePages() { global $sitepress; static $homePages = []; if ( ! $this->isWpmlActive() || empty( $sitepress ) || ! method_exists( $sitepress, 'language_url' ) ) { return $homePages; } if ( empty( $homePages ) ) { $languages = apply_filters( 'wpml_active_languages', [] ); $homePageId = (int) get_option( 'page_on_front' ); foreach ( $languages as $language ) { $homePages[ $language['code'] ] = [ 'id' => apply_filters( 'wpml_object_id', $homePageId, 'page', false, $language['code'] ), 'url' => $sitepress->language_url( $language['code'] ) ]; } } return $homePages; } /** * Returns if the post id os a WPML home page. * * @since 4.2.1 * * @param int $postId The post ID. * @return bool Is the post id a home page. */ public function wpmlIsHomePage( $postId ) { foreach ( $this->wpmlHomePages() as $wpmlHomePage ) { if ( $wpmlHomePage['id'] === $postId ) { return true; } } return false; } /** * Returns the WPML url format. * * @since 4.2.8 * * @return string The format. */ public function getWpmlUrlFormat() { global $sitepress; if ( ! $this->isWpmlActive() || empty( $sitepress ) || ! method_exists( $sitepress, 'get_setting' ) ) { return ''; } switch ( $sitepress->get_setting( 'language_negotiation_type' ) ) { case WPML_LANGUAGE_NEGOTIATION_TYPE_DIRECTORY: case 1: return 'directory'; case WPML_LANGUAGE_NEGOTIATION_TYPE_DOMAIN: case 2: return 'domain'; case WPML_LANGUAGE_NEGOTIATION_TYPE_PARAMETER: case 3: return 'parameter'; default: return ''; } } /** * Checks whether the WooCommerce Follow Up Emails plugin is active. * * @since 4.2.2 * * @return bool Whether the plugin is active. */ public function isWooCommerceFollowupEmailsActive() { $isActive = defined( 'FUE_VERSION' ) || is_plugin_active( 'woocommerce-follow-up-emails/woocommerce-follow-up-emails.php' ); return $isActive; } /** * Checks if the current page is an AMP page. * This function is only effective if called after the `wp` action. * * @since 4.2.3 * * @param string $pluginName The name of the AMP plugin to check for (optional). * @return bool Whether the current page is an AMP page. */ public function isAmpPage( $pluginName = '' ) { // Official AMP plugin. if ( 'amp' === $pluginName ) { // If we're checking for the AMP page plugin specifically, return early if it's not active. // Otherwise, we'll return true if AMP for WP is enabled because the helper method doesn't distinguish between the two. if ( ! defined( 'AMP__VERSION' ) ) { return false; } $options = get_option( 'amp-options' ); if ( ! empty( $options['theme_support'] ) && 'standard' === strtolower( $options['theme_support'] ) ) { return true; } } return $this->isAmpPageHelper(); } /** * Helper function for {@see isAmpPage()}. * Checks if the current page is an AMP page. * * @since 4.2.4 * * @return bool Whether the current page is an AMP page. */ private function isAmpPageHelper() { // First check for the existence of any AMP plugin functions. Bail early if none are found, and prevent false positives. if ( ! function_exists( 'amp_is_request' ) && ! function_exists( 'is_amp_endpoint' ) && ! function_exists( 'ampforwp_is_amp_endpoint' ) && ! function_exists( 'is_amp_wp' ) ) { // If none of the AMP plugin functions are found, return false and allow compatibility with custom implementations. return apply_filters( 'aioseo_is_amp_page', false ); } // AMP plugin requires the `wp` action to be called to function properly, otherwise, it will throw warnings. // https://github.com/awesomemotive/aioseo/issues/6056 if ( did_action( 'wp' ) ) { // Check for the "AMP" plugin. if ( function_exists( 'amp_is_request' ) ) { return (bool) amp_is_request(); } // Check for the "AMP" plugin (`is_amp_endpoint()` is deprecated). if ( function_exists( 'is_amp_endpoint' ) ) { return (bool) is_amp_endpoint(); } // Check for the "AMP for WP – Accelerated Mobile Pages" plugin. if ( function_exists( 'ampforwp_is_amp_endpoint' ) ) { return (bool) ampforwp_is_amp_endpoint(); } // Check for the "AMP WP" plugin. if ( function_exists( 'is_amp_wp' ) ) { return (bool) is_amp_wp(); } } return false; } /** * If we're in a LearnPress lesson page, return the lesson ID. * * @since 4.3.1 * * @return int|false */ public function getLearnPressLesson() { global $lp_course_item; if ( $lp_course_item && method_exists( $lp_course_item, 'get_id' ) ) { return $lp_course_item->get_id(); } return false; } /** * Set a flag to indicate Divi whether it is processing internal content or not. * * @since 4.4.3 * * @param null|bool $flag The flag value. * @return null|bool The previous flag value to reset it later. */ public function setDiviInternalRendering( $flag ) { if ( ! defined( 'ET_BUILDER_VERSION' ) ) { return null; } global $et_pb_rendering_column_content; $originalValue = $et_pb_rendering_column_content; $et_pb_rendering_column_content = $flag; return $originalValue; } /** * Checks whether the current request is being done by a crawler from Yandex. * * @since 4.4.0 * * @return bool Whether the current request is being done by a crawler from Yandex. */ public function isYandexUserAgent() { if ( ! isset( $_SERVER['HTTP_USER_AGENT'] ) ) { return false; } return preg_match( '#.*Yandex.*#', $_SERVER['HTTP_USER_AGENT'] ); } }