Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
jsarnowski/jet-theme-core / compatibility.php
Size: Mime:
<?php
/**
 * Class description
 *
 * @package   package_name
 * @author    Cherry Team
 * @license   GPL-2.0+
 */

// If this file is called directly, abort.
if ( ! defined( 'WPINC' ) ) {
	die;
}

if ( ! class_exists( 'Jet_Theme_Core_Compatibility' ) ) {

	/**
	 * Define Jet_Theme_Core_Compatibility class
	 */
	class Jet_Theme_Core_Compatibility {

		/**
		 * A reference to an instance of this class.
		 *
		 * @since 1.0.0
		 * @var   object
		 */
		private static $instance = null;

		/**
		 * Constructor for the class
		 */
		public function __construct() {

			// WPML compatibility
			if ( defined( 'WPML_ST_VERSION' ) ) {
				add_filter( 'jet-theme-core/get_location_templates/template_id', array( $this, 'set_wpml_translated_location_id' ) );
			}

			// Polylang compatibility
			if ( class_exists( 'Polylang' ) ) {
				add_filter( 'jet-theme-core/get_location_templates/template_id', array( $this, 'set_pll_translated_location_id' ) );
			}
		}

		/**
		 * Set WPML translated location.
		 *
		 * @param $post_id
		 *
		 * @return mixed|void
		 */
		public function set_wpml_translated_location_id( $post_id ) {
			$location_type = get_post_type( $post_id );

			return apply_filters( 'wpml_object_id', $post_id, $location_type, true );
		}

		/**
		 * set_pll_translated_location_id
		 *
		 * @param $post_id
		 *
		 * @return false|int|null
		 */
		public function set_pll_translated_location_id( $post_id ) {

			if ( function_exists( 'pll_get_post' ) ) {

				$translation_post_id = pll_get_post( $post_id );

				if ( null === $translation_post_id ) {
					// the current language is not defined yet
					return $post_id;
				} elseif ( false === $translation_post_id ) {
					//no translation yet
					return $post_id;
				} elseif ( $translation_post_id > 0 ) {
					// return translated post id
					return $translation_post_id;
				}
			}

			return $post_id;
		}

		/**
		 * Returns the instance.
		 *
		 * @since  1.0.0
		 * @return object
		 */
		public static function get_instance() {

			// If the single instance hasn't been set, set it now.
			if ( null == self::$instance ) {
				self::$instance = new self;
			}
			return self::$instance;
		}
	}

}