📁 File Manager Pro
v10.0.3 | PHP: 8.2.31
Server: LiteSpeed
2026-07-04 06:28:20
📂
/ (Root)
/
home
/
orkouolp
/
web
/
orkofarms.com
/
wp-content
/
themes
/
martfury
/
inc
📍 /home/orkouolp/web/orkofarms.com/wp-content/themes/martfury/inc
🔄 Refresh
✏️
Editing: wpml.php
Writable
<?php /** * WPML compatibility functions */ class Martfury_WPML { const HOT_WORDS_DOMAIN = 'Search Hot Words'; const HOT_WORDS_PREFIX = 'hot_word_'; const CATALOG_PRODUCT_CAROUSEL_DOMAIN = 'Catalog Layout 1 - Product Carousel'; const CATALOG_PRODUCT_CAROUSEL_PREFIX = 'catalog_1_product_carousel_'; const CATALOG_PRODUCT_CAROUSEL_2_DOMAIN = 'Catalog Layout 2 - Product Carousel'; const CATALOG_PRODUCT_CAROUSEL_2_PREFIX = 'catalog_2_product_carousel_'; const CATALOG_PRODUCT_CAROUSEL_3_DOMAIN = 'Catalog Layout 3 - Product Carousel'; const CATALOG_PRODUCT_CAROUSEL_3_PREFIX = 'catalog_3_product_carousel_'; /** * The single instance of the class * * @var Martfury_WPML */ protected static $instance = null; /** * Main instance * * @return Martfury_WPML */ public static function instance() { if ( null == self::$instance ) { self::$instance = new self(); } return self::$instance; } /** * Constructor */ public function __construct() { add_action( 'customize_save_after', array( $this, 'register_strings' ) ); add_filter( 'martfury_search_hot_words', array( $this, 'translate_search_hot_words' ) ); add_filter( 'martfury_catalog_products_carousel_1', array( $this, 'translate_catalog_product_carousel' ) ); add_filter( 'martfury_catalog_products_carousel_2', array( $this, 'translate_catalog_product_carousel_2' ) ); add_filter( 'martfury_catalog_products_carousel_3', array( $this, 'translate_catalog_product_carousel_3' ) ); add_filter( 'wpml_pb_shortcode_encode', array( $this, 'shortcode_encode_urlencoded_json' ), 10, 3 ); add_filter( 'wpml_pb_shortcode_decode', array( $this, 'shortcode_decode_urlencoded_json' ), 10, 3 ); } /** * Register special theme strings for translation * * @return void */ public function register_strings() { $this->register_hot_word_strings(); $this->register_catalog_product_carousel_strings(); $this->register_catalog_product_carousel_2_strings(); $this->register_catalog_product_carousel_3_strings(); } /** * Register header search links for translation */ public function register_hot_word_strings() { $links = (array)martfury_get_option( 'header_hot_words' ); if ( empty( $links ) ) { return; } foreach ( $links as $id => $link ) { $count = $id + 1; do_action( 'wpml_register_single_string', self::HOT_WORDS_DOMAIN, self::HOT_WORDS_PREFIX . $count . '_text', $link['text'] ); do_action( 'wpml_register_single_string', self::HOT_WORDS_DOMAIN, self::HOT_WORDS_PREFIX . $count . '_link', $link['link'] ); } } /** * Apply the WPML translation for search quick links * * @param array $links * * @return array */ public function translate_search_hot_words( $links ) { if ( empty( $links ) ) { return $links; } foreach ( $links as $id => $link ) { $count = $id + 1; $links[ $id ]['text'] = apply_filters( 'wpml_translate_single_string', $link['text'], self::HOT_WORDS_DOMAIN, self::HOT_WORDS_PREFIX . $count . '_text' ); $links[ $id ]['link'] = apply_filters( 'wpml_translate_single_string', $link['link'], self::HOT_WORDS_DOMAIN, self::HOT_WORDS_PREFIX . $count . '_link' ); } return $links; } /** * Register header search links for translation */ public function register_catalog_product_carousel_strings() { $links = (array)martfury_get_option( 'catalog_products_carousel_1' ); if ( empty( $links ) ) { return; } foreach ( $links as $id => $link ) { $count = $id + 1; do_action( 'wpml_register_single_string', self::CATALOG_PRODUCT_CAROUSEL_DOMAIN, self::CATALOG_PRODUCT_CAROUSEL_PREFIX . $count . '_title', $link['title'] ); } } /** * Apply the WPML translation for search quick links * * @param array $links * * @return array */ public function translate_catalog_product_carousel( $links ) { if ( empty( $links ) ) { return $links; } foreach ( $links as $id => $link ) { $count = $id + 1; $links[ $id ]['title'] = apply_filters( 'wpml_translate_single_string', $link['title'], self::CATALOG_PRODUCT_CAROUSEL_DOMAIN, self::CATALOG_PRODUCT_CAROUSEL_PREFIX . $count . '_title' ); } return $links; } /** * Register header search links for translation */ public function register_catalog_product_carousel_2_strings() { $links = (array)martfury_get_option( 'catalog_products_carousel_2' ); if ( empty( $links ) ) { return; } foreach ( $links as $id => $link ) { $count = $id + 1; do_action( 'wpml_register_single_string', self::CATALOG_PRODUCT_CAROUSEL_2_DOMAIN, self::CATALOG_PRODUCT_CAROUSEL_2_PREFIX . $count . '_title', $link['title'] ); } } /** * Apply the WPML translation for search quick links * * @param array $links * * @return array */ public function translate_catalog_product_carousel_2( $links ) { if ( empty( $links ) ) { return $links; } foreach ( $links as $id => $link ) { $count = $id + 1; $links[ $id ]['title'] = apply_filters( 'wpml_translate_single_string', $link['title'], self::CATALOG_PRODUCT_CAROUSEL_2_DOMAIN, self::CATALOG_PRODUCT_CAROUSEL_2_PREFIX . $count . '_title' ); } return $links; } /** * Register header search links for translation */ public function register_catalog_product_carousel_3_strings() { $links = (array)martfury_get_option( 'catalog_products_carousel_3' ); if ( empty( $links ) ) { return; } foreach ( $links as $id => $link ) { $count = $id + 1; do_action( 'wpml_register_single_string', self::CATALOG_PRODUCT_CAROUSEL_3_DOMAIN, self::CATALOG_PRODUCT_CAROUSEL_3_PREFIX . $count . '_title', $link['title'] ); } } /** * Apply the WPML translation for search quick links * * @param array $links * * @return array */ public function translate_catalog_product_carousel_3( $links ) { if ( empty( $links ) ) { return $links; } foreach ( $links as $id => $link ) { $count = $id + 1; $links[ $id ]['title'] = apply_filters( 'wpml_translate_single_string', $link['title'], self::CATALOG_PRODUCT_CAROUSEL_3_DOMAIN, self::CATALOG_PRODUCT_CAROUSEL_3_PREFIX . $count . '_title' ); } return $links; } /** * Encode the param_groups type of js_composer * * @param string $string * @param string $encoding * @param array $original_string * @return string */ public function shortcode_encode_urlencoded_json( $string, $encoding, $original_string ) { if ( 'urlencoded_json' === $encoding ) { $output = array(); foreach ( $original_string as $combined_key => $value ) { $parts = explode( '_', $combined_key ); $i = array_pop( $parts ); $key = implode( '_', $parts ); $output[ $i ][ $key ] = $value; } $string = urlencode( json_encode( $output ) ); } return $string; } /** * Decode urleconded string of param_groups type of js_composer * * @param string $string * @param string $encoding * @param string $original_string * @return string */ public function shortcode_decode_urlencoded_json( $string, $encoding, $original_string ) { if ( 'urlencoded_json' === $encoding ) { $rows = json_decode( urldecode( $original_string ), true ); $string = array(); $atts = array( 'title', 'desc', 'link'); foreach ( (array) $rows as $i => $row ) { foreach ( $row as $key => $value ) { if ( in_array( $key, $atts ) ) { $string[ $key . '_' . $i ] = array( 'value' => $value, 'translate' => true ); } else { $string[ $key . '_' . $i ] = array( 'value' => $value, 'translate' => false ); } } } } return $string; } /** * Display the currency switcher of WooCommerce Multilingual */ public function currency_switcher( $args ) { if ( ! function_exists( 'wcml_is_multi_currency_on' ) || ! wcml_is_multi_currency_on() ) { return; } $args = wp_parse_args( $args, array( 'label' => '', 'direction' => 'down', 'class' => '', ) ); $classes = array( 'currency', 'currency-switcher--wcml', $args['direction'], $args['class'], ); printf( '<div class="%s">', esc_attr( implode( ' ', $classes ) ) ); do_action( 'wcml_currency_switcher', array( 'format' => '%code%' ) ); echo '</div>'; } } Martfury_WPML::instance();
💾 Save Changes
❌ Cancel